1.研究操作系统的主要观点有那些?
答:(1)资源的观点:研究如何对计算机系统中的各种软、硬件资源进行管理;怎样使计算机系统协调一致地、有效地为用户服务;如何既发挥计算机系统资源的使用效率、提高计算机系统的服务质量,又确保计算机系统的安全可靠。
(2)用户观点:操作系统是一个黑盒子,配置了操作系统的计算机与原来真实的物理计算机迥然不同,因为它提供了用户使用计算机的更方便手段,构造了一台虚拟机,采用的操作命令决定了虚拟机的功能。
(3)进程观点:从进程角度分析操作系统,则所有进程的活动就构成了操作系统的当前行为,在每一个瞬间都有一棵进程家族树,它展示着操作系统行为主体的一个快照。
(4)模块分层观点:用模块分层观点讨论模块之间的关系或者说讨论如何形成操作系统的架构,如何安排连结这些程序模块才能构造一个结构简单清晰、逻辑正确、便于分析和实现的操作系统。
2.什么是操作系统?简述现代操作系统的特征。
答:操作系统是控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用。
现代操作系统具有如下特征:
1并发(共行)性:指能处理多个同时性活动的能力。I/O操作和计算重叠,内存中同时存放几道用户程序,这些都是并发的例子。
2共享:指多个计算任务对资源的共同享用。并发活动可能要求共享资源和信息;多个用户共享一个程序的同一个副本,而不是分别向每个用户提供一个副本可以避免重复开发,节省人力资源。
3不确定性:指操作系统必须能处理任何一种事件序列,以使各个用户的算题任务正确地完成。
3.操作系统和用户程序之间的关系是什么?
答:操作系统通过虚拟及其界面给用户程序提供各种服务,用户程序在运行过程中不断使用操作系统提供的服务来完成自己的任务。如用户程序在运行过程中需要读写磁盘,这时就要调用操作系统的服务来完成磁盘读写操作。
另一方面,用户程序不可能先于操作系统启动之前启动,因此每次启动一个用户程序,都相当于操作系统将控制转移给用户程序;而在用户程序执行完毕后,又将控制还回给操作系统。从这个角度看,操作系统是主程序,用户程序是子程序,操作系统在其生命周期内不断地调用各种应用程序。
因此操作系统和各种应用程序可以看作是互相调用,从而形成一个非常复杂的动态关系。
2.为什么要引入信号量集机制。信号量机制可以被用于何种场合?
答:1965年,Dijkstra在讨论并发进程时指出信号量机制是一种卓有成效的进程同步机制。由于操作系统可以被看成一个并发进程集,如果提供一种能支持他们之间合作的可靠机制,用户就能很容易地使用它们。因此它现已被广泛地应用于各种类型的操作系统中。
信号量的主要含义和用途如下:
1信号量的含义。信号量是一个用来实现同步的整型或记录型变量,除了初始化外,对它只能执行wait和signal这两种原子操作。
2信号量的物理意义。一个信号量S通常对应于一类临界资源。
3用信号量实现互斥。为了实现进程对临界资源的互斥访问,需为每类临界资源设置一初值为1的互斥信号量mutex。
4用信号量实现前趋关系。为实现前趋关系Pi→Pj,可为它们设置一个初值为0的信号量S。
3.原语与广义指令的主要区别。
答:所谓原语,是由若干条指令所组成都是一个指令序列,用来实现某个特定的操作功能。这个指令序列的执行是连续的,具有不可分割性,在执行时也不可间断,直到该指令序列执行结束。原语是操作系统核心的一个组成部分。原语必须在管态下执行,并且常驻内存。
广义指令是作为机器指令的扩充而提供的,以便增加机器的功能。它是通过执行相应的程序模块来实现的,使计算机成为功能强大的虚拟计算机。现代计算机CPU的指令系统中都有一条称为“访管”的指令,用户特别是编程人员可以利用这条指令来访问操作性并向它提出要求。
6.进程的三种基本状态是什么?它们之间相互转换的主要原因是什么?
答:进程的三种基本状态是:
1就绪状态(Ready),存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行,这些进程所处的状态为就绪状态(有多个进程处于此状态)。
2运行状态(Running),当进程由调度/分派程序分派后,得到CPU控制权,它的程序正在运行,该进程所处的状态为运行状态(在系统中,总只有一个进程处于此状态)。
3阻塞状态(blocked),若一个进程正在等待某个事件的发生(如等待I/O的完成),而暂停执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于阻塞状态。
进程状态转换的主要原因有:
运行à阻塞:等待某事件的发生(如请求磁盘或键盘等执行I/O操作、等待同步信号、等待消息等)。
阻塞à就绪:等待的事件已经发生(如I/O完成,消息已到达)
运行à就绪:在可剥夺调度方式中,更高优先级的进程到达;在时间片轮转调度方式中,进程运行的时间片到。
7.何谓临界资源?使用临界资源的原则是什么?使用临界资源的诸进程间如何实现进程同步。
答:一次仅允许一个进程使用的资源称为临界资源。内存变量、指针、数组等等也是临界资源。
入临界区的准则:
(1)每次至多有一个进程处于临界区;
(2)当有若干个进程欲进入临界区时,应在有限的时间内使其进入;
(3)进程在临界区内仅逗留有限的时间。
可以采取如下策略实现临界资源的访问同步:
(1)锁机制
(2)信号量机制
(3)管程
(4)消息机制
10.进程产生的主要原因有哪些?Windows XP在启动时会有哪些进程产生?
答:进程产生的主要原因有:系统初始化;正在执行进程创立程序(子进程);用户请求创建新进程。在一个系统初始化时,将有许多系统正常运行时必不可少的进程产生。如Windows初始化时自动产生对话管理(SMSS)、登录管理(WINLOGON)、安全管理(LSASS),Windows子系统(CSRSS)、Windows壳(explore)等系统进程。
11.进程消亡的主要原因有哪些?
答:进程消亡的主要原因有:进程运行完成而退出(寿终);进程因错误而自行退出(自杀);进程被其他进程强行“杀死”(他杀);进程因异常而强行终结(处决)。
12.进程创建的主要步骤是什么?
答:进程创建的主要步骤是:分配进程控制块;初始化机器寄存器;初始化页表;将程序代码从磁盘读入内存;将处理器状态设置为“用户态”;跳转到程序的起始地址(即设置程序计数器)。
注:最后2步由硬件作为一个步骤一起完成。
1.进程调度的时机有哪些?
答:进程调度的时机主要有以下几种:1正在执行的进程执行完毕或因发生某事件而不能再继续执行;2执行中的进程因提出I/O请求而暂停执行;3在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等;4在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列;5在时间片轮转法中,时间片完。
通常系统是按先来先服务或优先权形式来组织调度队列。
2.何为死锁?产生死锁的原因和必要条件是什么?
答:死锁是指多个进程的永久性阻塞现象,产生的原因主要有2个:进程间竞争资源;进程推进顺序非法。
产生死锁的四个必要条件:
(1)互斥条件:一个资源每次只能被一个进程使用。
(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
3.死锁排除的方法有哪些?
答:1撤消陷于死锁的全部进程;
2逐个撤消陷于死锁的进程,直到死锁不存在;
3从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失;
4从另外一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态。
5.引起进程调度的因素有哪些?
答:引起进程调度的因素主要有:
(1) 正在执行的进程执行完毕。这时如果不选择新的就绪进程执行,将浪费处理机资源。
(2) 进程在执行中调用阻塞原语将自己阻塞起来进入睡眠等待状态。
(3) 进程在执行中调用了P原语操作,从而因资源不足而被阻塞;或调用了V原语操作激活了等待资源的进程队列。
(4) 进程在执行中提出I/O请求后被阻塞。
(5) 在分时系统中时间片已经用完。
(6) 在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而调度选择一新的用户进程执行。
(7) 在CPU执行方式是可剥夺时,就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。
1.存储管理的实质是什么?存储管理的主要功能是什么?
答:内存管理就是对内存架构进行管理,使程序在内存架构的任何一个层次上的存放对于用户来说都是一样的。用户无需担心自己的程序是存在缓存、主存、磁盘还是磁带,反正运行、计算、输出的结果都是一样的。内存管理要达到的目标有:
1地址保护,一个程序不能访问另一个程序地址空间;
2地址独立:程序发出的地址应与物理主存地址无关。
存储管理的主要功能包括以下几点:
1在硬件的支持下完成统一管理内存和外存之间数据和程序段自动交换的虚拟存储;
2将多个虚存的一维线性空间或多维线性空间变换到内存的唯一的一维物理地址空间;
3控制内外存之间的数据传输;
4实现内存的分配和回收;
5实现内存信息的共享与保护。
2.什么是虚拟存储器?其特点是什么?
答:由进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。虚拟存储器不考虑物理存储器的大小和信息存放的实际位置,只规定每个进程中相互关联信息的相对位置。每个进程都拥有自己的虚拟存储器,且虚拟存储器的容量是由计算机的地址结构和寻址方式来确定。虚拟存储器就是要提供一个空间像磁盘那样大、速度像缓存那样快的主存储系统。
实现虚拟存储器要求有相应的地址转换机构,以便把指令的虚拟地址变换为实际物理地址;另外,由于内存空间较小,进程只有部分内容存放于内存中,待执行时根据需要再调指令入内存。
3.实现地址重定位的方法有哪几类?
答:实现地址重定位的方法有两种:静态地址重定位和动态地址重定位。
(1)静态地址重定位是在虚空间程序执行之前由装配程序完成地址映射工作。静态重定位的优点是不需要硬件支持,但是用静态地址重定位方法进行地址变换无法实现虚拟存储器。静态重定位的另一个缺点是必须占用连续的内存空间和难以做到程序和数据的共享。
(2)动态地址重定位是在程序执行过程中,在CPU访问内存之前由硬件地址变换机构将要访问的程序或数据地址转换成内存地址。动态地址重定位的主要优点有:①可以对内存进行非连续分配。②动态重定位提供了实现虚拟存储器的基础。③动态重定位有利于程序段的共享。
10.什么是请求页式管理?试设计和描述一个请求页式管理时的内存页面分配和回收算法(包括缺页处理部分)。
答:请求页式管理是动态页式内存管理的一种,它在作业或进程开始执行之前,不把作业或进程的程序段和数据段一次性的全部装入内存,而只装入被认为是经常反复执行和调用的工作区部分。其他部分则在执行过程中动态装入。
请求页式管理的调入方式可以是,当需要执行某条指令而又发现它不在内存时,或当执行某条指令需要访问其他数据或指令时,而这些指令和数据又不在内存中,从而发生缺页中断,系统将外存中相应的页面调入内存。
14.为什么要提出段页式管理?它与段式管理及页式管理有何区别?
答:因为段式管理和页式管理各有所长。段式管理为用户提供了一个二维的虚拟地址空间,反映程序的逻辑结构,有利于段的动态增长以及共享和内存保护等,这极大地方便了用户。而分页系统则有效地克服了碎片,提高了存储器的利用效率。从存储管理的目的来讲,主要是方便用户的程序设计和提高内存的利用率。所以人们提出了将段式管理和页式管理结合起来让其互相取长补短的段页式管理。
段页式管理与段式和页式管理相比,其访问时间较长。因此,执行效率低。
28.说明动态分页系统中的“抖动”现象及解决策略。
答:在更换页面时,如果更换的页面是一个很快就会被再次访问的页面,则在此缺页中断后很快又会发生新的缺页中断。整个系统的效率急剧下降,这种现象称为抖动(Trashing)。
内存抖动的解决策略主要有:
1如果是因为页面替换策略失误,可以修改替换算法来解决这个问题。
2如果是因为运行的程序太多,造成至少严格程序无法同时将所有频繁访问的页面调入内存,则要降低多道程序的数量。
3否则,只能采取的办法只有2个:一是终止该进程;一是增加物理内存容量。
34.何谓缺页中断?缺页中断的处理步骤有哪些?
答:在分页系统中,如果CPU发出的虚拟地址所对应的页面不在物理内存,系统将产生中断,称这种中断为缺页中断。缺页中断服务程序负责将需要的虚拟页面找到并加载到内存。其主要步骤如下:
1硬件陷入到内核;
2保护通用寄存器;
3操作系统判断所需的虚拟页面号;
4操作系统检查地址的合法性;
5操作系统选择一个物理页面用来存放将要调入的页面;
6如果选择的物理页面包含有未写入磁盘的内容,则首先进行写盘操作;
7操作系统将新的虚拟页面调入内存;
8更新页表;
9发生缺页中断的程序进入就绪状态;
10恢复寄存器;
11程序继续运行。
2.设备管理的目标和功能是什么?
答:设备管理的目标:
1向用户提供外部设备的方便、统一的接口,按照用户的要求和设备的类型,控制设备工作,完成用户的输入输入请求。
2充分利用中断技术、通道技术和缓冲技术,提高CPU与设备、设备与设备之间的并行工作能力,以充分利用设备资源,提高外部设备的使用效率。
3设备管理就是要保证在多道程序环境下,当多个进程竞争使用设备时,按照一定的策略分配和管理设备,以使系统能有条不紊地工作。
设备管理的功能:
1设备分配和回收;
2管理输入输入缓冲区;
3设备驱动,实现物理I/O操作;
4外部设备中断处理;
5虚拟设备及其实现。
9.什么是设备的独立性?根据设备的类型,设备的分配策略有哪些?(独占设备、共享设备、虚拟设备与SPOOLing系统)。以磁盘为例,有哪些优化调度算法?应考虑哪些因素?
答:进程申请设备时,应当指定所需设备的类别,而不是指定某一台具体的设备,系统根据当前请求以及设备分配情况在相应类别的设备中选择一个空闲设备并将其分配给申请进程,这称作设备的独立性。
磁盘调度一般可采用以下几种算法:
1先来先服务磁盘调度算法(FCFS)
2最短寻道时间优先磁盘调度算法(SSTF)
3扫描算法(SCAN)
设计磁盘调试算法应考虑两个基本因素:
1公平性;2高效性
11.简述中断、陷阱、软中断之间的异同。
答:中断即外中断,指来自处理机和内存外部的中断,包括I/O设备发出的I/O 中断、外部信号中断、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。陷阱即内中断,主要指在处理机和内存内部产生的中断。它包括程序运算引起的各种错误。软中断是通信进程之间用来模拟硬中断的一种信号通信方式。
中断和陷阱的主要区别:
1陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。2陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。3CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。4在有的系统中,陷入处理程序被规定在各自的进程上下文中执行,而中断处理程序则在系统上下文中执行。
软中断与硬中断的比较:相同点:其中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。不同点:接收软中断信号的进程不一定正好在接收时占有处理机,而相应的处理必须等到该接收进程得到处理机之后才能进行。
13.什么是SPOOLING系统?试简述它的实现思想。
答:操作系统中实现联机同时外围设备操作功能的部分称为斯普林(SPOOIJNG)系统。它的实现思想是:
利用中央处理器和通道并行工作的能力,用一台机器完成脱机外围设备操作技术中三台机器的工作。
操作系统中包含两个程序:“预输入程序”代替输入外围设备,“缓输出程序”代替输出外围设备。系统在磁盘中划分出专门称为“井”的区域,它分为“输入井”和“输出井”。“预输入程序”把作业流中作业信息传送到“输入井”保存,作业在执行时只要通过“输入井读”程序从上“输入井”获取数据,而不去启动低速的外围设备。作业执行的时候产生的结果也不直接输出到低速外设上,而是先通过“输出井写”程序输出到“输出井”,由“缓输出程序”将“输出井”中的数据再输出到低速设备上。“缓输出程序”输出的时候,中央处理器可以处理别的事务了。实现“输入井读”和“输出井写”程序统称为“井管理”程序。显然,斯普林系统由三个部分组成:“预输入”程序、“井管理”程序和“缓输出”程序。
6.什么是文件的物理结构?并具体阐述常用的几种文件物理结构及其优缺点。
答:文件系统在存储介质上的文件构造方式称为文件的物理结构。不论用户看来是什么文件,在存储介质上存储时,按何种构造方式记录呢,因为介质上的存储单位是物理块,那么这些物理快是顺序存放,还是链式结构,或者索引结构,都要由文件系统结构来实现。
常见的文件物理结构有以下几种:
1顺序结构,又称连续结构。这是一种最简单的物理结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。只要知道文件在存储设备上的起始地址(首块号)和文件长度(总块数),就能很快地进行存取。
这种结构的优点是访问速度快,缺点是文件长度增加困难。
2链接结构。这种结构将逻辑上连续的文件分散存放在若干不连续的物理块中,每个物理块设有一个指针,指向其后续的物理块。只要指明文件第一个块号,就可以按链指针检索整个文件。
这种结构的优点是文件长度容易动态变化,其缺点是不适合随机访问。
3索引结构。采用这种结构,逻辑上连续的文件存放在若干不连续的物理块中,系统为每个文件建立一张索引表,索引表记录了文件信息所在的逻辑块号和与之对应的物理块号。索引表也以文件的形式存放在磁盘上。给出索引表的地址,就可以查找与文件逻辑块号对应的物理块号。如果索引表过大,可以采用多级索引结构。
这种结构的优点是访问速度快,文件长度可以动态变化。缺点是存储开销大,因为每个文件有一个索引表,而索引表亦由物理块存储,故需要额外的外存空间。另外,当文件被打开时,索引表需要读入内存,否则访问速度会降低一半,故又需要占用额外的内存空间。
4Hash结构,又称杂凑结构或散列结构。这种结构只适用于定长记录文件和按记录随机查找的访问方式。
Hash结构的思想是通过计算来确定一个记录在存储设备上的存储位置,依次先后存入的两个记录在物理设备上不一定相邻。按Hash结构组织文件的两个关键问题是:
定义一个杂凑函数;解决冲突;
5索引顺序结构。索引表每一项在磁盘上按顺序连续存放在物理块中。
8.文件目录结构有哪几种,各有什么优缺点?
答:文件目录结构一般有一级目录结构、二级目录结构和多级目录结构。
一级目录结构的优点是简单,缺点是文件不能重名,限制了用户对文件的命名。
二级目录结构实现了文件从名字空间到外存地址空间的映射:用户名—>文件名à文件内容。其优点是有利于文件的管理、共享和保护;适用于多用户系统;不同的用户可以命名相同文件名的文件,不会产生混淆,解决了命名冲突问题。缺点是不能对文件分类;当用文件较多时查找速度慢。
多级目录结构的优点是便于文件分类,可为每类文件建立一个子目录;查找速度快,因为每个目录下的文件数目较少;可以实现文件共享;缺点是比较复杂。
20.简述成组链法的基本原理,并描述成组链法的分配与释放过程。
答:首先把文件存储设备中的所有空闲块按50块划分为一组。组的划分为从后往前顺次划分。其中,每组的第一块用来存放前一组中各块的块号和总块数。由于第一组的前面已无其它组存在,因此,第一组的块数为49块。不过,由于存储设备的空间块不一定正好是 50 的整倍数,因而最后一组将不足50块,且由于该组后面已无另外的空闲块组,所以,该组的物理块号与总块数只能放在管理文件存储设备用的文件资源表中。
成组链法的分配和释放过程:
首先,系统在初启时把文件资源表复制到内存,从而使文件资源表中放有最后一组空闲块块号与总块数的堆栈进入内存,并使得空闲块的分配与释放可在内存进行。
与空闲块块号及总块数相对应,用于空闲块分配与回收的堆栈有栈指针Ptr,且Ptr的初值等于该组空闲块的总块数。当申请者提出空闲块要求n时,按照后进先出的原则,分配程序在取走Ptr所指的块号之后,再做Ptr=Ptr-1的操作。这个过程一直持续到所要求的n块都已分配完毕或堆栈中只剩下最后一个空闲块的块号。当堆栈中只剩下最后一个空闲块号时,系统启动设备管理程序,将该块中存放的下一组的块号与总块数读入内存之后将该块分配给申请者。然后,系统重新设置Ptr 指针,并继续为申请者进程分配空闲块。文件存储设备的最后一个空闲块中设置有尾部标识,以指示空闲块分配完毕。
如果用户进程不再使用有关文件并删除这些文件时,回收程序回收装有这些文件的物理块。成组链法的回收过程仍利用文件管理堆栈进行回收。在回收时,回收程序先做Ptr=Ptr+1操作,然后把回收的物理块号放入当前指针Ptr所指的位置。如果Ptr等于50,则表示该组已经回收结束。此时,如果还有新的物理块需要回收的话,回收该块并启动I/O设备管理程序,把回收的 50 个块号与块数写入新回收的块中。然后,将Ptr重新置1另起一个新组。
显然,对空闲块的分配和释放必须互斥进行,否则将会发生数据混乱。
5.试说明作业的几种状态及其转换。
答:作业状态有:进入;后备;运行;完成
进入状态:作业信息正在从输入设备上预输入到输入进,此时称作业处理进入状态;
后备状态:当作业的全部信息都已输入,且由操作系统将其存放在输入进中,并为作业建立一个JCB,此时称作业处理后备状态;
运行状态:一个后备作业被作业调程序选中,分配了必要的资源,调入内存运行,称作业处理运行状态。
完成状态:当作业正常运行完毕或因发生错误非正常终止时,作业进入完成状态。
6.以批处理方式下作业的管理为例,说明作业调度的主要任务、目标、计价作业调度算法优劣的性能指标、主要作业调度算法及作业调度的时机是什么?
答:作业调度的主要任务是:按照某种调试算法,从后备作业中挑选一批合理搭配的作业进入运行状态;同时,为选中的作业分配内存和外部设备资源,为其建立相关的进程;当作业执行结束进入完成状态时,做好释放资源等善后工作。
作业调度的目标:1)响应时间快;2)周转时间或加权周转时间短;3)均衡的资源利用率;4)吞吐量大;5)系统反应时间短。
评价作业调度算法优劣的性能指标:1)作业平均周转时间;2)作业平均带权周转时间
主要作业调度算法有:1)先来先服务法;2)短作业优先算法;3)最高响应比优先算法;4)资源搭配算法;5)多队列循环算法。
作业调试时机:一般当输入井中有一道作业建立,或内存中的一道作业运行结束时,系统启动作业调试工作。
2.使用P、V原语实现图示的前趋关系。
答:设置信号量s12,s13,s25,s24,s43,s36,s46,s67,s57,初值均为0。各个进程的描述分别如下:
S1: …
V(s12);
V(s13);
S2: P(s12);
…
V(s24);
V(s25);
S3: P(s13);
P(s43);
…
V(s36);
S4: P(s24);
…
V(s43);
V(s46);
S5: P(s25);
…
V(s57);
S6: P(s36);
P(s46);
…
V(s67);
S7: P(s57);
P(s67);
…
5.读者优先的读者-写者问题。除了上述两个规则外,还增加读者优先的规定,即当有读者和写者同时等待时,则首先满足读者。其算法描述如下:
var s, mutex: semaphore;
RC: integer; //读者计数器,进入临界区中的读者数目。
begin s:=1; mutex:=1; RC:=0;
cobegin
Reader:
Repeat
P(mutex);
if RC=0 then p(s);
RC:=RC+1;
V(mutex);
Reading;
P(mutex);
RC:=RC-1;
if RC=0 then v(s);
V(mutex);
until FALSE
Writer:
Repeat
P(s);
Writing;
V(s);
until FALSE
coend
3.在银行家算法中,若出现下述的资源分配情况:
Allocation数组 Need数组 Available向量
P0 0 0 3 2 0 0 1 2 1 6 2 2
P1 1 0 0 0 1 7 5 0
P2 1 3 5 4 2 3 5 6
P3 0 3 3 2 0 6 5 2
P4 0 0 1 4 0 6 5 6
试问该状态是否安全?若安全给出一安全序列,若此时进程P2提出请求Request(1,2,2,2),请问系统能否将资源分配给它,为什么?
答:目前是安全状态,存在一个安全序列P0,P1,P3,P2,P4。
若此时进程P2提出请求Request(1,2,2,2),系统不能将资源分配给它。这是因为若系统将资源分配给它后,系统尚可用资源为(0,4,0,0),不能满则任何进程的需求,使系统处理不安全状态。
1.在请求调页的动态分页系统中,一个程序的页面走向为:2,4,8,3,2,4,5,2,4,8,3,5。如果分配给此程序的页帧数为4,分别分析采用FIFO、LRU和最佳置换策略时的置换过程并计算缺页次数。
答:3种不同的页面置换算法运行情况如下:
页面走向 |
2 |
4 |
8 |
3 |
2 |
4 |
5 |
2 |
4 |
8 |
3 |
5 |
|
FIFO |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
8 |
3 |
5 |
2 |
4 |
|
|
4 |
4 |
4 |
4 |
4 |
8 |
3 |
5 |
2 |
4 |
8 |
|
|
|
|
8 |
8 |
8 |
8 |
3 |
5 |
2 |
4 |
8 |
3 |
|
|
|
|
|
3 |
3 |
3 |
5 |
2 |
4 |
8 |
3 |
5 |
|
|
缺页标记 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
10 |
页面走向 |
2 |
4 |
8 |
3 |
2 |
4 |
5 |
2 |
4 |
8 |
3 |
5 |
|
LRU |
2 |
2 |
2 |
2 |
4 |
8 |
3 |
3 |
3 |
5 |
2 |
4 |
|
|
4 |
4 |
4 |
8 |
3 |
2 |
4 |
5 |
2 |
4 |
8 |
|
|
|
|
8 |
8 |
3 |
2 |
4 |
5 |
2 |
4 |
8 |
3 |
|
|
|
|
|
3 |
2 |
4 |
5 |
2 |
4 |
8 |
3 |
5 |
|
|
缺页标记 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
8 |
页面走向 |
2 |
4 |
8 |
3 |
2 |
4 |
5 |
2 |
4 |
8 |
3 |
5 |
|
OPT |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
3 |
3 |
|
|
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
|
|
|
|
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
8 |
|
|
|
|
|
3 |
3 |
3 |
5 |
5 |
5 |
5 |
5 |
5 |
|
|
缺页标记 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
6 |
6.某进程,若它对页面的访问串为:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0试用LRU、FIFO两种算法实现页面更换,并给出各自的缺页次数。(设该进程在内存中占四个页架)
答:M=4时,采用LRU算法,系统的淘汰过程:
页面走向 |
7 |
0 |
1 |
2 |
0 |
3 |
0 |
4 |
2 |
3 |
0 |
3 |
2 |
1 |
2 |
0 |
1 |
7 |
0 |
缺页标记 |
* |
* |
* |
* |
|
* |
|
* |
|
|
|
|
|
* |
|
|
* |
* |
|
LRU |
7 |
7 |
7 |
7 |
7 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
7 |
7 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
1 |
1 |
1 |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
4 |
1 |
4 |
4 |
1 |
1 |
1 |
|
|
|
|
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
|
淘汰页面 |
|
|
|
|
|
7 |
|
1 |
|
|
|
|
|
4 |
|
|
4 |
3 |
|
即F=9(次缺页)
采用FIFO算法,系统的淘汰过程:
页面走向 |
7 |
0 |
1 |
2 |
0 |
3 |
0 |
4 |
2 |
3 |
0 |
3 |
2 |
1 |
2 |
0 |
1 |
7 |
0 |
缺页标记 |
* |
* |
* |
* |
|
* |
|
* |
|
|
* |
|
|
* |
* |
|
|
* |
|
FIFO |
7 |
0 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
4 |
0 |
0 |
0 |
1 |
2 |
2 |
2 |
7 |
7 |
|
7 |
0 |
1 |
1 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
0 |
1 |
1 |
1 |
2 |
2 |
|
|
|
7 |
0 |
0 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
0 |
0 |
0 |
1 |
1 |
|
|
|
|
7 |
7 |
0 |
0 |
1 |
1 |
1 |
2 |
2 |
2 |
3 |
4 |
4 |
4 |
0 |
0 |
|
淘汰页面 |
|
|
|
|
|
7 |
|
0 |
|
|
1 |
|
|
2 |
3 |
|
|
4 |
|
即F=10(次缺页)
1.假定当前存取臂的位置在130号柱面上,并刚刚完成125号柱面的服务请求。请求队列按请求的先后顺序排列如下:147,86,23,45,120,30,60,170,80。试写出为完成上述请求,分别采用下列算法时存取臂移动的顺序。
⑴最短查找时间优先(SSTF)算法
⑵铲雪机(SCAN)算法
⑶电梯调度(C-SCAN)算法
答:SSTF算法:130à120à147à170à86à80à60à45à30à23,共移臂207道。
SCAN算法:130à147à170à120à86à80à60à45à30à23,共移臂187道。
CSCAN算法:130à147à170à23à30à45à60à80à86à120,共移臂284道。
CPU运行时间依次是10,6,2,4,8分钟。假设它们没有任何I/O处理,并忽略操作系统有关处理时间。它们的优先级依次是3,5,2,1,4,其中第5级视为最高级。回答以下问题:
(1)画出分别使用时间片轮转法(时间片设为2分钟),短作业优先和非剥夺的优先级调度法调度时的运行进度表。
(2)在各调度算法下每个作业的平均周转时间是多少?
答:(1)时间片轮转法的作业调度顺序为:
|
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
18 |
20 |
22 |
24 |
26 |
28 |
30 |
A |
|
|
|
|
|
|
|
|
|
|
|||||
B |
|
|
|
|
|
|
|
|
|
|
|
|
|||
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
E |
|
|
|
|
|
|
|
|
|
|
|
短作业优先的作业调度顺序为:
|
2 |
6 |
12 |
20 |
30 |
A |
|
|
|
|
|
B |
|
|
|
|
|
C |
|
|
|
|
|
D |
|
|
|
||
E |
|
|
|
|
非剥夺的优先级调度法调度的作业调度顺序为:
|
6 |
14 |
24 |
26 |
30 |
A |
|
|
|
|
|
B |
|
|
|
|
|
C |
|
|
|
|
|
D |
|
|
|
|
|
E |
|
|
|
|
(2)时间片轮转法的平均周转时间=(30+20+8+18+26)/5=20.4
短作业优先的平均周转时间=(30+12+2+6+20)/5=14
非剥夺的优先级调度法的平均周转时间=(24+6+26+30+14)/5=20