操作系统习题复习
题型 单选、多选、计算、简答、
可参考
两套题:最新操作系统期末考试试题和标准答案及评分标准
https://wenku.baidu.com/view/b7f0215a7d1cfad6195f312b3169a4517723e594.html
1.单选、
1、批处理操作系统的主要缺点是( )。
A、资源利用率不高 B、作业吞吐量小
C、无人机交互能力 D、作业周转时间短
1、批处理操作系统的主要缺点是( )。
A、资源利用率不高 B、作业吞吐量小
C、无人机交互能力 D、作业周转时间短
1、批处理操作系统的主要缺点是( )。
A、资源利用率不高 B、作业吞吐量小
C、无人机交互能力 D、作业周转时间短
4、进程在系统中是否存在的惟一标志是( D )
A、数据集合 B、目标程序 C、源程序 D、进程控制块
5、下列进程状态的转换中,哪一个是不正确的( )。
A、就绪→运行 B、运行→就绪
C、就绪→阻塞
D、阻塞→就绪
6、以下与进程通信有关的叙述中,错误的是( A )。
A、进程通信是指进程间的信息交换 B、剪贴板是一种进程通信方式
C、磁盘文件不是一种进程通信方式 D、信号量是一种进程通信方式
8、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息或建立某个条件后再向前执行,这种关系是进程间的( )关系。
A、同步 B、互斥 C、竞争 D、合作
9、设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时互斥信号量S的可能取值是( )。
A、1,0,-1,-2
B、2,0,-l,-2
C、1,0,-1 D、3,2,1,0
如果没有进程使用,S为1,有一个进程使用为0,若此时又有进程想使用,s为-1,第三个进程也想使用,这时s为-2。
10、一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。
A、先来先服务 B、轮转
C、最高响应比优先
D、均衡调度
11、若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许( )个进程参于竞争,而不会发生死锁。
A、5 B、2 C、3 D、4
由上题,r=5,m=2,带入公式,p≤4。因此最多允许4个进程参于竞争。
支持程序浮动的地址转换机制是( D )。
A、页式地址转换 B、段式地址转换
C、静态重定位 D、动态重定位
13、某基于动态分区存储管理的计算机,其主存容量为55 MB(初始为空闲),采用最佳适配(Best Fit)算法,分配和释放的顺序为:分配15 MB、分配30 MB、释放15
MB、分配8 MB、分配6 MB,此时主存中最大空闲分区的大小是( )。
A、7 MB B、9 MB
C、10 MB D、15 MB
在前面两个请求发生时,主存的空间上有空余,可以直接满足,这样主存还剩下最顶端的10MB闲置空间(假定从最下面开始)。在释放15MB后,在30MB的上下分别有15MB和10MB的闲置空间。分配8MB的请求将在10MB的空间满足,再分配6MB就只能从15MB的闲置空间满足,剩下9MB的闲置空间。这块空间是主存中最大的空闲分区。
14、在段页式分配中,CPU每次从内存中取一次数据需要( )次访问内存。
A、1 B、2 C、3 D、4
在段页式分配中,取一次数据时先从内存查找段表,再查找相应的页表,最后拼成物理地址后访问内存,共需要3次内存访问。
14、在段页式分配中,CPU每次从内存中取一次数据需要( )次访问内存。
A、1 B、2 C、3 D、4
在段页式分配中,取一次数据时先从内存查找段表,再查找相应的页表,最后拼成物理地址后访问内存,共需要3次内存访问。
16、虚拟内存的基础是( )。
A、局部性理论 B、变量的连续访问
C、代码的顺序执行 D、指令局部性
[解析] 本题考查虚拟存储器的相关概念。虚拟内存的基础是局部性原理,包括时间局部性和空间局部性。因此本题选择A。
17、( B )是请求分页存储管理方式和基本分页存储管理方式的区别。
A、地址重定位 B、不必将作业全部装入内存
C、采用快表技术 D、不必将作业装入连续区域
[解析] 本题考查请求分页存储管理方式的基本概念。请求分页存储管理方式与基本分页存储管理方式的区别是,前者采用了虚拟存储技术,而后者没有。因此本题选择B。
17、( B )是请求分页存储管理方式和基本分页存储管理方式的区别。
A、地址重定位 B、不必将作业全部装入内存
C、采用快表技术 D、不必将作业装入连续区域
[解析] 本题考查请求分页存储管理方式的基本概念。请求分页存储管理方式与基本分页存储管理方式的区别是,前者采用了虚拟存储技术,而后者没有。因此本题选择B。
19、某系统采用改进型CLOCK置换算法,页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为四类:(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为( A )。
A、(0,0),(0,1),(1,0),(1,1) B、(0,0),(1,0),(0,1),(1,1)
C、(0,0),(0,1),(1,1),(1,0) D、(0,0),(1,1),(0,1),(1,0)
访问>修改
20、 系统抖动是指( )。
A、使用机器时,造成屏幕闪烁的现象
B、刚被调出的页面又立即被装入所形成的频繁装入调出的现象
C、系统盘有问题,造成系统不稳定的现象
D、由于主存分配不当,偶然造成主存不够的现象
系统抖动是指被调出的页面又立即被调入所形成的频繁调入调出现象。
21、 如果IO设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是( )。
A、程序查询 B、中断方式
C、DMA方式 D、无条件存取方式
整个I/O控制方式的发展就是将CPU从中解脱出来,DMA方式与通道方式中进行的数据交换都不经过CPU来完成。
22、 在以下问题中,( )不是设备分配中应考虑的问题。
A、及时性 B、设备的固有属性
C、与设备无关性 D、安全性
实时系统考虑实时性
23、 索引文件由逻辑文件和( )组成。
A、符号表 B、索引表
C、交叉访问表 D、链接表
分析:文件的逻辑结构和物理结构都有索引的概念。逻辑索引的目的是加快文件数据的定位,从用户角度出发。物理索引的主要目的是为了管理不连续的物理块,从系统管理的角度出发。
对索引文件存取,必须查找索引表。索引表项包含每个记录的长度和在逻辑文件中的起始位置。每个记录都有一个索引项,提高了存储的代价。
24、 在文件系统中,以下不属于文件保护的方法是( D )。
A、口令 B、存取控制
C、用户权限表 D、读写之后使用关闭命令
[解析] 本题考查文件保护的方法。在文件系统中,口令、存取控制、用户权限表都是常用的文件保护方法。因此本题选择D。
25、 一个磁盘的转速为7200转/分,每个磁道有160个扇区,每扇区有512字节,那么理想情况下,其数据传输率为( )。
A、7200×160KB/s B、7200KB/s
C、9600KB/s D、19200KB/s
[解析] 磁盘的转速为7200r/min=120r/s,转一圈经过160个扇区,每个扇区有512B所以数据传输率为120×160×512/1024=9600KB/s。
磁盘的数据传输率=每一道的容量/旋转一圈的时间=每一道的容量×转速
1、一个进程是PCB、程序和数据的组合。( √)
进程控制块(PCB) + 程序
+ 数据 = 进程实体
2、时间片轮转调度算法是绝对可抢占的调度算法。(√
)
[解析] 本题目考查各种调度算法的特点。先来先服务调度算法是不可抢占的,优先级调度算法和短进程优先调度算法可以分为可抢占和不可抢占两种,时间片轮转调度算法在时间片到达时将剥夺正在执行的进程的处理机,把处理机分配给就绪队列中的队首进程,即时间片轮转调度算法一定是可抢占的。
3、分页式存储管理会产生外部碎片。(×
)
分页式存储管理有内部碎片,分段式存储管理有外部碎片。
以下存储管理方式中,会产生内部碎片的是( )。
Ⅰ.分段虚拟存储管理 Ⅱ.分页虚拟存储管理
Ⅲ.段页式分区管理 Ⅳ.固定式分区管理
A.Ⅰ、Ⅱ、Ⅲ
B.Ⅲ、Ⅳ
C.只有Ⅱ
D.Ⅱ、Ⅲ、Ⅳ
只要是固定的分配就会产牛内部碎片,其余的都会产生外部碎片。如果固定和不固定同时存在(例如段页式),还是看成固定。
分段虚拟存储管理:每一段的长度都不一样(对应不固定),所以会产生外部碎片。
分页虚拟存储管理:每一页的长度都一样(对应固定),所以会产生内部碎片。
段页式分区管理:既有固定,也有不固定,以固定为主,所以会有内部碎片;
固定式分区管理:很明显固定,会产生内部碎片。
4、在采用SPOOLing的系统中。用户的打印结果首先被送到了终端。( ×)
在SPOOLing系统中。用户的输出数据先送入输出井,输出井是在磁盘上开辟的存储区域。SPOOLing的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中采用的一项将独占设备改造成共享设备的技术。引入Spoolint技术为了满足多道程序或多进程对独占设备的共享使用,这种技术不仅提高了设备的利用率,而且缩短了用户进程的周转时间,它是一种以空间换取时间的技术。
5、磁盘上的文件,是以字节为单位读/写的。( ×)
磁盘上的文件以 块 为单位读写
1、( )不是分时系统的基本特征。
A、同时性
B、独立性 C、实时性 D、交互性
[解析] 分时系统的特点是:多路性、交互性、独立性和及时性。没有同时性,所以选项A)是错误的。
2、并发性是指若干事件在( )发生。
A、同一时刻 B、同一时间间隔 C、不同时刻
D、不同时间间隔内
[解析] 并发与并行
并发性是指两个或多个事件在同一时间内间隔发生。
并行性是指两个或多个事件在同一时刻发生。
3、当用户程序执行访管指令时,中断装置将使中央处理器( )工作。
A、维持在目态 B、从目态转换到管态
C、维持在管态 D、从管态转换到目态
[解析] 中央处理器有两种工作状态:管态和目态。当中央处理器处于管态时可执行包括特权指令在内的一切机器指令;当中央处理器处于目态时不允许执行特权指令。所以,操作系统程序占用中央处理器时,应让中央处理器在管态下工作,而用户程序占用中央处理器时,应让中央处理器在目态下工作。
4、进程和程序的一个本质区别是( A )。
A、前者为动态的,后者为静态的
B、前者存储在内存,后者存储在外存
C、前者在一个文件中,后者在多个文件中
D、前者分时使用CPU,后者独占CPU
5、一个进程的基本状态可以从其他两种基本状态转变过去,该基本状态一定是( )。
A、执行状态 B、阻塞状态 C、就绪状态 D、完成状态
执行状态 à
阻塞状态
执行状态 à
就绪状态
就绪状态 à
执行状态
阻塞状态 à 就绪状态
只有就绪状态可以既由运行状态转变过去也能由阻寨状态转变过去。时间片到运行状态变为就绪状态,当所需要资源到达进程由阻塞状态转变为就绪状态。
6、使进程从运行状态切换到等待状态所用的进程控制原语是( )。
A、阻塞原语 B、唤醒原语
C、创建原语
D、撤消原语
运行状态 à 等待状态
7、关于线程以下的说法正确的是( )。
A、线程是处理器的独立调度单位
B、线程是资源分配的独立单位
C、同一进程中多线程不能独立执行
D、同一进程中每个线程有独立的主存空间
在操作系统中引入进程是为了提高资源的利用率和系统的吞吐量。但在多进程并发的执行的情况下,进程即是资源的拥有者,又是独立调度和分派的单位,在进程创建,终止,切换中,都需要分配或撤消资源,系统需要付出较大的时空开销,因此引入线程,线程分离了进程的两个属性:资源的拥有者、独立调度和分派的单位。在支持线程的操作系统中,进程是资源分配的基本单位.线程是实施调度和分派的基本单位。同一进程的线程共享该进程所拥有的资源,同属一个进程的线程间切换不会导致进程的切换也就没有大量资源的切换,因此大大减少了系统的开销。
8、共享变量是指( )访问的变量。
A、只能被系统进程 B、只能被多个进程互斥
C、只能被用户进程 D、可被多个进程
共享变量是指可被多个进程访问的变量。
9、有两个并发执行的进程P1和进程P2,共享一个初值为1的内存x。P1对x加1,P2对x减1、加1和减1的指令序列分别如下:
// 加1操作 // 减1操作
load R1, x //取x的内容到R1 load R2, x
//取x的内容到R2
inc R1 //将R1内容增加1 dec R2 //将R2内容减少1
store x,R1 //将R1的内容存入x store x,R2 //将R2的内容存入x
两个操作完成后,x的值可能为( )。
A、-1或3
B、1 C、0、1、2 D、-1、0、1、2
[解析] 并发与并行
并发性是指两个或多个事件在同一时间间隔内发生。
并行性是指两个或多个事件在同一时刻发生。
顺序执行时
x=1
x=0 x=1
x=1
x=2 x=1
[解析] 本题目考查进程并发执行的顺序。若进程P1和P2顺序执行时,无论P1先执行,还是P2先执行,其结果均为1;
若进程P1和P2在并发执行时其指令序列交替执行,若P1执行到Inc R1后,P2执行,P2完成后,P1再接着执行,则其结果为2;
若P2先执行到Dec R2后,P1执行,P1完成后,P2再接着执行,在其结果为0。因此应该选C。
10、为了对紧急事件或重要进程进行调度,调度算法应采用( B )。
A、先来先服务法 B、优先级法
C、短作业优先法 D、时间片轮转法
11、关于静态分配,说法错误的是( )。
A、也称为预分配资源
B、仅当系统给进程分配了所需的资源后,该进程才开始执行
C、能预防死锁
D、提高了资源的利用
12、把逻辑地址转变为内存的物理地址的过程称作( )。
A、编译 B、连接 C、运行 D、重定位
把逻辑地址转变为内存的物理地址的过程称作重定位
13、关于静态分页存储管理的页表,下列说法错误的是( )。
A、内存中每个作业都对应着一个页表
B、页表属于操作系统的内核数据结构
C、如果在不同时间运行同一作业,那么每次运行时页表都是相同的
D、页表存放在内存中
14、在分页管理系统中,程序的地址空间是连续的,分页的地址重定位是由( )完成的。
A、程序员 B、硬件
C、编译软件 D、都不对
15、在段页式存储管理中,地址映像表是( )。
A、每个作业或进程的一张段表、两张页表
B、每个作业或进程的每个段一张段表、一张页表
C、每个作业或进程的一张段表、每个段一张页表
D、每个作业或进程的一张页表,每个段一张段表
16、实施虚拟存储器管理的依据是程序的( )。
A、局部性原理 B、动态性原理
C、并发性原理 D、一致性原理
17、请求分页存储管理中,若把页面尺寸增大一倍而且可容纳的最大页数不变,则在程序顺序执行时缺页中断次数会( )。
A、减少 B、增加
C、可能增加也可能减少 D、不变
18、在请求分页系统中,( )没有优先考虑最近使用过的页面。
A、最佳置换算法 B、最近最久未使用算法
C、先进先出算法 D、时钟置换算法
19、某虛拟存储器系统采用页式内存管理,使用LRU页面替换算法,考虑下面的页面访问地址序列:
1 8 1 7 8 2 7 2 1 8 3 8 2 1 3 1 7 1 3 7
假定内存容量为4个页面,开始时是空的,则页面失效次数是(
)。
A、4 B、5
C、6 D、7
20、以下页面置换算法中,( )可能会产生Belady现象。
A、最佳置换算法 B、最近最久未使用算法
C、先进先出算法 D、时钟置换算法
21、( )用来连接大量的低速或中速IO设备。
A、数据选择通道 B、字节多路通道
C、数据多路通道 D、IO处理机
22、 操作系统中的SPOOLing技术,实质是将( )转化为共享设备的技术。
A、虚拟设备 B、独占设备
C、脱机设备 D、块设备
23、 有一个顺序文件含有10000记录,平均查找的记录数为5000个,采用索引顺序文件结构,则最好情况下平均只须查找( )次记录。
A、1000 B、10000
C、100 D、500
24、 为了对文件系统中的文件进行安全管理,任何一个用户在进入系统时都必须进行注册,这一级安全管理是( )。
A、系统级 B、目录级
C、用户级 D、文件级
25、 下列算法中,用于磁盘调度的是( ) 。
A、时间片轮转法 B、LRU算法
C、最短寻找时间优先算法 D、优先级高者优先算法
2.多选
3.计算题、
1、同步和互斥问题
2、单道程序和多道程序
3、处理机调度
4、死锁
5、虚拟内存
1、同步和互斥问题
进程同步典型例题(操作系统) - 百度文库
https://wenku.baidu.com/view/5c4b0eee6294dd88d0d26b98.html
例1.有三个进程,进程get从输入设备上不断读数据,并存入buffer1;进程cut不断将buffer1的内容剪切到缓冲区buffer2,进程put则不断将buffer2的内容在打印机上输出。三个进程并发执行,协调工作。写出该三个进程并发执行的同步模型。
分析存在如下同步关系:
(1)只有buffer1为空,get才能工作,并使buffer1为满。
(2)要求buffer1为满,同时buffer2为空,cut才能工作,工作结果使buffer1为空,buffer2为满。
(3)只有buffer2为满,put才能工作,并使buffer2为空。
解答:
(1)设置信号量
设信号量empty1表示缓冲区buffer1为空,初值为1
设信号量full1表示缓冲区buffer1为满,初值为0
设信号量empty2表示缓冲区buffer2为空,初值为1
设信号量full2表示缓冲区buffer2为满,初值为0
复制收展Cppsemaphore empty1=1,full1=0,empty2=1,full2=0;
get(){
while(true){
wait(empty1);
get操作,获取数据
signal(full1);
}
}
cat(){
while(true){
wait(full1);
wait(empty2);
cut操作
signal(full1);
signal(empty1);
}
}
put(){
while(true){
wait(full2);
put操作
signal(empty2);
}
}
main(){
cobegin
get();
cat();
put();
coend
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
信号semaphore 信号signal
wait和signal 是操作系统的原子操作
把s定义为整形信号量
wait(s)//用于申请资源
signal(s)//用于释放资源
为什么wait和signal又分别被称作P,V操作?
因为Dijkstra是荷兰人。在最初论文以及大多数文献中,用P代表wait。用V代表signal。是荷兰语中高度(proberen)和增量(verhogen)
在进程控制中如何合理对共享资源分配便是一个关键的问题,所以引入了信号量的这个概念,通过pv操作便可以达到对空闲共享资源的合理分配。
一、信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。
1)、当它的值大于0时,表示当前可用资源的数量;
2)、当它的值小于0时,其绝对值表示等待使用该资源的进程个数。
二、PV操作,只有通过pv操作才可以改变信号量的值。
1)、p操作(wait):申请一个单位资源,进程进入。简而言之就是信号量减一。
2)、v操作(signal):释放一个单位资源,进程出来。简而言之就是信号量加一。
例2.一个司机与售票员的例子
在公共汽车上,为保证乘客的安全,司机和售票员应协调工作:
停车后才能开门,关车门后才能行车。用PV操作来实现他们之间的协调。
分析存在如下同步关系:
(1)售票员关门后,司机才能开车。
(2)司机到站停车后,售票员才能开门。
设信号量close表示关门开车,初值为0;
设信号量stop表示到站开门,初值为0
复制收展Cppsemaphore close=0,stop=0;
driver(){
while(true){
wait(close);
启动车辆;
正常行驶;
到站停车;
signal(stop);
}
}
conductor(){
while(true){
关门
signal(close);
售票
wait(stop);
开门
}
}
main(){
cobegin
conductor();
driver();
coend
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
3、(本题8分)桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。
试用用信号量的P、V操作(或wait操作、signal操作)实现爸爸、儿子、女儿三个并发进程的同步。
复制收展Cppsemaphore empty=1,mutex=1,apple=0,orange=0; //为四个信号量赋初值
void father(){
while(true){
wait(empty); //等待盘子为空
wait(mutex); //等待获取对盘子的操作
爸爸向盘中放一个苹果;
signal(mutex); //释放对盘子的操作
signal(apple); //通知女儿可以来盘子中取苹果
}
}
void son(){
while(true){
wait(orange); //判断盘子中是否有桔子
wait(mutex); //等待获取对盘子的操作
儿子取出盘中的桔子;
signal(mutex); //释放对盘子的操作
signal(empty); //盘子空了,可以继续放水果了
}
}
void daugther(){ //女儿与儿子进程差不多
while(true){
wait(apple);
wait(mutex);
女儿取出盘中的苹果;
signal(mutex);
signal(empty);
}
}
void main() {
cobegin
father();
son();
daugther();
coend
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
2、单道程序和多道程序
单道批处理系统(Simple Batch Processing System)
(1955-1965,晶体管时代,出现监控程序)
编程语言:汇编语言
单道:内存中仅有一道作业在运行
批处理:计算机系统对一批作业自动进行处理
1.处理过程
把一批作业(用户程序+数据+作业说明书)以脱机方式输入到磁盘上,并在系统中配以监督程序(Monitor,OS雏形)将作业逐个送入内存并运行。
2.特征:单道性、顺序性、自动性
优点:减少CPU空闲时间,提高资源利用率和系统吞吐量。
缺点:人机交互性差,CPU和I/O设备忙闲不均(取决于作业的特性)。
解决办法:多道程序设计技术
1、批处理操作系统的主要缺点是( )。
A、资源利用率不高 B、作业吞吐量小
C、无人机交互能力 D、作业周转时间短
[解析] 批处理操作系统的优点是系统资源利用率高和作业吞吐量大,以及作业流程的自动化。主要缺点是作业一旦进入系统,用户就不能直接干预作业的运行。
多道批处理系统(Multiprogrammed Batch Processing System)
(1965-1980,半导体、小规模集成电路时代)
1.多道程序设计的基本概念
在内存中同时存放多个作业,使之同时处于运行状态(均已开始运行但尚未结束)共享系统资源。
单CPU系统中的多道程序运行的特征
宏观上并行:并发程序都已开始执行,但都未结束
微观上串行:并发程序轮流占有CPU交替执行
例题2 理解单道和多道程序执行时的不同
例:A、B两个程序,程序A按顺序使用CPU 10s,设备甲5s,CPU 5s,设备乙10s,CPU 10s,程序B按顺序使用设备甲10s,CPU 10s,设备乙5s,CPU 5s,设备乙10s。问:
①在顺序环境下执行程序A和B,CPU利用率多少? ②在多道环境下呢?
答:①A和B顺序执行时,A执行完毕B才开始,总共耗时80s,占用CPU40s,故CPU利用率为40/80=50%。
②多道时,两程序共耗时45s,故CPU利用率为40/45=88.89%
3、处理机调度
低级调度的功能和类型
1.低级调度的主要功能
调度程序两项任务:调度和分派。
调度实现调度策略,确定就绪进程/线程竞争使用处理器的次序的裁决原则,即进程/线程何时应放弃CPU和选择哪个来执行;
分派实现调度机制,确定如何时分复用CPU,处理上下文交换细节,完成进程/线程和CPU的绑定和放弃的实际工作。
调度机制逻辑功能程序模块组成
队列管理程序:管理等待调度的进程/线程(排队)。
上下文切换程序时:当发生进程/线程切换时,用来保存旧现场,调入新现场。
分派程序:分派CPU给选中的进程/线程。
3.1.低级调度的基本类型
第一类称剥夺式:
两种处理器剥夺原则
一是高优先级进程/线程可剥夺低优先级进程/线程,
二是当运行进程/线程时间片用完后被剥夺。
第二类称非剥夺式:
一旦某个进程/线程开始运行后便不再让出处理器。
比较
剥夺式策略的开销大,但可以避免进程/线程长时间的独占处理器;
很多操作系统使用两种测略的组合,内核关键程序是非剥夺式的,用户进程是剥夺式的。
3.2 作业调度和低级调度算法
1、先到先服务调度(first-come,first-served,FCFS)
- 先请求CPU的进程被首先分配到CPU,可用FIFO队列来实现
- 平均周转时间通常相当长,与作业的提交和调度顺序有关
- 非抢占调度
例1
进程 区间时间
P1 24
P2 3
P3 3
P1 | P2 | P3 |
---|
平均周转时间(24+27+30)/3=27
处理机调度
http://www.leixingke.com/article/detail/wPgGAtgg
1.周转时间:从进程提交开始,到完成为止这段时间间隔(仅考虑进程在就绪队列上的等待时间和进程在CPU上的执行时间);
2.平均周转时间:所有进程的周转时间之和除以进程总数;
3.带权周转时间:进程的周转时间除以系统为它服务的时间;
4.平均带权周转时间:所有进程的带权周转时间之和除以进程总数。
//第一个进程,开始时间 = 到达时间
//开始时间 = 上一个进程的完成时间
//完成时间 = 开始时间 + 服务时间
//周转时间 = 完成时间 - 到达时间
//带权周转时间 = 周转时间 / 服务时间
2. 最短作业优先算法
- SJF算法以进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。
- 算法易于实现,效率不高,主要弱点是忽视了作业等待时间。
- 会出现饥饿现象。
- SJF的平均作业周转时间比FCFS要小,故它的调度性能比FCFS好。
- 实现SJF调度算法需要知道作业所需运行时间,否则调度就没有依据,要精确知道一个作业的运行时间是办不到的。
3.最短剩余时间优先算法
- SRTF把SJF算法改为抢占式的。一个新作业进入就绪状态,如果新作业需要的CPU时间比当前正在执行的作业剩余下来还需的CPU时间短,SRTF强行赶走当前正在执行作业。称最短剩余时间优先算法
- 此算法不但适用于JOB调度,同样也适用于进程调度。
1.系统 有5个进程: A, B, C, D ,E。它们的到达时间以及估计运行的时间如下图所示:
进程 | 到达时间(ms) | 估计运行时间(ms) |
A | 0 | 3 |
B | 2 | 6 |
C | 4 | 4 |
D | 6 | 5 |
E | 8 | 2 |
请计算使用下述调度算法时,进程的周转时间和进程流的平均周转时间。
(1)FCFS 先到先服务调度
(2) SPN 最短作业优先算法
(3) HRRN 最高响应比调度原则
(4) RR(q=1) 时间片轮转法原则
4、进程在系统中是
否存在的惟一标志是( )
A、数据集合 B、目标程序 C、源程序 D、进程控制块
5、下列进程状态的转换中,哪一个是不正确的( )。
A、就绪→运行 B、运行→就绪
C、就绪→阻塞
D、阻塞→就绪
6、以下与进程通信有关的叙述中,错误的是( )。
A、进程通信是指进程间的信息交换 B、剪贴板是一种进程通信方式
C、磁盘文件不是一种进程通信方式 D、信号量是一种进程通信方式
7、关于线程以下的说法正确的是( )。
A、线程是处理器的独立调度单位
B、线程是资源分配的独立单位
C、同一进程中多线程不能独立执行
D、同一进程中每个线程有独立的主存空间
在操作系统中引入进程是为了提高资源的利用率和系统的吞吐量。但在多进程并发的执行的情况下,进程即是资源的拥有者,又是独立调度和分派的单位,在进程创建,终止,切换中,都需要分配或撤消资源,系统需要付出较大的时空开销,因此引入线程,线程分离了进程的两个属性:资源的拥有者、独立调度和分派的单位。在支持线程的操作系统中,进程是资源分配的基本单位.线程是实施调度和分派的基本单位。同一进程的线程共享该进程所拥有的资源,同属一个进程的线程间切换不会导致进程的切换也就没有大量资源的切换,因此大大减少了系统的开销。
8、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息或建立某个条件后再向前执行,这种关系是进程间的( )关系。
A、同步 B、互斥 C、竞争 D、合作
[解析] 进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程,的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。所以两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的同步关系。
9、设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时互斥信号量S的可能取值是( )。
A、1,0,-1,-2
B、2,0,-l,-2
C、1,0,-1 D、3,2,1,0
如果没有进程使用,S为1,有一个进程使用为0,若此时又有进程想使用,s为-1,第三个进程也想使用,这时s为-2。
4、死锁
死锁问题 重点以前会出 。银行家算法 这回不出
概念还是会出
可参考
5、虚拟内存
逻辑地址转化物理地址过程
逻辑地址以十六进制数给出
根据页大小划分逻辑地址为页号和页内地址
以页号查页表,得到对应内存块号
物理地址=页号 拼接 位移量
逻辑地址以十进制数给出
页号=虚地址/页大小
位移量=虚地址 mod 页大小
以页号查页表,得到对应内存块号
物理地址=块号×页大小+位移量
例1某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面对应的物理块号如下表:
则逻辑地址0A5C(H)所对应的物理地址为 :_____
页号 | 物理块号 |
0 | 5 |
1 | 10 |
2 | 4 |
3 | 7 |
解
0A5C H=0000,1010,0101,1100 B
共32个页面,每页为1KB,内存为16KB
每页为1KB
1KB = 1024B = 2^10B
所以后10位是页内地址,位移量;前6位即为页号。
所以,页号为2,查看页表,对应物理块号为4,
物理地址=页号 拼接 位移量
物理地址= 物理块号4的二进制 + 位移量
物理地址:0001,0010,0101,1100
即:125CH
例2.设页面大小为1K字节,作业的0、1、2页分别存放在第2、3、8块中。求逻辑地址2500对应的物理地址?
页号=虚地址/页大小
1KB = 1024B
页号 = 2500 / 1024 = 2
所以,页号为2,查看页表,对应物理块号为8,
位移量=虚地址 mod 页大小
位移量=2500 mod 1024 = 452
以页号查页表,得到对应内存块号
物理地址=块号×页大小+位移量
物理地址=8 * 1024 + 452 = 8644
【例3】某请求页式存储管理,允许用户编程空间为32个页面,每页1KB,主存为16KB。如有一用户程序有10页长,且某时刻该用户页面映射如下
页号 | 物理块号 |
0 | 8 |
1 | 7 |
2 | 4 |
3 | 10 |
如果分别有对以下三个虚地址:0AC5H,1AC5H,3AC5H处的操作,试计算并说明存储管理系统将如何处理:
【分析】本题考察虚地址与实际物理地址的转化问题,首先有用户空间地址确定虚页号要用多少个二进制位来表示,又已知页面大小就可以推算出还需要的二进制位数,两者相加可知虚地址的长度。
从主存大小确定物理地址的二进制位数。由虚地址的虚页号位数查表确定是那一物理块,换算成二进制数,在连接后面的偏移值就是实际的物理地址。
【解答】页面大小为1KB=2^10B,在虚地址中有10个二进制位,用户地址空间有32=2^5个页,页号需用5位,因此虚地址长度为15位(页号+页面大小)。又主存为16KB=2^14B,所以物理地址14位。
0AC5H的二进制:0000 1010 1100 0101,其中需页号为000 10,即2,由表知是4号物理块,即0100,所以相应物理地址为 01 0010 1100 0101 对应十六进制12C5H
1AC5H的二进制:0001 1010 1100 0101,虚页号00110,即6,由表知没有第6页,将发生缺页中断,系统从外存中把第6页调入内存,然后更新页表。
3AC5H的二进制:0011 1010 1100 0101,虚页号为01110,即14,由于14>10,超过作业的地址空间长度,系统发生地址越界中断,程序运行终止。
练习题
1.一分页存储管理系统中逻辑地址长度为16位,页面大小为1KB字节,现有一逻辑地址为0A6FH ,且第0、1、2、3、页依次存放在物理块3、7、11、10中。逻辑地址0A6FH对应的物理地址是多少?
【分析】逻辑地址长度为16位,页面大小为1KB=2^10B所以页内地址需要10位
0123456789ABCDEF
A=10=2+8=1010
6=2+4=0110
F=15=1+2+4+8=1111
逻辑地址 0A6FH = 0000 1010 0110 1111B
页内地址需要10位,逻辑地址长度为16位,所以页号为0000 10为2,对应物理块号11(11 = 1+2+8 = 1011),二进制为1011
所以逻辑地址0A6FH物理地址为 10 1110 0110 1111 对应16进制 2E6FH
【解答格式】
逻辑地址0A6FH的二进制表示如下:
页号 页内地址
0000,1010,0110,1111
由此可知逻辑地址0A6FH的页号为2,该页存放在第11号物理块中,用十六进制表示块号为B,
所以物理地址为: 0010,1110,0110,1111 ,即2E6FH。
2.有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,且第0、1、2、3、页依次装入内存的第7、9、A、5块,试将虚地址0AFEH,1ADDH转换成内存地址。
【解答】页大小为2KB=2^11B,所以页内地址需要11位,没有说明逻辑地址长度,按16位来
虚拟地址0AFEH = 0000 1010 1111 1110B 所以页号为0000 1 为1,对应物理块号9,二进制为1001,所以对应物理地址为 100 1010 1111 1110 为 4AFEH
虚拟地址1ADDH = 0001 1010 1101 1101B 所以页号为0001 1 为3,对应物理块号5,二进制为0101,所以对应物理地址为 010 1010 1101 1101 为 2ADDH
3.若在一分页存储管理系统中,某作业的页表 第0、1、2、3、页依次装入内存的第2、3、1、6块。已知页面大小为1024字节,试将逻辑地址0A5CH,07EFH,3000,5012转化为相应的物理地址。
【解答】页面大小为1024字节,也就是1KB=2^10B,所以页内地址需要10位
给出16进制
逻辑地址0A5CH 对应二进制 0000 1010 0101 1100B,所以页号为0000 10为2,对应物理块号1,为0001B,所以对行物理地址为00 0110 0101 1100B为065CH
逻辑地址07EFH 对应二进制 0000 0111 1110 1111B,所以页号为0000 01为1,对应物理块号3,为0011B,所以对行物理地址为00 1111 1110 1111B为0FEFH
给出10进制
逻辑地址3000 ,页号P=int(3000/1024)=2, 页内地址、位移量W=3000%1024=952,查页表,第2页在物理第1块,所以物理地址为1976 (1*1024+952=1976)
逻辑地址5012,页号P=int(5012/1024)=4, 页内地址、位移量W=5012%1024=916,查页表,因页号超过页表长度,该逻辑地址非法。
4.简答题
1)若系统中没有运行进程,是否一定没有就绪进程,为什么?
是。因为若系统中没有运行进程,那么系统很快会选择一个就绪进程运行。只有就绪队列中无进程时,CPU 才可以处于空闲状态。
2)若系统中既没有运行进,也没有就绪进程,系统中是否就没有进程,为什么?
不一定。因为系统中的所有进程可能都处于阻塞状态。
3)在采用优先级进程调度,运行进程是否一定是系统中优先级最高的进程?
不一定。因为高优先级的进程有可能正处在等待队列中,进程调度就从就绪队列中选一个进程占用CPU,这个被选中的进程可能优先级较低。
2、某系统的空闲分区表如表1所示,采用可变分区管理策略。现有如下作业序列:96KB。20KB、200KB。若用首次适应算法和最佳适应算法来处理这些作业,则哪一种算法可满足该作业序列请求,为什么?
表1 空闲分区表
分区号 | 大小 | 起始地址 |
1 | 32KB | 100KB |
2 | 10KB | 150KB |
3 | 5KB | 200KB |
4 | 218KB | 220KB |
5 | 96KB | 530KB |
采用首次适应算法时,96KB大小的作业进入4号空闲分区,20KB大小的作业进入1号空闲分区,这时空闲分区如下表所示。
分区号 |
大小 |
起始地址 |
||
1 |
32KB-20KB=12KB |
100KB+20KB=120KB |
|
|
2 |
10KB |
150KB |
|
|
3 |
5KB |
200KB |
|
|
4 |
218KB-96KB=122KB |
220KB+96KB=316KB |
|
|
5 |
96KB |
530KB |
|
此时再无空闲分区可以满足200KB大小的作业,所以该作业序列请求无法满足。
采用最佳适应算法时,作业序列96KB。20KB、200KB。分别进入5、1、4号空闲分区,可以满足其请求。分配处理之后的空闲分区表见下表:
分区号 |
大小 |
起始地址 |
1 |
32KB-20KB=12KB |
100KB+12KB=112KB |
2 |
10KB |
150KB |
3 |
5KB |
200KB |
4 |
218KB-200KB=18KB |
220KB+200KB=420KB |
5 |
96KB-96KB=0KB |
530KB+96KB=526KB |
采用最佳适应算法时,可满足该作业序列请求。
2、在页式存储管理模式。允许用户编程空间为32个页面(每页1KB),主存为16KB。如果有一个用户有10页长。某时刻该用户程序页表如下图所示(仅显示已调入内存的页)。若程序遇到以下三个逻辑地址:0AC5H、1AC5H、3AC5H处的操作,试计算并分析存储管理系统将如何操作。
用户程序页表
逻辑页号 |
物理块号 |
0 |
8 |
1 |
7 |
2 |
4 |
3 |
10 |
【分析】本题考察虚地址与实际物理地址的转化问题,首先有用户空间地址确定虚页号要用多少个二进制位来表示,又已知页面大小就可以推算出还需要的二进制位数,两者相加可知虚地址的长度。
从主存大小确定物理地址的二进制位数。由虚地址的虚页号位数查表确定是那一物理块,换算成二进制数,在连接后面的偏移值就是实际的物理地址。
【解答】页面大小为1KB=2^10B,在虚地址中有10个二进制位,用户地址空间有32=2^5个页,页号需用5位,因此虚地址长度为15位(页号+页面大小)。又主存为16KB=2^14B,所以物理地址14位。
0AC5H的二进制:0000
1010 1100 0101,其中需页号为000 10,即2,由表知是4号物理块,即0100,所以相应物理地址为 01
0010 1100 0101 对应十六进制12C5H
1AC5H的二进制:0001
1010 1100 0101,虚页号00110,即6,由表知没有第6页,将发生缺页中断,系统从外存中把第6页调入内存,然后更新页表。
3AC5H的二进制:0011 1010 1100 0101,虚页号为01110,即14,由于14>10,超过作业的地址空间长度,系统发生地址越界中断,程序运行终止。
3 、(本题8分)有一个仓库,可以存放A和B两种产品,仓库容量无限大,但要求:
1)每次只能存入一种产品(A或B)
2)-N<A产品数量-B产品数量<M。
其中,N和M是正整数。试用用信号量的P、V操作(或wait操作、signal操作)描述产品A与B的入库过程。
[解析] 本问题存在以下同步和互斥关系:
(1)两个产品入库进程不能同时入库,每次只能存入一种产品,因此,仓库的入口是一个临界资源,两种产品的入库进程之间需要互斥。设互斥信号量mutex,初值为1。
(2)两种产品的数量需满足的关系式-N<A产品数量-B产品数量<M,要求两个产品入库进程之间需要同步:
当A产品数量-B产品数量>=M时A产品入库进程序等待,
当B产品数量-A产品数量>=N时B产品入库进程序等待,
因此,设两个信号量sa、sb,
sa表示目前仓库中可再存放的A产品的数量,sb表示目前仓库中可再存放的B产品的数量,
初始状态下A和B产品数均为0,因此,可存放A产品的最大数量为M-1,可存放B产品的最大数量为N-1,所以初值分别为M-1、N-1。
复制收展Cppsemaphore mutex=1,sa=M-1,sb=N-1;
process puta()
{ while(1)
{
取一个产品 ;
wait(sa);
wait(mutex);
将产品入库 ;
signal(mutex);
signal(sb);
}
}
process putb()
{ while(1)
{
取一个产品 ;
wait(sb);
wait(mutex);
将产品入库 ;
signal(mutex);
signal(sa);
}
}
main()
{ cobegin{
puta();
putb();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
一个 460 字的程序进行了下述序列的内存访问:
10,11,104,170,73,309,185,245,246,434,458,364
(1)假定页面大小为 100 字,试给出页访问序列。
(2)假定内存有 200 字供该程序使用,分别采用 FIFO 和 OPT 置换算法时,缺页次数分别是多少。
(1)0,0,1,1,0,3,1,2,2,4,4,3 (4分)
(2)6次和 5 次。 (4分)