您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第十课-linux和UNIX的存储管理与设备管理
第十课UNIX存储管理与设备管理存储管理与设备管理是操作系统的核心功能。在现代微内核结构中,这两部分管理模块部分被移至核外作为用户级进程,由核心通过服务进程管理控制。UNIX微内核中,这两部分功能保留了内存地址空间分配管理与基本的I/O调度管理。一、存储管理存储管理包括内存空间管理和外存管理。外存管理由核心服务进程调度文件管理系统实现。本课主要讨论内存管理。(一)存储管理内容存储空间分配与回收地址变换─地址映射与地址转换逻辑地址空间(虚拟地址空间)到物理地址空间的重新定位。内存映射指将进程映象和数据文件直接映射到进程的虚拟地址空间上。存储共享和保护指程序代码与数据的共享与保护,主要是控制地址空间的访问权限。存储器扩充目前主要通过对换技术与虚拟存储器技术实现。共享内存允许系统中每个运行的进程公平地共享系统中的物理内存,并且多个进程通过共享内存来交换信息。(二)UNIX存储管理技术操作系统存储管理模式:连续内存分配内存分系统区与用户区覆盖与交换使用外存交换分区分页管理内存视为线性空间,分成若干页面;进程逻辑地址空间也分页,与物理内存页面大小相等并对应。段式管理内存视为二维空间,分成若干分区;进程逻辑地址空间分段,与内存分区对应。UNIXS_5采用了对换和请求分页存储管理技术。当进程运行时不必整个映像都在内存,只需在内存保留当前页,其余页(段)保留在外存。仅当进程访问到未入内存的页面时,核心再将访问页面装入内存。对换和请求分页技术是虚拟存储器系统的一种实现,保留当前页之外进程映像内容的外存空间被称为虚拟内存。对换和请求分页技术允许进程映像大于可用内存总量,允许更多进程同时在内存执行。1、对换(swapping)现代UNIX采用进程部分交换技术,在内存与外存交换区换入换出。对换技术主要内容包括管理对换设备空间、进程换入和换出。(1)对换空间管理对换设备为块设备。核心以连续的物理块为一组,为相应进程分配对换空间。核心使用map表(驻内存)管理对换空间。(教材p127)(2)进程的换入和换出进程换出:核心将占据某块内存空间的进程换出到对换设备(硬盘)。进程换入:核心将先前换出到对换设备的进程重新换入内存。每次的I/O操作,通常包含多个进程的同时换入和换出。对换无缓冲机制。UNIX系统中负责进程调度与对换工作的是0#进程,它是常驻内存的系统进程。2、请求分页(demandpaging)核心将每个作业的地址空间分配成若干固定大小的块,称为页(页面);并将内存空间也分成与页面大小相同的块,称为内存页(pageframe,也称内存块、块)。页面(块)的大小由硬件决定。程序(作业)的逻辑地址空间是连续的,但对应的内存页可以不连续。o请求分页的基本思想全部程序通常放在硬盘上,核心只将当前用到的页面(一个或若干个)装入内存。执行程序的每条指令时。CPU计算出指令的有效地址(由页号、页内位移组成),取出页号,查页表,判断该页是否在内存中:是,则访问内存,完成该指令;否,则产生一个缺页中断,由系统检查有无可用内存块:有,则从盘上读入所需页面,调整页表与内存分块表,然后重新启动被中断的指令;无,则启动页面淘汰进程,将某段时间内不再访问的页面换出内存,再由缺页处理程序将所需页面换入内存,重启被中断的指令。内存物理页面的另一个用途是存储页表这些核心数据结构。核心通过页表管理页面,将页面转换成内存中相应物理块。3、虚拟存储技术虚拟存储实现的模式包括:页式虚拟存储管理动态分页管理,并使用多级页表(新教材p187图911改进后的页表项)段式虚拟存储管理段页式虚拟存储管理虚拟地址结构包含段号、页号与偏移,系统使用段表与页表虚拟内存系统中的所有地址都是逻辑地址(虚拟地址),由程序描述产生。页面模式下的虚拟地址由两部分构成:页面号和页面内偏移地址。虚拟内存技术可实现以任何顺序将虚拟地址映射到物理地址。通过操作系统核心程序所维护的一系列系统表实现由虚拟地址到物理地址的转换。Linux的虚拟内存管理使用段页式技术。逻辑地址分段,包括:段号,段内偏移量。逻辑地址转换为物理地址前,需要进行线性地址映射,需要实现段内分页管理机制。Linux的请求换页将可执行进程映象加载到进程的虚拟内存中。当命令执行时,可执行的命令文件被打开,同时其内容被映射到进程的虚拟内存。这些操作是通过修改描叙进程内存映象的数据结构来完成的,此过程称为内存映射。然而只有映象的起始部分被调入物理内存,其余部分仍然留在磁盘上。当映象执行时,Linux通过页面管理决定将磁盘上哪些部分调入内存继续执行。二、设备管理UNIX系统中包含两类设备:块设备(磁盘、光盘等);字符设备(终端、打印机等)。设备管理模块负责对系统的I/O部件进行控制与管理。设备作为特别文件被核心管理。(一)设备管理内容为用户提供便捷、统一的设备使用接口方式,包括建立用户命令接口、程序设计接口函数。设备的分配、占用与释放管理。帮助用户进行设备的访问与控制。如并发访问设备、共享设备管理,设备检测等。I/O缓冲区的管理控制。(二)UNIX设备管理技术1、I/O传输控制技术中断控制方式I/O设备与CPU之间的信息与数据交互通常采用中断控制方式完成。内核直接负责中断管理。DMA控制方式(DirectMemoryAccess)直接存储器访问方式,适合于块设备中批量数据传输。通道控制方式通过专用的通道控制器和缓冲存储器实现,执行高效、复杂的I/O控制,更加智能化。如网卡的信道访问控制。2、虚拟设备管理技术是现代设备共享的一种机制。在一台共享设备上模拟独占设备的操作过程,把低速的独占设备改造成可并行操作的虚拟设备,即虚拟成多台逻辑设备,供多个用户进程同时使用。虚拟设备实现策略:为每个虚拟设备创建预输入程序和缓输出程序,分别针对磁盘空间上开辟的“输入井”和“输出井”区域进行操作,形成虚拟的联机操作环境。虚拟设备管理技术也称假脱机技术。虚拟设备如虚拟光驱,虚拟网卡等。最典型的虚拟存储设备是磁盘阵列。如惠普推出的VirtualizedArray(虚拟阵列技术),将系统内的所有硬盘当做一个统一的存储空间来管理,所有的子阵列,都平均分摊到每一个系统内的物理硬盘上。整个系统的硬盘数量可以任意改变,数据的存放可以随着物理盘块组的调整而动态调整。与传统RAID相比,它使用了全光纤通道体系结构,能够满足对数据输入、输出性能和可扩展性要求较高的用户的需求,具有更大的优势,更适合高端开放系统的用户。2、UNIX系统的缓冲技术UNIX采用多重缓冲技术,在系统初启时,核心根据内存大小和系统性能要求分配若干个缓冲区。缓冲区组成:存放数据的缓冲区、缓冲区控制块(buf)。UNIX系统中使用缓冲池来管理设备缓冲区。缓冲池是指使用在缓冲控制块中的两组指针构成两条双向链表,把可用缓冲区组织起来。核心尽量使数据在缓冲区中停留较长时间,便于其它进程使用,减少I/O操作。3、块设备管理使用磁盘缓冲技术对磁盘进行读写:从磁盘读数据时,若数据已在缓冲区中,则直接从缓冲区中读入。磁盘数据传输完成则产生I/O中断,盘中断处理程序唤醒等待I/O的睡眠进程。4、字符设备管理字符设备以字符为单位进行I/O传输,传输速度较低,也采用多重缓冲技术,但缓冲区规模较小,若干缓冲区构成共享缓冲池。UNIX终端驱动使用3条队列(均需经过缓冲区):原始队列:终端读入加工队列:将原始队列特殊字符转换加工,形成输入队列输出队列:终端输出进程写终端:从屏幕显示信息进程读终端:把用户从键盘键入的数据写到指定用户区。5、中断和陷入处理UNIX系统采用中断和陷入方式完成设备的管理与控制。中断和陷入技术是CPU对程序执行中发生突发事件时的常用处理手段。陷入事件与当前进程有关,如执行中碰到系统指令调用、发生指令错、运算产生溢出等。中断产生则与其他并行进程有关,如I/O传送完成、进程时间片到等。CPU在系统栈中执行相关中断处理;陷入产生因与当前用户进程有关,所以CPU利用用户栈进行相关处理。CPU的执行优先级低于中断优先级时,则接受中断指令。核心执行中断处理的顺序:保存被中断进程数据,放入核心栈确定中断源,识别中断类型调用中断处理程序,处理中断中断处理完成并返回。恢复被中断进程的数据,核心栈退栈,进程回到用户态,等待调度(看是否可转为核心态)。核心通过操作系统陷入指令将进程的运行态改为核心态。(三)UNIX的设备文件1、逻辑设备节点/dev目录是UNIX的设备文件目录,存放所有可被用户访问的逻辑设备文件名,即逻辑设备节点。用户访问逻辑设备节点,经过设备管理与驱动程序传递给指定的物理设备,达到对物理设备的操作。设备文件名的信息:可通过$ls–l命令列出。如:crw-r-----1rootsys7,1292010-11-11vcsa1设备文件描述信息中,访问日期之前的两个整数分别代表主设备号和次设备号。主设备号:表示设备分类。表明设备对应的驱动程序。次设备号:表示设备类中具体的设备型号,由驱动程序作为参数使用。管理员用户可通过mknod命令创建设备文件节点。主要需要设立主设备号与次设备号信息。设备号信息系统由动态设备管理模块实现创建。系统中已安装设备的设备号从/proc/devices文件中获得。2、设备驱动驱动程序和设备号是一一对应的,当打开一个设备文件时,操作系统就已知道这个设备所对应的驱动程序。设备驱动程从与设备无关的文件中接受对设备的抽象请求,经过分析解释,转换成对特定类型设备的之行动作。驱动程序是系统内核的扩展。UNIX设备驱动采用可装载方式链入内核。系统启动装载内核时,需要检测硬件设备,配置设备驱动。UNIX系统中,用户通过文件子系统实现对设备访问。设备驱动与文件系统的关联如下:通过系统调用(open、close、read、write)连接相应的设备开关表(字符设备开关表/快设备开关表);通过设备开关表连接不同调用操作相关的驱动程序;驱动程序通过中断向量表中的中断向量与具体物理设备关联。由上可知,UNIX系统通过设备中断向量来控制设备操作。目前依据不同的计算机架构与操作系统平台差异,驱动程序可以是32位(WindowsXP),或是最新的64位(Linux、WindowsVista)。虚拟设备驱动程序(virtualdevicedrivers):用于虚拟化的环境(virtualizationenvironments)。例如VMware就是一种“虚拟PC”的软件,可以实现在一台机器上同时执行多个操作系统。在主操作系统平台上,就像执行标准的Windows应用程序一样。
本文标题:第十课-linux和UNIX的存储管理与设备管理
链接地址:https://www.777doc.com/doc-3994329 .html