操作系统复习资料.docx
- 文档编号:6792166
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:24
- 大小:577.32KB
操作系统复习资料.docx
《操作系统复习资料.docx》由会员分享,可在线阅读,更多相关《操作系统复习资料.docx(24页珍藏版)》请在冰豆网上搜索。
操作系统复习资料
引言
操作系统(OperatingSystem,简称OS)是管理计算机系统的全部硬件资源和软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。
*操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:
进程与处理机管理、作业管理、存储管理、设备管理、文件管理。
目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。
5.单道批处理系统的特征
单道性:
内存中只有一道程序装入执行。
自动性:
作业的装入、执行无需人工干预。
顺序性:
作业装入内存的顺序=作业执行和完成的顺序。
多道批处理的优缺点:
优点:
资源利用率高;
系统吞吐量大。
缺点:
平均周转时间长;
无交互能力。
1.2.5分时系统
1.产生分时系统的需求和条件
(1)批处理的问题:
周转时间长;无交互能力。
(2)情况发生了变化:
交互式的终端的出现,使计算从脱机行为变为联机行为。
(3)新的用户的需求:
①人机交互的上机方式:
调试程序,文字处理,都需要大量的交互。
②终端的上机方式:
终端=显示器+键盘;
输入命令—计算—回显;
终端可以远离主机。
用户希望通过自己的终端直接将作业传送到机器上进行处理,并能对自己的作业进行控制。
③多人同时用机方式:
当时的主机资源十分昂贵,若多人共享主机资源,也是另一种提高资源利用率的方式。
多人共享主机,不仅要随时可以和计算机交互,而且应感觉不到其他用户也在使用该计算机。
这种新的需求,要求根本改变批处理的运行方式,促进了交互式分时系统的发展,
6.分时系统的特征
(1)多路性。
(2)交互性。
(3)独立性。
(4)及时性。
1.2.6实时系统
①什么是实时?
实时就是及时,是指对于随时发生的外部事件,做出及时的响应,并及时对其处理。
②什么是实时系统
实时系统是指系统能及时地响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
2.应用需求:
两种实时系统
①实时控制系统:
是面向设备的。
计算机用于工业过程控制或武器控制,要求实时采集现场的数据,及时地处理数据,及时地控制设备的执行机构。
是使用计算机进行及时控制的系统。
实时控制系统=设备+计算机控制系统。
②实时信息处理系统:
是面向人的。
如飞机订票,信息检索、银行、图书馆、超市等。
计算机接受从远程终端发来的服务请求,检索信息并处理,必须在短时间内回答用户。
实时信息处理系统是要求及时响应和处理信息的系统。
实时信息处理系统=设备+计算机信息处理系统。
5.实时操作系统的特点
实时操作系统具有以下特点:
①实时系统用于控制或响应实时过程,要求对外部事件的响应要十分及时,迅速。
②外部事件以中断方式通知系统,实时系统有很强的中断处理机构,分析机构,和任务切换机构,为了能迅速地处理中断常用的中断处理程序及有关的系统数据常驻内存。
③实时系统设计常用队列驱动和事件驱动。
工作方式为:
接收来自外部的消息,事件,分析这些消息,而后调用相应的消息、事件处理程序来处理。
④为专门的应用而设计,没有作业、道的概念。
⑤实时系统特别强调可靠性
7.实时系统与分时系统特征的比较
(1)多路性。
(2)独立性。
(3)及时性。
(4)交互性。
(5)可靠性。
1.3.1操作系统的特性
一、并发(Concurrence)
二、共享(Sharing)
三、虚拟(Virtual)
四、异步性(Asynchronism)
第二章
2.2.3进程的调度状态
1.三种基本的调度状态
运行状态:
进程已获得必要的资源,并占有一个处理机,处理机正在执行该进程的程序代码,是正在运行的进程,一个系统的现运行进程数必≤可用的处理机数。
就绪状态:
进程已具备运行条件,等待分配处理机,称为就绪状态,具有这种状态的进程有多个,要排成就绪队列。
阻塞状态:
进程在运行过程中,因为等待某一事件,如I/O操作的完成,而暂时不能运行的状态,即运行受到阻碍,称为阻塞的状态,这样的进程也有多个,也要排成队列。
2.2.4进程的特性
①结构特征:
进程实体由三部分组成。
尤其是PCB,是必不可少的部分。
②动态性:
由创建而产生,由调度而执行,由撤销而消亡。
进程实体有一定的生命周期。
③并发性:
多个进程实体共处于内存中,在一段时间内同时运行。
④独立性:
进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。
⑤异步性:
进程按各自独立的、不可预知的速度向前推进,进程实体按异步方式运行。
这五条也是进程与程序的主要区别。
进程和程序的关系
进程和程序是两个既有联系又有区别的概念,它们的区别和关系可简述如下:
*
(1)进程是一个动态概念,而程序则是一个静态概念。
程序是指令的有序集合,没有任何执行的含义。
而进程则强调执行过程,它动态地被创建,并被调度执行后消亡。
*
(2)进程具有并发特征,而程序没有。
由进程的定义可知,进程具有并发特征的两个方面,即独立性和异步性。
也就是说,在不考虑资源共享的情况下,各进程的执行是独立的,执行速度是异步的。
显然,由于程序不反映执行过程,所以不具有并行特征。
*(3)进程是竞争计算机系统资源的基本单位,从而其并行性受到系统自己的制约。
这里,制约就是对进程独立性和异步性的限制。
*(4)不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
*通信(communication)意味着在进程间传送数据。
操作系统可以被看作是各种进程组成的。
这些进程都具有各自的独立功能,且大多数被外部需要而启动执行。
*一般来说,进程间的通信根据通信内容可以划分为二种:
即控制信息的传送与大批量数据传送。
有时,也把进程间控制信息的交换称为低级通信,而把进程间大批量数据的交换称为高级通信。
*上面几节中所介绍的进程间同步或互斥,也是使用锁或信号量进行通信来实现的。
低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用。
高级通信要传送大量数据。
高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。
进程通信是指进程之间的信息交换。
根据所交换的信息量的多少分为:
低级通信:
进程之间交换的信息量较少且效率低。
如进程同步和互斥。
高级通信:
进程之间交换的信息量较多且效率高。
又分:
共享存储器系统:
指进程之间通过对共享存储区读写来交换数据。
消息传递系统:
指进程间的通信以消息为单位,程序员可通过通信原语实现通信,按其实现方式不同可分为:
直接通信方式:
发送进程直接把消息发送给接收进程。
间接通信方式:
发送进程把消息发送到某个中间实体(信箱),接收进程从中取得消息。
管道通信系统发送进程(写进程)以字符流形式将大量数据送入管道(管道:
用于连接读进程和写进程以实现它们之间通信的共享文件。
),接收进程(读进程)从管道接收数据。
3.8死锁问题
3.8.1死锁的概念
1.死锁的定义
各进程在使用系统资源时,应注意系统产生死锁问题。
所谓死锁,是指各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。
从而造成大家都想得到资源而又都得不到资源,各并发进程不能继续向前推进的状态。
3.产生死锁的必要条件
*
(1)互斥条件。
并发进程所要求和占有的资源是不能同时被两个以上进程使用或操作的,进程对它所需要的资源进行排他性控制。
如,打印机
*
(2)不剥夺条件。
进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程自己释放。
*(3)部分分配。
进程每次申请它所需要的一部分资源,在等待新资源的同时继续占用已分配到的资源。
*(4)环路条件。
存在一种进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。
*对于死锁的互斥条件,由于它们是由资源本身的独立性所决定的,不允许进程同时共享和抢占,所以这三个条件不可能被破坏,因此只能从另三个必要条件入手。
3.8.2死锁的排除方法
解决死锁的方法一般可分为预防、避免、检测与恢复等三种。
*预防是采用某种策略,限制并发进程对资源的请求,从而使得死锁的必要条件在系统执行的任何时间都不满足。
*避免是指系统在分配资源时,根据资源的使用情况提前做出预测,从而避免死锁的发生。
*死锁检测与恢复是指系统设有专门的机构,当死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的必要条件,从而使得并发进程从死锁状态中恢复出来。
1.死锁预防
*1.1一种方法是打破资源的互斥和不可剥夺这两个条件,例如允许进程同时访问某些资源等。
这种方法不能解决访问那些不允许被同时访问的资源时所带来的死锁问题。
*1.2另一种方法则是打破资源的部分分配这个死锁产生的必要条件。
即预先分配各并发进程所需要的全部资源。
如某个进程的资源得不到满足时,则安排一定的等待次序让其他进程释放资源。
但是,这种方法也有如下缺点:
(1)在许多情况下,一个进程在执行之前不可能提出它所需要的全部资源。
(2)无论所需资源何时用到,一个进程只有在所有要求资源都得到满足之后才开始执行。
3)对于那些不经常使用的资源,进程在生存过程期间一直占用它们是一种极大的浪费。
(4)降低了进程的并发性。
*1.3另外一种死锁的预防方法是打破死锁的环路条件。
即把资源分类按顺序排列,使进程在申请、保持资源时不形成环路。
如有m种资源,则列出R1<R2<…<Rm。
若进程Pi保持了资源Ri,则它只能申请比Ri级别更高的资源Rj(Ri<Rj)。
释放资源时必须是Rj先于Ri被释放,从而避免环路的产生。
这种方法的缺点是限制了进程对资源的请求,而且对资源的分类编序也耗去一定的系统开销。
第三章处理机调度与死锁
如图4.1所示,一个作业从提交给计算机系统到执行结束
退出系统,一般都要经历提交、收容、执行和完成等4个状态。
*一个作业在其处于从输入设备进入外部存储设备的过程称为提交状态。
处于提交状态的作业,因其信息尚未全部进入系统,所以不能被调度程序选取。
*收容状态也称为后备状态。
输入管理系统不断地将作业输入到外存中对应部分(或称输入井,即专门用来存放待处理作业信息的一组外存分区)。
若一个作业的全部信息已全部被输入进输入井,那么,在它还未被调度去执行之前,该作业处于收容状态。
*作业调度程序从后备作业中选取若干个作业到内存投入运行。
它为被选中作业建立进程并分配必要的资源,这时,这些被选中的作业处于执行状态。
3.1处理机调度的基本概念
3.1.1高级、中级和低级调度
1.作业调度(高级)(HighScheduling)
①按原则将外存后备队列中若干作业调入内存;为之创建进程;分配资源;排在就绪队列上。
接纳作业个数取决于多道程序度,即允许的同时在内存中运行的作业个数;接纳哪些作业取决于调度算法。
②作业完成后,作业调度要撤消该作业的全部进程,回收资源,
③仅用于批处理系统,分时、实时系统不要(无提交、收容状态)
2.进程调度(低级)(LowLevelScheduling)
①进程调度是决定就绪队列中哪个进程将获得处理机,并由分派程序执行,将处理机分配给该进程的一系列操作,(进行进程上下文切换,以建立与占用处理机的进程相适应的执行环境)
②两种调度方式:
非抢夺方式(Non-preemptiveMode)
一旦分配了处理机,就让该进程一直执行,直至进程完成或因某事而堵塞,才放弃处理机,用于批处理系统。
抢夺方式(PreemptiveMode)
允许调度程序根据某种原则,停止正执行的进程,将CPU重新分给另一进程。
用于分时、实时系统。
③三种OS都需要,运行频率高。
3.交换调度(中级、中程)(Intermediate-LevelScheduling)
按给定的原则和策略,将处于外存交换区中的就绪状态/堵塞状态的进程调入内存,或把处于内存就绪状态或内存堵塞状态的进程交换到外存交换区。
实际是内存管理中的对换功能,主要涉及内存管理与扩充。
4.线程调度
注意:
调度的运行频度与算法复杂度成反比:
时间越短,算法应越简单。
3.2.1先来先服务和短作业(进程)优先调度算法
1.先来先服务调度算法(FCFS)
①可用于作业调度,或用于进程调度。
②是非抢占式的
③对长的作业或进程有利,对短的不利。
2.短作业(进程)优先调度算法(SJF或SPF)
3.2.2高优先权优先调度算法
1.优先权调度算法的类型
(1)非抢占式优先权调度算法
(2)抢占式优先权调度算法
2.优先权的类型
(1)静态优先权
静态优先权在创建进程时确定,在进程的整个运行期间保持不变。
用一个整数来表示。
确定进程优先权可以根据:
①进程类型。
系统进程优于用户进程
②进程对资源的需求。
少、小者优先
③用户要求。
要求紧迫者、付费高者优先
(2)动态优先权
动态优先权是指,在创建进程时所赋予的优先权,可以随进程的推进或等待时间的增加而改变,以便获得更好的调度性能。
等待者随着等待时间的增长而增加其优先权
执行者随着执行时间的增长而减少其优先权
3.高响应比优先调度算法
兼顾了各个方面,是一种较好的算法。
优先权的变化规律可描述为:
2.轮转法(roundrobin)
*轮转法的基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成比例。
*轮转法的基本概念是将CPU的处理时间分成固定大小的时间片。
如果一个进程在被调度选中之后用完了系统规定的时间片,但未完成要求的任务,则它自行释放自己所占有的CPU而排到就绪队列的末尾,等待下一次调度。
同时,进程调度程序又去调度当前就绪队列中的第一个进程或作业。
轮转法的原理见图4.4。
*显然,轮转法只能用来调度分配那些可以抢占的资源。
将它们随时剥夺再分配给别的进程。
CPU是可抢占资源的一种。
*但如打印机等资源是不可抢占的。
由于作业调度是对除了CPU之外的所有系统硬件资源的分配,其中包含有不可抢占资源,所以作业调度不使用轮转法。
时间片轮转调度算法—例
(1)
EG:
进程到达时间服务时间
P10.07
P22.04
P34.01
P45.04
•RR(时间片为1)
•平均周转时间=((15-0)+(12-2)+(6-4)+(16-5))/4=9.5
•平均等待时间=(8+6+1+7)/4=5.5
时间片轮转调度算法—例
(2)
FCFS
非抢占SPF
抢占SPF
RR-1
RR-4
平均周转时间
8.75
8
7
9.5
8.5
平均等待时间
4.75
4
3
5.5
4.5
EG:
进程到达时间服务时间
P10.07
P22.04
P34.01
P45.04
•RR(时间片为4)
•平均周转时间=((12-0)+(8-2)+(9-4)+(16-5))/4=8.5
•平均等待时间=(5+2+4+7)/4=4.5
第四章存储器管理
4.1.1程序的装入
1.绝对装入方式(AbsoluteLoadingMode)
2.可重定位装入方式(RelocationLoadingMode)
3.动态运行时装入方式(DenamleRun-timeLoading)
4.2连续分配方式
连续分配:
为一个用户程序分配一个连续的内存空间。
5.2分区存储管理
分区管理是把内存划分成若干个大小不等的区域,除操作系统占用一个区域之外,其余由多道环境下的各并发进程共享。
分区管理是满足多道程序设计的一种最简单的存储管理方法。
5.2.1分区管理基本原理
分区管理的基本原理是给每一个内存中的进程划分一块适当大小的存储区,以连续方式存储各进程的程序和数据,使各进程得以并发执行。
按分区的时机,分区管理可以分为固定分区和动态分区两种方法。
1.固定分区法
*把内存区固定地划分为若干个大小不等的区域。
划分的原则由系统操作员或操作系统决定。
分区一旦划分结束,在整个执行过程中每个分区的长度和内存的总分区个数将保持不变。
*系统对内存的管理和控制通过数据结构——分区说明表进行,分区说明表说明各分区号、分区大小、起始地址和是否是空闲区(分区状态)。
内存的分配释放、存储保护以及地址变换等都通过分区说明表进行。
2.动态分区法
*动态分区法在作业执行前并不建立分区,分区的建立是在作业的处理过程中进行的,且其大小可随作业或进程对内存的要求而改变。
这就改变了固定分区法中那种即使是小作业也要占据大分区的浪费现象,从而提高了内存的利用率。
*采用动态分区法,在系统初启时,除了操作系统中常驻内存部分之外,只有一个空闲分区。
随后,分配程序将该区依次划分给调度选中的作业或进程。
4、动态分区常用方法有三种。
1.它们是最先适应法(firstfitalgorithm)
2.最佳适应法(bestfitalgorithm)
3.最坏适应法(worstfitalgoriathm)。
(1)最先适应法
最先适应法要求可用表或自由链按起始地址递增的次序排列。
该算法的最大特点是一旦找到大于或等于所要求内存长度的分区,则结束探索。
然后,该算法从所找到的分区中划出所要求的内存长度分配给用户,并把余下的部分进行合并(如果有相邻空闲区存在)后留在可用表中,但要修改其相应的表项。
最先适应算法如图5.11所示。
例:
系统中的空闲分区表如下,现有三个作业分配申请内存空间100K、30K及7K。
给出按最佳适应算法的内存分配情况及分配后空闲分区表。
空闲分区表
区号
大小
起址
1
32k
20k
2
8k
52k
3
120k
60k
4
331k
180k
解:
按首次适应算法,
申请作业100k,分配3号分区,剩下分区为20k,起始地址160K;
申请作业30k,分配1号分区,剩下分区为2k,起始地址50K;
申请作业7k,分配2号分区,剩下分区为1k,起始地址59K;
其内存分配图及分配后空闲分区表如下
(2)该算法分配后的空闲分区表
区号
大小
起址
1
2k
50k
2
1k
59k
3
20k
160k
4
331k
380k
v最先适应算法的特点
优先利用内存低地址部分的空闲分区,从而保留了高地址部分的大空闲区。
但由于低地址部分不断被划分,致使低地址端留下许多难以利用的很小的空闲分区(碎片或零头),而每次查找又都是从低地址部分开始,这无疑增加了查找可用空闲分区的开销。
(2)最佳适应算法
最佳适应算法要求从小到大的次序组成空闲区可用表或自由链。
当用户作业或进程申请一个空闲区时,存储管理程序从表头开始查找,当找到第一个满足要求的空闲区时,停止查找。
如果该空闲区大于请求表中的请求长度,则与最先适应法时相同,将减去请求长度后的剩余空闲区部分留在可用表中。
例:
系统中的空闲分区表如下,现有三个作业分配申请内存空间100K、30K及7K。
给出按最佳适应算法的内存分配情况及分配后空闲分区表。
内存分区
分配前的空闲分区表
区号
大小
起址
1
8k
52k
2
32k
20k
3
120k
60k
4
331k
180k
解:
按最佳适应算法,分配前的空闲分区表如上表。
申请作业100k,分配3号分区,剩下分区为20k,起始地址160K;
申请作业30k,分配2号分区,剩下分区为2k,起始地址50K;
申请作业7k,分配1号分区,剩下分区为1k,起始地址59K;
其内存分配图及分配后空闲分区表如下
作业100K分配后的空闲分区表
区号
大小
起址
1
8k
52k
3
20k
160k
2
32k
20k
4
331k
180k
作业30K分配后的空闲分区表
区号
大小
起址
2
2k
50k
1
8k
52k
3
20k
160k
4
331k
180k
作业7K分配后的空闲分区表
区号
大小
起址
1
1k
59k
2
2k
50k
3
20k
160k
4
331k
180k
(1)内存分配图
(2)该算法分配后的空闲分区表
区号
大小
起址
1
1k
59k
2
2k
50k
3
20k
160k
4
331k
180k
v算法特点
若存在与作业大小一致的空闲分区,则它必然被选中,若不存在与作业大小一致的空闲分区,则只划分比作业稍大的空闲分区,,从而保留了大的空闲分区,但空闲区一般不可能正好和它申请的内存空间大小一样,因而将其分割成两部分时,往往使剩下的空闲区非常小,从而在存储器中留下许多难以利用的小空闲区(碎片或零头)。
(3)最坏适应算法
最坏适应算法要求空闲区按其大小递减的顺序组成空闲区可用表或自由链。
当用户作业或进程申请一个空闲区时,先检查空闲区可用表或自由链的第一个空闲可用区的大小是否大于或等于所要求的内存长度,若可用表或自由链的第一个项长度小于所要求的,则分配失败,否则从空闲区可用表或自由链中分配相应的存储空间给用户,然后修改和调整空闲区可用表或自由链。
解:
按最坏适应算法,分配前的空闲分区表如上表。
申请作业100k,分配1号分区,剩下分区为231k,起始地址280K;
申请作业30k,分配1号分区,剩下分区为201k,起始地址310K;
申请作业7k,分配1号分区,剩下分区为194k,起始地址317K;
作业100K分配后的空闲分区表
区号
大小
起址
1
231k
280k
2
120k
60k
3
32k
20k
4
8k
52k
作业30K分配后的空闲分区表
区号
大小
起址
1
201k
310k
2
120k
60k
3
32k
20k
4
8k
52k
作业7K分配后的空闲分区表
区号
大小
起址
1
194k
317k
2
120k
60k
3
32k
20k
4
8k
52k
(1)内存分配图
(2)该算法分配后的空闲分区表
区号
大小
起址
1
194k
317k
2
120k
60k
3
32k
20k
4
8k
52k
v算法特点
总是挑选满足作业要求的最大的分区分配给作业。
这样使分给作业后剩下的空闲分区也较大,可装下其它作业。
但由于最大的空闲分区总是因首先分配而划分,当有大作业到来时,其存储空间的申请往往会得不到满足。
5.3.1覆盖技术
*覆盖技术是基于这样一种思想提出来的,即一个程序并不需要一开始就把它的全部指令和数据都装入内存后再执行。
*在单CPU系统中,每一时刻事实上只能执行一条指令。
因此,不妨把程序划分为若干
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习资料