在面试中,常常都会问有关进程、线程相关概念。以下是有关进程的一些总结。
进程的定义:进程就是程序的一次执行过程,它可以和别的进程并发执行。即进程是并发执行程序在数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。
进程的特征:
(1)动态性 指进程有一定生命周期。进程由创建而产生,由调度而运行,由得不到资源而阻塞,由撤销而消亡。
(2)并发性 进程的多个实体并存于内存中,能够在同一时间段内运行。
(3)独立性 进程是一个独立运行的单位,是系统独立获得资源和独立调度的基本单位。
(4)异步性 进程间以各自独立的、不可预知的速度向前推进,按异步方式运行。
(5)结构性特征 进程实体是由程序段、数据段和进程控制块三部分组成的。
进程的状态及转换:
(1)就绪状态 进程已获得除CPU外的所有资源时的状态。
(2)运行状态 当进程获得必要资源并占有处理机的状态
(3)阻塞状态 正运行的进程,由于发生某事件而无法执行下去。
进程由程序段、数据段和进程控制块(PCB)组成。
进程控制块是进程存在的唯一标志。主要包含以下内容:
(1)描述信息
(2)控制信息
(3)资源管理信息
(4)CPU现场保护等
(5)PCB队列
临界资源:一次仅允许一个进程使用的资源。
临界区: 每个进程中访问临界资源的那段代码。
临界区管理要求:
(1)每次只允许最多一个进程在临界区内执行。
(2)任何一个进入临界区执行的进程必须在有限时间内退出临界区。
(3)不能强迫一个进程无限制的等待进入临界区。
为何要使用子进程?
子进程只能对父进程地址空间中的数据进行访问,不能进行修改操作,这样可以保证父进程地址空间中的数据安全. 如果没有子进程, 直接在父进程地址空间里进行数据操作,一旦出现错误, 将会导致很严重的后果.