操作系统复习资料复习课程
操作系统复习
一、选择题
1.什么是多道程序?本质是什么?为什么要引入?
多道程序设计技术概念:在多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,是它们共享CPU和系统中的各种资源。
引入多道程序技术是为了进一步提高资源的利用率和吞吐量。
多道程序设计技术带来的好处:1)提高CPU的利用率2)提高内存和I/O设备利用率3)增加系统的吞吐量,保存CPU、I/O设备不断忙碌,大幅度地提高系统的吞吐量
2.信号量互斥(1)资源(值为负数(代表什么))
信号量的概念:表明资源可以提供给进城使用的量,它是一个整型值。
计数信号量S的物理含义:
S>0:表示有n个可利用的资源。
S<0:表示有n个被阻塞的资源。
S=0:表示资源正在使用。
信号量值可变,但仅能由P、V操作来改变
1) P操作原语P(S)
(1) P操作一次,S值减1,即S=S-1(请求分配一资源);
(2) 如果S≥0,则该进程继续执行;如果S<0表示无资源,则该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至另一个进程执行V(S)操作)。
2)V操作原语(荷兰语的等待)V(S)
(1) V操作一次,S值加1,即S=S+1(释放一单位量资源);
(2) 如果S>0,表示有资源,则该进程继续执行;如果S≤0,则释放信号量队列上的第一个PCB所对应的进程(阻塞态改为就绪态),执行V操作的进程继续执行。
3.作业调度(概念、估计时间、几种调度算法)
作业:包含通常的程序和数据,还配有作业说明书,系统根据该说明书对程序的运行进行控制。
作业调度的主要任务是根据JCB中的信息,检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程排在就绪队列上等待调度。
作业调度中每次接纳进入内存的作业数,取决于多道程序度,应将作业从外存调入内存,取决于采用的调度算法。
作业调度算法:
先来先服务算法(FCFS),每次调度是从就绪队列中选择一个最先进入该队列的进程,为
之分配处理机,使之投入运行。作业的等待时间就是作业的优先级,等待时间越长,优先级越高。可用于作业调度和进程调度。(特殊情况无法执行)
短作业优先(SJF)调度,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行。以作业的长短来计算优先级,作业越短,其优先级越高。可用于作业调度和进程调度。(长作业可能被饿死)
优先级调度算法(PSA),系统从后备队列中选择若干个优先级最高的作业装入内存。基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据优先级进行调度的。(确认优先级困难)
高响应比优先调度算法(HRRN),优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间=响应比(Rp)。等待时间相同时,要求服务时间越短优先权越高,类似SJF算法;要求服务时间相同时,等待时间越长优先级越高,类似FCFS算法;对于长作业的优先级,可以随等待时间的增加而提高,当其等待时间足够长时,也可以获得处理机。(产生额外开销)
作业的周转时间包括四部分时间:1、作业在外存后备队列上等待(作业)调度的时间;2、进程在就绪队列上等待进程调度的时间;3、进程在CPU上执行的时间;4进程等待I/O操作完成的时间。
周转时间:
1) 周转时间=完成时刻-提交时刻
2) 平均周转时间=周转时间/n
3) 带权周转时间=周转时间/实际运行时间
4) 平均带权周转时间=带权周转时间/n
4.几个管理功能是哪些?分别管理什么?
1)处理机管理:进程控制,进程同步,进程通信,调度;
2)存储器管理:内存分配和回收,地址映射,内存保护,内存扩充;
3)设备管理:缓冲管理,设备分配,设备处理;
4)文件管理:文件存储空间的管理,目录管理,文件的读/写管理及文件的共享和保护;5)OS与用户之间的接口:程序接口,用户接口,联机接口,脱机接口,图形接口;
新功能:系统安全、网络的功能和服务、支持多媒体
5.基本段、页式内存管理中,需要访问几次内存?24位地址,则虚拟内存空间可达多少?2次,2次;2^24;
6.虚拟存储含义,本质
虚拟存储器的概念:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统。
7.进程的几个状态,之间的转换
进程的基本状态:就绪、执行、阻塞。
进程在三个基本状态之间转换:
1)绪状态→执行状态:进程分配到CPU资源;
2)执行状态→就绪状态:时间片用完;
3)执行状态→阻塞状态:I/O请求;
4)阻塞状态→就绪状态:I/O完成。
8.常见操作系统单任务、多任务是什么?
单用户单任务操作系统:只允许一个用户上机,且只允许用户程序作为一个任务执行。这是最简单的微机操作系统,主要配置在8位和16位微机上,典型代表:CP/M(8位)、MS-DOS (16位)
单用户多任务操作系统:只允许一个用户上机,但是允许用户把程序分成若干个任务,使它们并发执行,从而改善了系统的功能。典型代表:Window(32位)
多用户多任务操作系统:允许多个用户通过各自的终端,使用同一台机器,共享主机系统的各种资源,而每个用户程序又可以进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。典型代表:UNIX OS(32位)其变形有Solaris OS和Linux 9.同步的概念,异步的概念,并行概念,并发概念
并行:指两个或多个事件在同一时刻发生;
并发:指两个或多个事件在同一时间间隔内发生;
同步:同步指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系。
异步:与同步相对应,异步指的是让CPU暂时搁置当前请求的响应,处理下一个请求,当通过轮询或其他方式得到回调通知后,开始运行。
进程的同步:主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的。
进程的互斥:主要源于资源共享,市进程之间简介制约关系。再多得到系统中每次只允许一个进程访问的自愿成为临界资源,进程互斥就是保证每一次只有一个进程使用临界资源。10.操作系统的抖动理解,处理CPU
在虚拟存储中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃,这种现象称为抖动。
减少抖动:1减少页面的频繁调进主存2选择适当的置换算法
11.四种I/O方式了解,各种I/O概念
I/O控制方式的种类和应用:
1)程序I/O 方式:早期计算机无中断机构,处理机对I/O设备的控制采用程序I/O方式或称忙等的方式。(适用于结构简单,只需少量硬件的电路)
2)中断驱动I/O 控制方式:适用于有中断机构的计算机系统中。(适用于高效场合)
3)直接存储器访问(DMA)I/O 控制方式:适用于具有DMA控制器的计算机系统中。(适用于无需CPU介入的控制器来控制内存与外设之间的数据交流的场合)
4)I/O通道控制方式:具有通道程序的计算机系统中。(适用于以字节为单位的干预,同时实现CPU、通道和I/O设备三者同时操作的场合)
12.分时、实时操作系统了解(Spooling操作系统(给出四个选项要知道哪个是哪个系统))分时系统概念:将一台计算机很好的提供给多个用户同时使用,提高计算机的利用率。(为了满足用户对人-机交互的需求)
实时系统概念:是计算机系统可以立即对用户程序要求或者外部信号作出反应的系统,它可以分为硬实时系统和软实时系统。(飞机或火车的订票系统、由于播放音频和视频的多媒体系统、嵌入式系统(智能仪器和设备))
Spooling:它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。
Spooling系统:若有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘或磁鼓)上的输出SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式存放于此。各进程的数据输出文件形成了一个输出队列,由输出SPOOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing 系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。
SPOOLing技术的优点:提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能。
分时系统与实时系统进行比较.
a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前
b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的,因此实时系统的及时性要高于分时系统的及时性
c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高
13.分段、分页、段页式管理,最大段数及页数
分页存储管理方式:在该方式中,将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。相应的,也将内存空间分为若干个物理块或页框,页和框的大小相同。这样用户程序的任意一页放入任一物理块中,实现了离散分配。
分段存储管理方式:为了满足用户要求而形成的一种存储管理方式,它把用户程序地址空间分为若干个大小不同的段,每段可定义一组相对完整的信息。以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。
段页式管理存储方式:这是分页和分段两种存储管理方式相结合的产物,同时具有两者的优点,是目前应用较为广泛的一种存储管理方式。
请求分页系统:是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它允许用户程序只装入少数页面的程序(及数据)即可启动运行。
请求分段系统:在分段系统的基础上,增加了请求调段及分段置换功能后所形成的段式虚拟存储系统。它允许用户程序只要装入少数段(而非所有段)的程序和数据即可启动运行。最大段数为2的段位数次方
地址长度为32位,其中0~15位为段内地址,16~31位为段号,则允许一个作业最长有64k 个段,每个段的最大长度为64KB
最大页数为2的页位数次方
地址长度为32位,其中1~11位为页内地址,即每页的大小为4kB,12~31位为页号,地址空间最多允许有1M页
1kB=1024=2^10
1M=1024kB=2^10kB
1G=1024M=2^10M
2^32=4G
分页与分段的区别
分页信息的物理单位大小一样,由系统固定地址空间是一维的
分段信息的逻辑单位大小不等,由用户确定地址空间是二维的
分区存储管理中常采用哪些分配策略?比较它们的优缺点。
分配策略有:首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法。
a.首次适应算法的优缺点:保留了高址部分的大空闲区,有利于后到来的大型作业的分配;低址部分不断被划分,留下许多难以利用的、小的空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时的系统开销。
b.循环首次适应算法的优缺点:使内存中的空闲分区分布得更为均匀,减少了查找时的系统开销;缺乏大的空闲分区,从而导致不能装入大型作业。
c.最佳适应算法的优缺点:每次分配给文件的都是最适合该文件大小的分区;内存中留下许多难以利用的小的空闲区。
d.最坏适应算法的优缺点:给文件分配分区后剩下的的空闲区不至于太小,产生碎片的几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大的空闲区,对大型文件的分区分配不利。
14.页表、段表地址如何转换(基本机制)
所谓地址转换就是将用户的逻辑地址转换成内存的物理地址,完成地址重定位。在具有快表的段页式存储管理方式中,如何实现地址变换?
答:在CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号比较,若找到匹配页号,表示要访问的页表项在快表中。可直接从快表读出该页对应物理块号,送到物理地址寄存器中。如快表中没有对应页表项,则再访问内存页表,找到后,把从页表项中读出物理块号送地址寄存器;同时修改快表,将此页表项存入快表。但若寄存器已满,则OS必须找到合适的页表项换出。
2. 分页存储管理的地址机构
15 12 11 0
页号P 页内位移量W
页号4位,每个作业最多2的4次方=16页,表示页号从0000~1111(24-1),页内位移量的位数表示页的大小,若页内位移量12位,则2的12次方=4k,页的大小为4k,页内地址从000000000000~111111111111
若给定一个逻辑地址为A,页面大小为L,则
页号P=INT[A/L],页内地址W=A MOD L
3. 页表
分页系统中,允许将进程的每一页离散地存储在内存的任一物理块中,为了能在内存中找到每个页面对应的物理块,系统为每个进程建立一张页面映射表,简称页表。页表的作用是实现从页号到物理块号的地址映射。
页表:
页号物理块号存取控制
0 2
1 15(F)
2 14(E)
3 1
4. 地址变换
(1)程序执行时,从PCB中取出页表始址和页表长度(4),装入页表寄存器PTR。(2)由分页地址变换机构将逻辑地址自动分成页号和页内地址。
例:11406D=0010|110010001110B=2C8EH
页号为2,位移量为C8EH=3214D
或11406 DIV 4096=2
11406 MOD 4096=3214
(3)将页号与页表长度进行比较(2<4),若页号大于或等于页表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4)将页表始址与页号和页表项长度的乘积相加,便得到该页表项在页表中的位置。(5)取出页描述子得到该页的物理块号。 2 14(E)
(6)对该页的存取控制进行检查。
(7)将物理块号送入物理地址寄存器中,再将有效地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,拼接得到实际的物理地址。
例:0010|110010001101B
1110|110010001101B=EC8EH=60558D
或14*4096+3214=60558D
3. 分段地址结构
作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例程序段、数据段等。每个段都从0开始编址,并采用一段连续的地址空间。
段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间是二维的。
15 12 11 0
段号段内位移量
段号4位,每个作业最多24=16段,表示段号从0000~1111(24-1);段内位移量12位,
212=4k,表示每段的段内地址最大为4K(各段长度不同),从000000000000~111111111111
4. 段表
段号段长起始地址存取控制
0 1K 4096
1 4K 17500
2 2K 8192
5. 地址变换
(1). 程序执行时,从PCB中取出段表始址和段表长度(3),装入段表寄存器。
(2). 由分段地址变换机构将逻辑地址自动分成段号和段内地址。
例:7310D=0001|110010001110B=1C8EH
段号为1,位移量为C8EH=3214D
(3). 将段号与段表长度进行比较(1<3),若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4). 将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。
(5). 取出段描述子得到该段的起始物理地址。1 4K 17500
(6). 检查段内位移量是否超出该段的段长(3214<4K),若超过,产生越界中断。
(7). 对该段的存取控制进行检查。
(8). 将该段基址和段内地址相加,得到实际的物理地址。
例:0001|110010001101B
起始地址17500D+段内地址3214D=20714D
【例1】考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问:
(1)逻辑地址需要多少二进制位表示?
(2)物理地址需要多少二进制位表示?
分析在分页存储管理中,逻辑地址结构如下图所示。
它由两个部分组成:前一部分表示该地址所在页面的页号p;后一部分表示页内地址(页内位移)d。页号的地址位数决定了页的多少,假设页号有20位,则地址空间中最多可容纳的页面数为220,即1MB个页面。页内地址位数确定了每页的大小,若页内地址为12位,则每页大小为212,即2KB。
同理,物理地址中块号的地址位数决定了块的数量。由于页式存储管理内存空间块的大小与页面大小相同,所以物理地址中块内地址与逻辑地址中的页内地址位数相同。
解因为页面数为8=23,故需要3位二进制数表示。每页有1024个字节,1024=210,于是页内地址需要10位二进制数表示。32个物理块,需要5位二进制数表示(32=25)。
(1)页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示
(2)页的物理地址由块号和页内地址的拼接,所以需要5+10=15位二进制数表示。
15.中断时间、作业提交到结束
中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU 暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程CPU转去执行相应的事件处理程序的过程CPU收到中断请求后转到相应的事件处理程序
16.页面大小与中断次数关系
页面越大中断次数越少,页面越小中断次数越多
在分页系统中,若选择过小的页面大小,虽然一方面可以减少内存碎片,起到减少内存碎片总空间的作用,有利于内存利用率的提高,但另一方面却会造成每个进程占用较多的页面,从而导致进程的页表过长,占用大量的内存。此外,还会降低页面换进换出率。然而,如果选择页面过大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。因此,页面的大小应选择适中,且页面大小应为2的幂,通常为1kB~8kB。
17.采用基于时间片的轮转调度算法是为了什么?
批处理系统的调度算法:短作业优先、优先权、高响应比优先、多级反馈队列调度算法。分时系统的调度算法:时间片轮转法。
实时系统的调度算法:最早截止时间优先即EDF、最低松弛度优先即LLF算法。
时间片轮转调度算法是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
18.什么叫临界资源、临界区域?
1) 临界资源:一次仅允许一个进程使用的资源。
2) 临界区:在每个进程中访问临界资源的那段程序。
3) 互斥进入临界区的准则:
空闲让进:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
忙则等待:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
有限等待:进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。让权等待:如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。为什么进程在进入临界区之前应先执行“进入区”代码?
而在退出前又要执行“退出区”代码?答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设臵正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为" 进入区"代码;在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。
磁盘访问时间由哪几部分组成?每部分的时间是如何的?
磁盘访问时间由寻道时间Ts,旋转延迟时间Tc,传输时间Tt。
寻道时间Ts是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间S与磁头移动n条磁道所花费的时间之和。
旋转延迟时间Tc指定扇区移动到磁头下面所经历的时间。