操作系统复习.docx
- 文档编号:30338303
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:38
- 大小:298.50KB
操作系统复习.docx
《操作系统复习.docx》由会员分享,可在线阅读,更多相关《操作系统复习.docx(38页珍藏版)》请在冰豆网上搜索。
操作系统复习
第一章概述
一、操作系统定义:
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
二、操作系统历史:
1、无操作系统的计算机系统
2、单道批处理:
自动性、顺序性、单道性
3、多道批处理:
资源利用率高、系统吞吐量大、平均周转时间长、无交互能力
4、分时系统:
多路性、独立性、及时性、交互性
5、实时系统:
多路性、独立性、及时性、交互性、可靠性
三、操作系统的特征:
并发性、共享性、虚拟技术、异步性
四、操作系统的主要功能:
处理机管理功能、存储器管理功能、设备管理功能、文件管理功能、操作系统与用户之间的接口
五、微内核、客户服务器模式
在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。
微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:
①实现与硬件紧密相关的处理;②实现一些较基本的功能;③负责客户和服务器之间的通信。
它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。
将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现
六、客户服务器模式(c/s模式)
组成:
客户机、服务器、网络系统
优点:
1、数据的分布处理和存储
2、便于集中管理
3、灵活性和可扩充性
4、易于改编应用软件
第二章进程管理
一、进程的定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
二、进程的特征:
动态性、并发性、独立性、异步性
三、进程由程序、数据、进程控制块三部分组成。
四、进程状态
1、运行态(Running)
进程占有CPU,并在CPU上运行
2、就绪态(Ready)
一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)
3、等待态(Blocked,阻塞态、封锁态、睡眠态)
指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)
五、进程的三态转换:
1、就绪—运行(调度程序选择一个新的进程运行)
–2、运行—就绪(运行进程用完了时间片运行进程被中断,因为
–一高优先级进程处于就绪状态)
3、运行—等待(当一个进程必须等待时操作系统尚未完成服务
对一资源的访问尚不能初始化I/O且必须等待结果等待某一进程提供输入(IPC))
4、等待—就绪(当所等待的事件发生时)
六、进程的五态转换:
•NULL→新建态:
执行一个程序/创建一个子进程
•新建态→就绪态:
当操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许
•运行态→终止态:
当一个进程到达了自然结束点,或出现了无法克服的错误,或被操作系统所终结,或被其他有终止权的进程所终结
•终止态→NULL:
完成善后操作
•就绪态→终止态:
未在状态转换图中显示,但某些操作系统允许父进程终结子进程
等待态→终止态:
未在状态转换图中显示,但某些操作系统允许父进程终结子进程
八、进程的创建的步骤:
1、在主进程表中增加一项,并从PCB池中取一个空白PCB
2、为新进程的进程映像中的所有成分分配地址空间。
对于程孵化操作还需要传递环境变量,构造共享地址空间
3、为新进程分配资源,除内存空间外,还有其它各种资源
4、初始化进程控制块,为新进程分配一个唯一的进程标识符,初始化PSW
5、加入某一就绪进程队列
6、通知操作系统的某些模块,如记账程序、性能监控程
九、进程撤消
1、根据撤销进程标识号,从相应队列中找到它的PCB
2、将该进程拥有的资源归还给父进程或操作系统
3、若该进程拥有子进程,应先撤销所有子孙进程,以防它们脱离控制
4、被撤销进程出队,将它的PCB归还到PCB池
十、进程阻塞和唤醒
1、修改进程控制块的有关信息,如进程状态等
2、把修改后进程控制块加入有关等待进程队列
3、从相应的等待进程队列中取出进程控制块
4、修改进程控制块的有关信息,如进程状态等
5、把修改后进程控制块加入有关就绪进程队列
十一、进程挂起:
引起原因有:
1、操作系统中的进程均处于等待状态,处理器空闲,此时需要把一些进程对换出去,以腾出足够的内存装入就绪进程运行
2、进程竞争资源,导致系统资源不足,负荷过重,此时需要挂起部分进程以调整系统负荷
3、把一些定期执行的进程(如审计程序、监控程序、记账程序)对换出去,以减轻系统负荷
4、用户要求挂起自己的进程,以根据中间执行情况和中间结果进行某些调试、检查和改正
5、父进程要求挂起自己的后代进程,以进行某些检查和改正
6、当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障
十二、进程的七态转换:
十三、PCB的定义:
系统为了管理进程设置的一个专门的数据结构,记录进程的外部特征,描述进程的运动变化过程.
十四、PCB是系统感知进程存在的唯一标志
十五、进程与程序的区别:
程序是静态的,进程是动态的,进程的生命周期比程序的短,进程具有创建其他进程的功能,而程序没有!
联系:
程序是构成进程的基本组成部分,进程运行的目标是执行所对应的程序
十六、进程的同步:
一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。
十七、临界资源:
系统中某些资源一次只允许一个进程使用。
十八、同步机制应遵循的规则:
空闲让进、忙则等待、有限等待、让权等待、多中择一。
十九、进程通信定义:
进程之间的信息交换,其所交换的信息量少者是一个状态或数值,多者则是成千上万个字节。
二十、进程通信的类型:
共享存储器系统、消息传递系统、管道通信。
二十一、线程的定义:
线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换。
二十二、线程与进程的区别:
1、线程作为调度的基本单位,而进程作为资源拥有的单位。
2、不仅进程之间可以并发执行,而且在一个进程的多个线程之间并发执行,使得操作系统有更好的并发性。
3、进程拥有自己的资源,是系统中拥有资源的一个基本单位,而线程不拥有系统资源。
4、对于进程而言,操作系统所付出的开销明显大于线程创建或撤销时的开销。
二十三、线程的分类:
用户级线程、内核级线程、混合式线程
第三章处理机调度与死锁
一、处理机调度的层次:
高级调度、中级调度、低级调度
二、高级调度的定义:
根据某种算法把外存上处于后备队列中的那些作业调入内存。
对象:
作业
三、中级调度:
引入目的为了提高内存利用率和系统吞吐量。
四、低级调度:
功能:
1、保存处理机的现场信息
2、按某种算法选取进程
3、把处理器分配给进程
对象:
进程
五、调度准则:
面向用户准则:
1、周转时间短
2、响应时间快
3、截止时间的保证
4、优先权准则
面向系统准则:
1、系统吞吐量
2、处理机利用率好
3、各类资源的平衡利用
六、操作系统中的死锁指:
如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的事件,则称一组进程或系统此时发生了死锁。
七、形成死锁的四个必要条件:
互斥条件:
进程互斥使用资源
部分分配条件:
申请新资源时不释放已占有资源
不剥夺条件:
一个进程不能抢夺其他进程占有的资源
环路条件:
存在一组进程循环等待资源的。
八、形成死锁的原因:
竞争资源,进程间推进顺序非法
九、死锁的检测与解除:
资源分配图和死锁定理
解决死锁问题的一条途径是死锁检测和解除,这种方法对资源的分配不加任何限制,也采取死锁避免措施,但系统定时地运行一个“死锁检测”程序,判断系统内是否已出现死锁,如果检测到系统已发性了死锁,再采取措施解除它。
(1)如果进程-资源分配图中无环路,则此时系统没有发生死锁。
(2)如果进程-资源分配图中有环路,且每个资源类中仅有一个资源,则系统中发生了死锁,此时,环路是系统发生死锁的充要条件,环路中的进程便为死锁进程。
(3)如果进程-资源分配图中有环路,且涉及的资源类中有多个资源,则环路的存在只是产生死锁的必要条件而不是充分条件。
系统为死锁状态的充分条件是:
当且仅当该状态的进程-资源分配图是不可完全简化的。
该充分条件称为死锁定理。
例题:
1、生产者-消费者问题:
P:
i=0;
while(true){
生产产品;
P(empty);
P(mutex);
往Buffer[i]放产品;
V(mutex);
V(full);
i=(i+1)%n;
}
Q:
j=0;
while(true){
P(full);
P(mutex);
从Buffer[j]取产品;
V(mutex);
V(empty);
消费产品;
j=(j+1)%n;
}
2、读者-写者问题
读者:
while(true){
P(mutex);
readcount=readcount+1;
if(readcount==1)//第一个读者
P(write);
V(mutex);
读
P(mutex);
readcount=readcount-1;
if(readcount==0)//最后一个读者
V(write);
V(mutex);
};
写者:
while(true){
P(write);
写
V(write);
};
3、哲学家就餐问题
voidphilosopher(inti){
while(true){
思考;
P(fork[i]);
P(fork[(i+1)%5]);
进食;
V(fork[i]);
V(fork[(i+1)%5]);
}
}
可能发生死锁!
调度算法例题:
先来先服务算法
(1)
•例如,三个作业同时到达系统并立即进入调度:
作业名所需CPU时间
作业128
作业29
作业33
•采用FCFS算法,三个作业的周转时间分别为:
28、37和40,
因此,平均作业周转时间:
T=(28+37+40)/3=35
若三个作业提交顺序改为作业2、1、3,平均作业周转时间约为29。
若三个作业提交顺序改为作业3、2、1,平均作业周转时间约为18。
FCFS调度算法的平均作业周转时间与作业提交的顺序有关。
最短作业优先算法
(2)、
例如,四个作业同时到达系统并立即进入调度:
作业名所需CPU时间
作业19
作业24
作业310
作业48
假设系统中没有其他作业,现实施SJF调度算法,
SJF的作业调度顺序为作业2、4、1、3,
平均作业周转时间:
T=(4+12+21+31)/4=17
平均带权作业周转时间:
W=(4/4+12/8+21/9+31/10)/4=1.98
如果对它们施行FCFS调度算法,
平均作业周转时间:
T=(9+13+23+31)/4=19
平均带权作业周转时间:
W=(9/9+13/4+23/10+31/8)/4=2.51
SJF算法进一步讨论
•一个例子,假如四个就绪作业其到达系统和所需CPU时间如下:
作业名到达系统时间CPU时间(毫秒)
---------------------------------------
Job108
Job214
Job329
Job435
•Job1从0开始执行,就绪队列仅一个作业。
•Job2在时间1到达,Job1剩余时间(7毫秒)大于JOB2所需时间(4毫秒),Job1被剥夺,Job2被调度执行。
•平均等待时间是((10-1)+(1-1)+(17-2)+(5-3))/4=26/4=6.5毫秒。
•采用非抢占式SJF调度,那么,平均等待时间是7.75毫秒。
•
HRRF算法举例
例如,以下四个作业先后到达系统进入调度:
作业名到达时间所需CPU时间
作业1020
作业2515
作业3105
作业41510
•SJF的作业调度顺序为作业1、3、4、2,
平均作业周转时间T=(20+25-10+35-15+50-5)/4=25
平均带权作业周转时间W=(20/20+15/5+20/10+45/15)/4=2.25
•SJF的作业调度顺序为作业1、3、4、2,
平均作业周转时间T=(20+25-10+35-15+50-5)/4=25
平均带权作业周转时间W=(20/20+15/5+20/10+45/15)/4=2.25
•如果对它们施行FCFS调度算法,
作业调度顺序为作业1、2、3、4,
平均作业周转时间T=(20+35-5+40-10+50-15)/4=28.75
平均带权作业周转时间W=(20/20+30/15+30/5+35/10)/4=3.125
开始只有作业1,被选中执行时间20;
•作业1执行完毕,响应比依次为1+15/15、1+10/5、1+5/10,作业3被选中,执行时间5;
•作业3执行完毕,响应比依次为1+20/15、1+10/10,作业2被选中,执行时间15;
•作业2执行完毕,作业4被选中,执行时间10;
平均作业周转时间
T=(20+25-10+40-5+50-15)/4=26.25
平均带权作业周转时间W=(20/20+15/5+35/15+35/10)/4=2.46
十、银行家算法.P109
第四章存储器管理
一、程序的装入和链接的区别。
P118(总结不全,详见书本)
链接概念:
由链接程序将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的装入模块;
链接分为静态连接方式、装入时动态链接、运行时动态链接;
装入概念:
由装入程序将装入模块装入内存
(1)单个目标模块无需装入;
(2)装入分为绝对装入方式、可重定位装入方式、动态运行时装入方式;
二、连续分配方式共有几种类型?
P121
单一连续分配、固定分区分配、动态分区分配、动态重定位分区分配
三、动态分区分配算法的优缺点及区别。
P123
1、算法种类:
1)首次适应分配算法
将最先找到的第一个满足长度的空闲区分配给进程。
2)循环首次适应分配算法
由首次适应算法演变而来,在为进程分配内存空间时,不在是每次都从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区。
3)最优适应分配算法
将满足长度的、最小空闲区分配给进程
4)最坏适应分配算法
将满足长度的、最大空闲区分配给进程
5)快速适应分配算法
将空闲分区根据其容量大小进行分类,对相同的容量空闲分区设立一个空闲分区链表;根据进程的长度,寻找能容纳它的最小空闲区链表,并取下第一块进行分配即可。
2、算法优缺点:
1)从搜索空闲区速度及主存利用率来看,首次适应分配、循环首次适应分配和最佳适应算法比最坏适应算法性能好。
2)如果空闲区按从小到大排列,则首次适应分配算法等于最优适应分配算法。
3)如果空闲区按从大到小排列,则首次适应分配算法等于最坏适应分配算法。
4)空闲区按从小到大排列时,首次适应分配算法能尽可能使用低地址区,从而高地址空间有较大的空闲区容纳大的作业。
5)循环首次适应分配算法会使存储器空间得到均衡使用。
6)最优适应分配算法的主存利用率最好,但可能会导致空闲区分割下来的部分很小。
7)处理某种作业序列时,最坏适应分配算法可能性能最佳,它选择最大空闲区,使得分配后剩余下来的空闲区不会太小,仍能用于再分配。
8)首次适应算法简单、快速,在实际的操作系统中用得较多;其次是最佳适应算法和循环首次适应算法。
四、动态重定位分区分配算法。
P128
1、动态重定位分区:
当找不到足够大的空间分区来满足用户需求时进行紧凑,将内存中所有的作业进行移动,使它们全部相连接,这样,即可把原来分散的多个小分区拼接成一个大分区,这时就可以把作业装入该区。
由于经过紧凑后后的某些用户程序在内存中的位置发生了变化,此时若不对程序和数据的地址加以修改(变换),则程序必将无法进行。
为此,都必须对移动了地的程序或数据进行重定位。
2、动态重定位实现:
程序在执行时,真正访问的内存地址与重定位寄存器中的地址相加而形成的,(图解见书P128)地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称为动态重定位。
当系统对内存“紧凑”而使若干程序从内存的某处移至另一处时,不对程序做任何修改,只要用该程序在内存的新起始地址地址,去置换原来的起始地址即可。
五、对换。
P129
概念:
把内存中暂时不能运行的进程或者暂时不用的程序和数据调入到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或数据调入内存。
对换是提高内存利用率的有效措施。
六、基本分页存储管理方式。
P130
1、基本思想(工作原理)
打破存储分配的连续性,将逻辑上连续的用户程序映射到离散的内存块;
用户程序与内存空间被划分为若干等长的区域——页;
逻辑页与物理页;
用户程序的划分由系统自动完成;
页的大小通常是2的整数次幂,地址的高位部分为页号,低位部分为页内地址;
内存空间:
按页的大小划分为大小相等的区域,称为内存块(物理页面、页框)
内存分配:
以页为单位进行分配;
按作业的页数多少来分配;
逻辑上相邻的页,物理上不一定相邻。
2、管理
程序被等长地划分为若干页;
系统如何知道程序的某一页在内存的哪一页?
页表(进程)与内存分配表(内存);
(1)页表
系统为每个进程建立一个页表;
页表给出“逻辑页号”和具体“内存块号”的对应关系;
页表放在内存,属于进程的现场信息,记录在PCB中;
页表有时很大(数兆大小);
(2)空块分配表——位示图
(3)内存的分配与回收
计算一个作业所需要的总块数N;
查位示图,看看是否还有N个空闲块;
如果没有足够的空闲块,等待;
如果有足够的空闲块,则页表长度设为N,填入PCB;申请页表区,把页始址填入PCB;
依次分配N个空闲块,将块号和页号填入页表;
修改位示图中对应位的值;
回收时,根据物理页号计算其在位示图中的位置,修改位示图中对应位的值。
3、硬件支持
1)系统设置一对寄存器
页表始址寄存器:
用于保存正在运行进程的页表的始址
页表长度寄存器:
用于保存正在运行进程的页表的长度
2)基本映射过程
给定一个逻辑地址(包括逻辑页号与页内地址);
比较逻辑页号与页表长度寄存器的内容(是否越界);
根据页表始址寄存器的内容得到页表在内存的位置,并根据逻辑页号在页表中查到物理页号;
将物理页号与页内地址拼接,得到物理地址。
将用户地址空间中的逻辑地址变换为内存空间中的物理地址的过程称为地址变换。
3)带快表的映射过程
引入原因:
基本映射过程需要两次访问内存
解决方法:
高速缓存中存放小容量的相联存储器——快表
用途:
保存正在运行进程的页表的子集(部分表项)
特点:
按内容并行查找
查找快表的过程与查找内存页表并行进行!
4、多级页表
1)多级页表概念:
页表和页面一样也进行分页,内存仅存放当前使用的页表,暂时不用部分放在磁盘上,待用到时再行调进。
2)具体做法:
把整个页表进行分页,分成一张张小页表(称为页表页),小页表的大小与页框相同,为进行索引查找,应该为这些小页表建一张页目录表,其表项指出小页表所在页框号及相关信息。
系统为每个进程建一张页目录表,它的每个表项对应一个页表页,而页表页的每个表项给出了页面和页框的对应关系,页目录表是一级页表,页表页是二级页表。
逻辑地址结构有三部分组成:
页目录、页表页和位移。
3)多级页表地址转换过程:
页目录表控制寄存器指出当前运行进程的页目录表内存所在地址,由页目录表起址加上dir作索引,可找到某个页表页在内存页框的地址;
以page作索引,找到页表页的页表项,而该表项中包含了页面对应的页框号;
页框号和位移offset便可生成物理地址。
4)多级页表结构的本质
多级不连续导致多级索引。
以二级页表为例,用户程序的页面不连续存放,要有页面地址索引,该索引是进程页表;进程页表又是不连续存放的多个页表页,故页表页也要页表页地址索引,该索引就是页目录。
页目录项是页表页的索引,而页表页项是进程程序的页面索引。
七、段式存储管理。
P135
1).基本思想
1、用户程序划分:
按程序自身的逻辑关系划分为若干个程序段(Segment),每个程序段都有一个段名,且有一个段号;
段号从0开始,每一段也从0开始编址,段内地址是连续的逻辑地址
2、内存划分:
内存空间被动态的划分为若干个长度不相同的区域,称为物理段
每个物理段由起始地址和长度确定
3、内存分配:
以段为单位分配内存
每一个段在内存中占据连续空间(内存随机分割,需要多少分配多少)
但各段之间可以不连续存放
2).管理
1、段表
记录段号、段的首址和长度之间的关系
每一个程序设置一个段表
放在内存,属于进程的现场信息
2、空闲块管理
空闲块表
3、内存分配算法(三种)
首先适应
最佳适应
最坏适应
3).硬件支持
系统设置一对寄存器
段表始址寄存器:
用于保存正在运行进程的段表的始址
段表长度寄存器:
用于保存正在运行进程的段表的长度
也可以使用快表
八、分段存储与分页存储管理方式的主要区别。
P138
分段是信息的逻辑单位,由源程序的逻辑结构所决定,用户可见;
段长可根据用户需要来规定,段起始地址可从任何主存地址开始;
分段方式中,源程序(段号,段内位移)经连结装配后地址仍保持二维结构;
分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见;
页长由系统确定,页面只能以页大小的整倍数地址开始;
分页方式中,源程序(页号,页内位移)经连结装配后地址变成了一维结构;
九、虚拟存储器。
P141
1、概述
1)程序大于内存;
程序暂时不执行或运行完是否还要占用内存。
虚拟存储器的基本思想是:
程序、数据、堆栈的大小可以超过内存的大小。
操作系统把程序当前使用的部分保留在内存,而把其它部分保存在磁盘上,并在需要时在内存和磁盘之间动态交换。
2)程序局部性原理:
在一段时间内一个程序的执行往往呈现出高度的局部性,表现在时间与空间两方面
时间局部性:
一条指令被执行了,则在不久的将来它可能再被执行。
空间局部性:
若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元可能被使用。
2、虚拟存储技术
虚存:
把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”,这就是虚存
实现思想:
当进程运行时,先将一部分程序装入内存,另一部分暂时留在外存,当要执行的指令不在内存时,由系统自动完成将它们从外存调入内存工作
目的:
提高内存利用率
3、与交换技术的比较
相似之处:
当内存紧张时,将暂时不用的程序移出内存
不同之处:
交换技术一般以进程为单位
虚拟存储一般以页或者段为单位
4、虚拟页式存储管理。
P145
1)、基本思想
在进程开始运行之前,不是装入全部页面,而是装入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习