进程概念

本文深入解析了进程概念,包括进程的定义、与程序的区别、状态变迁及进程控制块(PCB)的结构。探讨了进程控制、互斥与同步机制,以及进程间的通信方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程概念

进程的定义

进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

进程与程序的连续与区别

  1. 进程是程序在CPU上的一次执行过程,是一动态概念。程序时指令的有序集合,是一个静态概念。
  2. 进程是一个能独立运行的单位。
  3. 进程是竞争计算机系统有限资源的基本单位。进程一定包含一个程序,因为程序是进程完成相应功能的逻辑描述;而一个程序可以对应多个进程。

进程的状态和变迁

进程的基本状态

  • 就绪状态:当进程获得除CPU之外所有需要的资源,一旦获得CPU控制权,就可以立即运行,该进程所处的状态位就绪状态。
  • 运行状态:进程通过进程调度和处理机分派后,得到中央处理机控制,进程处于运行状态;
  • 等待状态:若一进程正在等待某一事件发生(如等待输入/输出操作的完成)而暂时停止执行,这时及时获得CPU控制权它也无法执行,则成该进程处于等待状态,也称为阻塞状态。

进程状态变迁图

 

进程控制块(Process Control Block, PCB)

什么是进程控制块?

为了描述一个进程与其它进程以及系统资源之间的关系,刻画一个进程在各个不同时期所处的状态,人们采用了一个与进程相联系的数据块,称为进程控制块。

PCB结构

PCB组成描述
进程标识符每个进程唯一的标识符,字符或编号表示
进程状态进程所处的状态(运行、阻塞、就绪等),可用0、1、2等表示
当前队列指针处于同一状态下一个PCB的地址。为了便于进程管理,通常把具有相同状态的进程链在一起,组成各种队列
进程优先级反映了进程对CPU的紧迫程度,通常由用户预先指定或者系统默认
CPU线程保护区进程由于某种原因(如中断)释放处理机,CPU现场信息(如工作寄存 器、指令计数器自己程序状态字等)被保存在PCB的该区域中。
通信信息进程运行过程中与其它进程进行通信时所记录的有关信息。如第一个消息的开始地址、正在等待本进程接收的消息个数等
家族联系如父进程或者子进程的PID等
占有资源清单占有资源清单

 

 

 

 

 

 

 

 

 

 

进程的组成

从结构上说,每个进程都市有一个程序段(包括数据)和一个进程控制块组成的,即 PCB+程序+数据

进程控制

进程控制的概念

进程控制负责控制进程状态的变化。操作系统的核心具有创建进程、撤销进程、是进程等待和唤醒等功能。这些功能是由具有特定功能的程序组成的,而且通过原语操作来实现控制和管理的目的。

原语

原语是一种特殊的系统调用,其特点时原语执行时不可中断,基础油原子性。

用于进程控制的原语

创建原语、撤销原语、阻塞原语、唤醒原语等。

进程创建

进程撤销

进程阻塞

进程唤醒

进程之间的约束关系

进程互斥的概念

临界资源

一次仅允许一个进程使用的资源

临界区

在每个进程中,访问该临界资源的那段程序能够从概念分离出来,称为临界区或临界段。

什么是互斥

在操作系统中,当某一进城正在访问某一存储区域时,就不允许其他进程来读出或修改该存储区的内容,否则,就会发生无法估计的错误。进程之间的这种相互制约关系称为互斥。

进程同步的概念

什么是同步

所谓同步,就是并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息称为进程同步。

同步机构

操作系统提供的同步机构有以下两种:

  1. 锁和上锁、开锁操作
  2. 信号灯(或称信号量)和P、V操作 

锁和上锁、开锁操作

    上锁原语
    算法:lock
    输入:锁变量 w
    输出:无
    {
        while (w == 1)
        {
            保护现行进程的CPU现场;
            将现行进程的PCB插入w的等待队列;
            置该进程为等待状态;
            装进程调度;
        }
        w = 1; /* 上锁 */
    }
    开锁原语
    算法:unlock
    输入:锁变量 w
    输出:无
    {
        if (w 等待队列不为空)
        {
            移出等待队列队首元素;
            将该进程的PCB插入就绪队列;
            置该进程为就绪状态
        }
        w = 0; /* 开锁 */
    }

信号灯和P、V操作

    P操作
    算法:P
    输入:变量 s
    输出:无
    {
        s--
        if (s < 0)
        {
            保护现行进程的CPU现场;
            将现行进程的PCB插入s的等待队列;
            置该进程为等待状态;
            装进程调度;
        }
    }
    V操作
    算法:V
    输入:变量 s
    输出:无
    {
        s++;
        if (s <= 0)
        {
            移出 s 等待队列队首元素;
            将该进程的PCB插入就绪队列;
            置该进程为就绪状态
        }
    }

进程通信(IPC Interprocess Comununication)

IPC机制

即信息在一个进程的地址空间打包形成消息,然后,从消息中拷贝信息到另外一个进程的地址空间。

IPC之消息缓冲通信

IPC之信箱通信

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值