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