1、2007 年浙江大学计算机专业基础综合(操作系统)真题试卷及答案解析(总分:12.00,做题时间:90 分钟)一、简答题(总题数:4,分数:8.00)1.请简要比较进程(process)与程序(programs)。(分数:2.00)_2.请简要比较进程(process)与线程(threads)。(分数:2.00)_3.请简要比较请求实存管理(actual memory management)与虚存管理(virtual memory management)。(分数:2.00)_4.请简要比较请求页面调度(demand paging)与请求分段调度(demand segmenta-tion)。(分
2、数:2.00)_二、综合题(总题数:2,分数:4.00)5.考虑某个系统在如下时刻的状态: (分数:2.00)_6.理发店有一位理发师、一把理发椅及三把供等候理发的顾客做的椅子。如果没有顾客,理发师就去睡觉。如果顾客来时所有的椅子都有人,那么顾客就离去。如果理发师在忙而有空闲的椅子,那么顾客就回坐在其中的一个空闲的椅子上。如果理发师在睡觉,顾客会唤醒他。请利用信号量(semaphores),写个程序来协调理发师和顾客进程。(分数:2.00)_2007 年浙江大学计算机专业基础综合(操作系统)真题试卷答案解析(总分:12.00,做题时间:90 分钟)一、简答题(总题数:4,分数:8.00)1.请
3、简要比较进程(process)与程序(programs)。(分数:2.00)_正确答案:(正确答案:进程与程序的主要区别如下: (1)进程是程序在处理机上的一次执行过程,是一个动态的概念;而程序是代码的有序集合,其本身没有任何运行的含义,是静态的概念。 (2)进程是一个状态变化的过程,是有生命周期的(因创建而产生,因调度而执行,因得不到资源而暂停等,因撤消而消亡);而程序是永久的可以长久保存。 (3)进程与程序的组成不同。进程是由程序、数据和进程控制块组成的;程序仅是代码的有序集合。 (4)进程与程序之间不是一一对应的。通过多次运行,同一个程序可以对应多个进程;通过调用关系,一个进程可以包含多
4、个程序。)解析:2.请简要比较进程(process)与线程(threads)。(分数:2.00)_正确答案:(正确答案:进程与线程可以从四个方面来考察区别: (1)调度方面:线程作为调度和分派的基本单位。 (2)并发性方面:进程之间可以并发执行,一个进程中的若干线程也可以并发执行。 (3)拥有资源方面:进程作为拥有资源的基本单位,线程除少量必不可少的资源外,基本上不拥有资源,但它可以访问其隶属进程的资源。 (4)系统开销:进程间切换时,要涉及进程环境的切换,开销比较大。而线程间切换只需保存和设置少量的寄存器内容,因此进程切换的系统开销远大于线程间切换的开销。)解析:3.请简要比较请求实存管理(
5、actual memory management)与虚存管理(virtual memory management)。(分数:2.00)_正确答案:(正确答案:实存管理与虚存管理主要区别如下: (1)在实存管理中,作业一次性调入内存运行;虚存管理中不需要一次全部调入内存。而是被分成多次调入内存运行。 (2)在实存管理中,作业一次性调入内存,直到运行完毕才被调出;虚存管理中允许在作业的运行过程中进行换进换出。 (3)在实存管理中,只能调入小于实际内存容量的作业;在虚存管理中可运行任何大小的作业。 (4)虚存管理在实存管理的基础上添加了请求调入功能和置换功能。)解析:4.请简要比较请求页面调度(de
6、mand paging)与请求分段调度(demand segmenta-tion)。(分数:2.00)_正确答案:(正确答案:请求页面和请求分段的区别如下: (1)页是信息的物理单位,是为了系统管理的需要;段是信息的逻辑单位,是为了用户的需要。 (2)页的大小固定且由系统决定;段的长度不固定,决定于用户编写的程序。 (3)请求页面调度管理的地址空间是一维的;请求分段调度管理的地址空间是二维的。 (4)请求页面调度具有产生缺页中断和实现页面置换的功能,请求分段调度具有产生缺段中断和实现段的置换功能。)解析:二、综合题(总题数:2,分数:4.00)5.考虑某个系统在如下时刻的状态: (分数:2.0
7、0)_正确答案:(正确答案: )解析:6.理发店有一位理发师、一把理发椅及三把供等候理发的顾客做的椅子。如果没有顾客,理发师就去睡觉。如果顾客来时所有的椅子都有人,那么顾客就离去。如果理发师在忙而有空闲的椅子,那么顾客就回坐在其中的一个空闲的椅子上。如果理发师在睡觉,顾客会唤醒他。请利用信号量(semaphores),写个程序来协调理发师和顾客进程。(分数:2.00)_正确答案:(正确答案:semaphore customers=0; semaphore mutex=1: semaphore R=O; main() cobegin 理发师: begin repeat P(customers);有顾客等待 P(mutex); R=R-l;等待顾客数减- V(mutex): 理发; until false; 顾客: begin repeat P(mutex); 检查是否有空椅子可是坐 jf(R解析: