操作系统知识
操作系统的内核
操作系统的五大管理功能:进程管理、存储管理、设备管理、文件管理、作业管理。
网络操作系统和嵌入式操作系统基础知识
操作系统的配置
从历年的考试情况来看,本章主要考查进程状态转换图、信号量与PV操作、死锁问题、银行家算法、段页式存储、页面置换算法、磁盘调度、树形文件系统。
进程管理:
1.进程状态转换图
从该图可以看出,五态模型中的五态为:执行状态(运行状态)、活跃就绪状态、活跃阻塞状态、挂起就绪状态、挂起阻塞状态。其中前三种状态组成了三态模型。
执行状态:指进程占有处理机正在CPU上执行的状态。在单CPU系统中,每一时刻只有一个进程处于执行状态。
活跃就绪状态:指进程分配到除处理机以外的必需的资源(已经具备了执行的条件)的状态。进程被创建后处于就绪状态,处于就绪状态的进程可以有多个。
活跃阻塞状态:指进程因等待某个事件的发生而放弃处理机进入等待状态。系统中处于这种状态的进程可以有多个。
挂起就绪状态:指进程被移至磁盘镜像区中,此时进程只缺处理机资源。
挂起阻塞状态:指进程被移至磁盘镜像区中,此时进程除了缺处理机资源,还缺其它资源。
2.信号量与PV操作
在操作系统中,进程之间经常会存在互斥和同步两种关系。为了有效地处理这两种情况,W.Dijkstra在 1965年提出信号量和PV操作。
信号量是一种特殊的变量,表现形式是一个整型S和一个队列。
P操作:也称为down( ) 、wait ( ) 操作,使S=S-1,若S<0,进程暂停执行,放入信号量的等待队列。
V操作:也称为up( ) 、signal ( ) 操作,使S=S+1,若S≤0,唤醒等待队列中的一个进程。
(1)完成互斥控制
为了保护共享资源,不让多个进程同时访问这个共享资源,换句话说,就是阻止多个进程同时进入访问这些资源的代码段,这个代码段称为临界区(也称为管程),而这种一次只允许一个进程访问的资源称为临界资源。
为了实现进程互斥地进入自己的临界区,代码可以如下所示:
P(信号量)
临界区
V(信号量)
由于只允许一个进程进入,因此信号量中整型值的初始应该为1。该值表示可以允许多少个进程进入,当该值<0时,其绝对值就是等待使用的进程数,也就是等待队列中的进程数。而当一个进程从临界区出来时,就会将整型值加1,如果等待队列中还有进程,则调入一个新的进程进入(唤醒)。
(2)完成同步控制
最简单的同步形式是:进程A在另一个进程B到达L2以前,不应前进到超过点L1,这样就可以使用程序,如下所示:
进程A进程B
… …
L 1:P(信号量)L2:V(信号量)
… …
因此要确保进程B执行V操作之前,不让进程A的运行超过L1,因此信号量的初值就应该为0。这样,如果进程A先执行到L1,那么执行P操作后,信号量的整型值就会小于1,也就停止执行。直到进程B执行到L 2时,将信号量的整型值加1,并唤醒它以继续执行。
3.死锁问题
死锁是指各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。从而造成大家都想得到资源而又都得不到资源,各并发进程不能继续向前推进的状态。
产生死锁的根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。产生死锁有四个必要条件:
(1)互斥条件:即一个资源每次只能被一个进程使用,在操作系统中这是真实存在的情况。
(2)保持和等待条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:有些系统资源是不可剥夺的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
(4)环路等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。
4.银行家算法
按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:
(1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
(2)进程可以分期请求资源,但请求的总数不能超过最大需求量。
(3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
(4)当系统现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。
存储管理:
1. 页式存储组织
页式存储组织的基本原理是将各进程的虚拟空间划分为若干个长度相等的页,把内存空间以与页相等的大小划分为大小相等的片或页面,采用请求调页或预调页技术实现内外存的统一管理。
页式存储组织的主要优点是利用率高,产生的内存碎片小,内存空间分配及管理简单。主要缺点是要有相应的硬件支持,增加了系统开销;请求调页的算法如选择不当,有可能产生“抖动”现象。
2. 段式存储组织
一个作业是由若干个具有逻辑意义的段(如主程序、子程序、数据段等)组成。在分段系统中,允许程序(作业)占据内存中若干分离的分区。分段系统中的虚地址是一个有序对(段号,段内位移)。系统为每一个作业建立一个段表,其内容包括段号与内存起始地址的对应关系、段长和状态等。状态指出这个段是否已调入内存,若已调入内存,则指出这个段的起始地址位置,状态同时也指出这个段的访问权限。如果该段尚未调入内存,则产生缺段中断,以便装入所需要的段。
段式存储组织的主要优点有:便于多道程序共享内存,便于对存储器的保护,各段程序修改互不影响。其缺点是内存利用率低,内存碎片浪费大。
3. 段页式存储组织
段页式存储组织是分段式和分页式结合的存储组织方法,这样可充分利用分段管理和分页管理的优点。在段页式管理的存储器中,程序按逻辑单位分成基本独立的段,再把每段分成固定大小的页。内存则等分成与上述页大小相等的页。程序对内存的调入或调出是按页进行的。但它又可按段实现共享和保护。
在多道程序环境中,每道程序都有一张段表和一个作为用户标志的基号。一个逻辑地址中,除了基号x、段号s和页号p外,还有一个页内地址d。每个逻辑地址变换成实地址的过程如下:
根据基号找到相应的基址寄存器,由该基址寄存器内容找到该程序对应的段表始地址,再由段号找到该段表中相应行地址,该行地址中的内容为页表起始地址,再由页号找到物理页号的地址(已是内存中的某页)它与页内地址拼接后即得物理地址。可见段页式管理中需要多次查表才能最终获得物理地址。该过程可简单地用一个式子来示意,即其中,(x)表示基寄存器中地址为x的单元的内容,n为页内地址的位数。
段页式管理将段式存储管理和页式存储管理两种方式相结合,互相取长补短,充分发挥了它们的优点。使段页式虚拟存储器管理方案具有空间浪费小、存储共享容易、存储保护容易、能动态连接的特点。但由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内存也有所增加,使得执行速度大大下降。
4. 页面置换算法
最优算法(OPT):淘汰不用的或最远的将来才用的页。这是一种理想算法,不可能实现,只是用来作为衡量算法效率的参照物。
随机算法(RAND):随机淘汰。这种算法开销小,但性能不稳定。
先进先出算法(FIFO):选择最早调入(也是驻留时间最长)的页。
最近最少使用算法(LRU):选择离当前时刻最近的一段时间内使用得最少的页。
5.局部性原理
局部性分为时间局部性和空间局部性。时间局部性是指最近访问存储位置,很可能在不久的将来还要访问;空间局部性是指存储访问有聚集的倾向,当访问了某个位置后,很可能也要访问其附近的位置。
6.磁盘工作原理
磁盘是最常见的一种外部存储器,它是由1至多个圆形磁盘组成的
(1)概念
磁道:磁道是一组记录密度不同的同心圆。在一个磁盘中,从外到内,磁盘记录密度不断增加。同时,值得注意的是,0磁道是磁盘最外圈的磁道。
扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。
柱面:一个磁盘中,多个记录面相同磁道组成柱面。如磁盘有9个记录面,则这9个记录面的0磁道可组成一个柱面。
注意:硬盘就是磁盘的一种。硬盘工作时,无论是否在进行数据的读取,其盘片都是不断旋转的状态。
(2)数据存取过程
根据硬盘存放数据的规则,在向磁盘记录一个文件时,应将文件尽可能记录在同一柱面上,当一个柱面记录不下时,再记录到相邻柱面上。因此,当一个文件超出一个磁道容量时,剩下的部分应存于其他盘面的同一编号的磁道上,即同一柱面的其他磁道上。
为存取磁盘上的一个物理记录,必须给出3个参数:柱面号,磁头号(盘面号),扇区号。磁盘机根据柱面号控制移动臂作径向运动,带动读写头到达所需的柱面;从磁头号可确定哪一个磁头来读写数据,然后便等待访问的信息块旋转到读写头下时进行存取。磁盘机实现这些功能的操作是:查找(将读写头定位到指定柱面并选择指定磁头)、搜索(指定磁头寻找访问的记录块)、读、写和控制等。
平均存取时间(Average Access Time)是反映磁盘数据操作速度的指标,单位是毫秒(ms)。它包括三个时间段,分别是平均寻道时间(Seek Time),平均定位时间(SettingTime)和转动延迟(Rotational Latency),其中后两个又统称为等待时间。
(3)磁盘调度算法
先来先服务(FCFS):该算法根据进程请求访问磁盘的先后次序进行调度。其优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。
最短寻道时间优先(SSTF):该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。
扫描算法(SCAN):SCAN算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。
循环扫描(CSCAN)算法:该算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
假设一台按字节编址的16位计算机系统,采用虚拟页式存储管理方案,页面的大小为2K,且系统中没有使用快表(或联想存储器)。某用户程序如图2-10(左)所示,该程序的页面变换表如图2-10(右)所示,表中状态位等于1和0分别表示页面在内存或不在内存。图2-10(左)中MOVE Data1,Data2是一个4字节的指令,Data1和Data2表示该指令的两个32位操作数。假设MOVE指令存放在2047地址开始的内存单元中,Data1存放在6143地址开始的内存单元中,Data2存放在10239地址开始的内存单元中,那么执行MOVE指令将产生__(1)__次缺页中断,其中:取指令产生__(2)__次缺页中断,取Data1和Data2操作数分别产生__(3)__次缺页中断。
图2-10页面变换图
(1)A.3 B.4 C.5 D.6
(2)A.0 B.1 C.2 D.3
(3)A.1、1 B.1、2 C.2、2 D.2、3
解析:这个题目从其描述来看,非常复杂,但结合图来看,其实非常简单,从图a我们可以看出,MOVE执行属于页面0和1,而Data1属于页面2和3,Data2属于页面4和5,另外,结合图b可以看出,编号为1、2、3、4、5的页面都不在内存中,如果要取这几个页面的数据,必须先将其置换进内存,因此总共是5次缺页中断,其中取指令产生1次缺页中断,取Data1和Data2操作数分别产生2次缺页中断。
答案:(1)C(2)B(3)C
假设磁盘每磁道有18个扇区,系统刚完成了10号柱面的操作,当前移动臂在13号柱面上,进程的请求序列如表2-2所示。若系统采用SCAN(扫描)调度算法,则系统响应序列为__(1)__;若系统采用CSCAN(单向扫描)调度算法,则系统响应序列为__(2)__。
表2-2进程请求序列表
(1)A.⑦⑩①②④③⑨⑧⑤⑥ B.①⑦⑩②③④⑥⑤⑧⑨ C.⑦⑩①②④③⑥⑤⑧⑨ D.①⑦⑩②③④⑧⑨⑥⑤
(2)A.⑦⑩①②④③⑨⑧⑤⑥ B.①⑦⑩②③④⑥⑤⑧⑨ C.⑦⑩①②④③⑥⑤⑧⑨ D.①⑦⑩②③④⑧⑨⑥⑤
解析:SCAN调度算法也叫“电梯”算法,磁头固定从外向内然后从内向外沿柱面运动。如此往复,遇到所请求的柱面时立即为其服务。在本题中,题目告诉我们系统刚完成了10号柱面的操作,当前移动臂在13号柱面上,说明目前磁头正由小柱面号向大柱面号方向移动,那么根据SCAN调度的原则,接着应该响应柱面号为15的请求,而在题目中给出了三个柱面号为15的请求,但其中①和⑦是磁头号8,而7的扇区号为1,因此应该先响应进程⑦,而⑩是用磁头号为10,其扇区号为4,因此接着要响应进程⑩,然后再响应进程①,接着就要出来柱面号为20的进程,分别为②和④,它们的扇区号相同,而进程②的磁头号为6,进程④的磁头号为10,因此应该先响应②;再接着应该响应柱面号为30的进程,当磁头在这个方向上移动时,也无进程需要出来,因此只有当磁头由大柱面号向小柱面号方向移动时,再来出来其它进程,处理的次序应该要根据柱面号从大到小,因此是⑨⑧⑤⑥。
而采用CSCAN(单向扫描)调度算法,它的磁头是单向移动的,也就是当磁头从内向外移动到最外面时,磁头放到最内,然后再从内向外扫描。因此采用这种方式得到的响应序列应该是⑦⑩①②④③⑥⑤⑧⑨。
答案:(1)A(2)C
某文件系统采用多级索引结构,若磁盘块的大小为512字节,每个块号需占3字节,那么根索引采用一级索引时的文件最大长度为__(1)__K字节;采用二级索引时的文件最大长度为__(2)__K字节。
(1)A.85 B.170 C.512 D.1024
(2)A.512 B.1024 C.14450 D.28900
解析:设块长为512B,每个块号占3B,一个物理块可放:512/3=170个目录项,也即:
一个一级索引可存放的文件大小为:170×512=87040B。
一个二级索引可存放文件的大小为:170×170×512=148×105B。
一个三级索引可存放文件的大小为:170×170×170×512=251×107B。
这里还要请大家注意,为了方便计算机。在本题给出答案中,都是按500,而不是512来计算的。
答案:(1)A(2)C
设备管理
在计算机系统中,除了处理器和内存之外,其他的大部分硬设备称为外部设备。它包括输入/输出设备,辅存设备及终端设备等。
1.数据传输控制方式
输入输出系统主要有五种方式与主机交换数据:程序控制方式、程序中断方式、DMA方式、通道方式、I/O处理机。
(1)程序控制方式:CPU直接利用I/O指令编程,实现数据的I/O。CPU发出I/O命令,命令中包含了外设的地址信息和所要执行的操作,相应的I/O系统执行该命令并设置状态寄存器;CPU不停地(定期地)查询I/O系统以确定该操作是否完成。由程序主动查询外设,完成主机与外设间的数据传送,方法简单,硬件开销小。
(2)程序中断方式:CPU利用中断方式完成数据的I/O,当I/O系统与外设交换数据时,CPU无需等待也不必去查询I/O的状态,当I/O系统完成了数据传输后则以中断信号通知CPU。CPU然后保存正在执行程序的现场,转入I/O中断服务程序完成与I/O系统的数据交换。然后返回原主程序继续执行。与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。在系统中具有多个中断源的情况下,常用的处理方法有:多中断信号线法、中断软件查询法、雏菊链法、总线仲裁法和中断。
(3)DMA方式:使用DMA控制器(DMAC)来控制和管理数据传输。DMAC和CPU共享系统总线,并且具有独立访问存储器的能力。在进行DMA时,CPU放弃对系统总线的控制而由DMAC控制总线;由DMAC提供存储器地址及必须的读写控制信号,实现外设与存储器之间进行数据交换。DMAC获取总线方式主要有三种,分别是暂停方式、周期窃取方式和共享方式。
(4)通道:通道是一种通过执行通道程序管理I/O操作的控制器,它使主机与I/O操作之间达到更高的并行程度。在具有通道处理机的系统中,当用户进程请求启动外设时,由操作系统根据I/O要求构造通道程序和通道状态字,将通道程序保存在主存中,并将通道程序的首地址放到通道地址字中,然后执行“启动I/O”指令。按照所采取的传送方式,可将通道分为字节多路通道、选择通道和数组多路通道三种。
(5)输入输出处理机(IOP):也称为外围处理机(PPU),它是一个专用处理机,也可以是一个通用的处理机,具有丰富的指令系统和完善的中断系统。专用于大型、高效的计算机系统处理外围设备的I/O,并利用共享存储器或其他共享手段与主机交换信息。从而使大型、高效的计算机系统更加高效地工作。与通道相比,IOP具有比较丰富的指令系统,结构接近于一般的处理机,有自己的局部存储器。
2.虚设备与SPOOLING技术
在操作系统中,虚拟设备通常采用____设备来提供虚拟设备。
A.Spooling 技术,利用磁带 B.Spooling 技术,利用磁盘 C.脱机批处理技术,利用磁盘 D.通道技术,利用磁带
解析:Spooling是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。实际上是一种外围设备同时联机操作技术,又称为排队转储技术。
它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节。
Spooling系统主要包括以下3部分:
(1)输入井和输出井:这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输入时的磁盘,用于收容用户程序的输出数据。
(2)输入缓冲区和输出缓冲区:这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输出井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
(3)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要求的数据由输入设备送到输入缓冲区,再送到输入井。当CPU需要输入设备时,直接从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输入的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。从以上的分析可以看出,Spooling技术是利用磁盘提供虚拟设备。
答案:B
设备驱动程序是直接与__(1)__打交道的软件模块。一般而言,设备驱动程序的任务是接收来自与设备__(2)__。
(1)A.硬件 B.办公软件 C.编译程序 D.连接程序
(2)A.有关的上层软件的抽象请求,进行与设备相关的处理
B.无关的上层软件的抽象请求,进行与设备相关的处理
C.有关的上层软件的抽象请求,进行与设备无关的处理
D.无关的上层软件的抽象请求,进行与设备无关的处理
解析:设备驱动程序是一种可以使计算机和设备通信的特殊程序,相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。正因为这个原因,驱动程序在系统中所占的地位十分重要,一般当操作系统安装完毕后,首要的便是安装硬件设备的驱动程序。
第二问是考查驱动程序的任务:首先其作用是将硬件本身的功能告诉操作系统,接下来的主要功能就是完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件时,比如:让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号命令,从而让声卡播放音乐。要求播放音乐的上层软件→操作系统→驱动程序→硬件,所以相对于驱动程序来说,上层软件与它是无关的,因为它们之间有操作系统。
答案:(1)A (2)B
文件管理
1. 树型目录结构
在计算机的文件系统中,一般采用树型目录结构。在树型目录结构中,树的根结点为根目录,数据文件作为树叶,其他所有目录均作为树的结点。
在树型目录结构中,从根目录到任何数据文件之间,只有一条惟一的通路,从树根开始,把全部目录文件名与数据文件名,依次用“/”(UNIX/Linux系统)或“\”(Windows系统)连接起来,构成该数据文件的路径名,且每个数据文件的路径名是惟一的。这样,可以解决文件重名问题。
2. 位示图
假设磁盘上每个磁道划分成9个物理块,每块存放1个逻辑记录。逻辑记录R0,R1,...,R8存放在同一个磁道上,记录的安排顺序如表2-5所示。
表2-5记录安排表
假定磁盘旋转一圈的时间为27ms,磁头当前处在R0的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为3ms,则处理这9个记录的最长时间为__(1)__;若对信息存储进行优化分布后,处理9个记录的最少时间为__(2)__。
(1)A.243ms B.246ms C.254ms D.280ms
(2)A.30ms B.36ms C.54ms D.60ms
解析:因为系统使用的是单缓冲区,且顺序处理9个记录,每个记录处理时间为3ms,加上读写时间,总的时间就超过3ms了。而磁盘旋转一圈的时间为27ms,也就是说,当系统读取第0个记录后,正在处理的过程中,磁盘已经旋过了第1个记录。那么,要读取第1个记录,就需要磁盘再次旋转到第1个记录(即磁盘旋转1圈后,27+3=30ms)。同理,要读取第2个记录时,也需要等30ms。这样,要读取后面8个记录,需要8*30=240ms,同时加上处理第0个记录的时间(3ms)和处理第8个记录的时间(3ms),共需246ms。要想节约时间,可以把记录错开存放,如表2-8所示。
表2-8记录安排表
这样,就可以在磁盘旋转2圈内完成所有记录的处理,时间为54ms。要注意的是,最后处理的
记录R 8 不是最后一个磁盘块,所以不需要旋转到最后1个物理块。也就是说,第2圈的旋转时间只需
要24ms就到达R 8 了。但是,因为要加上R 8 的处理时间3ms,所以,总时间仍然为54ms。
答案:(1)B(2)C