SB用来实现对countB的互斥访问;
mutex用来实现两个方向的行人对独木桥的互斥使用。 A方向的行人: wait(SA);
if (countA=0) then wait(mutex); countA=countA+1 signal(SA); 通过独木桥; wait(SA);
countA=countA-1;
if (countA=0) then signal(mutex); signal(SA); B方向的行人: wait(SB);
if (countB=0) then wait(mutex); countB=countB+1 signal(SB); 通过独木桥; wait(SB);
countB=countB-1;
if (countB=0) then signal(mutex); signal(SB);
2.答:内存利用率不高,主要表现为以下四种形式: (1)内存中存在着大量的分散的难以利用的碎片。
(2)暂时或长期不能运行的程序和数据,占据了大量的存储空间。
(3)当作业较大时,内存中只能装入少量作业,当它们被阻塞时,将使CPU空闲,从而也就降低了内存的利用率。
(4)内存中存在着重复的拷贝。 提高内存利用率的途径:
(1)改连续分配方式为离散分配方式,以减少内存中的零头。
(2)增加对换机制,将那些暂时不能运行的进程或暂时不需要的程序和数据,换出至外存,以腾出内
存来装入可运行的进程。 (3)引入动态链接机制,当程序在运行中需要调用某段程序时,才将该段程序由外存兰州内存。这样,可以避免装入一些本次运行中不用的程序 (4)引入虚拟存储器机制,使更多的作业能装入内存,并使CPU更加忙碌。引入虚拟存储器机制,还可以避免装入本次运行中会用到的那部分程序和数据。 (5)引入存储器共享机制,允许一个正文段或数据段被若干个进程共享,以削减内存中重复的拷贝。 3.答:假脱机技术即SPOOLing技术,是指在多道程序环境下,利用多道程序中的一道或两道程序来模拟脱机输入输出中的外围控制机的功能,以达到“脱机”输入输出的目的,它由三部分组成:输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程。 在用SPOOLing技术共享打印机时,对所有提出输出请求的用户进程,系统接受它们的请求时,并不真正把打印机分配给它们,而是为每个进程做两件事情: 由输出进程在输出井中为它申请一空闲缓冲区,并将要打印的数据送入其中。 输出进程再为用户进程申请一张空白的用户打印请求表,并将用户的打印请求填入表中,将该表挂 到打印队列上。 当打印机空闲时,输出进程将从请求队列首取出一张打印请求表,根据表中的要求将要打印的数据从输出井传送到内存输出缓冲区,再由打印机进行输出打印。打印完后,再处理打印队列中的下一个打印请求表,直到打印队列空。 4.答:将目录文件作为一般数据文件处理,可以简化操作系统对目录的实现。但如果允许一个用户在某个目录下创建文件,则他必须有对该目录文件进行读写的权限,他同时便 可直接从目录文件中读到该目录下所有文件的物理地址等信息,然后存取到它们的内容,因此这种方式难以实现对文件的保护。为了解决上述问题,很多操作系统将目录当作特殊的文件看待,用户要获得目录中的文件属性信息或在创建一个文件时需在目录文件中建立一个目录项,都必须通过操作系统提供的例程来完成。 习题2 三.问答题 1.答:死锁:是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程都将无法再向前推进。 此时系统不会发生死锁的原因是死锁产生的必要条件之一:循环等待条件不可能成立。因为多个进程之间只可能存在占据较低序号资源的进程等待占据较高序号资源的进程释放资源的情况,但不可能存在反向的等待,因此,它们之间绝对不会形成循环等待链。 2. 技术性能 连续分配 离散分配 大批量数据的存取速度 机制的复杂性 内存碎片 实现虚拟技术 实现共享 实现动态链接 3.FCFS 较快 较简单 较大 较难 较难 较难 较慢 较复杂 较小 较易 较易 较易 被访问的下一个磁盘号: 98 183 37 122 14 124 65 67 移动的磁道数: 45 85 146 85 408 110 59 2 平均寻道长度:80 SSTF 被访问的下一个磁盘号: 65 67 37 14 98 122 124 183 移动的磁道数: 12 2 30 23 84 24 2 59 平均寻道长度:29.5 SCAN 被访问的下一个磁盘号: 37 14 65 67 98 122 124 183 移动的磁道数: 16 23 51 2 31 24 2 59 平均寻道长度:26 CSAN 被访问的下一个磁盘号: 37 14 183 124 122 98 67 65 移动的磁道数: 16 23 169 59 2 24 31 2 平均寻道长度:40.75 4. SPOOLing技术:就是用于将一台独占设备改造成共享设备的一种行之有效的技术。当系统中出现了多道程序后,可以利用其中的一道程序,来模拟脱机输入时的外围控制机的功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、输出功能。 对所有提出输出请求的用户进程,系统接受它们的请求时,并不真正把打印机分配给它们,而是由输出进程在输出井中为它申请一空闲缓冲区,并将要打印的数据卷入其中,输出进程再为用户进程申请一张空白的用户打印请求表,并将用户的打印请求填入表中,再将该表挂到打印机队列上。 这时,用户进程觉得它的打印过程已经完成,而不必等待真正的慢速的打印过程的完成。当打印机空闲时,输出进程将从请求队列队首取出一张打印请求表,根据表中的要求将要打印的数据从输出井传到内存输出缓冲区,再由打印机进行输出打印。打印完后,再处理打印队列中的一个打印请求表,实现了对打印机的共享。 5. LRU:
1、2、4、7、4、2、3、5、1、7、6
是否缺页: * * * * * * * * *
FIFO * * * * * * * * 习题3
四、简答题(本大题共5小题,每小题4分,共20分) 33.处理用户命令; 读/写文件 分配/回收资源 处理硬件/软件出现的错误; 及其它控制功能 34.中断装置的职能主要有三点: 1)检查是否有中断事件发生。
2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复驼行。 3)启动操作系统的中断处理程序。
35.硬件条件是:配置大容量的磁盘,要有中断装置和通道 操作系统应设计好\预输入\程序,\井管理\程序,\缓输出\程序。 36.要点:
1)优先接纳终端作业,仅当终端作业数小于系统可以允许同时工作的作业数时,可以调度批处理作业。 2)允许终端作业和批处理作业混合同时执行。
3)把终端作业的就绪进程排成一个就绪队列,把批处理作业的就绪进程排入另外的就绪队列中。 4)有终端作业进程就绪时,优先让其按\时间片轮转\法先运行。没有终端作业时再按确定算法选批处理作业就绪进程运行。
37.死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。 五、综合题(本题共4题,共36分) 38.(10分) FIFO: 1 2 3 6 4 7
6次 2 1 5 6 LRU:
1 2 6 4 7 3 2 1 4 7 10次 6 5 2 1
注:假定前面四页1 2 3 6 已在主存 39.(8分) (1)利用率为50% (2)利用率为83%
(3)设置长度为2400字符的主存缓冲区;
找到该文件的存放位置,启动磁带机读出第一块内容存入主存缓冲区;
进行记录分解,按用户要求依次把主存缓冲区中的五个记录传送到用户工作区;
启动磁带机读第二块内容存入主存缓冲区,把第6至10个逻辑记录按用户要求依次传送到用户工作区。 40.(10分)
begin SR,SM1,SM2,SP:semaphore; B1,B2:record;
SR:=1;SM1:=0;SM2:=1;SP:=0 cobegin process read X:record;
begin R: (接收来自输入设备上一个记录) X:=接收的一个记录; P(SR); B1:=X; V(SM1); goto R; end;
Process move Y:record; begin