目录
【1】操作系统概述
1.1操作系统的目标、作用
OS的目标:方便性、有效性、可扩充性、开放性
OS的作用:
1)作为用户与计算机硬件系统之间的接口 , 达成了方便性的目标。
2)OS作为计算机系统资源的管理者 ,达成有效性目标
3)OS用作扩充机器
1.2 操作系统的发展过程
操作系统的定义:
操作系统是: 一组控制和管理计算机硬件和软件资源, 合理地对各类作业进行调度(多道), 方便用户使用的程序的集合。
操作系统分类:
1)单用户OS:一次只能支持一个用户作业的运行。
2)批处理OS:用户作业以成批的方式提交给计算机。
3)分时OS:允许多个用户同时与计算机系统交互。
4)实时OS:能够及时响应随机发生的外部事件,并对外部事件做出快速处理,对来自外部的请求和信号在限定的时间范围内做出响应。实时性和可靠性是其重要特点。
5)网络OS:面向网络上多用户,提供基本的网络操作所需要的功能,如文件共享,内存管理和进程任务调度等。
6)分布式OS:是最高级的操作系统,管理整个系统(包括网络)中的所有资源,负责所有资源的分配和调度、任务的划分和具体安排、信息传递和控制。
7)嵌入式OS:与应用紧密结合、专用性很强、可裁剪。
1.3操作系统的基本特性
操作系统的基本特征:并发 、共享 、虚拟 、异步
1)并发
并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时段发生
2)共享
系统中的资源可供内存中多个并发执行的进程(线程)共同使用。两种方式:互斥共享方式、同时访问方式
3)虚拟
通过某种技术把一个物理实体变为若干个逻辑对应物(用户感觉上的东西)。两种实现方式: 时分复用、空分复用
4)异步
指进程的执行顺序和执行时间的不确定性
1.4操作系统的主要功能
操作系统的主要功能: 处理机管理功能(作业管理) 存储器管理功能 设备管理功能 文件管理功能 用户接口
1.5操作系统的结构
操作系统的结构: 无结构OS 模块化OS结构 分层式OS结构 微内核OS结构.
微内核的优点:
1)灵活、可扩充 2)增强可靠性 3)可移植性 4)适合于分布式系统 5)面向对象技术,减少开发开销
微内核存在的问题:运行效率降低、有的服务需要借助其他服务,需要的切换开销更大。
【2】进程管理
2.1进程的基本概念
程序顺序执行时的特征:
1)顺序性 处理机的操作严格按程序规定顺序执行
2)封闭性 程序一旦开始执行,其计算结果不受外界因素影响
3)可再现性 程序执行只要初始条件一样,不论如何停顿,重复执行多少次结果都是一样的。
进程的定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的特征:
1)结构性特征,进程的根本——PCB
2)动态性 进程实质上是进程实体的一次有生命期的执行过程。程序只是静态的一组有序指令。
3)并发性 多个进程实体共存于内存中,在一段时间内同时运行,有PCB的程序才能并发
4)独立性
5)异步性
进程的三种基本状态:
1)就绪状态(Ready) 进程获得除CPU之外的所有必需资源,一旦得到CPU控制权,可立即运行。
2)运行状态(Running) 进程已获得所有运行必需的资源,正在处理机上执行。
3)阻塞状态(Blocked) 正在执行的进程由于发生某事件(请求I/O、申请缓冲、时间片到)而暂时无法执行时,便放弃CPU后暂停
2.2进程控制
进程创建过程
1) 申请空白PCB
2) 为新进程分配资源 主要是内存资源的处理
3) 初始化进程控制块 标识符(包括父进程的)、程序计数器指向程序入口地址,就绪态、优先级等信息的填写。
4) 将新进程插入就绪队列
OS通过调用进程创建原语Creat()创建新进程。(原语是由若干指令构成的原子操作过程,作为整体实现功能,不可被打断。)
进程终止过程
1) 根据进程标示符,检索出该进程PCB,读其状态。
*IF 执行态,立即终止该进程,置调度标志为真,指示重新进行调度。
*IF 有子孙进程,亦应予以终止,以防成为不可控进程。
2) 归还全部资源至其父进程或系统。
3) 将该进程PCB从所在队列或链表中移出。
进程的阻塞与唤醒
1)将PCB中的状态改为阻塞
2)该PCB加入到阻塞队列中
3)转进程调度,将处理机分配给另一进程
4)进行进程切换,即根据两切换进程的PCB,保护与重新设置处理机状态。
进程的挂起与激活
1)检查被挂起进程的状态,活动就绪则改为静止就绪,活动阻塞则改为静止阻塞
2)将该PCB复制到内存(方便检查)/外存(对换)指定区域
3)*若挂起的进程是执行态,则需重新进行进程调度。
2.3进程同步
进程同步的主要任务:使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
理解同步
互斥:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到占用临界资源的进程退出临界区,我们称进程之间的这种相互制约关系为“互斥”。
同步:多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步关系。可理解为“有序”。
临界区 每个进程中访问临界资源的那段代码叫临界区。 为了正确同步,对临界区的代码要增加控制
同步机制遵守的规则
空闲让进:资源使用最基本原则
忙则等待:保证互斥
有限等待:合适时被唤醒防止死等
让权等待:能主动释放CPU防止忙等
信号量
1) 整型信号量:
P操作 wait(S):
While S<=0 do no-op; S:=S-1;
V操作 signal(S):
S:=S+1;
2)记录型信号量:
P操作wait(): S.value = S.value - 1; if S.value < 0 then block(S,L)
V操作signal(): S.value = S.value + 1; if S.value <= 0 then wakeup(S,L)
3)AND信号量:
Swait(S1, S2, …, Sn)
if (S1 >=1 and … and Sn>=1 )then
for i:=1 to n do
Si:= Si -1 ;
endfor
else 将进程阻塞在第一个不能满足资源信号量的队列中。
endif
Ssignal(S1, S2, …, Sn)
for i:=1 to n do
Si:= Si +1 ; 唤醒所以与si相关的阻塞进程
endfor
信号量的基本应用:
1)实现进程互斥
P(mutex)
操作共享资源R
V(mutex)
互斥信号量注意点:
1、mutex的初值设为1
2、将临界区代码置于p和v原语之间
3、必须成对使用P和V原语
2)实现有序
P1 : C1 ;signal(S);
P2 : wait(S);C2 ;
C1在C2开始前完成
同步顺序的注意点:
1、信号量值为0的点是限制的关键所在
2、成对使用P和V原语
2.3经典进程同步问题
查看ppt阅读,此知识点较为重要
【3】处理机调度与死锁
3.1处理机调度相关基本概念
处理机调度:多道程序环境下,动态的把处理机分配给就绪队列中的一个进程使之执行。
提高处理机的利用率、改善系统性能,很大程度上取决于处理机调度的性能。
高级调度:
又称作业调度或长程调度接纳调度,主要在早期批处理阶段,处理在外存上的作业。
1)决定外存后备队列中的哪些作业调入内存;
2)为它们创建进程、分配必要的资源;
3)将新创建的进程排在就绪队列上,准备执行
作业调度决定的细节:
1)接纳多少作业——取决于多道程序度。应根据系统的规模和运行速度等情况综合考虑。
2)接纳哪些作业——取决于采用的调度算法。如先来先服务,短作业优先等(后面详细介绍)
批处理系统:作业进入系统后先驻留外存,故需要有作业调度。
分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。
实时系统中,通常也不需作业调度
低级调度:
也称为进程调度、微观调度或短程调度。决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。
进程调度方式:
1)非抢占方式 一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配运行进程的处理机。
特点: 实现简单、系统开销小; 功能也简单,适用于大多数批处理OS,但在要求较严格的实时系统,不宜采用该方式
2)抢占方式 允许调度程序根据某种原则,暂停某个正在执行的进程,将处理机重新分配给另一进程。
特点: 抢占的原则有很多种:优先权高的可以抢占优先级低的进程的处理机。短作业(进程)可以抢占长作业(进程)的处理机。各进程按时间片运行,一个时间片用完时重新进行调度。
中级调度:
又称交换调度或中程调度。引入目的:提高内存利用率和系统吞吐量。根据条件将一些进程调出或再调入内存。
三种调度的频率和复杂度:
调度类型 |
运行频率 |
运行时间 |
算法复杂性 |
进程调度 |
高 |
短 |
低 |
中程调度 |
中等 |
较短 |
中等 |
作业调度 |
低 |
长 |
高 |
调度队列模型:
1)仅有进程调度的调度队列模型
2)具有高级和低级调度的调度队列模型
3)同时具有三级调度的调度队列模型
3.2常用调度算法
先来先服务调度算法FCFS(不利于短作业)
一种最简单的调度算法,按先后顺序进行调度。既可用于作业调度,也可用于进程调度。 按照作业提交,或进程变为就绪状态的先后次序分派CPU; 新作业只有当当前作业或进程执行完或阻塞才获得CPU运行 被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。 (所以,默认即是非抢占方式)。有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。
短作业(进程)优先调度算法SJF/SPF
是以进程的运行时间长度作为优先级,进程运行时间越短,优先级越高。方式分为抢占式和非抢占式。
优点:平均周转时间、平均带权周转时间都有明显改善。SJF/SPF调度算法能有效的降低作业的平均等待时间,提高系统吞吐量。
不足:
1. 对短作业有利,但同时造成了对长作业的不利。
2.由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。
3.未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。
高优先权优先调度算法HPF
照顾紧迫性作业,使其获得优先处理而引入调度算法。常用于批处理系统中的作业调度算法,以及多种操作系统中的进程调度算法。分为
非抢占式优先权算法和抢占式优先权算法 。
优先权的类型:
1)静态优先权:创建进程时确定,整个运行期间保持不变。一般利用某一范围的一个整数来表示,又称为优先数。
2)动态优先权:创建进程时赋予的优先权可随进程的推进或随其等待时间的增加而改变。
进程优先权的确定:
1)进程类型:一般来,系统进程高于用户进程。
2)进程对资源的需求:如进程的估计时间及内存需要量的多少,对要求少的进程赋予较高优先权。