本文是
操作系统系列
的第二篇文章,介绍操作系统中的核心概念进程和线程。
进程
概念
进程是一个动态概念
,表示程序在一个数据集合上的一次动态执行过程。进程包含正在运行的一个程序的所有状态信息:
•代码•数据•状态寄存器•通用寄存器•系统资源(文件、内存...)
进程可以动态创建和结束,多个进程可以并发执行,不同进程间互不影响(操作系统实现)。同时进程间又相互制约,它们因访问共享数据/资源
或进程间同步
而产生制约。
程序是静态的,它是文件。进程是动态的,是执行中的程序,进程=程序+执行状态。
进程控制块
进程控制块(PCB, Process Control Block)
是操作系统用来管理进程运行的数据结构。每个进程都在操作系统中有一个对应的PCB,因此PCB是进程存在的唯一标志。
当进程创建时,生成PCB。进程终止时,操作系统会回收它的PCB。PCB的主要内容如下:
1.调度和状态信息:调度进程和处理机使用情况2.进程间通信信息:进程间通信相关的各种标识3.存储管理信息:指向进程映像存储空间数据结构4.进程所用资源:进程使用的系统资源,如打开文件等5.有关数据结构连接信息:与PCB相关的进程队列
操作系统中的PCB可以通过链表
和索引表
来组织。
链表结构中:
•同一状态的进程其PCB组成同一链表,多个状态对应多个不同的链表•各状态的进程形成不同的链表:就绪链表
、阻塞链表
...
索引表结构中:
•同一状态的进程归入一个索引表(由索引指向PCB),多个状态对应多个不同的索引表•各状态的进行形成不同的索引表:就绪索引表
、阻塞索引表
...
进程的状态
按照进程的生命周期,可以划分不同的状态(因操作系统而异),常用的状态有: