操作系统笔试面试笔记总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangqian201175/article/details/51244323

操作系统解答题

根据多方信息以及考研试题汇总,应该足够应付面试所需

一、解答题题型

1、多道程序设计;

2、CPU调度算法;

3、死锁避免银行家算法,死锁检测;

4、连续分配,分区分配:适配算法;

5、地址转换计算:分页管理方式;分段管理方式;

6、页面置换算法;

7、抖动现象;

8、磁盘调度算法;

9、文件系统的计算;(之后补充)

10、PV操作、管程。

二、解答题例题

2.1 题型1

多道程序设计;

1、有两个程序:程序A依次使用CPU 10秒,使用设备甲5秒,使用CPU计 5秒,使用设备乙计10秒,使用CPU 10计秒;程序B按依次使用设备甲10秒,使用CPU 10秒,使用设备乙计5秒,使用CPU计5秒,使用设备乙计10秒。在单道程序环境下,先执行程序A再执行程序B,CPU的利用率是多少?在多道程序设计环境下,CPU利用率是多少?

2、设某计算机系统有一个CPU、一台输入设备和一台打印机。现有两个进程同时进入就绪状态,且进程A先得到CPU运行,进程B后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。

试在画出时序关系图的情况下,说明:
(1)开始运行后,CPU有无空闲等待?若有,在哪段时间内等待?计算CPU的利用率。
(2)进程A运行时有无等待现象?若有,在什么时候发生等待现象?
(3)进程B运行时有无等待现象?若有,在什么时候发生等待现象?

 

答案:

1、单道:50%;多道88.9%;

2、1)CPU在100-150ms的时间段内空闲等待,利用率83.3%;

2)进程A为无等待现象;

3)进程B为有等待现象,0-50ms,180-200ms。

 

2.2 题型2

CPU调度算法;

1、假定要在一台处理器上执行如下图所示的作业,它们在 0 时刻
以 1, 2, 3, 4, 5 的顺序到达。给出采用下列调度算法时的调度顺序、
平均周转时间(turnaround time)和平均响应时间(response time)
1) FCFS
2) RR(时间片为 1,不考虑优先级)

3) 非抢占式 SJF(shortest job first)
4) 非抢占式优先级调度(数字小的优先级大)
                         作业 执行时间 优先级

1      10       3

2       1       1

3       2       2

4       3       4

5       5       2

 

答案:

1、

1)  FCFS: 
P1 P2 P3 P4 P5
0 10 11 13 16 21
平均响应时间=( 0+10+11+13+16)/ 5 = 10
平均周转时间=( 10+11+13+16+21)/ 5 = 14.2
2) RR(TQ=1)
P1 P2 P3 P4 P5 P1 P3 P4 P5 P1 P4 P5 P1 P5 P1 P5 P1 P1  P1 P1 P1
0 1          10 11 12 13 14 15 16 17 18 19 20  21
平均响应时间=( 0+1+2+3+4/ 5 = 2

平均周转时间=( 21+2+7+11+16)/ 5 = 11.4
3) SJF
P2 P3 P4 P5 P1
0 1    11 21
平均响应时间=( 11+0+1+3+6)/ 5 = 4
平均周转时间=( 21+1+3+6+11)/ 5 = 8.4
4) Priority
P2 P3 P5 P1 P4
0 1 3 8 18 21
平均响应时间=( 8+0+1+18+3)/ 5 = 6
平均周转时间=( 18+1+3+21+8)/ 5 = 10.2

 

2、(南京大学 2007年 期末考试A卷)

某多道程序设计系统供用户使用的主存为100K,磁带机2台,打印机1台。采用可变分区内存管理,采用静态方式分配外围设备,忽略用户作业I/O时间。现有作业序列如下:

 

 

 

 

 

作业号

进入输入井时间

运行时间

主存需求量

磁带需求

打印机需求

1

8:00

25分钟

15K

1

1

2

8:20

10分钟

30K

0

1

3

8:20

20分钟

60K

1

0

4

8:30

20分钟

20K

1

0

5

8:35

15分钟

10K

1

1

作业调度采用FCFS策略,优先分配主存低地址区且不能移动已在主存的作业,在主存中的各作业平均使用CPU时间。问:1) 作业被调度的先后次序;2) 全部作业运行结束的时间; 3) 作业平均周转时间; 4) 最大作业周转时间。

 

答案:

2、 1)作业调度选择的作业次序为:1, 3, 4, 2, 5。

2)全部作业运行结束的时间 9: 30。

3)周转时间:作业1为30分钟,作业2为55分钟,作业3为40分钟,作业4为40分钟,作业5为55分钟。

4)平均作业周转时间为44分钟。

5)最大作业周转时间为55分钟。

 

2.3 题型3

死锁避免银行家算法 ,死锁检测;

1、(南京大学 考研改编 1995年试题)

某系统有R1设备2台,R2设备2台,R3设备1台,当前时刻存在四个共享进程,分别为P1、P2、P3和P4,其资源分配和申请情况如下:P1获得了一个R2设备,申请一个R1设备;P2获得一个R1设备,申请一个R3设备;P3获得一个R1设备,申请一个R2设备;P4获得一个R2设备。

(1) 画出系统的进程-资源分配图;

(2) 使用“死锁检测”算法,判断该系统是否产生死锁?

答案:

1)略

2)没有发生死锁

2、(南京大学 2007年 期末考试B卷)

系统中有A、B、C、D共四种资源,在某时刻进程P0, P1, P2, P3和P4对资源的占有和需求情况如表,试解答下列问题:

Process

Allocation

Claim

Available

A  B  C  D

A  B  C  D

A  B  C  D

P0

0  0  3  2

0  0  4  4

1  6  2  2

P1

1  0  0  0

2  7  5  0

 

P2

1  3  5  4

3  6  10 10

 

P3

0  3  3  2

0  9  8  4

 

P4

0  0  1  4

0  6  6 10

 

(1)系统此时处于安全状态吗?

(2)若此时P2发出请求(1, 2, 2, 2),系统能分配资源给它吗?为什么?

答案:

1) 系统处于安全状态,存在安全序列:P0, P3, P4, P1, P2。

2) 不能分配,否则系统会处于不安全的状态。

 

2.4 题型4

PV操作、管程;

1、生产者,消费者问题伪代码(基础)看书解决此题目

 

2、(南京大学 考研真题 2000年)

桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。

答案:

在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下:
int S1;
int Sa0;
int So0; 


main(){
        cobegin
            father();     
            son();       
            daughter();   
        coend
    


   father(){
        while(1){
            P(S);
            将水果放入盘中;
            if(放入的是桔子)V(So);
            else  V(Sa);}
     }


son(){
        while(1)
          {
             P(So);
             从盘中取出桔子;
             V(S);
             吃桔子;}
    }


    daughter(){
         while(1)
            {
              P(Sa);
              从盘中取出苹果;
              V(S);
              吃苹果;}
    }



2.5 题型5

连续分配,分区分配:适配算法;

1、在一个分区存储管理系统中,按地址从低到高排列的空闲分区的长度分别是:10KB、4KB、 20KB、 18KB、 7KB、 9KB、 12KB、 15KB。对于下列顺序的段请求: 12KB、 10KB、 15KB、 18KB分别使用首次适应算法、最佳适应算法、最坏适应算法和下次适应算法,试说明空间的使用情况。

答案:

1、为描述方便起见,对空闲分区进行编号,其编号如表所示。

分区编号

分区号

分区长度

1

2

3

4

5

6

7

8

10KB

4 KB

20 KB

18 KB

7 KB

9 KB

12 KB

15 KB

1)采用首次适应算法进行内存分配时,无法满足所有的段请求。

2)满足要求。

3)最坏适应算法总是选择最大的空闲区分配给作业,无法满足所有的段请求。

4)下次适应算法是首次适应算法的变形,在为作业进行内存分配时,总是从上次找到的空闲分区的下一个空闲分区开始顺序查找, 直至找到第一个能满足大小要求的空闲分区为止。无法满足所有的段请求。

2、(2010年全国研究生入学考试真题)

某基于动态分区存储管理的计算机,其主存容量为55MB(初始为空),采用最佳适配算法,分配和释放的顺序为:分配15MB,分配30MB,释放15MB,分配8MB,分配6MB,此时主存中最大空闲分区的大小是多少。

 

答案:

2、9MB

 

2.6 题型6

地址转换计算:分页管理方式;分段管理方式;

1、(2010年与2013年全国研究生入学考试)

某计算机主存按字节编址,逻辑地址和物理地址都是32位,页表项大小为4字节。请回答下列问题。
(1)若使用一级页表的分存储管理方式,逻辑地址结构为:


则页的大小是多少字节?页表最大占用多少字节?
(2)若使用二级页表的分存储管理方式,逻辑地址结构为:


设逻辑地址为 LA ,请分别给出其对应的页目录号和表索引达式。
(3)采用(1)中的分页存储管理方式,一个代码段起始逻辑地址为0000 8000H,其长度为8KB,被装载到从物理地址0090 0000H开始的连续主存空间中。页表从主存0020 0000H 0020 0000H开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项物理地址、这中框号以及计算出该代码段对应的两个页表项物理地址、这中框号以及计算出该代码段对应的两个页表项物理地址、这两个页表项中的框号以及代码页面2的起始物理地址。

 

答案:

1、页大小4KB,一级页表:4MB;

2、页目录号  ((unsigned int)(LA))>>22

页表索引号((unsigned int)(LA))>>12

3、物理地址1:0020 0020H

物理地址2:0020 0024H

物理地址3:0090 1000H

 

2、页式存储管理,允许用户编程空间为32个页面(每页1KB),主存为16KB,如有一用户程序有10页长,且某时刻该用户程序页表见表

如表:

如果分别遇有以下三个逻辑地址:0AC5H、1AC5H、3AC5H处的操作,试计算并说明存储管理系统将如何处理。

 

答案:

1、12C5H

2、缺页中断

3、越界中断

 

2.7 题型7

页面置换算法;

1、(综合考察,南京大学 期末 2007年)

一个页式存储管理系统使用LRU(最近最少使用)页面替换算法,页面大小为1024字节,如果一个作业的页面走向为:1、1、2、3、4、2、1、5、6、1、2、5,分配给该作业的物理块数分别为4,分别为20,31,2,5号页框。试计算访问过程中发生的缺页中断次数和缺页中断率,并分别画出页框中内容的变化过程。如果接下来要访问逻辑地址为3320,试求其对应的物理地址是多少?

答案:

共6次缺页中断,缺页中断率为6/12 = 1/2。

1

1

1,2

1,2,3

1,2,3,4

1,3,4,2

3,4,2,1

4,2,1,5

2,1,5,6

2,5,6,1

5,6,1,2

6,1,2,5

3320/1024 分解逻辑地址:为第3个页面,第248单元。

由于3号页面不再内存中,需要淘汰6号页面,并将3号页面装入。6号页面替换的是4号页面,而4号页面原来在5号页框中,所以3号页面被装入5号页框中。

所以转换成物理地址为 5×1024+248 = 5368。

 

2、一个页式存储管理系统使用LRU(最近最少使用)页面替换算法,页面大小为100字节,如果一个作业的逻辑地址访问序列是:11、52、421、325、122、452、98、100、110、220、151、501,当分配给该作业的物理块数分别为3和4时,分别为20,31,2,5号页框。试计算访问过程中发生的缺页中断次数和缺页中断率,并分别画出页框中内容的变化过程。

答案:

对应的页面访问序列为0, 0, 4, 3, 1, 4, 0, 1, 1, 2, 1, 5

3个物理块的情况下,共7次缺页中断,缺页中断率为7/12。

4个物理块的情况下,共5次缺页中断,缺页中断率为5/12。

0 0

0 0

0,4 0,4

0,4,3 0,4,3

4,3,1 0,4,3,1

3,1,4 0,3,1,4

1,4,0 3,1,4,0

4,0,1 3,4,0,1

4,0,1 3,4,0,1

0,1,2 4,0,1,2

0,2,1 4,0,2,1

2,1,5 0,2,1,5

 

 

3、(中科院软件所1999年研究生试题)

在一个请求分页系统中,假如系统分配给一个作业的物理块数为3,并且此作业的页面走向为2、3、2、1、5、2、4、5、3、2、5、2。试用FIFO和LRU两种算法分别计算出程序访问过程中所发生的缺页次数。

                 

答案:

采用先进先出(FIFO)淘汰算法产生的缺页为9次。采用最近最少使用(LRU)淘汰算法产生的缺页次数为7次。

FIFO

走向

3

2

1

块1

块2

块3

缺页

 

 

 

 

1

3

2

5缺

 

 

LRU

走向

3

2

1

块1

块2

块3

缺页

 

 

 

 

 

 

 

2.8 题型8

抖动现象的解释:在计算机操作系统的虚拟存储管理中,抖动是指刚被调出的页又立即被调入所形成的频繁调入调出的现象。

 

 

 

2.9 题型9

磁盘调度算法;

1、有一具有40个磁道的盘面,编号为0~39,当磁头位于第11号磁道时,顺序来到如下磁道请求:磁道号:1、36、16、34、9、12、13;试用1)先来先服务算法FCFS、2)最短查找时间优先算法SSTF、3)扫描算法SCAN、4)电梯调度算法等三种磁盘驱动调度算法,给出其访问磁道的顺序,并计算出它们各自要来回穿越多少磁道?

 

答案:

FIFS为112 11-1-36-16-34-9-12-13,(10+35+20+18+25+3+1), 112

SSTF为55 11-12-13-16-9-1-34-36,(1+1+3+7+8+33+2),55

SCAN为66(由小到大) 11-12-13-16-34-36-39-9-1,(1+1+3+18+2+3+30+8), 66

SCAN为47(由大到小) 11-9-1-0-12-13-16-34-36,(2+8+1+12+1+3+18+2), 47电梯调度算法为60(由小到大)11-12-13-16-34-36-9-1,(1+1+3+18+2+27+8), 60

电梯调度算法为45(由大到小)11-9-1-12-13-16-34-36,(2+8+11+1+3+18+2), 45

猜你喜欢

转载自blog.csdn.net/yangqian201175/article/details/51244323