能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
操作系统的4个特征是并发性、共享性、虚拟性和不确定性。
操作系统的功能可以分为处理机管理(进程管理)、文件管理、存储管理、设备管理和作业管理5大部分。
操作系统通常可以分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统和嵌入式操作系统等类型。
分时操作系统中,一个计算机系统与多个终端设备连接。是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
特点:多路性、独立性、交互性和及时性
网络操作系统是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。
分布式操作系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主次之分,任意两台计算机可以通过通信交换信息。
分布式操作系统能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面、标准的接口,用户通过这一界面实现所需要的操作和使用系统资源,是系统中若干计算机相互协作完成共同的任务,有效地控制和协调诸任务的并行执行,并向系统提供统一、有效的接口的软件集合。
嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及所操作、控制的各个部件装置等资源进行统一协调、处理、指挥和控制。
特点:微型化、可定制、实时性、可靠性、可移植性
进程是资源分配和独立运行的基本单位。
1)程序顺序执行的特征:
程序是一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前驱关系。
程序顺序执行时的主要特征包括:顺序性、封闭性和可再现性。
2)程序并发执行的特征:
失去了程序的封闭性;程序和机器的执行程序的活动不再一一对应;并发程序间的相互制约性。
进程是程序的一次执行,该程序可以和其他程序并发执行。进程通常是由程序、数据和进程控制块(PCB)组成的。
1)PCB是进程存在的唯一标志
2)程序。程序部分描述了进程需要完成的功能。假如一个程序能被多个进程同时共享执行,那么这一部分就应该以可再入(纯)码的形式编制,它是程序执行时不可修改的部分。
3)数据。数据部分包括程序执行时所需的数据及工作区。该部分职能为一个进程所专用,是进程的可修改部分。
进程一般有三种基本状态:运行、就绪和阻塞。
三态模型显示了进程基本状态及其转换。
(1)运行:当一个进程在处理机上运行时,则称该进程出于运行状态。
(2)就绪:一个进程获得了除处理机外的一切资源,一旦得到处理机即可运行,则称进程出于就绪状态。
(3)阻塞:也称等待或者睡眠状态。一个进程正在等待某一事件发生(例如请求I/O,等待I/O完成)而暂时停止运行,这是即使把处理机分配给进程也无法运行,故称该进程出于阻塞状态。
引入新建态和终止态构成了进程的五态模型。
由于进程的不断创建,系统资源特别是主存资源已经不能满足进程运行的要求。这时,就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载。
(1)活跃就绪:是指进程在主存并且可被调度的状态
(2)静止就绪:是指就绪进程被对换到辅存时的状态,它是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级时,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
(3)活跃阻塞:是指进程在主存,一旦等待的时间产生便进入活跃就绪状态。
(4)静止阻塞:是指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪状态。
在多道程序环境的系统中存在多个可以并发执行的进程,使得进程之间会存在资源共享和相互合作的问题。进程通信是指各个进程交换信息的过程。
同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
其中,临界资源是指一些资源一次只能供一个进程使用。
临界区,是进程中对临界资源实施操作的那段程序。对互斥临界区管理有以下4条原则:
1)有空即进。
2)无空则等。
3)有限等待:对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入“饥饿”状态。
4)让权等待:当进程不能进入自己的临界区时,应当立即释放处理机,一面进程陷入忙等待状态。
信号量机制是一种有效的进程同步与互斥工具,PV操作是实现进程同步与互斥的常用方法。·
信号量是一个整型变量,根据控制对象的不同被赋予不同的值:
1)公用信号量:实现进程间的互斥,初值为1或者资源的数目
2)私有信号量:实现进程间的同步,初值为0或者某个正整数。
记信号量为S: S ≥ 0 S\geq 0 S≥0表示某资源的可用数; S < 0 S<0 S<0则其绝对值表示阻塞队列中等待该资源的进程数。
P操作: S : = S − 1 S:=S-1 S:=S−1。若 S ≥ 0 S\geq 0 S≥0,则执行P操作的进程继续执行;若 S < 0 S<0 S<0,则将该进程置为阻塞状态,并将其插入阻塞队列。
V操作: S : = S + 1 S:=S+1 S:=S+1。若 S > 0 S>0 S>0,则执行V操作的进程继续执行;若KaTeX parse error: Undefined control sequence: \eq at position 2: S\̲e̲q̲ ̲0,则从阻塞状态唤醒一个程序,并将其插入就绪队列,然后执行V操作的进程继续。
令信号量 m u t e x mutex mutex的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作。
P(mutex)
临界区
V(mutex)
进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可以用一个信号量与消息联系起来。
当信号量的值为0时,表示等待的消息未产生;当信号量的值为非0时表示等待的消息已经存在。
假定用信号量S表示某条消息,进程可以调用P操作测试消息是否到达,调用V操作通知消息已经准备好。
典型的同步问题是缓冲区生产者和消费者的同步问题。
管程采用资源集中管理的方法,将系统中的资源用某种数据结构抽象地标识出来。由于临界区是访问共享资源的代码段,因而建立一个管程来管理进程提出的访问请求。
进程调度方式是指当有更高优先级的进程到来时如何分配CPU,有不可剥夺和可剥夺两种。
所谓死锁,是指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。
产生死锁的4个必要条件是:
1)互斥条件
2)请求保持条件
3)不可剥夺条件
4)环路条件
当发生死锁时,在进程资源有向图中必构成环路,其中每个进程占有了下一个进程申请的一个或多个资源,导致进程申请的资源无法满足而产生死锁。
处理死锁主要由以下4种策略
1)鸵鸟策略:即不理睬
2)预防策略:采用某种策略限制并发进程对资源的请求,破坏死锁产生的4个必要条件之一。
预先静态分配法 | 破坏了“不可剥夺条件”。预先分配所需资源,保证不等待资源。降低了对资源的利用率从而降低进程的并发程度,但有时无法预先知道所需资源。 |
资源有序分配法 | 破坏了“环路条件”。把资源分类按顺序排列,保证不形成环路。限制了进程对资源的请求,但是排序加大了系统开销。 |
3)避免策略:例如银行家算法,对每一个资源进行检测。
4)检测与接触死锁: