进程的定义:
通常,操作系统的重要任务之一是使用户充分、有效的利用系统资源。采用一个什么样的概念来描述计算机程序的执行过程和作为资源分配的基本单位,才能充分反应操作系统的执行并发、资源共享及用户随机的特点呢?这个概念就是进程。
通俗来讲,进程就是运行起来的程序。它是一个重要的“软件资源”,是由操作系统内核负责管理的。
进程的描述:
计算机根据进程控制块(PCB)来感知进程的存在,通过PCB中所包含的各项变量的变化掌握进程所处的状态,已达到控制进程活动的目的,由于进程的PCB是系统感知进程的唯一实体,因此,在几乎所有的多道操作系统中,一个进程的PCB结构都是全部或部分常驻内存的。
下面介绍一下进程控制块的的基本属性:
2.1、pid 进程的身份标识符
2.2、内存指针 指向了自己的内存是哪些
2.3、文件描述符表 硬盘上的文件等其他资源(2.2、2.3 共同描述了进程持有了那些硬件资源)
2.4 控制信息:
(1)进程状态
初始态、就绪态、执行态、等待状态和终止状态
(2)进程优先级
进程优先级是选取进程占有处理机的重要依据。
(3)进程上下文
操作系统在进行进程切换的时候,就需要把进程执行的“中间状态”记录下来,保存好,下次这个进程再上CPU上运行的时候,就可以恢复上次的状态好继续往下执行。
(4)记账信息
操作系统统计每个进程在CPU上占用的时间和执行的指令数目,根据这个来决定下一阶段如何调度
进程的状态及转换
3.1进程的状态
在进程的生命期内,一个进程至少有5种基本状态: 初始态、就绪状态、执行状态、等待状态和终止状态
处于就绪状态的进程已经得到除CPU之外的其他资源,只要由调度得到处理机,便可立即投入执行。
3.2进程状态的转换
进程的状态反应进程执行过程的变化。那么,是什么样的条件使得进程各状态发生转换呢? 如图1所示:
![](https://i-blog.csdnimg.cn/blog_migrate/e3d409f956604ec1aeae809acf3a63da.png)
图1 进程状态转换
进程调度算法:
(1)先来先服务算法(First Come First Served, FCFS)
每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。
(2)短进程优先算法(SPN)
它会优先选择运行时间最短的进程来运行,这有助于提高系统的吞吐量。
选择就绪队列中执行时间最短进程占用CPU进入运行状态,就绪队列按预期的执行时间来排序
(3)时间片轮转算法(Round-Robin, RR)
每个进程被分配一个时间段,称为时间片(*Quantum*),即允许该进程在该时间段中运行。如果时间片用完,进程还在运行,那么将会把此进程从CPU 释放出来,并把 CPU 分配另外一个进程;如果该进程在时间片结束前阻塞或结束,则CPU 立即进行切换;
通过时间片,分配处理器资源的基本单元,当时间片结束后,按FCFS算法切换到下一个就绪进程。