linux 进程控制理论基础

进程的定义
进程是一个具有一定独立功能的程序的一次运行活动。

进程的特性
动态性: 进程的实质是程序的一次执行过程。进程是动态产生,动态消亡的。
并发性: 任何进程都可以同其他进程一起并发执行
独立性: 进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位
异步性: 由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征: 进程由程序、数据和进程控制块三部分组成

进程的三种基本状态
进程一般有3中基本状态:运行、就绪和阻塞。
1)运行态:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程数目小于等于处理器的数目,对于单处理机系列,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
2)就绪态:当一个进程获得了除处理机以外的一切所需资源,一旦的得到处理机即可运行,则称此进程处于就绪状态。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态是,排入低优先级队列;当进程I/O操作完成而进入就绪状态时,排入高优先级队列。
3)阻塞态:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即时把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

进程ID
进程ID(PID)是标识进程的唯一数字
父进程ID称为PPID,启动进程的用户ID称为UID。

进程互斥
进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,知道占用该资源者释放了该资源为止。

临界资源
操作系统中将一次只允许一个进程访问的资源称为临界资源。

临界区
进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区。

死锁
多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能在向前推进

进程同步
一组并发进程按一定的顺序执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。

进程调度
概念:按一定算法,从一组待运行的进程中选出一个来占用CPU运行。

调度方式
非抢占式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,知道进程完成或发生某时间而阻塞时,才把处理机分配给另一个进程。

抢占式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。

调度算法
在操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的系统和系统目标,通常采用不同的调度算法,例如,在批处理系统中,为了照顾为数众多的段作业,应采用短作业优先的调度算法;又如在分时系统中,为了保证系统具有合理的响应时间,应当采用轮转法进行调度。目前存在的多种调度算法中,有的算法适用于作业调度,有的算法适用于进程调度;但也有些调度算法既可以用于作业调度,也可以用于进程调度。

先来先服务调度算法:按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。

短进程优先调度算法:该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。

高优先级优先调度算法:给进程赋予一定优先权,每次从最高优先权的元素中取出一个并执行。

时间片轮转法:给每个进程赋予一个运行时间片,当时间片到则取下一个元素。

你可能感兴趣的:(linux 进程控制理论基础)