3.2 进程管理

2021-03-16  本文已影响0人  doit_7b21

进程是一个具有独立功能的程序关于数据数据集合的一次可以并发执行的运行活动,是系统进行资源分配和调度的基本单位。相对于程序,进程是动态的概念,而程序是静态概念,是指令的集合。进程具有动态性和并发性,需要一定的资源(CPU时间、内存、文件和IO设备等)来完成其任务。这些资源在创建进程或执行被分别。在大多数操作系统中,进程是进行资源分配和调度的基本单位。

3.2.1 进程的状态

1.三态模型
进程具有三种最基本的状态,分别是运行、就绪和阻塞。

  1. 五态模型
    由于进程的不断创建,系统资源特别是内存资源已不能满足所有的进程运行的要求,这个时候就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以均衡负载。

进程挂起的原因可能是系统故障、用户调试程序、检查问题。

3.2.2 信号量与PV操作

在多道程序系统中,由于系统资源共享与进程合作,使各进程之间可能产生两种形式的制约关系,一种是间接相互制约,一种是直接相互制约。进程同步主要源于进程合作,是进程之间共同完成一项任务时直接发生相互作用的关系,为进程之间的直接制约关系。

1.信号量
信号量是一个二元数组(S,Q),其中S是一个整形变量,初始值为非负数,Q为一个初始状态为空的等待队列。在多道程序系统中,信号量机制是一种有效的实现进程同步与互斥的工具。

信号量的值通常表示系统中某种资源的数目,若它大于0,则表示系统中当前可用资源的爽;若小于0则表示等待使用该资源的进程数目。

PV操作是对信号量进行处理的操作过程,而且信号量只能由PV操作来改变。P操作是对信号量减1,意味着请求系统分配一个单位资源,若系统无可用资源,则进程变为阻塞状态;V操作是对信号量加1,意味着释放一个单位资源,加1后若信号量小于0,则从就绪队列中唤醒一个进程,执行V操作的进程继续执行。

2.实现互斥模型
使用信号量机制实现互斥时,需要为临界资源设置一个互斥信号量S,其初始值通常为1.在每个进程中将临界区代码置于P(S)和V(S)直接。

3.实现同步模型
使用信号量机制实现同步时,需要为进程设置同步信号量,其初始值通常为0.进程需要同步的地方分别插入P(S)和V(S)。

3.死锁问题

当若干个进程竞争使用资源时,如果每个进程都占有了一定资源,又申请使用已被另一个进程占用、且不能抢占的资源,则所有的这些进程纷纷进入阻塞状态,不能继续运行,即系统中两个或两个以上的进程无限期地等待永远不会发生的条件,系统处于一种停滞状态,这种现象称为死锁。
死锁4个必要条件

4 线程管理
在现代操作系统中,通常都引进了线程的概念。线程是进程的活动成分,是处理器分配资源的最小单位,它可以共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务(对系统进程而言)或实行子任务并行(对用户进程而言)。每个进程创建时只有一个线程,根据需要在运行过程中创建更多线程,只有主线程的进程才是传统意义下的进程。
1.线程的实现

线程基本上不拥有系统资源,只拥有在运行中必不可少的资源,如:线程状态、寄存器上下文和栈等,它可以与同属于一个进程的其他线程共享进程所拥有的全部资源。线程的实现方式主要有以下三种:

2.与进程的比较
在引入线程的操作系统中,通常一个进程有若干个线程,至少有一个线程。区别提现在以下5点:

3.多线程模型

上一篇 下一篇

猜你喜欢

热点阅读