操作系统第一讲
1.进程的定义
(1)进程是程序的一次执行。
(2)进程可以定义为一个数据结构及能在其上进行操作的一个程序。
(3)进程是程序在一个数据集合上的运行过程,是系统资源分配和调度的一个独立单位。
据此,可以把“进程”定义为:一个程序在一个数据集合上的一次运行过程。所以一个程序在不同数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。
2.进程的特性
(1)动态性动态性是进程的最基本特征,它表现为“进程因创建而产生,因调度而执行,因得不到资源而暂停,以及因撤销而消亡”。因此,进程具有一定的生命周期,其状态也会不断发生变化,是一个动态实体。而程序仅是一组指令的集合,并且可以一成不变地存放在某种介质上,是一个静态实体。
(2)并发性: 进程的并发性是指多个进程在一段时间内同时运行,交替使用处理器的情况。并发性是进程也是操作系统的重要特征。
(3)独立性: 独立性是指进程实体是一个能独立运行的基本单位,同时也是独立获得资源和独立调度的基本单位。没有创建进程的程序,是不能参加运行的。
(4)异步性: 异步性是指系统中的进程按照各自独立的、不可预知的速度向前推进,即进程按照异步方式运行。正因如此,将导致执行的不可再现性。因此,在操作系统中必须采取相应的措施来保证进程之间能够协调运行。
(5)结构性: 进程的结构性是指在结构上进程实体由程序段、数据段和进程控制块组成,这三部分也统称为“进程映像”。
3.进程的构成:
进程就是程序,数据和PCB的集合。
4.进程的状态:
共7个,其中后四个为补充, 在很多系统中,进程只有上述三种基本状态。但在另一些系统中,由于某种需要又增加了一些新的进程状态,其中最重要最常见的是挂起状态。
(1)就绪态: 当进程已分配到除处理器(CPU)以外的所有必要资源后,只要再获得处理器就可以立即执行,这时进程的状态称为就绪状态。
(2)运行态占用处理器,正在运行
(3)阻塞态: 正在运行的进程因为发生某些事件(如请求输入/输出、申请额外空间等)而暂停运行,这种受阻暂停的状态称为等待状态。
(4)挂起态:
1.就绪挂起:只存在于外存,只要调入内存就可以运行
2.阻塞挂起:进程在外存,并且还要等待事件才能转为就绪态
(5)新建创建一个新进程
(6)结束进程正常运行结束或者异常结束
知识点: 通常,一个进程必须有就绪、运行和等待三种基本状态。
5.什么是PCB?
PCB就是OS管理进程时所用的基本数据结构,它的作用是将相关进程存于系统中,OS根据PCB感知相关进程的存在。
6.PCB包括什么?
(1)外部标识符: 由进程创建者命名,通常是由字母、数字所组成的一个字符串,在用户(进程)访问该进程时使用。外部标识符都便于记忆,如计算进程、打印进程、发送进程、接收进程等。
(2)内部标识符: 为方便系统使用而设置的。操作系统为每一个进程赋予唯一的一个整数,把它作为内部标识符。内部标识符通常就是一个进程的序号。
(3)说明信息:
1.进程状态。它指明进程当前的状态,作为进程调度和对换时的依据。
2.优先级。优先权高的进程将优先获得处理器。
3.进程调度所需的其他信息。其内容与所采用的进程调度算法有关,如进 程等待时间、进程已运行时间等。
4.等待事件是指进程由运行状态转变为等待状态时所等待发生的事件,即等待原因。
(4)现场信息: 现场信息是用于保留进程存放在处理器中的各种信息,主要由处理器中的各个寄存器的内容组成。尤其是当进程暂停运行时,这些寄存器内的信息将被保存在PCB里,当该进程重新运行时,能从上次停止的地方继续运行。
(5)管理信息: 管理信息包括进程资源、控制机制等一些进程运行所需要的信息。
7.如何控制PCB?
1.链接方式: 把具有相同状态的PCB用链接指针链接成队列,如就绪队列、等待队列和空闲队列等。就绪队列中的PCB将按照相应的进程调度算法进行排序。而等待队列也可以根据等待原因的不同,将处于等待状态的进程的PCB排成等待I/O队列、等待主存队列等多个队列。
不稳定,一个程序崩溃可能导致后续指针出错
2.索引方式: 系统根据各个进程的状态建立不同的索引表,如就绪索引表、等待索引表等,并把各个索引表在主存的首地址记录在主存中的专用单元里,也可以称为表指针。在每个索引表的表目中,记录着具有相同状态的各个PCB在表中的地址。
在这里插入图片描述
用顺序表存指针更稳定,即使某个进程崩溃,也能找到这个进程的物理下标,进而找到下个进程。