首先,填空(每个空格1分,共24分)
1.无论哪种操作系统执行相同的资源管理功能,它们的体系结构都是相同的,并且它们由_ _处理器管理_ _、_ _ _ _、设备管理和文件系统组成。
2.分时操作系统采用的分时技术是将中央处理器的时间分割成很短的时间片,系统将把时间片依次分配给每个在线用户。
3.Windows 2000操作系统是一个具有微内核结构的操作系统。Linux是一个具有_ _ _ _ _层_ _ _ _ _结构的操作系统。
现代计算机系统分为几个状态。当操作系统程序被执行时,机器处于_ _ core _状态。
5.死锁的必要条件是_ _ _ _ _互斥_ _ _ _ _、_ _ _请求和保持_ _ _ _ _、_ _ _不剥夺_ _和_ _循环等待_ _条件。
6.文件的存取方法有顺序存取法、随机存取法和密钥存取法。
7.如果文件的访问控制表中的内容是644,则文件所有者具有_ _ _ _ _ RW _ _,文件所有者的组用户具有_ _ _ _ _ R _ _,其他用户具有_ _ _ _ _ R _ _。
8.缓冲区设置可分为四种模式:单缓冲区、_ _ _、双缓冲区、_ _ _、多缓冲区_ _和_ _缓冲池_。
9.所请求的收回驻留在主存储器中最长页面的分页算法是_ _ _ _ _ _ LRU _ _ _ _ _。
10.在并发进程中访问共享变量的程序段称为_ _ _ _ _关键区域_ _ _ _ _。
二、选择题(每题1分,共16分)
1.从用户的角度来看,操作系统是(A)。
A.用户和计算机之间的接口。控制和管理计算机资源的软件
C.软件d,它合理地组织计算机的工作流程,计算机是一个按照某种结构由几级程序组成的有机体
2.引进多渠道计划的目的是(一)。
A.充分利用CPU,减少CPU等待时间。提高实时响应速度
C.有利于代码共享,减少主辅存储信息交换d .充分利用内存
3.对多用户分时系统来说,这是最重要的。
A.实时b、交互式c、可共享d、运行效率
用时间交换空间的技术是(b)。
分时技术,虚拟内存技术,并发技术,缓冲技术
用空间换时间的技术是(a)。
假脱机技术,分时技术,并行技术,分页技术
6.并发指的是(a)中几个事件的发生。
a、相同时间b、相同时间间隔c、不同时间d、不同时间间隔
7.批处理系统的主要缺点是(b)。
A.处理器利用率低,交互性丧失,缺乏并行性,以上都不是问题
8.中央处理器状态分为核心状态和用户状态。从用户状态变为核心状态的唯一方法是(C)。
A.运行过程修改程序状态字b .中断屏蔽
C.系统调用d .进程调度程序
9.对应于可由中央处理器调用和执行的程序的地址空间是(C)。
A.符号名称空间b .虚拟地址空间c .相对地址空间d .物理地址空间
10.过程和程序的本质区别是(d)。
A.内存和外部存储器中的存储b .机器指令的顺序和非顺序执行
C.计算机资源的分时和专用d .动态和静态特性
11.过程之间的基本关系是(b)。
A.相互独立和限制b .同步和相互排斥
C.并行执行和资源共享
12.动态重定位技术依赖于(b)。
a、重定位加载器b、重定位寄存器c、地址机制d、目标程序
13.在虚拟存储系统中,如果进程占用内存3个块(开头为空),则采用先进先出的页面消除方法。当执行访问页序号为56时,将会有(d)页丢失中断。
7a、7 B、8 C、9 D、10
14.在操作系统中,当作业在(c)中时,它已经在进程的管理之下。
A.备份b .阻塞c .执行d .完成
15.如果处理器有32位地址,其虚拟地址空间为(B)。
2GB,4GB,8GB,16GB
16.虚拟存储技术不能与(a)一起使用。
A.分区管理b .动态分页管理c .段管理d .段页面管理
三、简答题(每题5分,共25分)
1.什么是系统调用,它和一般过程调用有什么区别?
系统调用是指调用用户程序中操作系统内核提供的函数(2分)。它在(1)和执行状态方面不同于过程调用。前者是核心状态,后者是用户状态(1分)(2分),执行过程是不同的。前者需要执行操作系统捕获的指令,而后者不需要(1点)(3)和不同的执行代码。前者执行操作系统内核提供的功能,而后者执行用户代码。(1分)
2.虚拟内存的用户编程空间由32页组成,每页1KB,内存16KB。假设在某个时间转移到用户页表的存储器中的页的页号和物理块号的对照表如下:
页码
物理块号
0
4
1
11
2
5
3
13
对应于逻辑地址0E8D(H)的物理地址是什么?要求:写下主要的计算过程。
答:0E8DH转换成二进制数3360000、1110、1000、1101。由于页面大小是1KB,是2的10次方,0E8D的页面号是3,对应的物理块号是13,(3点),所以虚拟地址0E8DH的物理地址是368DH(2点)
3.当执行下面的C语言程序时,数组buf1和buf2的内容是什么?
#包括
main()
{
int pid,fd1,fd2
char buf1[20],buf 2[20];
fd1=打开(“etc/passwd”,0);
if (pid=fork())
{ wait();
读取(fd1,buf1,20);}
其他
{ fd2=dup(fd1);
读取(fd2,buf2,20);
关闭(fd2);
exit();}
读取(fd1,buf1,20);
}
BUF1的内容是文件ETC/PASSWD中地址40-59的20字节(2点)
BUF2的内容是20字节(3点),在文件ETC/PASSWD中的地址是0-19。
4.简述假脱机系统的工作原理。
用空间换时间的技术;(1)它由两部分组成:假脱机输入和假脱机输出;(1分)输入井和输出井介绍(2分);内存执行和输入/输出操作可以并行。(1分)
5.简要描述设备配置的完整过程。
(1)设备分配:根据进程n提出的逻辑设备名称对应的物理设备名称,查找系统设备表SDT,找到设备的离散余弦变换。如果设备忙,将进程N的印刷电路板插入设备队列并等待;如果不忙且分配不会导致死锁,则分配设备;否则,将印刷电路板插入设备等待队列。(3分)
(2)分配控制器:从设备控制表DCT中的控制器指针,可以检查控制器表COCT,以确定控制器是否忙。如果忙,将进程n的印刷电路板挂在控制器队列上;否则,分配控制器。(1分)
(3)信道分配:通过控制器表COCT中的信道表指针,可以检查信道控制表CHCT,以确定信道是否繁忙。如果忙,将进程n的印刷电路板插入通道队列;否则,信道被分配。(1分)
一旦成功分配了设备、控制器和通道,就可以启动输入/输出设备进行数据传输。
四、综合试题(4道题,共35分)
1.具有两个作业的批处理系统。作业调度采用短作业优先级,进程调度采用基于优先级数的抢占式调度算法。在下表所示的作业序列中,优先级编号是流程优先级编号,优先级编号越小,优先级越高。(8分)
作业名
到达时间
估计运行时间
优先号数
A
十点钟
40分
6
B
十点十分
20分
2
C
十点二十
20分
5
D
20比11
30分
4
(1)列出所有操作进入内存的时间和结束时间
(2)计算平均周转时间
答案: (1)作业的进入时间和结束时间如下表所示:(4分)
作业名
进入时间
结束时间
A
十点钟
十点到十二点
B
十点十分
十点半
C
十点半
十点到十一点
D
十点到十一点
十一点二十分
(2)每道工序周转时间为:(4分)
作业一:110分钟
家庭作业乙:20分钟
作业C: 30分钟
工作D:40分钟工作的平均周转时间是:(110 20 30 40)/4=50(分钟)
2.假设一个可移动磁头磁盘有300个磁道,编号为0-299。该负责人目前在158个轨道上服务,刚刚完成了104个请求。存在以下磁盘访问请求序列(磁道号):
75,247,185,177,124,236,46,105,33
使用以下算法后,尝试给出头部移动的顺序和头部移动的总量(总轨道数)。
(1)先到先服务磁盘调度算法
(2)最小寻道时间优先(SSTF)磁盘调度算法
(3)扫描磁盘调度算法(9分)
回答: (1) 75,247,185,177,154,125,46,105,33 (3分)
(2)当前磁头在磁道158上:
154、177、185、125、105、75、46、33、247(3分)
(3)当前磁头位于158个磁道上,并且刚刚完成了对125个磁道的请求
177、185、247、154、125、105、77、46、33(3分)
稍微计算一下移动的总量
3.系统中有三种类型的资源A、B和C,系统中有五个进程P1、P2、P3、P4和P5。在时间T0,系统状态如下:
最大需求分配资源剩余资源
CA BCA B
P1 0 4 40 1 26 2 2
P2 7 5 02 5 0
P3 6 10 103 5 6
P4 9 8 46 5 2
P5 6 6 100 1 4
(1)系统是否处于安全状态?如果是,则给出过程安全序列。
(2)如果流程P4申请了2个资源类别A、2个资源类别B和2个资源类别C,是否可以实施分配?为什么?(8分)
答:(1)系统是安全的,因为有一个安全序列。
最大需求是分配的资源量和剩余的资源量。
CA BCA BCA B
P1 0 4 40 1 20 3 26 2 2
P2 7 5 02 5 05 0 0
P3 6 10 103 5 63 5 4
P4 9 8 46 5 23 3 2
P5 6 6 100 1 45 5 6
安全顺序为P2、P1、P3、P4、P5(5分)
(2)无法分配,因为此时系统的剩余资源为(4,0,0),任何剩余请求都无法满足,系统将处于死锁状态。
4.在诊所里,有一名医生和20把椅子给等候的病人。如果没有病人来,医生会睡在椅子上。当病人来的时候,他必须叫醒正在睡觉的医生。如果另一个病人来到医生的办公室,他们要么坐下(如果有空椅子),要么离开(如果所有的椅子都满了)。试着在医生和病人之间设计一个协调的手术顺序。(10分)
答案:解决方法是使用三个信号量:患者记录等待治疗的患者数量。“生病”用来表示医生是否在看医生。互斥体,用于进程间的互斥。另外,我们需要使用一个变量waiting,它是paint的一个副本。
同步程序如下:
#定义椅子10
type defintsemaphore
患者=0;
ill=0;
mutex=1;
等待=0;/*等候名单*/(4分)
无效医生()
{while(真)
{
病人;/*有没有病人在等待治疗*/
互斥体;
waiting=waiting-1;/*等候人数减少一人*/
(互斥体);
生病;
cure();/*看医生*/(3分)
}
}
无效患者(无效)
{
互斥体;
如果(等待