前言
早期计算机(只支持单道程序),在程序运行期间,cpu,内存,io设备等都属于它的。
程序代码放在内存中的程序段内,程序运行时处理的数据放在内存中的数据段内。
引入多道程序技术之后:
内存中同时放入多个程序,程序代码和程序数据存放位置不同。
在程序并发执行时,系统资源需要分配给不同的程序。每一个程序被分配了哪些资源。。。
需要被记录下来,方便系统管理,
于是引入了进程,进程实体概念。
于是系统为每一个进程分配一个数据结构,称为进程控制块(PCB),包含进程各种信息(程序代码放在某个位置,程序数据放在某个位置,局部变量,全局变量等等等)。
一、进程定义
进程实体:程序段,数据段,PCB三部分组成了进程实体,一般情况下,就把进程实体简称为进程。
定义
1进程就是是一段程序的执行过程。(动态的)
2.引入进程实体后,可定义:
进程是进程实体的运行过程,是系统进程资源分配和调度的一个独立单位。
二、进程组成
进程(进程实体)由程序段,数据段,PCB三部分组成。
三、进程组织方式
a.链接方式:
按照进程状态将PCB分为多个队列,操作系统持有指向多个队列的指针。
b.索引方式:
根据进程状态的不同,建立几张索引表,操作系统持有指向各个索引表的指针。
四、进程特征
五.进程状态
进程的三种基本状态:
a.运行态:占有cpu,在cpu上运行
b.就绪态:已经具备运行条件,但是没有空闲的cpu(万事具备,只欠CPU)
c.阻塞态:因等待某一事件暂时不能运行(某一事件指分配打印机,等待IO操作等等,为了提高CPU利用率,需要将其他资源分配到位,才能得到CPU的服务)
其他两种状态:
创建态:进程(进程实体)正在被创建,操作系统为进程分配资源,初始化PCB.
终止态:进程从系统中撤销,操作系统会回收系统的资源,撤销PCB.
六.进程状态的转换
七.进程通信
定义: 进程之间的信息交换
三种方式
a.共享存储
共享存储分为共享数据结构(数据大小结构有限,是一种低级的通信方式)和共享数据区(在内存中划出一块空间,结构存放位置都有操作系统控制,是一种高级的通信方式)。
b.消息传递:通过操作系统“发送消息和接收消息”两个原语进行数据交换。
消息传递分为
直接通信:直接通信就是发送的消息直接挂到接收进程的消息缓冲队列上,接收进程一个一个接收
间接通信:间接通信就是进程发送的消息先发到一个中间体上,接收进程从中间体中取走消息。
类似于快递员把我们的快递送到快递点,而我们到快递点取属于我们的快递。
c.管道通信:在内存中开辟一个大小固定的缓冲区用于进程通信。
八.进程调度
定义:按照某种算法从就绪队列中选择一个进程为其分配处理机(进程从就绪态->运行态)
进程调度的时机:
进程调度的方式:
1.非抢占式:只允许进程主动放弃处理机,在进程运行时,即使有更紧急的进程需要被调度时,也要等正在运行的这个进程主动放弃处理机。
2.抢占式:当一个进程正在运行时,如果有更紧急的进程,优先级更高的进程需要被调度时,立即暂停正在执行的进程,将处理机分配给优先级更高的进程。