操作系统 习题 最经典

更新时间:2023-04-07 05:39:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

v1.0 可编辑可修改

1、设有两个优先级相同的进程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:=x+y z:=x+z

X=5, y=8, Z= 9.

2、在生产者-消费者问题中,假定在生产者和消费者之间的公用缓冲池中有n 个缓冲区,可利用互斥信号量mutexP使生产者进程实现对缓冲池的互斥使用,利用互斥信号量mutexC使消费者进程实现对缓冲池的互斥使用;利用资源信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将产品送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个产品。试用记录型信号量正确实现生产者和消费者的同步。

Semaphore mutexP=1, mutexC=1, empty=n, full=0;

1

v1.0 可编辑可修改Item buffer[n];

int in=out=0;

void producer()

{

While(1)

{

Produce an item in netxp;

wait(empty);

wait(mutexP);

buffer[in]=nextp;

in= (in+1) mod n;

signal(mutexP);

signal(full);

}

}

Void consumer()

{

While(1)

{

….

2

v1.0 可编辑可修改

3 wait(full);

wait(mutexC);

nextc=buffer[out];

out=(out+1) mod n;

signal(mutexC);

signal(empty);

……..

Consume the item in nextc;

…….

}

}

3、在读者—写者问题中,假定为实现Reader与Writer进程间在读或写时的互斥而设置了一个互斥信号量Wmutex。另外,再设置一个整型变量Readcount表示正在读的进程数目。由于只要有一个Reader 进程在读,便不允许Writer进程去写。因此,仅当Readcount=0,表示尚无Reader进程在读时,Reader进程才需要执行Wait(Wmutex)操作。若Wait(Wmutex)操作成功,Reader进程便可去读,相应地,做Readcount+1操作。同理,仅当Reader进程在执行了Readcount 减1操作后其值为0时,才须执行signal(Wmutex)操作,以便让Writer进程写。又因为Readcount是一个可被多个Reader进程访问

v1.0 可编辑可修改的临界资源,因此,也应该为它设置一个互斥信号量rmutex。试用记录型信号量正确实现读者—写者问题的同步。

semaphore rmutex=wmutex=1;

int readcount=0;

void reader(int i)

{

while(1)

{

wait(rmutex);

if(readcount==0) wait(wmutex);

readcount++;

signal(rmutex);

Perform read operation;

wait(rmutex);

readcount--;

if(readcount==0) signal(wmutex);

signal(rmutex);

}

}

void write(int j)

4

v1.0 可编辑可修改{

while(1)

{

wait(wmutex);

perform write operation;

signal(wmutex);

}

}

4、有两个作业A和B,分别在7:00和8:30到达系统,它们估计的

计算时间分别为小时和小时,系统在9:00开始以响应比高者优先算

法进行调度,请问在单道执行时这两道作业被选中的次序以及被选中时的响应比。

按照响应比的定义是:响应比 = 优先权= (等待时间+ 要求服务时间) /要求服务时间

∴在 9:00开始调度时两作业的啊应比如下:

A作业的响应比=(120分钟+ 48分钟)/48分钟=3.5

B作业的响应比= (30分钟+ 6分钟)/6分钟=6

因而应先选中作业B执行;作业B被选中时的响应比为6,待作业B 执行结束后再选作业A执行。

此时A的响应比= (120分钟+ 6分钟+ 48分钟)/48分钟=

5

v1.0 可编辑可修改

6 5、已知分段地址的结构如下:

① 在这样的地址结构中,允许一个作业最多可以分为多少个

② 每个段的最大长度是多少

③ 已知有一逻辑地址是0296H ,段表如下,物理地址是多

1)28=256

2) 28=256

3)0296 H= 0000 0010 1001 0110

2 150

+ 0001 1000 0000 0000 = 1896H

6K+ 150 = 6294

段内地址 段号

15 8 0 7

v1.0 可编辑可修改6、某采用分页存储管理的操作系统中,物理地址占32位,逻辑地址中页号占4位,页大小为4KB,

①该系统的内存空间的大小为多少

②每个物理块的大小为多少

③逻辑地址共几位

④每个作业的最大长度为多少

⑤若0页放在第3块中,1页放在第1块中,2页放在第9

块中,逻辑地址1020H对应的物理地址是多少

1)内存大小为232=4GB

2)每个物理块的大小和页的大小相等 4KB

3)逻辑地址共16位(页号占4位,由于页大小为4K,页内地址占12位)

4)每个作业的最大长度 24*4KB=64KB

5)1020H

1020H = 0001 0000 0010 0000 H

1 0000 0010 0000(偏移量)

第一页对应第1块所以 4K = 10000 0000 0000

+ 0000 0010 0000

0001 0000 0010 0000

1 0

2 0 H

7

v1.0 可编辑可修改

7、某操作系统采用动态分区分配存储管理技术,用户区存储空间为512KB,空闲区由空闲分区表管理。分配时采用从低地址部分开始的方案,并假设初始时存储空间处于全部空闲状态。对下述申请次序:req(300KB), req(100KB), release(300), req(150KB), req(30KB), req(40KB), req(60KB)

①若采用首次适应算法,在完成上述申请次序后,空闲区表

应该是什么状态(空闲区始址和分区大小)

②若采用最佳适应算法,在完成上述申请次序后,空闲区表

应该是什么状态(空闲区始址和分区大小)

③若申请序列后再加上req(90KB),那么采用上述两种不同

算法,将会使空闲区表呈现什么状态

1)空闲区表中有两个表目,第一个的起始地址是

280KB,大小为20KB;第二个的起始地址是400KB,

大小为112KB。

2)空闲区表中有两个表目,第一个的起始地址是

210KB,大小为90KB;第二个的起始地址是470KB,

大小为42KB。

3)第一种方式中,第二个空块可以满足申请要求,分

配后第二个空块的起始地址变为490KB,大小为

22KB。第一个空块不变。第二种方式中,第一个空

块正好满足申请要求,全部分配出去。只剩下第二8

v1.0 可编辑可修改

9 个空块。

8、在分页虚拟存储管理系统中,假定系统为某进程分配了4个内存块(将开始4页装入内存),页的引用顺序为:7,1,2,0,3,0,4,2,3,0,3,2,7,0,若采用FIFO 调度算法、LRU 调度算法时,分别产生多少次缺页中断依次淘汰的页是什么

FIFO :共发生了3次缺页中断,依次淘汰的页为7、1、2

LRU:共发生了3次缺页中断,依次淘汰的页为7、1、4

7 1 2 0 3 0 4 2 3 0 3 2 7

0 7 1 2 0 3 0 4 2 3 0 3 2 7

v1.0 可编辑可修改

9、系统中磁头停留在磁道号为100的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为:55、120、39、110。移动臂的运动方向:沿磁道号递减的方向移动。若分别采用FCFS磁盘调度算法、SSTF算法、SCAN算法时,所需寻道长度分别为多少

FCFS算法:100-55+ 120-55+ 120-39+ 110-39 = 262

SSTF算法:110-100 +120-110 + 120-55 + 55-39 =

SCAN算法: 100-55+ 55-39 +110-39 + 120-110 =

10、在FAT16文件系统中,且每个盘块的大小是512字节,

①如果每个簇可以有4个盘块,可以管理的最大分区空间是

多少

②如果每个簇可以有64个盘块,可以管理的最大分区空间

又是多少

1)216 * 4 * 512 = 128M

2)216 * 64 * 512 = 2G

10

v1.0 可编辑可修改11、某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘块空间,试问:

①位示图需要多少个字

②如果b(盘块号), i, j从1开始计数,第i字第j位

对应的块号是多少

③如果b(盘块号), i, j 从0开始计数,第i字第j位

对应的块号是多少

1)[500/32] =16

2 ) b = 32* (i-1) +j

3) b= 32*i+j

12、存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB 中共有13个地址项,第0~9 个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为4KB,若盘块号需要用4个字节来描述,请问系统中允许文件的最大长度是多少

直接地址: 10 * 4KB +

一次间接地址:(4KB/4B)* 4KB +

二次间接地址:(4KB/4B)* (4KB/4B) * 4KB +

三次间接地址:(4KB/4B)* (4KB/4B) * (4KB/4B) * 4KB = 40KB+4MB+4GB+4TB

11

v1.0 可编辑可修改13、设有一分页存储管理系统,向用户提供的逻辑地址空间最大为16页,每页4096字节,

①试问逻辑地址至少应为多少位

每页4096B,所以页内位移部分地址需要占12个二进制位,

逻辑地址空间最大为16页,所以页号部分地址需要占4个二进制位。故逻辑地址至少应为16位。

14、在两级索引分配方式下,如果每个盘块的大小为4KB,每个盘块号占4个字节,

①所允许的文件最大长度是多少

(4KB/4B) * (4KB/4B) * 4KB = 4GB

15、有3200个磁盘块可用来存储信息,如果用字长为16位的字来构造位示图,若位示图部分内容如图所示。

①位示图共需多少个字

②若某文件长度为3200B,每个盘块为512个字节,采用链

接结构且盘块从1开始计数,系统将为其分配哪些磁盘块

③试具体说明分配过程。

④若要释放磁盘的第300块,应如何处理

12

v1.0 可编辑可修改

1)3200/16=200

2)3200/512 =7 ; 20、24、25、26、27、37和38

3)顺序检索位示图,从中找到第一个值为0的二进制位,得到行号i=2,列号j=4 ;计算出找到的第一个盘块是 B1 = (2-1)*16+4=20第二个值为0的二进制位,得到行号i=2,列号j=8. ;计算出找到的第一个盘块是

B2=(2-1)*16+8=24

………….

修改位示图,令Map[2,4]=Map[2,8] = …..=1,并将对应块20、24……. 分配出去。

4)计算出磁盘第300块所对应的二进制位的行号i和列号j :

i = (300-1)/16 + 1 = 19 j = (300-1)MOD16 + 1= 12 修改位示图,令Map[19,12]=0,表示对应块为空闲块。

13

本文来源:https://www.bwwdw.com/article/cuvl.html

Top