@[toc]
1.进程的概念
:kissing:程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
:kissing_cat:进程:是动态的,是程序的一次执行过程,同一个程序多次执行会对应多个进程。比如打开了好几个QQ,会在任务管理器种发现有好几个QQ正在运行。
2.进程的组成
PCB:
:question:操作系统是这些进程的管理者,它要怎么区分这些进程?
当进程被创建时,操作系统会为该进程分配一个唯一的,不重复的“身份证号”---PID(Process ID,进程ID)
在任务管理器中,还记录了每个进程使用了多少CPU,内存,硬盘,网络流量等,这些都被记录了下来。
这些信息都被保存在了一个数据结构PCB(进程控制块)中。
操作系统需要对各个并发进程就行管理,但凡管理时所需要的信息,都被放在PCB中。
:avocado:程序段:程序要执行的代码
:apple:数据段:运行过程中产生的各种数据(如程序中定义的变量)
程序段和数据段是给进程自己使用的,而PCB是给操作系统使用的,它俩各干自己的事情。
程序是如何运行的?
一个C语言程序经过编译后,会存入到硬盘中变成一个可执行文件,要运行这个程序的话,需要先把这个程序放入内存中,操作系统会为这个进程创建一个PCB和程序段以及数据段。程序段放入要执行的代码,也就是一条条指令,执行指令中会有变量被定义,所以要放入到数据段中,数据段包含所有的数据信息。最后打印输出。
一个进程实体(进程映像)由PCB、程序段、数据段组成,进程是动态的,但进程实体是静态的,进程实体就相当于一个视频截了一张图,显示某个状态的所有信息,而不是整个过程。
进程:是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位,
调度:一个进程被调度,就是指操作系统绝对让这个进程上CPU运行
3.进程的特征
- 动态性:进程是程序的一次执行,是动态地参数、变化和消亡的过程。
- 并发性:内存中有多个进程实体,各进程可以并发执行
- 独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位。
- 异步性:各个进程按各自独立的,不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题。
- 结构性:每个进程都会配置一个PCB,结构上看,进程由程序段、数据段、PCB组成。