操作系统复习,知识点总结
1.操作系统概述
2.进程管理
3.调度与死锁
下一篇文章——>操作系统知识点总结(二)
下一篇文章——>操作系统知识点总结(三)
一、操作系统概述
(1)操作系统的概念、特征、功能和提供的服务
操作系统的概念:控制和管理整个计算机系统的硬件和软件资源,合理地组织和调度计算机 的资源分配,进而为用户和其他软件提供接口与环境的程序集合。
特征:
基本特征包括并发、共享、虚拟和异步。并发和共享是操作系统两个最基本特征。
并发是指两个或多个事件在同一时间间隔内发生。引入进程的目的是使程序能并发执行。 资源共享即共享,是指系统中的资源可供并发执行的进程同时使用。
并发与共享的关系:1、资源共享以进程并发为条件。2、若系统不能对资源共享作出有效管理,则必将影响到程序的并发。
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。利用多道程序设计把一个物理上的 CPU 虚拟为多个逻辑上的 CPU,称为虚拟处理器。还有虚拟存储器。
异步(不确定性):多道程序环境允许多个进程并发执行,但由于资源有限,进程的执 行并不是一贯到底,而是走走停停,它以不可预知的速度向前推进,这就是进程的异步性。
功能和目标:作为计算机系统资源管理者,操作系统有以下几个方面功能:处理机管理(可 归结为进程的管理)、存储器管理(内存分配、地址映射、内存保护、内存扩充等)、文件管 理、设备管理(缓冲管理、设备分配、设配处理、虚拟设备等)。
操作系统还可以作为用户与计算机硬件系统之间的接口。操作系统提供的接口有两类:命令 接口、程序接口。
程序接口:由一组系统调用命令组成,用户通过在程序中使用这些系统调用命令来请求操作 系统为其提供服务。
(2)操作系统的发展与分类
批处理阶段: 单道批处理系统:系统对作业的处理时成批进行的,但内存中始终保持一道作业。
特征:
1、自动性,顺利情况下,磁带上的作业自动逐个运行,无需人工干预。
2、顺序性,各道作业顺序进入内存。
3、单道性,内存中仅有一道程序运行。
多道批处理系统:允许多个程序同时进入内存并允许他们在 CPU 中交替运行,这些程序共 享系统中的各种软硬件资源。
特点:1、多道,内存中同时存放多道相互独立的程序。
2、宏观上并行,微观上串行。
优点:资源利用率高、各种资源得到充分利用;系统吞吐量大,CPU 保持忙碌。
缺点:用户响应时间较长;不提供人机交互能力,用户不了解程序的运行情况,又不能控制 计算机。
分时操作系统:把处理器运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机 的作业使用。也是支持多道程序设计的系统,但分时系统是实现人机交互的系统。
特征:1、同时性,允许多个终端用户同时使用一台计算机。
2、交互性。
3、独立性,多个用户彼此独立进行操作。
4、及时性,用户请求能在极短的时间内获得响应。
实时操作系统:特点:及时性和可靠性
(3)操作系统的基本结构
二、 进程管理
(1) 前驱图以及程序顺序执行和并发执行的特点
前驱图:一个有向无环图,用户描述及进程之间执行的前后关系。
程序的并发执行:
特征:
1、提高了系统吞吐量
2、间断性,程序并发执行时,共享系统资 源,程序之间形成相互制约的关系。
3、失去封闭性,并发执行时,多个程序共享资源,因 而这些资源的状态将有多个程序改变,致使程序运行失去封闭性。
4、不可在现性,由于失 去封闭性,也将导致其失去再现性。程序顺序执行:
特征:
1、顺序性,处理机的操作严格按照程序规定的顺序执行。
2、封闭性,资源的状态只有正在运行的程序能够改变,程序一旦开始运行,执行结果不受外界影响。
3、可再现性,只要程序执行时的环境和初始条件相同,当程序重复执行时,都将获得相同 的结果。(2) 进程的基本概念和思想
进程是进程实体运行的过程,是系统进行资源分配和调度的一个独立单位。
进程实体:程序段、相关数据段和 PCB 三部分构成进程实体。其中 PCB 是进程存在的 唯一标志!
进程的基本特征:动态性,进程的实质是进程实体的一次执行过程,因此动态性是进程 最基本的特征;并发性;独立性,进程实体是一个能独立运行、独立分配资源,和独立接受 调度的基本单位;异步性;结构性。
(3) 进程的状态与转换 进程通常有三种基本状态,运行态;就绪态;阻塞态。进程还有个挂起状态
就绪态获得处理机→运行态
运行态让出处理机→就绪态
进程请求某一资源的使用和分配或等待某一事件发生,运行态→阻塞态
进程等待的事件到来,阻塞态→就绪态
进程的切换是在内核的支持下实现的,是指处理机从一个进程的运行转到另一个进程上运行, 切换过程如下:
1、保存处理机上下文,包括程序计数器和其他寄存器。
2、更新 PCB 信息。
3、把 PCB 移到相应队列,如就绪、阻塞等队列。
4、选择另一个进程执行并更新其 PCB。
5、更新数据管理的内存结构。
6、恢复处理机上下文(4) 进程控制块及其作用
为了描述和控制进程的运行,系统为每个进程定义了一个数据结构,进程控制块,是进程实 体的一部分,是一种重要的记录型数据结构。操作系统通过 PCB 来管理和控制进程。
PCB 中主要包括下述四个方面的信息:
1、进程标识符,用于唯一的标识一个进程。
2、处理 机状态,保存 CPU 各寄存器信息。
3、进程调度信息。
4、进程控制信息。
(5) 进程组织
进程一般有三部分组成。
1 进程控制块
2 程序段
3 数据段
程序段就是被进程调度程序调度到 CPU 的程序代码段。程序可被多个进程共享,即多个进 程运行一个程序。
数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最 终结果。
进程控制块的组织方式:链接方式、索引方式
(6) 进程同步:进程同步的概念和同步原则,临界资源和临界区的概念,信号量及其应用, 经典进程同步问题
概念:多道程序环境下,进程并发执行,不同进程之间存在不同的制约关系,为了协调相互 制约的关系,引入进程同步的概念。
同步机制遵循以下原则:
1、空闲让进,临界区空闲时,可以允许一个请求进入临界区的进 程立即进入临界区。
2、忙则等待,当已有进程进入临界区时,其他试图进入临界区的进程 必须等待。
3、有限等待,对请求访问的进程,应保证能在有限的时间内进入临界区。
4、 让全等待,当进程不能进入临界区时,应该释放处理器,防止进程忙等待。
临界资源:将一次仅允许一个进程使用的资源成为临界资源。
临界区:在每个进程中,访问临界资源的那段代码称为临界区。
(7) 进程通信的基本概念和方法
进程通信是指进程之间的信息交换。
Pv 操作是低级通信方式,高级通信方式是指以较高效 率传输大量数据的通信方式,高级通信方式主要有三类:
1)共享存储:在通信的进程之间存在一块可直接访问的共享空间,需要使用同步互斥工具 (如 pv 操作)对共享空间进行读写控制,共享存储又分为两种:低级方式的共享基于数据 结构的共享,高级方式的共享是是基于存储区的共享。
2)消息传递:进程之间的数据交换是以格式化的消息为单位。若通信的进程之间不存在可 以直接访问的共享空间,则必须利用操作系统提供的消息传递方法进行通信(发消息和接消 息)。分为直接通信方式和间接通信方式,直接通信方式:发送进程直接把消息发送给接受 进程,并将其挂在接受进程的消息缓冲队列上,接受进程从消息缓冲队列获取信息。间接通 信方式:发送进程把消息发给某个中间实体,接受进程从中间实体取得消息。这种中间实体 一般称为信箱,这种通信方式又叫信箱通信方式。
3)管道通信:是消息传递的一种特殊方式,“管道”是指用于连接读进程和一个写进程以实现他们之间通信的一个共享文件,即 pipe 文件。管道机制必须提供一下三方面的协调能力: 互斥、同步、和确定对方存在。
管道只能采用半双工同信,及某一时刻只能单向传输。要实现父子进程双方互动通信,需要 定义两个管道。
(8) 线程的概念和多线程模型
线程的引入:引入进程的目的,是为了使多个程序并发执行,以提高资源利用率和系统吞吐 量。引入线程的目的,是为了减少程序在并发执行时的时空开销,使 OS 具有更好的并发性。 线程可看做轻量级的进程,是一个基本的 CPU 执行单元,也是程序执行流的最小单元。引 入线程后,进程只作为除 CPU 外的系统资源分配单位,线程则作为处理机的分配单元。
线程与进程的比较:
1)调度:线程是独立调度的基本单位,进程是拥有资源的基本单位。同一进程中,线程切 换不会引起进程切换,不同进程中,线程切换会引起进程切换。
2)拥有资源:进程是拥有资源的基本单位,线程不拥有有系统资源。但线程可以访问隶属 进程的系统资源。
3)并发性:多个线程之间也可以并发执行。
4)系统开销: 由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、 I/O设备等,因此操作系统所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程CPU环境的保存及新调度到进程CPU环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。此外,由于同一进程内的多个线程共享进程的地址空间,因此,这些线程之间的同步与通信非常容易实现,甚至无需操作系统的干预。
5)地址空间和其他资源:进程的地址空间之间相互独立,,某进程内的线程对于其它进程不 可见。
线程属性:
线程的实现有两类:用户型线程,内核级线程
多线程模型:实现用户级线程和内核级线程的链接
1)多对一模型:多个用户级线程映射到一个内核级线程。用户级线程对内核级线程不可见。 优点:线程管理在用户空间进行,效率较高 缺点:一个线程在内核服务时被阻塞,整个进程都将被阻塞;多个线程不能并行的运行在多 个处理机上。
2)一对一模型:每个用户级线程映射到一个内核级线程 优点:一个进程阻塞后,允许另一个继续执行,并发能力较强。 缺点:创建线程开销较大,会影响到程序的性能。
3)多对多模型:将 n 个用户级线程映射到 m 个内核级线程上。m<=n 特点:克服了前两者的不足,并继承其优点
三、调度与死锁
(1)调度的概念
处理机调度:从就绪队列按照一定的算法,选择一个进程,并将处理机分配给他运行。
(2)调度队列模型
一个作业从提交到开始,要经历三级调度:
1)作业调度(高级调度),根据作业控制块中的信息,审查系统能否满足用户作业的资源 需求,并按照一定的算法,将外存后备队中选取某些队列调入内存,并为他们创建进程,分 配必要资源,属于内存和辅存之间的调度。频率较低。
2)低级调度(进程调度),调度对象是进程,有抢占和非抢占两种方式。
3)中级调度:引入中级调度的目的主要是提高内存利用率和系统吞吐量。是那些暂时不能 运行的进程不占用宝贵的内存资源,把他们调至外存等待,此时进程状态为挂起状态。当这 些进程重新具备运行条件时,再将其调入内存。
(3)调度的基本准则与方式
面向用户的准则:
1)周转时间短,掌握平均周转时间,带权周转时间。
2)响应时间快
3)截止时间保证
4)优先权准则
面向系统的准则:
1)系统吞吐率高
2)处理机利用率高
3)各类资源平衡利用
(4)各种调度算法及其评价
1)先来先服务(FCFS),有利于长作业(进程),不利于短作业(进程)
2)短作业优先(SP(J)F),缺点:对长作业不利,完全未考虑作业紧迫程度。
3)高优先权优先调度(FPF):又可分为抢占式优先权和非抢占式优先权,优先权有静态和 动态两种。
4)高相应比优先调度算法,相应比=(等待时间+要求服务时间)/要求服务时间,既考虑到短 作业,又考虑了作业到达的先后次序。但是要进行相应比的计算,增加了开销。
5)基于时间片转轮调度算法,多及反馈队列调度算法。
(5)死锁问题及其处理方法,包括死锁的概念和原因,产生死锁的必要条件,死锁处理策 略,死锁的预防、避免、以及检测和解除。
死锁:多个进程在运行过程中因争夺资源而造成的一种僵局。
产生死锁的原因:
1、竞争资源,只有对不可剥夺资源的竞争才可能导致死锁,对可剥夺资 源的竞争不会导致死锁
2、进程间推进顺序非法 产生死锁的必要条件:
1)互斥条件,进程所分配的资源进行排他性使用,即在一段时间某 资源只能由一个进程占用。
2)请求和保持条件,进程已经保持了至少一个资源,又提出了 新的资源请求,而该资源又被其他资源占有,此时请求进程阻塞,但又对自己获得的其他资 源不放。
3)不剥夺条件,进程已获得的资源,在未使用完之前不能被剥夺,只能在使用完 时由自己释放。
4)环路等待条件,发生死锁时,必然存在一个进程—-资源的环形链。
死锁处理的基本方法:
1)预防死锁
2)避免死锁
3)检测死锁
4)解除死锁
预防死锁:使四个必要条件的 2,3,4 之一不能成立,
1)摒弃“请求和保持”条件
2)摒弃“不剥 夺”条件
3)摒弃“环路等待”条件
避免死锁:银行家算法,采用预分配策略检查分配完成时,系统是否属于安全状态,重点掌握。
安全状态:能找到一个资源分配的序列能让所有进程都顺利完成。
死锁的检测:注意资源分配图和死锁定理
死锁的解除:三种方法:
1)剥夺资源
2)撤销进程
3)进程回退