一、基本概念:填空、选择、判断、简答
1、什么是操作系统:操作系统是控制和管理计算机硬件和软件资源、合理地组织计算机工作流程,并方便用户使用计算机的一组程序集合。
2、常见操作系统
l WindowsXP、Windows 2003、Windows 2000、Windows Vista
l Linux、Unix
l IBMAIX、IBM OS/2
l SunSolais
3、操作系统分类:单道批处理系统、多道批处理系统、分时系统、实时系统、微机操作系统、网络操作系统、分布式操作系统、嵌入式操作系统
4、多道批处理系统的优缺点
l 优点:CPU、内存以及I/O设备等资源的利用率高;系统吞吐量(单位时间内完成的总工作量)大。
l 缺点:平均周转时间(作业进入内存到运行结束时间)长;没有交互能力。
5、分时系统的特点
l 多路性:多个用户同时使用一台计算机;
l 独立性:用户之间互不干扰,就像各自独立使用一台计算机一样;
l 及时性:用户的各种请求(如输入数据)能够得到及时的响应;
l 交互性:用户通过各自的终端,与自己运行的程序进行交流。
6、操作系统的特点
l 并发性:两个或多个程序在一段时间内“同时”执行。它们不是绝对地并行执行,而是在这一段时间内交替执行。并发性是操作系统最主要的特征。
l 共享性:系统资源可供多个并发执行的程序共同使用。分为互斥共享和非互斥共享两种。
l 虚拟性:通过软件方式,将一个物理资源变成多个虚拟的对等资源。
l 异步性:多个程序的执行顺序和一个程序的执行与中断次数无法确定。但是其结果始终是确定的。
7、操作系统的功能
l 处理机管理功能:进程控制
l 存储器管理功能:内存分配、内存保护、内存扩充以及地址转换
l 设备管理功能:缓冲区管理、设备分配和回收、设备驱动
l 文件和磁盘存储管理功能:目录管理、文件读写、存取控制、磁盘空间分配、空闲空间管理
l 用户接口:操作接口(分命令接口和图形接口)、程序接口(即系统调用)
8、进程的含义和组成:进程是某个程序在一组OS数据集合基础上的一次运行过程。进程运行所依赖的OS数据集合叫做“进程控制块”(PCB),所以进程由程序和PCB组成。
9、进程的特点
l 动态性:是程序的一次并发执行过程,具有一定的生命周期。每个进程在执行过程中都会按“执行-暂停-执行”方式推进,因此可以对不同阶段的进程定义不同的状态。
l 并发性:两个或多个进程在一段时间内“同时”执行,但某一瞬间只执行其中之一。因此实际上这些进程是交替执行的。
l 独立性:任何进程都是一个程序的一次独立运行过程,也是系统进行资源分配和调度的单位。
l 异步性:进程按不可预知的速度向前推进,所以OS应提供相应的措施保证其并发性。
l 结构性:每个进程都程序(由代码和数据组成)和PCB组成。
10、进程的状态
l 就绪(Ready)状态:此时进程等待CPU,并获得了除CPU以外所有的运行所需资源。由于存在多个就绪进程,OS将将它们排列成一个就绪队列。
l 执行(Running)状态:进程获得了CPU,并正在运行的状态。单CPU系统中只能有一个进程处于执行状态。
l 阻塞(Blocked)状态:进程由于等待除CPU以外的其它资源或I/O操作结束,而不能继续执行的状态。由于存在多个多个阻塞进程,系统将它们排列成一个或多个阻塞队列。
11、进程的状态转换关系
l 执行到就绪:执行进程被操作系统强制剥夺CPU,从而变成就绪进程。
l 就绪到执行:就绪进程被操作系统调度,从而变成执行进程。
l 执行到阻塞:由于申请资源未获准,或开始了I/O操作,执行进程将CPU让给其它就绪进程,从而变成阻塞进程。
l 阻塞到就绪:阻塞进程得到所请求资源,或执行的I/O操作结束,从而变成就绪进程。
12、动态分区式内存分配的含义:根据所要运行的程序大小,在内存中动态地划分出一个区域,并将程序转入该区域。等到程序运行结束时又回收此区域。
13、常用的动态分区分配算法:首次适应算法、循环首次适应算法、最佳适应算法、最差适应算法
14、分页式存储管理方法的基本原理:用户程序开始执行时,根据CPU中规定的大小,把用户程序划分成多个小块(称为“页面”)。每个页面装入内存中相同大小的不连续区域(该区域称为“物理块”)。同时建立该进程的页表,记录哪个页面装在哪个块内。
15、分页式存储管理方法的地址变换过程:
l 将程序指令从内存读入CPU
l 根据块大小,将指令中的地址划分成两个部分:页号、页內地址
l 从内存页表中查找与页号对应的页表项,得到块号;
l 将指令中的页号替换成块号,完成地址转换
16、虚拟存储器:具有请求调入和置换(交换)功能,能从逻辑上扩充内存容量的存储管理系统。该系统应由硬件和软件配合实现。
17、虚拟存储器的容量:实际容量为内存容量和交换空间容量,最大容量为内存容量+外存容量。
18、虚拟存储器的实现方式:请求分页、请求分段
19、请求分页系统的置换算法:将外存的页面调入内存的同时,将内存中暂时不使用的页面换到外存的策略。一个好的置换算法应尽量避免“抖动”现象。
20、设备分类:独占设备、共享设备、虚拟设备
21、I/O控制方式的类型:程序访问方式、中断控制方式、直接存储器访问方式、通道方式
22、缓冲区的分类:单缓冲、双缓冲、循环缓冲、缓冲池
23、文件分类
l 按逻辑结构划分:有结构文件、无结构文件
l 按物理结构划分:顺序文件、链接文件、索引文件
l 按存取控制划分:可执行文件、只读文件、可读写文件
24、外存空间的分配方式:连续分配、链接分配、索引分配
23、磁盘调度算法:对于多个磁盘访问请求,OS根据不同策略完成不同顺序的访问操作。其目的是减少磁头移动距离,提高整体访问性能。
24、常见的磁盘调度算法:先来先服务(FCFS算法)、最短寻道时间优先(SSTF)、扫描算法(SCAN算法)、循环扫描算法(CSCAN算法)
25、进程调度算法:将CPU分配给就绪进程的算法,具体类型包括先来先服务调度算法(FCFS)、短作业(或进程)优先调度算法(SJF)、时间片轮转调度算法、优先权调度算法
二、综合题:计算、分析
1、分别计算按FCFS算法和SJF算法调度以下进程时的平均周转时间和平均带权周转时间。
进程名称 | A | B | C | D | E |
到达时间 | 0 | 1 | 2 | 3 | 4 |
服务时间 | 4 | 3 | 5 | 2 | 4 |
解:
FCFS(先来先服务)算法
进程名称 | A | B | C | D | E |
到达时间 | 0 | 1 | 2 | 3 | 4 |
服务时间 | 4 | 3 | 5 | 2 | 4 |
完成时间 | 4 | 7 | 12 | 14 | 18 |
周转时间 (完成时间-到达时间) | 4 | 6 | 10 | 11 | 14 |
带权周转时间 (周转时间/服务时间) | 1 | 2 | 2 | 5.5 | 3.5 |
平均周转时间=(4+6+10+11+14)/5=9
平均带权周转时间=(1+2+2+5.5+3.5)/5=2.8
SJF(短作业优先)算法
进程名称 | A | B | C | D | E |
到达时间 | 0 | 1 | 2 | 3 | 4 |
服务时间 | 4 | 3 | 5 | 2 | 4 |
完成时间 | 4 | 9 | 18 | 6 | 13 |
周转时间 (完成时间-到达时间) | 4 | 8 | 16 | 3 | 9 |
带权周转时间 (周转时间/服务时间) | 1 | 8/3 | 16/5 | 3/2 | 9/4 |
平均周转时间=(4+8+16+3+9)/5=8
平均带权周转时间=(1+2.67+3.2+1.5+2.25)/5=2.124
2、在如下分区表的基础上,按照首次适应和最佳适应三种算法依次分配五个进程P0、P1、P2、P3、P4时的进程开始地址。五个进程的大小为P0:200k,P1:15K,P2:100K,P3:80K,P4:20K。
分区编号 | 1 | 2 | 3 | 4 | 5 | 6 |
起始地址 | 10K | 200K | 250K | 320K | 500K | 850K |
分区大小 | 100K | 30K | 50K | 150K | 300K | 220K |
解:所有进程的分配结果如下表所示。
首次适应是指根据进程的大小,在分区表中查找第一个能够装下进程内容的分区。对于本例来说,P0进程为200K,在分区表中从左到右查找能够装下P0进程的分区(即分区大小>=进程大小)为5号分区,所以P0进程的起始地址为5号分区的起始地址500K。分配P0后5号分区就会变成起始地址700K(原始起始地址500K+进程P0大小200K)、大小为100K(原始大小300K-P0进程大小200K),以此类推,可计算出其他进程的起始地址。
最佳适应是指查找某个分区大小最接近当前进程大小。对于P0进程来说,最接近其容量(必需大于等于)的分区为6号分区,所以P0进程在最佳适应分配算法的处理下,起始地址为6号分区的起始地址850K。分配P0进程后6号分区变成起始地址为1050K,大小为20K的分区,可以最佳装入P1进程,因此P1进程的起始地址为1050K。
答题时上述分析过程不需要写出,只需要写出下面的表格即可。
| P0 | P1 | P2 | P3 | P4 |
首次适应: | 500K | 10K | 320K | 25K | 200K |
最佳适应 | 850K | 1050K | 10K | 320K | 200K |
3、一个分页式存储管理系统中页面大小为2K(2048字节),某进程的页表内容如下表所示。请将该进程的逻辑地址1FD3和205C转换为物理地址。
页号 | 0 | 1 | 2 | 3 | 4 |
块号 | 3 | 7 | 12 | 13 | 31 |
解:
(1FD3)16=1*163+15*162+13*161+3*160=(8147)10,因此页号=(8147整除2048)=3,页内偏移地址=(8147取余2048)=2003,查页表可知页号3对应的块号为13,即3号页装入13号块,因此物理地址=13*2048+2003=28627。
(205C)16=2*163+0*162+5*161+12*160=(8284)10,因此页号=(8284整除2048)=4,页内偏移地址=(8284取余2048)=92,查页表可知4号页装入31号块,因此物理地址=31*2048+92=63580。
4、在一个请求分页虚拟存储器系统中,假定某个进程将按如下顺序访问页面:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6,则:
(1)在内存中只为该进程分配3个物理块,请使用先进先出置换算法计算出访问过程中所发生的置换次数;
(2)如果为该进程分配4个物理块,并使用LRU算法,置换次数又为多少?
解:
先进先出算法:
1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
|
| 3 | 4 | 4 | 1 | 5 | 6 | 2 | 1 | 1 | 3 | 7 | 6 | 6 | 2 | 1 | 1 | 3 | 6 |
| 2 | 2 | 3 | 3 | 4 | 1 | 5 | 6 | 2 | 2 | 1 | 3 | 7 | 7 | 6 | 2 | 2 | 1 | 3 |
1 | 1 | 1 | 2 | 2 | 3 | 4 | 1 | 5 | 6 | 6 | 2 | 1 | 3 | 3 | 7 | 6 | 6 | 2 | 1 |
|
|
| √ |
| √ | √ | √ | √ | √ |
| √ | √ | √ |
| √ | √ | √ | √ | √ |
置换次数为14次
LRU算法:
1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
|
|
| 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
|
| 3 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 |
| 2 | 2 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 6 | 1 | 2 | 3 | 7 | 6 | 3 | 3 | 1 | 2 |
1 | 1 | 1 | 1 | 1 | 3 | 4 | 2 | 1 | 5 | 5 | 6 | 1 | 2 | 2 | 7 | 6 | 6 | 6 | 1 |
|
|
|
|
|
| √ | √ |
|
|
| √ | √ | √ |
|
| √ |
|
|
|
置换次数为6次
5、某磁盘有8192个磁道,编号为0~8191,在完成了磁道1250处的请求后,当前正在磁道3500处为一个请求服务。若此时请求队列的先后顺序为1000,4000,3300,5600,1300,6000,1200,2500。回答下述问题:
(1)采用SSTF(最短寻道时间优先)算法完成上述请求。请写出磁头移动的顺序,并计算平均寻道长度。
(2)采用SCAN(电梯)算法完成上述请求。请写出磁头移动的顺序,并计算平均寻道长度。
解:
SSTF(最短寻道时间优先)算法:哪个进程的寻道位置与当前位置最近,先为该进程服务
(1) 3500->3300 移动200
(2) 3300->4000 移动700
(3) 4000->2500 移动1500
(4) 2500->1300 移动1200
(5) 1300->1200 移动100
(6) 1200->1000 移动200
(7) 1000->5600 移动4600
(8) 5600->6000 移动400
平均寻道长度=(200+700+1500+1200+100+200+4600+400)/8= 1112.5
SCAN(电梯)算法:模仿电梯动作规律,由于磁头从1250到达3500,因此先向大磁道号方向处理,再向小磁道号方向处理
(1) 3500->4000 移动500
(2) 4000->5600 移动1600
(3) 5600->6000 移动400
(4) 6000->3300 移动2700
(5) 3300->2500 移动800
(6) 2500->1300 移动1200
(7) 1300->1200 移动100
(8) 1200->1000 移动200
平均寻道长度=(500+1600+400+2700+800+1200+100+200)/8= 937.5