进程篇上之初识进程(1)

2019-07-14 11:46发布

一、进程

重点:(1)什么是进程(2)进程与应用程序的区别

1、进程

(1)说到进程,进程不是以前所谓的二进制文件(进程是要处理的事件),不光要有运行程序还要有管理信息(系统不直接与 硬件打交道,而是与软件打交道,驱动直接与硬件打交道)
(2)进程是由进程控制块、程序段、数据段三部分组成;
(3)现在将进程描述出来,一个pcb代表一个进程(pcb是进程的唯一标识),系统可以通过pcb可以找到二进制程序,可执行
程序加载到内存中是不够的,要管理进程,必须要将进程的基本信息统计出来,然后通过相关信息进行管理、

2、进程与应用程序的区别

(1)1个程序可以对应多个进程,但1个进程只能对应1个程序。(演出和剧本的关系)
(2)进程是动态的,而程序是静态的。(被执行的程序就叫做程序)
二进制程序为一个文件,在磁盘等地方(具有永久存储特性的地方),
进程在内存中有一整套的结构描述:进程在内存中保存,要有相应的数据结构来描述一个进程,
单单pcb是不够的,还有有一系列复杂的结构用来描述(描述一个进程最重要的就是pcb)

3、调度算法

如何高效的pcb组织起来,进行管理,这就设计到调度算法,调度算法要考虑一下几个方面(效率,稳定性,公平性),linux
内核的算法时间复杂度为O(1)的算法,通过对进程附上优先级实现

二、PCB

1、PCB有标识符、调动信息、控制信息
2、为什么要有PCB
进程加载到内存中不是一直运行,进程在调动时间器到的时候,进程需要让出CPU,要么主动让出,要么被剥离出来,
都是在运行过程中,这就要需要上下文信息,保存切出去之前的信息,保存的目的就是为了恢复,恢复的时候,自己又会剥夺了别人的
CPU
3、切出去之前保存哪些信息?
(1)进程额外上下问信息,保存在PCB中,下次好进行恢复
(2)PC指针:通过PCB找到代码
(3)记账信息:占了多长时间
(4)I/0信息