1、第第7章章 几种常见操作系统典型功能的实现方法举例几种常见操作系统典型功能的实现方法举例n7.1 Windows NT7.1 Windows NT进程、线程的特点进程、线程的特点n7.2 UNIX7.2 UNIX进程管理进程管理n7.3 UNIX7.3 UNIX进程通信与同步机制进程通信与同步机制n7.4 Windows NT7.4 Windows NT文件系统文件系统n7.5 UNIX7.5 UNIX文件系统索引结构介绍文件系统索引结构介绍n7.6 Linux7.6 Linux文件系统文件系统n7.7 UNIX NFS7.7 UNIX NFS文件系统文件系统n7.8 Windows NT 7
2、.8 Windows NT 存储管理的二级页表结构存储管理的二级页表结构n7.9 Linux 7.9 Linux 系统的内存管理技术系统的内存管理技术n7.10 UNIX7.10 UNIX内存管理技术内存管理技术n7.11 UNIX I/O7.11 UNIX I/O设备管理设备管理n7.12 Linux I/O7.12 Linux I/O设备管理设备管理本章学习目标本章学习目标nUNIX的进程管理及调度,包括进程同步机的进程管理及调度,包括进程同步机制介绍制介绍nUNIX文件的物理结构文件的物理结构nLinux操作系统文件名到文件分量的映射操作系统文件名到文件分量的映射nWindowsNT、L
3、inux及及UNIX内存管理技术内存管理技术nLinux及及UNIX设备管理设备管理7.1 Windows NT进程、线程的特点进程、线程的特点n7.1.1 Windows NT进程、线程及对象之间的进程、线程及对象之间的关系关系n7.1.2 进程管理程序进程管理程序n7.1.3 线程调度线程调度 返回首页7.1.1 Windows NT进程、线程及对象之间的关系进程、线程及对象之间的关系(1)线程是进程的一个组成部分。)线程是进程的一个组成部分。(2)进程多线程都在进程的地址空间活动。)进程多线程都在进程的地址空间活动。 (3)资源是分给进程的,而不是分给线程的,)资源是分给进程的,而不是分
4、给线程的,并且系统还为分给进程的资源规定了配额。并且系统还为分给进程的资源规定了配额。(4)调度的基本单位是线程。)调度的基本单位是线程。 (5)线程在执行过程中需要同步。)线程在执行过程中需要同步。 返回本节7.1.2 进程管理程序进程管理程序(1)客户进程用创建原语创建进程。)客户进程用创建原语创建进程。 (2)客户进程通过发送消息给相应的服务器进程。)客户进程通过发送消息给相应的服务器进程。(3)服务器进程调用)服务器进程调用Windows NT执行体的进程管理执行体的进程管理程序为之创建一个程序为之创建一个Windows NT本机进程。本机进程。 (4)进程创建后,进程管理程序返回一个
5、句柄给进程)进程创建后,进程管理程序返回一个句柄给进程对象。对象。(5)环境子系统取得该句柄,生成客户应用程序所期)环境子系统取得该句柄,生成客户应用程序所期望的适合本环境的返回值。望的适合本环境的返回值。(6)环境子系统调用)环境子系统调用Windows NT的进程管理程序为的进程管理程序为已创建的新进程创建一个线程。已创建的新进程创建一个线程。返回本节7.1.3 线程调度线程调度n在在Windows NT中,一个线程在它的生命期中要经中,一个线程在它的生命期中要经历以下历以下6种状态:种状态:(1)就绪状态)就绪状态(2)备用状态)备用状态 (3)运行状态)运行状态(4)等待状态)等待状态
6、 (5)转换状态)转换状态 (6)终止状态()终止状态(如图如图7.1所示)所示)初始化就绪备用终止运行转换等待创建并初始化线程对象重新初始化放入就绪队列选择执行抢先资源成为可用的资源不可用抢先或时间片结束等待完成线程等待一个对象句柄执行完成描述表切换并开始执行(调度)图7.1 线程的调度状态之间的转化图返回本节7.2 UNIX进程管理进程管理n7.2.1 UNIX进程状态进程状态n7.2.2 UNIX进程描述进程描述n7.2.3 UNIX进程控制进程控制n7.2.4 UNIX进程调度进程调度 返回首页7.2.1 UNIX进程状态进程状态nUNIX中共有中共有9种进程状态:种进程状态:(1)核
7、心运行状态)核心运行状态 (2)用户运行状态)用户运行状态 (3)内存中就绪)内存中就绪 (4)内存中睡眠)内存中睡眠 (5)就绪且换出)就绪且换出(6)睡眠且换出)睡眠且换出 (7)被抢占状态)被抢占状态 (8)创建状态)创建状态 (9)僵死状态)僵死状态 (如图如图7.2所示)所示) 用户态执行返回到用户态返回系统调用、中断中断、中断返回僵死睡眠唤醒唤醒换出换出换入调度内存中睡眠睡眠且交换内存不足有足够内存创建剥夺核心态执行被剥夺状态终止内存中就绪fork123456789图7.2 UNIX进程状态转化图返回本节7.2.2 UNIX进程描述进程描述(1)一个进程是对一个程序的执行。)一个进
8、程是对一个程序的执行。(2)一个进程的存在意味着系统中存在着一个常驻)一个进程的存在意味着系统中存在着一个常驻内存的进程表项(内存的进程表项(proc结构),它包含着相应进程结构),它包含着相应进程的控制信息。的控制信息。(3)对每一个进程,有一个被称为)对每一个进程,有一个被称为U区的数据结构,区的数据结构,这个结构中存放着该进程的私用控制信息。这个结构中存放着该进程的私用控制信息。(4)一个进程可以生成或撤销其子进程。)一个进程可以生成或撤销其子进程。(5)一个进程是获得和释放各种系统资源的基本单)一个进程是获得和释放各种系统资源的基本单位。位。返回本节7.2.3 UNIX进程控制进程控制
9、n在在UNIX系统中,除了系统中,除了0#进程之外,其他所进程之外,其他所有进程都是被另一个进程利用系统调用有进程都是被另一个进程利用系统调用fork创建的。创建的。n0#进程是一个特殊的系统进程,它是在系统进程是一个特殊的系统进程,它是在系统引导时被创建的。系统初启时,引导时被创建的。系统初启时,0#进程创建进程创建了了1#进程,此后进程,此后0#进程就变成了交换进程,进程就变成了交换进程,而而1#进程变成了系统的始祖进程。进程变成了系统的始祖进程。UNIX系系统利用统利用fork为每个终端创建一个子进程为用为每个终端创建一个子进程为用户服务,如等待用户登录、执行户服务,如等待用户登录、执行
10、shell命令解命令解释程序等。释程序等。 返回本节7.2.4 UNIX进程调度进程调度n由于由于UNIX系统是单纯的分时系统,所以没系统是单纯的分时系统,所以没有设置作业调度。有设置作业调度。UNIX系统的进程调度采系统的进程调度采用的算法是,多级反馈队列轮转调度法。调用的算法是,多级反馈队列轮转调度法。调度的算法如图度的算法如图7.3所示。所示。n核心先从最高优先级就绪队列中取出排在队核心先从最高优先级就绪队列中取出排在队列最前面的进程,当进程执行完一个时间片列最前面的进程,当进程执行完一个时间片仍未完成则剥夺它的执行,将它放入到相应仍未完成则剥夺它的执行,将它放入到相应的队列中。然后,再
11、从最高优先级就绪队列的队列中。然后,再从最高优先级就绪队列中取出下一个就绪进程投入运行。中取出下一个就绪进程投入运行。调度内存中有可运行的进程?选择内存中优先级最高、驻留时间最长的就绪或被剥夺进程从就绪队列中移出切换到该进程的上下文恢复其执行CPU空闲NY图7.3 UNIX进程调度算法返回本节7.3 UNIX进程通信与同步机制进程通信与同步机制nUNIX系统系统V中的进程通信可分为中的进程通信可分为4个部分:个部分:低级通信、管道通信、进程间通信和网络进低级通信、管道通信、进程间通信和网络进程间通信。程间通信。(1)低级通信主要用来传递进程间的控制信)低级通信主要用来传递进程间的控制信号。号。
12、 (2)管道通信用来在同一家族的进程间传递)管道通信用来在同一家族的进程间传递比特流。比特流。返回首页(3)进程间通信)进程间通信IPC是是UNIX系统系统V的一个核的一个核心程序包,它负责完成同一计算机内各进程心程序包,它负责完成同一计算机内各进程间大量数据的传送工作。它由间大量数据的传送工作。它由3部分组成:部分组成:消息机制、共享存储器机制和信号量机制。消息机制、共享存储器机制和信号量机制。(4)网络进程间的通信是基于通信协议的。)网络进程间的通信是基于通信协议的。 返回本节7.4 Windows NT文件系统文件系统n7.4.1 FAT文件分配表文件分配表n7.4.2 NTFS文件系统
13、文件系统 返回首页7.4.1 FAT文件分配表文件分配表n文件分配表是微软用在文件分配表是微软用在DOS及及Windows操作操作环境的文件系统格式。环境的文件系统格式。FAT文件系统有如下文件系统有如下特点特点:(1)支持长文件名。)支持长文件名。 (2)不提供本地安全性。)不提供本地安全性。 (3)最大文件)最大文件/分区大小为分区大小为4GB。返回本节7.4.2 NTFS文件系统文件系统nNTFS文件系统的特点:文件系统的特点:(1)支持长文件名称的操作。)支持长文件名称的操作。 (2)提供)提供了了C2的安全等级。的安全等级。(3)支持比)支持比FAT文件系统更大的文件与分区文件系统更
14、大的文件与分区,理论上两者均可达到,理论上两者均可达到16EB,而而NTFS在典在典型硬件上实际最大分区可以达到型硬件上实际最大分区可以达到2TB。(4)支持文件压缩。支持文件压缩。 (5)支持族的再映射。)支持族的再映射。 (6)支持)支持Macintosh文件。文件。(7)支持)支持POSIX需求需求NTFS是是Windows POSIX.1兼容支持的文件系统。兼容支持的文件系统。返回本节7.5 UNIX文件系统索引结构介绍文件系统索引结构介绍1UNIX系统的文件类型系统的文件类型2文件系统的目录结构文件系统的目录结构3文件的物理结构文件的物理结构4文件逻辑块号到物理块号的转换文件逻辑块号
15、到物理块号的转换返回首页1UNIX系统的文件类型系统的文件类型nUNIX系统中的文件分为系统中的文件分为3种类型:种类型:n目录文件目录文件n普通文件普通文件n特殊文件(或称设备文件)特殊文件(或称设备文件) 2文件系统的目录结构文件系统的目录结构nUNIX文件系统采用的是多级的树形目录结文件系统采用的是多级的树形目录结构。整个目录就像一棵倒挂的树,根目录在构。整个目录就像一棵倒挂的树,根目录在最上面。下面有树干树枝(目录、子目录)最上面。下面有树干树枝(目录、子目录),有树叶(文件)。特殊文件存放在一级子,有树叶(文件)。特殊文件存放在一级子目录目录/dev中,其他所有各级目录中存放的全中,
16、其他所有各级目录中存放的全是普通文件和目录文件。是普通文件和目录文件。3文件的物理结构文件的物理结构n在在UNIX系统中,文件的数据存储在离散的系统中,文件的数据存储在离散的磁盘块中,这些文件的盘块号直接或间接地磁盘块中,这些文件的盘块号直接或间接地存放在该文件索引节点的存放在该文件索引节点的13个地址中。索引个地址中。索引节点中的直接块和间接块如图节点中的直接块和间接块如图7.4所示。所示。(1)直接寻址方式。)直接寻址方式。(2)一级间接寻址方式。)一级间接寻址方式。(3)多级间接寻址方式。)多级间接寻址方式。 图7.4 索引节点中的直接块和间接块4文件逻辑块号到物理块号的转换文件逻辑块号
17、到物理块号的转换(1)直接地址)直接地址(2)间接地址。)间接地址。n一级间接地址寻址一级间接地址寻址n多级间接地址寻址(如图多级间接地址寻址(如图7.5所示所示 )图7.5 文件索引节点中的磁盘地址返回本节7.6 Linux文件系统文件系统n7.6.1 EXT2文件系统文件系统n7.6.2 EXT2索引节点索引节点n7.6.3 EXT2超级块超级块n7.6.4 EXT2中的目录中的目录 返回首页7.6.1 EXT2文件系统文件系统图7.6 EXT2文件系统结构示意图 返回本节7.6.2 EXT2索引节点索引节点数据数据数据数据数据数据数据数据数据结构ext2_inodeModeSizeOwn
18、er infoTimestampsDirect BlocksIndirect BlocksDouble IndirectTriple IndirectDataBlocks图7.7 EXT2文件系统索引节点示意图 返回本节7.6.3 EXT2超级块超级块n超级块主要包括如下信息:超级块主要包括如下信息:(1)幻数()幻数(Magic Number)(2)修订级别(修订级别(Revision Level)(3)挂接数()挂接数(Mount Count)和最大挂接数和最大挂接数(Maximum Mount Count) (4)块组号()块组号(Block Group Number)(5)块大小()块
19、大小(Block Size)(6)每组块数)每组块数(Blocks per Group)(7)空闲块()空闲块(Free Blocks)(8)空闲索引节点()空闲索引节点(Free Inodes)(9)第一个索引节点()第一个索引节点(First Inode)返回本节7.6.4 EXT2中的目录中的目录n在在ext2文件系统中,目录是一些特殊的文件文件系统中,目录是一些特殊的文件,它们用来创建和保存系统中文件的存取路,它们用来创建和保存系统中文件的存取路径(如图径(如图7.8所示)。一个目录文件包括很所示)。一个目录文件包括很多的目录入口,一个目录入口包括以下内容多的目录入口,一个目录入口包括
20、以下内容:(1)索引节点()索引节点(inode)(2)名称长度()名称长度(name length)(3)名称()名称(name)0155i1i215555514文件名长文件名索引节点表图7.8 EXT2文件系统目录结构示意图返回本节7.7 UNIX NFS文件系统文件系统nNFS最主要的特点是它的健壮性。在客户和最主要的特点是它的健壮性。在客户和服务器之间产生的每个请求本身是完整的,服务器之间产生的每个请求本身是完整的,不必知道以前的执行情况。不必知道以前的执行情况。nNFS主要的缺憾是它的设计本身是不安全的主要的缺憾是它的设计本身是不安全的。这就要求在任何时候通过。这就要求在任何时候通过
21、NFS将磁盘共享将磁盘共享给其他的计算机时,需要给该计算机的用户给其他的计算机时,需要给该计算机的用户一定的信任度。一定的信任度。nNFS的两个主要文件是:的两个主要文件是:/etc/exports和和/etc/fstab文件。文件。 返回首页7.8 Windows NT 存储管理的二级页表结构存储管理的二级页表结构nWindows NT运行在运行在32位的微机上,因此每位的微机上,因此每个进程都有个进程都有4GB的虚拟地址空间(如图的虚拟地址空间(如图7.9所示)。所示)。nWindows NT的地址变换机构不同与传统的的地址变换机构不同与传统的页面地址变换机构,它采用的是一种称为二页面地址
22、变换机构,它采用的是一种称为二级页表结构的技术(如图级页表结构的技术(如图7.10所示)。所示)。n某进程的二级页表及虚拟地址如图某进程的二级页表及虚拟地址如图7.11所示所示, Windows NT采用两级页表的缺点是降低采用两级页表的缺点是降低了访问内存的速度。了访问内存的速度。 返回首页非页交换区页交换区直接映射地址页面交换区00000000h80000000hFFFFFFFFh0.5GB0.5GB系统存储区(2GB)用户存储区(2GB)图7.9 虚拟地址空间012 1122 2131目录位移页表位移页位移虚 拟 地址页目录地址控制寄存器代 码 或 数据页帧页表页 帧 地址页目录(每进程
23、一个)页 表 地址图7.10 二级页表地址变换结构00400800000C00400800000C00400800000C代码或数据020页目录页表页帧002003020虚拟地址011213100248110控制寄存器3100248#00680#00726#0068000726图7.11 地址变换过程举例 返回本节7.9 Linux 系统的内存管理技术系统的内存管理技术(1)采用缓冲区高速缓存来保存块设备驱动程序所)采用缓冲区高速缓存来保存块设备驱动程序所用到的数据缓冲区。用到的数据缓冲区。 (2)Linux系统采用页面高速缓存来加速磁盘中文件系统采用页面高速缓存来加速磁盘中文件镜像和数据的存
24、取。镜像和数据的存取。(3)Linux系统采用交换高速缓存只将那些被修改过系统采用交换高速缓存只将那些被修改过的页面保存到交换文件中。的页面保存到交换文件中。 (4)将一个常用的硬件高速缓存放在处理器中,它)将一个常用的硬件高速缓存放在处理器中,它一般用来保存页面表的入口(一般用来保存页面表的入口(如图如图7.12所示)。所示)。 返回首页第一级第二级第三级页面中字节物理页面第一级页面表PFN第二级页面表PFN第三级页面表PFNPGD图7.12 虚拟内存地址示意图 返回本节7.10 UNIX内存管理技术内存管理技术n交换空间的管理。交换空间的管理。在在UNIX系统中分配交系统中分配交换空间是通
25、过驻留在内存中的交换映射表换空间是通过驻留在内存中的交换映射表来实现的。来实现的。 n进程的换出。进程的换出。当内核需要内存空间时,就当内核需要内存空间时,就可以把一个进程换到交换区中。可以把一个进程换到交换区中。 n进程的换入。进程的换入。引用计数值为引用计数值为0的进程即为的进程即为交换进程。交换进程。 返回首页nUNIX系统为实现该技术所配置的系统为实现该技术所配置的4种数据结种数据结构:构:(1)页表)页表(2)磁盘块描述表()磁盘块描述表(如图如图7.13所示)所示)(3)页框数据表)页框数据表(4)交换使用表(如图交换使用表(如图7.14所示)所示) 页表项磁盘块描述表项磁盘块描述
26、表交换设备块号类型(交换、文件等)分区表图7.13 页表项和磁盘块描述表图7.14 请求分页4种数据结构之间的关系 返回本节7.11 UNIX I/O设备管理设备管理nUNIX操作系统将设备分为两类:块设备和操作系统将设备分为两类:块设备和字符设备。所谓块设备是指用于存储信息且字符设备。所谓块设备是指用于存储信息且信信 UNIX系统的设备管理主要有两个特点:系统的设备管理主要有两个特点:n第一个特点是:第一个特点是:UNIX将各类设备当作文件将各类设备当作文件来管理。第二个特点是:来管理。第二个特点是:UNIX设备管理采设备管理采用了缓冲技术。用了缓冲技术。 (1)块设备缓冲。)块设备缓冲。
27、(2)字符设备缓冲区。字符设备缓冲区。 返回首页7.12 Linux I/O设备管理设备管理n设备管理的一个基本目标就是对设备的抽象设备管理的一个基本目标就是对设备的抽象处理。处理。一个设备驱动程序控制的所有设备有一个设备驱动程序控制的所有设备有一个相同的主设备号,通过不同的从设备号一个相同的主设备号,通过不同的从设备号来区分设备和它们的控制器。来区分设备和它们的控制器。Linux系统使系统使用主设备号和系统中的一些表来将系统调用用主设备号和系统中的一些表来将系统调用中使用的设备文件映射到设备驱动程序中。中使用的设备文件映射到设备驱动程序中。nLinux系统支持三种类型的硬件设备:字符系统支持
28、三种类型的硬件设备:字符设备、块设备、网络设备。设备、块设备、网络设备。 返回首页本章小结本章小结n针对前针对前6章介绍的操作系统的功能,本章以章介绍的操作系统的功能,本章以UNIX、Linux、Windows NT操作系统为实例,具体介绍操操作系统为实例,具体介绍操作系统的进程管理、内存管理、文件管理与作系统的进程管理、内存管理、文件管理与I/O设备设备管理在上述三种操作系统中的应用,具体的应用是理管理在上述三种操作系统中的应用,具体的应用是理论知识的印证,而应用的细节与理论之间又是创新的论知识的印证,而应用的细节与理论之间又是创新的关系。本章介绍的关系。本章介绍的UNIX进程状态转换与控制就与理进程状态转换与控制就与理论介绍中的进程管理有较大差别;论介绍中的进程管理有较大差别;Windows NT的二的二级页表结构也是对理论介绍中的页式系统的改进,而级页表结构也是对理论介绍中的页式系统的改进,而UNIX文件系统的深入介绍也是对文件系统中文件物文件系统的深入介绍也是对文件系统中文件物理结构的补充。通过本章的学习,可以在更深的层面理结构的补充。通过本章的学习,可以在更深的层面上了解操作系统及系统程序的设计方法,对创新思维上了解操作系统及系统程序的设计方法,对创新思维人才的培养大有裨益。人才的培养大有裨益。