操作系统例题汇总.docx

上传人:b****5 文档编号:4278611 上传时间:2022-11-28 格式:DOCX 页数:17 大小:89.83KB
下载 相关 举报
操作系统例题汇总.docx_第1页
第1页 / 共17页
操作系统例题汇总.docx_第2页
第2页 / 共17页
操作系统例题汇总.docx_第3页
第3页 / 共17页
操作系统例题汇总.docx_第4页
第4页 / 共17页
操作系统例题汇总.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

操作系统例题汇总.docx

《操作系统例题汇总.docx》由会员分享,可在线阅读,更多相关《操作系统例题汇总.docx(17页珍藏版)》请在冰豆网上搜索。

操作系统例题汇总.docx

操作系统例题汇总

1.2例题精选

例1.1如何理解虚拟机的概念?

解:

一台仅靠由硬件组成的计算机一般被称为裸机,不易使用。

操作系统为用户使用计算机提供了许多服务,从而把一台难于使用的裸机改造成了功能更强大、使用更方便的计算机系统,这种计算机系统称为虚拟机。

所谓虚拟,是指把一个物理上的实体变为若干个逻辑上的对应物。

前者是实际存在的,而后者是虚的,只是用户的一种感觉。

在单CPU的计算机系统中能同时运行多道程序,好像每个程序都独享一个CPU,这就是虚拟。

在构造操作系统时,把操作系统分成若干层,每层完成特定的功能,从而形成一个虚拟机。

下层的虚拟机为上层的虚拟机提供服务,这样逐次扩充以完成操作系统的功能。

讨论“虚拟”的概念体现在操作系统的方方面面。

例如,虚拟存储器,使一台只有4MB内存的计算机可以运行总容量远远超过4MB的程序;虚拟外设,能够使多个用户同时访问该外设等。

例1.2什么是多道程序设计,它的主要优点是什么?

解:

所谓多道程序设计是指把一个以上的程序存放在内存中,并且同时处于运行状态,这些程序共享CPU和其他计算机资源。

其主要优点是:

(1)CPU的利用率高:

在单道程序环境下,程序独占计算机资源,当程序等待I/O操作时CPU空闲,造成CPU资源的浪费。

在多道程序环境下,多个程序共享计算机资源,当某个程序等待I/O操作时,CPU可以执行其他程序,这大大地提高了CPU的利用率。

(2)设备利用率高:

在多道程序环境下,内存和外设也由多个程序共享,无疑也会提高内存和外设的利用率。

(3)系统吞吐量大:

在多道程序环境下,资源的利用率大幅度提高,减少了程序的等待时间,提高了系统的吞吐量。

讨论多道程序在计算机中并发地运行是现代计算机系统的重要特征。

早期的单道批处理系统与人工操作相比自动化程度大大提高,但系统中仍有较多的空闲资源,系统的性能较差。

多遭批处理系统虽有很多优点,但这种系统交互能力差,作业的平均周转时间长。

多道程序处理系统要解决的主要问题是,如何使多个程序合理、有序地共事处理机、内存、外设等资源。

例1.3A,B两个程序,程序A按顺序使用CPU10S,使用设备甲5S,使用CPU5S,使用设备乙10S,最后使用CPU10S。

程序B按顺序使用设备甲10S,使用CPU10S,使用设备乙5S,使用CPU5S,使用设备乙10S。

(忽略调度程序执行时间)试问:

(1)在顺序环境下执行程序A和程序B,CPU的利用率是多少?

(2)在多道程序环境下,CPU的利用率是多少?

(1)程序A和程序B顺序执行时,程序A执行完毕,程序B才开始执行。

两个程序共耗时80S,其中占用CPU时间为40S,顺序执行时CPU的利用率为50%。

(2)在多道程序环境下,两个程序并发执行,其执行情况如图所示。

可以看出,两个程序共耗时45S,其中占用CPU时间为40S,故此时CPU的利用率为40/45=88.89%。

 

讨论

(1)在单道程序环境下,程序顺序执行,CPU被一道程序独占,即使CPU空闲,其他程序也不能使用,所以CPU的利用率低。

(2)在多道程序环境下,若干个程序宏观上同时执行,微观上交替执行。

当其中一个程序由于某种原因(例如进行1/O操作)而不能占用CPU时,其他程序就可以占用CPU,提高了CPU的利用率。

(3)在该例中,当程序A使用完设备甲时,由于CPU正被程序B占用,所以程序A必须等待一段时间(如虚线所示)。

同理,当程序B第二次使用完CPU准备使用设备动时,由于此时设备乙正被程序A占用,所以程序B也必须等待一段时间(如虚线所示),这时CPU将空闲(如虚线所示)。

例1.4试述分时系统与实时系统,并比较它们的区别。

解:

分时系统是指在一个系统中多个用户分时地使用同一计算机。

实时系统是指计算机及时响应外部事件的请求,在规定时限内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地运行。

实时系统与分时系统的主要区别有两点。

(1)分时系统的目标是提供一种通用性很强的系统,有较强的交互能力,而实时系统则大都是具有特殊用途的专用系统,交互能力略差;

(2)分时系统对响应时间虽有要求,但一般来说,响应时间由人所能承受的等待时间来确定;而实时系统对响应时间要求更高,一般由控制系统或信息处理系统所能接受的延迟时间来决定。

1.3习题

1.填空题:

(1)当CPU执行操作系统代码时,称处理机处于

(2)(A)执行态(B)目态(C)管态(D)就绪态

(3)在下列性质中,不是分时系统的特征。

(4)(A)多路性(B)交互性(C)独占性(D)成批性

(5)下列仅一条指令只能在管态下执行。

(6)(A)读取时钟指令(B)访管指令(C)屏蔽中断指令(D)取数指令

2.何谓管态(系统态)和目态(用户态)?

3.一般从哪几方面对操作系统的性能进行评价?

4.试说出几种你所熟悉的操作系统名称,并说明其特征。

5.试列举UNIX操作系统的特点。

6.根据你使用计算机系统的经验,说明操作系统的作用。

7.试说明批处理系统、分时系统和实时系统的主要特征。

8.如何理解网络操作系统的主要功能?

9.A,B两个程序,A按顺序使用CPU10s,使用设备甲5s,使用CPU5s,使用设备乙10s,最后使用CPU10s;程序B按顺序使用设备甲10s,使用CPU10s,使用设备乙5s,使用CPU5s,最后使用设备乙10s。

请问:

(1)在顺序执行程序A和B时,CPU的利用率是多少?

(2)在多道程序环境下执行时,CPU的利用率是多少?

例题:

考虑5个进程P1,P2,P3,P4,P5,见表2.1。

规定进程的优先数越小,优先级越高。

试描述在采用下述几种调度算法时各个进程运行过程,并计算采用每种算法时的进程平均周转时间。

假设忽略进程的调度时间。

(1)先来先服务调度算法;

(2)时间片轮转调度算法(时间片为1ns);

进程

创建时间

运行时间

优先数

P1

0

3

3

P2

2

6

5

P3

4

4

1

P4

6

5

2

P5

8

2

4

(3)非剥夺式优先级调度等法;

(4)剥夺式优先级调度算法。

表2.l例2.5数据表

练习题

一、单选题

1、一个进程是⎽⎽⎽⎽⎽⎽。

(清华大学1996)

A由协处理机执行的一个程序B一个独立的程序+数据集

CPCB结构与程序和数据的组合D一个独立的程序

2、并发进程之间⎽⎽⎽⎽⎽⎽。

A彼此无关B必须同步C必须互斥D可能需要同步或互斥

3、⎽⎽⎽⎽⎽⎽是进程调度算法。

A时间片轮转法B先来先服务C响应比高者优先D均衡调度算法

4、当⎽⎽⎽⎽⎽⎽时,进程从执行扎转变为就绪状态。

(西北工大1999)

A进程被调度程序选中B时间片到C等待某一事件D等待的事件发生

5、系统中有n(n>2)个进程,并且当前没有执行进程调度程序,则⎽⎽⎽⎽不可能发生。

A有一个运行进程,没有就绪进程,剩下的n-1个进程处于等待状态

B有一个运行进程和n-1个就绪进程,但没有进程处于等待状态

C有一个运行进程和1个就绪进程,剩下的n-2个进程处于等待状态

D没有运行进程但有2个就绪进程,剩下的n-2个进程处于等待状态

6、支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中⎽⎽⎽⎽⎽⎽不是引起操作系统选择新进程的直接原因。

(复旦大学1999)

A运行进程的时间片用完B运行进程出错

C运行进程要等待某一事件的发生D有新进程进入就绪状态

二、判断题

1、在剥夺式进程管理方式下,现运行进程的优先级不低于系统中所有进程的优先级。

2、进程是一个独立的运行单位,也是系统进行资源分配和调度的基本单位。

3、程序的并发执行是指同一时刻有两个以上的程序,它们的指令在同一处理器上执行。

4、进程由进程控制块和数据集以及对该数据集进行操作的程序段组成。

5、并发是并行的不同表述,其原理相同。

三、问答题

1、操作系统中为什么要引入进程的概念?

为了实现进程的并发运行,操作系统在进程管理方面应做那些工作?

(南京大学1997)

2、试比较进程与程序的区别。

(哈尔滨工业大学2000)

3、进程与线程的主要区别是什么?

(西北工大1999)

例:

假设某系统中有4种资源(R1,R2,R3,R4),在某时刻系统中共有5个进程。

进程P1,P2,P3,P4,P5的最大资源需求数向量和此时已分配到的资源数向量分别为

进程当前已分配到资源最大资源需求

P1(0,0,1,2)(0,0,1,2)

p2(2,0,0,0)(2,7,5,0)

P3(0,0,3,4)(6,6,5,6)

P4(2,3,5,4)(4,3,5,6)

P5(0,3,3,2)(0,6,5,2)

系统中当前可用资源向量为(2,1,0,0)。

问:

(1)当前系统是否是安全的?

(2)如果进程3已发出资源请求向量(0,1,0,0),系统能否将资源分配给它?

解:

(1)进程的最大资源需求数减去当前进程已获得的资源数就是进程仍需的资源数。

此时各个进程的仍需资源数向量为

P1:

(0,0,0,0)

P2:

(0,7,5,0)

P3:

(6,6,2,2)

P4:

(2,0,0,2)

P5:

(0,3,2,0)

 

而系统的可用资源向量为(2,1,0,0),这时存在如下进程执行序列,可以使进程顺利执行完毕,所以该状态是安全的。

进程可用资源数

P1完成后:

(2,1,1,2)

P4完成后:

(4,4,6,6)

P5完成后:

(4,7,9,8)

P2完成后:

(6,7,9,8)

P3完成后:

(6,7,12,12)

(2)在P3发出资源请求(0,1,0,0)后,假设系统把资源分配给P3,则各进程已分配资源数为

P1:

(0,0,1,2)

P2:

(2,0,0,0)

P3:

(0,1,3,4)

P4:

(2,3,5,4)

P5:

(0,3,3,2)

这时系统可用资源数为(2,0,0,0),各个进程仍需资源向量为

P1:

(0,0,0,0)

P2:

(0,7,5,0)

P3:

(6,5,2,2)

P4:

(2,0,0,2)

P5:

(0,3,2,0)

满足资源需求的进程执行序列为

进程可用资源数

P1完成后:

(2,0,1,2)

P4完成后:

(4,3,6,6)

P5完成后:

(4,6,9,8)

此时可用资源已不能满足P2或P3的需求,即此时系统状态是不安全的,系统将拒绝资源请求。

讨论银行家算法的关键是寻找一个进程的运行序列,如果系统按该序列调度进程运行,系统的可用资源就可以满足它们的需求,这时资源分配是安全的;否则,若该进程序列不存在,则资源分配是不安全的,系统暂不进行资源分配。

一、生产者和消费者问题

1、有n个缓冲区,一个生产者和一个消费者情况:

main()

{intS=1;//可否进入缓冲区

intfull=0;//产品数目

intempty=n//可用缓冲区数

intbuffer[n];

intin=0;//指向下一个可放产品的缓冲区

intout=0;//指向下一个可取产品的缓冲区

producer();

consumer();

}

producer()

{

While(生产未结束)

{produceaproduct

P(empty);

P(S);

Buffer[in]=product;

in=(in+1)modn;

V(S);

V(full);

}

}

consumer()

{

While(消费未结束)

{P(full);

P(S);

TakeaproductfromBuffer[out]

Out=(out+1)modn;

V(S);

V(empty);

}

Consumetheproduct

}

2、m个生产者和k个消费者共享n个缓冲区的情况:

main()

{

intB[n];//缓冲区

intp=r=0;//p表示生产者指针,r表示消费者指针

intS=1;//可否进入缓冲区

intfull=0;//产品数目

intempty=n;//可用缓冲区数

producer-i(i=1,2,…,m);

consumer-j(j=1,2,…,k);

}

Producer-i(i=1,2,…,m)

{

while(producingdoesnotend)

{

produceaproduct

P(empty);

P(S);

B[p]=product;

p=(p+1)modn;//每放入一个产品,位置指针后移一位

V(S);

V(full);

}

}

Consumer-j(j=1,2,…,k)

{

while(continuetoconsume)

{

P(full);

P(S);

TakeaproductfromB[r]

r=(r+1)modn;//从第一个开始,消费一个后,指向下一个

V(S);

V(empty);

Consume

}

}

 

二、读者与写者问题

1、读者与写者有相同的优先级的情况:

main()

{

intS=1;//读者与写者,写者与写者间的互斥,即可否修改文件

intSr=1;//可否修改读者个数

intrc=0;//读者个数

reader();

writer();

}

reader()

{

While(读过程未结束)

{

P(Sr);

if(rc==0)

{P(S);

rc=rc+1;

V(Sr);

readfileF

}

else

{

rc=rc+1;

V(Sr);

readfileF

}

P(Sr);

rc=rc-1;

if(rc==0)V(S);

V(Sr);

}

}

writer()

{

While(写过程未结束)

{

P(S);

WritefileF

V(S);

}

}

2、写者优先问题:

main()

{

intS=1;//读者与写者,写者与写者间的互斥,即可否修改文件

intSn=n;//最多有n个进程可以同时进行读操作

reader();

writer()

}

reader(i)

{

P(S);

P(Sn);

V(S);

ReadfileF

V(Sn);

}

writer(j)

{

P(S)

WritefileF

V(S);

}

例题

1、有一个阅览室,读者进入时必须先在一张登记表上进行登记。

该表为每一座位列出一个表目,包括座号、姓名。

读者离开时要撤消登记信息。

阅览室有100个座位,试问:

(1)为描述读者的动作,应编写几个程序?

,应该设置几个进程?

进程和程序之间的关系如何?

(2)试用P、V操作描述这些进程之间的同步算法。

2、若系统有某类资源m*n+1个,允许作业执行过程中动态申请该类资源,但在该系统上运行的每一个作业对该类资源的占有量在任一时刻都不会超过m+1个。

当作业申请资源时,只要资源尚未分配完,则总能满足它的要求。

但用限制系统中可同时执行的作业个数来防止死锁。

你认为作业调度允许同时执行的最大作业数应为多少?

证明之。

3、若系统有同类资源m个,被n个进程共享,试问:

当m>n和m

4、设Pa,Pb,Pc为一组合作进程,其进程流程图如下所示。

试用信号灯的P、V操作实现这三个进程的同步。

 

5、医生给病人看病,需要化验,于是医生开出化验单,病人到化验室化验,化验结果送回医生处供医生诊断。

医生看病为一个进程,化验室化验为一个进程,二者需要交换信息,试用信号灯的P、V操作实现这两个进程的同步关系。

6、设有两个优先级相同的进程P1、P2如下:

令信号量S1,S2的初值为0,试问P1、P2并发运行结束后X=?

y=?

z=?

进程P1进程P2

y=1;x=1;

y=y+2;x=x+1;

V(S1);P(S1);

Z=y+1;x=x+y;

P(S2);V(S2);

Y=z+y;z=x+z;

7、在一个盒子里,混装了数量相等的围棋白子和黑子。

现在要用自动分拣系统把白子和黑子分开。

该系统设有两个进程P1、P2,其中P1将拣白子,P2将拣黑子。

规定每个进程每次只拣一子。

当一进程正在拣子时,不允许另一进程去拣,当一进程拣了一子时,必须让另一进程去拣。

试写出两个并发进程能正确执行的程序。

8、桌上有一只盘子,每次只能放入一个水果。

爸爸专向盘中放苹果,妈妈专向盘中放橘子,一个女儿专等吃盘中的苹果,一个儿子专等吃盘中的橘子。

试用P、V操作写出他们能同步的程序。

例1:

假定盘块的大小为1KB,硬盘的大小为500MB,采用显式链接分配方式时,其FAT需占用多少存储空间?

如果文件A占用硬盘的第11,12,16,14四个盘块,试画出文件A中各个盘块间的链接情况及FAT的情况。

例2:

存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。

如果每个盘块的大小为512字节,若盘块号需要用3个字节来描述,而每个盘块最多存放170个盘块地址:

(1)该文件系统允许文件的最大长度是多少?

(2)将文件的字节偏移量5000,15000,150000转换为物理块号和块内偏移量。

(3)假设某个文件的FCB已在内存,但其他信息均在外存,为了访问该文件中某个位置的内容,最少需要几次访问磁盘,最多需要几次访问磁盘?

例3:

请分别解释在连续分配方式,隐式链接分配方式,显式链接分配方式和索引分配方式中如何将文件的字节偏移量3500转换为物理块号和块内偏移量(设盘块大小为1KB,盘块号需占4个字节)。

例1:

假设两个用户共享一个文件系统,用户甲要用到文件A,B,C,D,E,用户乙要用到文件A,D,E,F,已知用户甲的文件A与用户乙的文件A实际上不是同一个文件;用户甲的文件C与用户乙的文件F实际上是同一个文件;甲乙两个用户的文件E是同一个文件。

试拟定一个文件组织方案,使得甲乙两个用户能共享该文件系统而不致造成混乱。

例题:

在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间为T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花费的时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?

解:

(1)在无缓冲的情况下,,其后CPU对这一块数据计算的时间为C,即每一块数据的处理时间为T+C。

(2)在单缓冲的情况下,先从磁盘把一块数据输入到缓冲区所花费的时间为T;然后由操作系统将缓冲区的数据传送到用户数据区,所花费的时间为M;最后由CPU对这块数据进行计算,计算时间为C。

由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M。

(3)在双缓冲的情况下,先从磁盘把一块数据输入到第一个缓冲区,装满后,便将其余的数据输入到第二个缓冲区。

与此同时,操作系统可以将第一个缓冲区的数据传送到用户数据区。

当CPU对第一块数据进行计算时,又可以将磁盘输入数据送入第一个缓冲区,当CPU计算完后又可以从第二个缓冲区取数据,反复交替使用这两个缓冲区。

当C>T时,计算操作比输入操作慢,在此情况下上一块数据计算完成后,仍需将一个缓冲区中的数据送到用户区,其花费时间为M,再对这块数据进行计算,花费时间为C,所以此时一块数据的处理时间为C+M,即max(C,T)+M;

当C

所以一块数据的处理时间为T,即max(C,T)。

例:

在设备管理中,何谓设备独立性(或无关性)?

答:

设备独立性又称设备无关性,是指用户程序独立于所使用的具体物理设备。

即用户只使用逻辑设备名来访问设备,而不直接和具体设备打交道。

它体现在两个方面:

(1)  从程序设计的角度来看,各种设备所体现的接口都是一致的。

即在程序中可以使用同样的命令去读不同设备上的数据,也可以用同样的命令将输出数据送到不同的设备上。

而这些不同设备之间的差异由操作系统来处理,呈现在程序中的设备都是相同的。

(2)  操作系统对所有的设备及设备操作都采取统一方式管理。

由于不同设备之间的差异,用软件实现时很难达到真正的一致。

一般采用层次和模块化思想来实现设备管理子系统。

低层的程序用来屏蔽设备的具体实现细节,而高层软件则将各类不同设备的操作都以相同的界面提供给用户。

与设备无关性是统一以逻辑名命名设备。

例1:

从下列关于驱动程序的论述中,选出一条正确的论述()

(1)驱动程序与I/O设备的特性紧密相关,因此应为每一个I/O设备配备一个专门的驱动程序。

(2)驱动程序与I/O控制方式紧密相关,因此对DMA方式应该以字节为单位去启动设备进行中断处理。

(3)由于驱动程序与I/O设备的硬件特性紧密相关,故必须全部用汇编语言书写。

(4)对于一台多用户机,配置了相同的八个终端,此时可只配置一个由多个终端共享的驱动程序。

思考题:

1、在I/O中断处理中可否允许中断嵌套?

2、当系统中有多个I/O中断请求时,系统如何处理(即系统如何进行I/O设备的分配)?

前面第三章介绍的处理机分配调度策略是否适合这里的I/O设备分配?

例2:

假定一磁盘有200个柱面,编号为0~199,当前存取臂的位置在143号柱面上,并刚刚完成了125号柱面的服务请求,如果请求队列的先后顺序是:

86,147,91,177,94,150,102,175,130

试问:

为完成上述请求,下列算法存取臂移动的总量是多少?

并写出存取臂移动的顺序。

(1)FCFS

(2)SSTF

(3)SCAN

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1