操作系统原理复习总结.docx
《操作系统原理复习总结.docx》由会员分享,可在线阅读,更多相关《操作系统原理复习总结.docx(56页珍藏版)》请在冰豆网上搜索。
操作系统原理复习总结
第1章操作系统概述
1.1计算机系统
计算机硬件是指组成计算机系统的设备或机器,是“看得见,摸得着”的物理部件,它是组成计算机系统的基础。
组成,计算机硬件一般包括中央处理器(CPU)、内存储器、外存储器、输入设备和输出设备,其中CPU与内存储器合称为主机,外存储器、输入设备和输出设备合称为外部设备。
计算机软件是指组成计算机系统的程序、数据和文档。
程序是指令的有序集合;数据是信息在计算机中的表示,是计算机处理的对象;文档是各种说明文本,是软件操作的辅助性资源。
组成:
系统软件:
是支持和管理计算机硬件的软件,是服务于硬件的,它创立的是一个平台。
系统软件包括操作系统、数据库管理系统、计算机编译语言和各种系统服务性程序。
应用软件:
应用软件是完成用户某项要求的软件,是服务于特定用户的,它满足某一个应用领域。
应用软件包括计算机源程序和应用软件包。
1.2操作系统的目标、作用与模型
操作系统是计算机硬件上加载的第一层软件,是对计算机硬件功能的首次扩充。
其他软件只有在操作系统的支持下,才能对计算机硬件工作。
操作系统是一种重要的系统软件。
计算机硬件加上I/O管理软件称为虚拟机,虚拟机再加上文件管理软件称为较强的虚拟机,较强的虚拟机再加上窗口软件称为极强的虚拟机。
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合.
操作系统的目标
1.方便性:
操作系统最终是要为用户服务的。
给计算机配置操作系统后必须使计算机系统方便使用。
2.有效性:
操作系统要合理地组织计算机的工作流程,改善系统资源的利用率,提高系统的吞吐量从而使有限的资源完成更多的任务。
3.可扩充性:
操作系统也是为应用服务的,随着应用环境的变化,操作系统自身的功能也必须不断增加和完善。
4.开放性:
操作系统主要功能是管理计算机硬件的,必须适应和能够管理不同的硬件。
操作系统的作用
1.OS作为用户与计算机硬件系统之间的接口
用户可通过三种方式使用计算机:
命令方式、系统调用方式、图形窗口方式。
2OS作为计算机系统资源的管理者
⏹ 处理机管理:
用于分配和控制处理机
⏹ 存储器管理:
负责内存的分配与回收
⏹ I/O设备管理:
负责I/O设备的分配与操纵
⏹ 文件管理:
负责文件的存取、共享和保护
3.OS用作扩充机器
操作系统的层次模型
操作系统也可以看成是一个层次结构,其最底层为操作系统对象,中间层为对对象进行管理的软件集合,最高层为操作系统提供给用户使用的接口
1.3操作系统的形成与发展
操作系统的发展
1.无操作系统:
方式:
人工操作方式,脱机输入输出方式
2.批处理系统
批处理系统主要是采用了批处理技术。
批处理技术是指计算机系统对一批作业自动进行处理的一种技术。
方式:
单道批处理系统:
主要特征:
自动性、顺序性、单道性
多道批处理系统:
引入的好处:
提高CPU的利用率;可提高内存和I/O设备利用率;增加系统吞吐量
特征:
多道性、无序性、调度性
优缺点:
资源利用率高、系统吞吐量大、平均周转时间长、无交互能力。
3.分时操作系统
所谓分时系统就是采用了分时技术的操作系统。
分时技术就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
分时系统要解决的关键问题是
一是及时接收,二是及时处理。
分时系统的实现方式
①单道分时系统
②具有“前台”和“后台”的分时系统
③多道分时系统
分时系统的特征
有多路性、独立性、及时性和交互性。
4.实时系统
实时系统是指系统能及时响应外部事件的请求,在规定的时间内,完成对该事件的处理,并控制所有实时任务协调一致地运行。
类型:
实时控制系统,实时信息处理系统
实时系统的特征:
有多路性、独立性、及时性、交互性和可靠性。
[例]实时系统与分时系统特征的比较P11
5.微机操作系统
类型:
单用户单任务操作系统
单用户多任务操作系统
多用户多任务操作系统
6.多处理机操作系统
多个处理机之间的互联系统,在多处理机系统上配置的操作系统是多处理机操作系统。
类型:
非对称多处理机模式:
也称为主-从模式,在这种模式中,把处理机分为主处理机和从处理机两类,主处理机只有一个,其上配置了操作系统,用于管理整个系统的资源,并负责为各从处理器分配任务。
从处理机有若干个,它们执行预先规定的任务及由主处理机所分配的任务。
对称多处理机模式:
所有的处理机都是相同的。
在每个处理机上运行一个相同的操作系统拷贝,用它来管理本地资源和控制进程的运行以及各计算机之间的通信。
7.网络操作系统
网络操作系统用于管理网络中的各种资源,为用户提供各种服务。
其主要功能有网络通信管理、网络资源管理、网络安全管理和网络服务等。
类型:
客户/服务器模式(C/S),对等模式
8.分布式操作系统
分布式处理系统是指由多个分散的处理单元经互联网络的连接而形成的系统。
在分布式系统上配置的操作系统称为分布式操作系统。
特点
①分布性
②并行性
③透明性
④共享性
⑤健壮性
1.4操作系统的特征与功能
操作系统的特征
1.并发性
在多道程序环境下,并发性是指两个或多个事件在同一时间间隔内发生,即宏观上有多道程序同时执行,而微观上,在单处理机系统中每一个时刻仅能执行一道程序。
2.共享性
共享是指系统中的资源可供多个并发执行的进程使用。
3.虚拟性
是指通过某种技术把一个物理实体变成若干个逻辑上的对应物。
4.异步性
也称不确定性,是指在多道程序环境下,允许多个进程并发执行,由于资源的限制,进程的执行不是“一气呵成”的,是“走走停停”的。
操作系统的功能
从资源管理的角度来看,操作系统的功能主要有
⏹ 处理机的管理:
进程控制、进程同步、进程通信、调度
⏹ 存储器的管理:
内存分配、内存保护、地址映射、内存扩充
⏹ 设备的管理:
缓冲管理、设备分配、设备处理
⏹ 文件的管理:
文件存储空间的管理、目录管理、文件的读写管理和保护
⏹ 用户的接口:
命令接口、程序接口、图形接口
第2、3章处理器管理复习
2.1处理器管理概述
1.处理器管理的主要任务:
是对处理器进行分配,并对其运行进行有效地控制和管理。
处理器管理的主要功能
⏹ 进程控制
⏹ 进程同步
⏹ 进程通信
⏹ 进程调度:
包括作业调度和进程调度。
作业调度:
从后备队列中按照一定的算法,选择若干个作业,为它们分配必要的资源,将它们调入主存,然后为它们建立进程,并按照一定的算法将其插入就绪队列。
进程调度:
从进程的就绪队列中,按照一定的算法选出一新进程,把处理器分配给它,并为它设置运行现场,使进程投入运行。
2.程序的顺序执行
程序在执行时,必须按某种先后次序逐个执行操作,只有当前一个操作执行完后,才能执行后一个操作。
特征:
⏹ 顺序性
⏹ 封闭性
⏹ 可再现性
3.程序的并发执行
是指在一个时间段内执行多个程序。
特征:
⏹ 间断性
⏹ 失去封闭性
⏹ 不可再现性
2.2进程描述
1.进程的定义
一个程序在一个数据集合上的一次运行过程。
所以一个程序在不同数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。
进程是程序的一次执行
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
2.进程的特征
⏹ 动态性:
是进程的最基本的特征,它由创建而产生,由调度而执行,由撤消而消亡。
⏹ 并发性
⏹ 独立性:
指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。
⏹ 异步性
⏹ 结构性
3.进程的状态
进程的三种基本状态
就绪状态:
当进程以分配到除处理器(CPU)以外的所有必要资源后,只要再获得处理器就可以立即执行,这时进程的状态称为就绪状态。
执行状态:
处于就绪状态的进程一旦获得了处理器,就可以运行,进程状态也就处于执行状态。
阻塞状态:
正在执行的进程因为发生某些事件(如请求输入/输出、申请额外空间等)而暂停运行,这种受阻暂停的状态称为阻塞状态,也可以称为等待状态。
就绪态
阻塞态
执行态
I/O完成
进程调度
时间片完
I/O请求
进程的挂起状态
引入挂起状态后的进程状态转换
⏹ 执行状态→静止就绪
⏹ 活动就绪→静止就绪
⏹ 静止就绪→活动就绪
⏹ 活动阻塞→静止阻塞
⏹ 静止阻塞→活动阻塞
⏹ 静止阻塞→静止就绪
活动就绪
活动阻塞
执行态
激活
挂起
I/O请求
静止就绪
静止阻塞
挂起
挂起
激活
唤醒
唤醒
2.3进程控制
1.进程控制块PCB:
进程控制块是进程实体的重要组成部分,是操作系统中最重要的记录型数据,在进程控制块PCB(ProgramContralBlock)中记录了操作系统所需要的、用于描述进程情况及控制进程运行所需要的全部信息,PCB是进程存在的惟一标志。
作用
通过PCB,使得原来不能独立运行的程序(数据),成为一个可以独立运行的基本单位,一个能够并发执行的进程。
进程控制块是进程存在的唯一标志。
进程控制块的内容:
进程标识符、处理器状态、进程调度信息、进程控制信息
链接指针:
给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。
进程控制块的组织方式:
链接方式、索引方式
2.进程控制原语
原语的概念
原语是指具有特定功能的不可被中断的过程。
它主要用于实现操作系统的一些专门控制操作。
原语的分类
创建原语:
用于为一个进程分配工作区和建立PCB,置该进程为就绪状态。
撤消原语:
用于一个进程工作完后,收回它的工作区和PCB。
阻塞原语:
用于进程在运行过程中发生等待事件时,把进程的状态改为等待态。
唤醒原语:
用于当进程等待的事件结束时,把进程的状态改为就绪态。
3.进程的创建
引起进程创建的事件
⏹ 用户登录
⏹ 作业调度
⏹ 提供服务
⏹ 应用请求
2.4线程的基本概念
线程的概念:
线程是进程中的一个实体,是被系统独立调度和执行的基本单位。
线程与进程的区别:
● 调度单位不同:
线程是独立调度和执行的基本单位,进程只作为资源分配和拥有的基本单位。
● 并发形式不同:
在一个进程中的各个线程,可以并发执行。
不同进程中的线程也能并发执行。
● 拥有资源不同:
线程中的实体基本上不拥有系统资源,进程拥有资源。
● 共享方式:
在同一进程中的各个线程,都可以共享该进程所拥有的资源。
进程的基本属性:
(1)进程是一个可拥有资源的独立单位。
(2)进程同时又是一个可独立调度和分派的基本单位。
一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。
线程的属性:
⏹ 轻型实体。
线程中的实体基本上不拥有系统资源。
⏹ 独立调度和分派的基本单位。
⏹ 可并发执行
⏹ 共享进程资源。
线程的类型:
系统级线程:
是依赖于系统控制的,即无论是用户进程中的线程,还是系统进程中的线程,它们的创建、撤消、切换都是由系统控制实现的。
用户级线程:
是由用户控制,对于用户级线程的创建、撤消、切换,都与系统控制无关,完全由用户自己管理。
超线程的概念
超线程技术就是利用特殊的硬件指令,在一颗实体处理器中放入两个逻辑处理单元,从而模拟成两个工作环境,让单个处理器都能使用线程级并行计算,同时处理多项任务,提升处理器资源的使用率。
2.5进程同步与互斥
1.进程的并发性:
在并发执行的系统中,若干个作业可以同时执行,而每个作业又需要有多个进程协作完成。
在这些同时存在的进程间具有并发性
进程同步的主要任务:
使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
临界资源:
在系统中有许多硬件或软件资源,在一段时间内只允许一个进程访问或使用,这种资源称为临界资源。
临界区:
每个进程中访问临界资源的那段代码称为临界区
进程同步:
进程同步是指多个相关进程在执行次序上的协调,这些进程相互合作,在一些关键点上需要相互等待或相互通信。
进程互斥:
进程互斥是指当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一个进程才被允许使用临界资源。
进程同步机制应遵循的原则
⏹ 空闲让进
⏹ 忙则等待
⏹ 有限等待
⏹ 让权等待
2.利用PV操作实现互斥与同步
信号量就是一种特殊变量,它用来表示系统中资源的使用情况。
而整型信号量就是一个整型变量。
说明:
当其值大于“0”时,表示系统中对应可用资源的数目;
当其值小于“0”时,其绝对值表示因该类资源而被阻塞的进程的数目;
当其值等于“0”时,表示系统中对应资源已经都被占用,并且没有因该类资源而被阻塞的进程。
信号量的操作
P操作:
记为P(S),描述为:
P(S)
{S=S-1;
if(S<0)W(S);
}
W(s):
将调用过程的进程插入到等待信号量S的等待队列中
V操作:
记为V(S),描述为:
V(S)
{S=S+1;
if(S<=0)R(S);
}
R(s):
从该信号量的等待队列中释放第一个进程。
Wait(s)操作:
procedurewait(s)
varS:
semaphore;
begin
s.value:
=S.value-1;
ifs.value<0thenblock(S,L);
end.
wait(s):
将调用过程的进程插入到等待信号量S的等待队列中
Signal(s)操作:
procedureSigna(s)
varS:
semaphore;
begin
s.value:
=S.value+1;
ifs.value<=0thenwakeup(S,L);
end.
wakeup(s):
从该信号量的等待队列中释放第一个进程。
利用PV操作实现互斥
互斥信号量是根据临界资源的类型设置的。
有几种类型的临界资源就设置几个互斥信号量。
它代表该类临界资源的数量,或表示是否可用,其初值一般为“1”。
例题
【例2-1】在一个只允许单向行驶的十字路口,分别有若干由东向西,由南向北的车辆在等待通过十字路口。
为了安全,每次只允许一辆车通过。
当有车辆通过时其它车辆必须等候,当无车辆在路口行驶时则允许一辆车通过。
请用PV操作实现保证十字路口安全行驶的自动管理系统。
解:
S:
表示临界资源十字路口,S=1
intS=1;
main()
{pew();psn();}
pew()psn()
{{
p(s);wait(s)p(s);
由东向西通过十字路口;由南向北通过十字路口;
v(s);signal(s)v(s);
}}
【例2-2】有4位哲学家围着一个圆桌在思考和进餐,每人思考时手中什么都不拿,当需要进餐时,每人需要用刀和叉各一把,餐桌上的布置如图2-12所示,共有2把刀和2把叉,每把刀或叉供相邻的两个人使用。
请用信号量及PV操作说明4位哲学家的同步过程。
Intfork1=1,fork2=1,knife1=1,knife2=1;
Pa()
{while
(1)
{p(knife1);
p(fork1);
进餐;
v(knife1);
v(fork1);
}
}
利用PV操作实现同步
同步信号量是根据进程的数量设置的。
一般情况下,有几个进程就设置几个同步信号量,表示该进程是否可以执行,或表示该进程是否执行结束。
其初值一般为“0”。
【例2-3】桌上有一个空盘子,只允许放一个水果。
爸爸可以向盘中放苹果,也可以向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘空时,一次只能放一只水果,请用PV操作实现爸爸、儿子、女儿3个并发进程的同步。
Intsp=1;sa=0;so=0;
Main()
{father();son();daughter();}
Father()son()
{while
(1){while
(1)
{p(sp);{p(so);
将水果放入盘中;从盘中取出桔子;
if(放入的是桔子)v(sp);
v(so);吃桔子;
elsev(sa);}
}}
}
【例2-4】生产者与消费者问题(1:
1:
1)
Sp:
是否可以把物品存入缓冲区;sg:
缓冲区是否存有物品。
Intsp=1,sg=0;
Producer()
{while
(1)
{生产一个产品;
p(sp);
buffer=产品;
v(sg);
}
}
Consumer()
{while
(1)
{p(sg);
取产品从仓库中;
v(sp)
消费
}
}
【例2-6】生产者与消费者问题(1:
n:
1)
Intsp=n,sg=0;b[n],k=0,t=0
Producer()
{while
(1)
{生产一个产品;
p(sp);
b[k]=产品;
k=(k+1)modn;
v(sg);
}
}
Consumer()
{while
(1)
{p(sg);
取产品从b[t];
t=(t+1)modn
v(sp)
消费
}
}
【例2-7】生产者与消费者问题(m:
n:
r)
Sp:
是否可以把物品存入缓冲区;sg:
缓冲区是否存有物品。
S1:
m个生产者之间互斥地往缓冲区中存入物品;
S2:
r个消费者之间互斥地从缓冲区取物品
Intsp=n,sg=0;b[n],k=0,t=0,s1=1,s2=1;
Producer()
{while
(1)
{生产一个产品;
p(sp);
p(s1)
b[k]=产品;
k=(k+1)modn;
v(s1)
v(sg);
}
}
Consumer()
{while
(1)
{p(sg);
p(s2)
取产品从b[t];
t=(t+1)modn
v(s2)
v(sp)
消费
}
}
同步与互斥的解题思路
①分清哪些是互斥问题(互斥访问临界资源的),哪些是同步问题(具有前后执行顺序要求的)。
②对互斥问题要设置互斥信号量,不管有互斥关系的进程有几个或几类,通常只设置一个互斥信号量,且初值为1,代表一次只允许一个进程对临界资源访问。
③对同步问题要设置同步信号量,通常同步信号量的个数与参与同步的进程种类有关,即同步关系涉及几类进程,就有几个同步信号量。
同步信号量表示该进程是否可以开始或该进程是否已经结束。
④在每个进程中用于实现互斥的PV操作必须成对出现;用于实现同步的PV操作也必须成对出现,但可以分别出现在不同的进程中;在某个进程中如果同时存在互斥与同步的P操作,则其顺序不能颠倒,必须先执行对同步信号量的P操作,再执行对互斥信号量的P操作,但V操作的顺序没有严格要求。
同步与互斥的解题步骤
(1)确定进程。
包括进程的数量、进程的工作内容,可以用流程图描述。
(2)确定同步互斥关系。
根据是否使用的是临界资源,还是处理的前后关系,确定同步与互斥,然后确定信号量的个数、含义,以及对信号量的P、V操作。
(3)用类C语言描述同步或互斥算法。
2.6进程通信
进程通信是指进程间的信息交换。
类型
● 共享存储器系统
● 消息传递系统:
方式
直接通信方式
发送进程使用发送原语直接将消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上,接收进程使用接收原语从消息缓冲队列中取出消息。
Send(receiver,message):
发送一个消息给接收进程
Receive(sender,message):
接收sender发来的消息。
间接通信方式
发送进程使用发送原语直接将消息发送到某种中间实体(信箱)中,接收进程使用接收原语从该中间实体中取出消息。
● 管道通信系统
2.7进程调度
进程调度的类型:
高级调度、低级调度、中级调度
高级调度又称为作业调度或长程调度,用于决定把外存上处于后备队列中的哪些作业调入主存,并为它们创建进程、分配必要的资源,然后将新创建的进程排入就绪队列,准备执行。
低级调度通常又称为进程调度或短程调度。
它决定主存中的就绪队列上的哪个进程(单处理器系统)将获得处理器,然后把处理器分配给该进程,使其执行。
方式:
非抢占方式、抢占方式
中级调度:
系统将那些暂时不能运行的进程从主存调到外存(仍然保持进程状态)上的特定区域,这些在外存存放的进程所处的状态称为就绪驻外状态或挂起状态。
当这些进程的运行条件具备,且主存又有空闲时,在中级调度的控制下,再将处于外存上的那些重新具备运行条件的就绪驻外进程调入主存,并将其状态修改为就绪状态,放入就绪队列,等待进程调度。
目的:
是为了进一步提高主存的利用率和系统的吞吐量。
常用的进程调度算法
● 先来先服务调度算法:
每次调度是从就绪队列中,选择一个最先进入就绪队列的进程,把处理器分配给该进程,使之得到执行。
该进程一旦占有了处理器,它就一直运行下去,直到该进程完成或因发生事件而阻塞,才退出处理器。
特点:
利于长进程,而不利于短进程。
● 短进程优先调度算法:
它是从就绪队列中选择一个估计运行时间最短的进程,将处理器分配给该进程,使之占有处理器并执行,直到该进程完成或因发生事件而阻塞,然后退出处理器,再重新调度。
● 时间片轮转调度算法:
系统将所有的就绪进程按进入就绪队列的先后次序排列。
每次调度时把CPU分配给队首进程,让其执行一个时间片,当时间片用完,由计时器发出时钟中断,调度程序则暂停该进程的执行,使其退出处理器,并将它送到就绪队列的末尾,等待下一轮调度执行。
● 优先数调度算法:
它是从就绪队列中选择一个优先权最高的进程,让其获得处理器并执行。
● 响应比高者优先调度算法:
它是从就绪队列中选择一个响应比最高的进程,让其获得处理器执行,直到该进程完成或因等待事件而退出处理器为止。
特点:
既照顾了短进程,又考虑了进程到达的先后次序,也不会使长进程长期得