操作系统练习题.docx
《操作系统练习题.docx》由会员分享,可在线阅读,更多相关《操作系统练习题.docx(12页珍藏版)》请在冰豆网上搜索。
操作系统练习题
四十一、在UNIX系统中运行下面程序,最多可产生多少个进程画出进程家族树。
P249
main()
{
fork();
fork();
fork();
}
[分析及相关知识]系统调用fork的功能是创建一个新进程,新进程运行与其创建者一样的程序,新创建的进程称为子进程,调用fork的进程称为父进程,父子进程都从fork调用后的那条语句开始执行。
当程序执行时,若所有进程都能成功地执行系统调用fork,则会产生最多数目的进程。
为了描述方便起见,将开始执行时的进程称为A进程,此时程序计数器PC,指向第一个fork调用。
main()
{
fork();/*←PC,进程A*/
fork():
fork();
}
当进程A成功地执行完第一个fork调用时,它创建了一个子进程,将此子进程称
为进程B。
此时,进程A、B的程序计数器PC指向第二个fork调用,进程A派生
了1个子孙进程.
main()
{
fork():
fork();/*←PC,进程A*/
fork();
}
main()
{
fork();
fork();/*←PC,进程B*/
fork();
}
当进程A、B成功地执行完第二个fork调用时,它们分别创建了一个子进程,将
这些子进程分别称为进程C、D.此时,进程A、B、C、D的程序计数器PC指向第
三个fork调用,进程A派生了3个子孙进程。
main()
{
fork();
fork();
fork();/*←PC,进程A*/
}
main()
{
fork();
fork();
fork();/*←PC,进程B*/
}
main()
{
fork();
fork();
fork();/*←PC,进程C*/
)
main()
{
fork();
fork();
fork();/*←PC,进程D*/
)
当进程A、B、C、D成功地执行完第三个fork调用时,它们分别创建了一个子进
程,将这些子进程分别称为进程E、F、C、H.此时,进程A、B、C、D、E、F、G、
H的程序计数器PC指向程序结束处,进程A派生了7个子孙进程。
main()
{
fork();
fork();
fork();
}/*←PC,进程A*/
main()
{
fork();
fork();
fork();
)/*←PC,进程B*/
main()
{
fork();
fork():
fork();
}/*←PC,进程C*/
main()
{
fork();
fork();
fork();
}/*←PC,进程D*/
main()
{
fork();
fork();
fork():
}/*←PC,进程E*/
main()
{
fork();
fork();
fork();
}/*←PC,进程F*/
main()
{
fork();
fork();
fork();
)/*←PC,进程G*/
main()
{
fork();
fork();
fork();
}/*←PC,进程H*/
进程家族树是一棵有向树,有向树的节点代表进程,由进程P指向进程Q的边表示由进程P创建了进程Q.我们称进程P是进程Q的父进程,进程Q是进程P的子进程,这样便形成了进程树。
解:
从上面的分析过程可以看出,执行第一个fork调用时,进程A创建了进程B;执行第二个fork调用时,进程A创建了进程C,进程B创建了进程D:
执行第三个fork调用时,进程A创建了进程E,进程B创建了进程F,进程C创建了进程G,进程D创建了进程H。
因此,在UNIX系统中运行题目中的程序,最多可产生7个进程,其进程家族树如图所示。
1、进程调度又称为低级调度,其主要功能是()
A选择一个作业调入内存
B选择一个主存中的进程调出到外存
C选择一个外存中的进程调入到主存
D将一个就绪的进程投入运行
2、下列进程调度算法中,进程可能会长期得不到调度的情况是()
A先来先服务调度算法
B抢占式静态优先权法
C时间片轮转调度算法
D非抢占式动态优先权法
v下列属于预防死锁的方法是()
A剥夺资源法
B资源分配图简化法
C资源互斥使用
D银行家算法
v下列属于检测死锁的方法是()
A银行家算法
B撤销进程法
C资源静态分配法
D资源分配图简化法
v为了照顾紧迫性作业,应采用()
A先来先服务调度算法
B短作业优先调度算法
C时间片轮转调度算法
D优先权调度算法
设某多道系统,有磁带机2台,打印机1台,采用资源的静态分配法(假设作业获得资源后才允许进入内存)以及短作业优先调度算法和先来先服务进程调度算法。
忽略I/O时间,现有作业序列如下,求5个作业完成的时间
作业名
到达时间
计算时间
需磁带机
需打印机
J1
8:
00
25分钟
1台
1台
J2
8:
20
15分钟
0台
1台
J3
8:
20
20分钟
1台
0台
J4
8:
30
20分钟
1台
0台
J5
8:
35
10分钟
1台
1台
设某多道系统,有供用户使用的内存空间为200K,磁带机2台,打印机1台,系统采用可变分区管理方式,对磁带机、打印机采用静态分配,并忽略I/O时间,现有一作业序列如下:
作业
到达时间
计算时间
要求主存量
申请磁带机数
申请打印机数
J1
8:
00
25分钟
30K
1台
1台
J2
8:
20
15分钟
60K
0台
1台
J3
8:
20
20分钟
120K
1台
0台
J4
8:
30
20分钟
40K
1台
0台
J5
8:
35
10分钟
20K
1台
1台
设作业调度采用短作业优先,且优先分配主存低地址区域,且不能移动内存中的作业,内存中的作业采用平分CPU时间,则作业调度的次序是:
J1->j3->j4->j5->j2
作业
开始时间
结束时间
J1
8:
00
8:
30
J3
8:
20
9:
00
J4
8:
30
9:
10
J5
8:
35
9:
15
J2
8:
20
9:
30
设某任务被分为大小相等的4段,系统为每段建立了一个由8个页表项的页表,设页面大小为2KB,问
(1)每段最大尺寸为多少?
(2)逻辑地址空间多大?
(3)逻辑地址格式是什么?
(4)设该任务访问到物理单元为00021ABCH中的一个数据,则该系统的物理地址空间最大为多少?
解:
(1)2*8=16KB
(2)16*4=64KB
(3)
v判断:
请求分页管理系统,若把页面大小增加一倍,则缺页中断次数会减少一半
v判断:
虚地址即程序执行时所要访问的内存地址
v在请求分页存储管理系统中,地址变换过程可能会因为()原因而发生中断
v虚存的理论基础是()
v虚存中LRU算法,分配3页,每页存200个整数,其中第一页存放程序,程序已在内存,数组A按先行后列存储,求程序A和B的缺页次数分别为多少?
程序A:
程序B:
Fori:
=1to100doForj:
=1to100do
Forj:
=1to100doFori:
=1to100do
A[i,j]:
=0A[i,j]:
=0
1.设备管理的()功能来实现用户程序与实际的物理设备无关。
A设备分配B设备独立性
C缓冲管理D虚拟设备
技术可以实现设备的()
A独占分配B共享分配C虚拟分配D物理分配
3.以下()是磁盘寻道调度算法
A时间片轮转法B优先级调度算法
C最近最久未使用算法D先来先服务算法
4.缓冲技术中的缓冲池是在()
AROMBcacheC内存D外存
5.为了使系统中多个进程同时处理输入输出,最好使用()技术。
A缓冲池B循环缓冲C双缓冲D单缓冲
中以下()是硬件机制
AspoolingB通道C文件D虚拟设备
7.以下关于缓冲的描述正确的是()
A以空间换时间B以时间换空间
C提高外设的处理速度D提高CPU的处理速度
8.在Spooling系统中,用户输出数据首先送入()
A内存固定区域B打印机
C磁盘固定区域D输出设备
9.中断处理中,I/O中断是指()
A 设备出错 B 数据传输结束
C 数据传输开始 D 数据传输结束或设备出错
10.磁盘请求以10,22,20,2,40,6,38柱面的次序到达磁盘驱动器,寻道时每个柱面的移动需要6ms,计算以下算法的寻道时间是多少?
(假设磁头由20号柱面向柱面号大的方向移动)
FCFS,SSTF,SCAN,CSCAN
FCFS:
(10+12+20+38+34+32)*6=(30+50+66)*6=146*6=876ms
11.磁盘扇区大小为512B,每个磁道有80个扇区,磁盘转速360rpm。
处理机使用中断方式从磁盘读取数据,每个字节产生一次中断,如果处理中断需要,试问:
(1)处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比是多少?
(忽略寻道时间)
(2)若采用DMA方式,每读完一个扇区产生一次中断,处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比又是多少?
19桌上有一个空的水果盘,盘中一次只能放一个水果,服务员,男顾客和女顾客共用这个盘子,服务员可以向盘中放草莓,也可以向盘中放香蕉,男顾客专等吃盘中的草莓,女顾客专等吃盘中的香蕉,规定每次当盘子空时只能放一个水果供顾客取用,请用信号量机制实现服务员,男顾客,女顾客三个进程的同步
解:
设信号量:
dish表示服务员是否可以向盘中放水果1
strawberry表示男顾客是否可以取草莓0
banana表示女顾客是否可以取香蕉吃0
p(dish)p(banana)p(strawberry)
服务员放水果女顾客取草莓吃男顾客取香蕉吃
if放的是草莓v(dish)v(dish)
v(banana)
else
v(strawberry)
20设有两个优先级相同的进程P1、P2,令信号量S1,S2的初值为0,已知z=2,试问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:
=y+z;z:
=x+z;
解=5,y=7,z=4;
=5,y=7,z=9;
=5,y=12,z=9;
某系统有R1,R2,R3共3种资源,在T0时刻,P1,P2,P3和P4这4个进程对资源的占有和需求情况见下表,此刻系统可用资源向量为(2,1,2),问:
若此时P1,P2均发出资源请求向量Request(1,0,1)为保持系统安全性,应该如何分配资源给这两个进程?
说明所采用的原因。
进程
Max(r1,r2,r3)
Allocation(r1,r2,r3)
Need(r1,r2,r3)
P1
3,2,2
1,0,0
2,2,2
P2
6,1,3
4,1,1
2,0,2
P3
3,1,4
2,1,1
1,0,3
P4
4,2,2
0,0,2
4,2,0
解:
设两个向量work=Available(2,1,2),
Finish[i]=false;i=1,2,3,4;
当Request2(1,0,1)时;
1.Request2<=Need2;
2.Request2<=Available;
3.所以
Available=Available-Request2=(1,1,1);
Allocation2=Need2+Request2=(5,1,2);
Need2=Max2-Allocation2=(1,0,1);
此时work=Available=1,1,1;
因由Need2<=work,故P2可完成,完成后,work=Available+Max2=(8,2,5).
当P2完成后,释放资源后。
Request1(1,0,1)均满足。
故采取分配方式:
先给P2(1,0,1)资源,等P2完成后,再把资源分配给P1.即可安全完成。
在采用页式管理的系统中,某作业的页表如图,页面大小为1k,逻辑地址2049对应的物理地址是(1k+1)
页号
块号
0
2
1
4
2
1
3
8
解:
2049=2*1024+1;
由表可得:
页号对应的块号为1,则物理地址为:
1024*1+1=1K+1=1025;
一个进程有8个页面,对页面的访问轨迹如下:
1,0,2,2,1,7,6,7,0,1,2,0,3,0,4,5,1,5,2,4,5,6,7采用OPT,LRU,FIFO置换算法,分配给进程的存储块数为4块时,缺页次数分别为多少?
(设初始内存无进程页面)
OPT(缺页:
11)
1
0
2
2
1
7
6
7
0
1
2
0
3
0
4
5
1
5
2
4
5
6
7
1
1
1
1
1
1
1
1
1
6
6
0
0
0
0
0
0
4
4
4
7
2
2
6
6
3
3
5
5
5
7
7
2
2
2
2
2
2
FIFO(缺页:
14)
1
0
2
2
1
7
6
7
0
1
2
0
3
0
4
5
1
5
2
4
5
6
7
1
1
1
1
6
6
6
6
4
4
4
4
6
6
0
0
0
0
1
1
1
1
5
5
5
5
7
2
2
2
2
0
0
0
0
1
1
1
1
7
7
7
7
3
3
3
3
2
2
2
LRU(缺页:
14)
1
0
2
2
1
7
6
7
0
1
2
0
3
0
4
5
1
5
2
4
5
6
7
1
1
1
1
1
1
1
1
4
4
4
4
4
4
0
0
0
6
6
2
2
2
5
5
5
5
5
2
2
2
0
0
0
0
0
0
2
2
7
7
7
7
7
3
3
3
1
1
6
6
设某文件A由100个物理块组成,现分别用连续文件、链接文件、索引文件来构造。
针对三种不同结构,执行以下操作各需多少次磁盘I/O?
(1)将一个物理块加到文件头部
(2)将一个物理块加到文件中间
(3)将一个物理块加到文件尾部