进程特征、进程控制、进程通信【思维导图】

进程

概念

  • 与程序的区别
    • 1.程序:一个指令序列
    • 2.进程是程序的执行(动态),程序是一组指令的有序集合(静态)
    • 3.进程有诞生和死亡(生命期),程序是永久的
    • 4.进程 = 程序+数据 +进程控制块PCB
    • 5.一个程序可对应多个进程【程序的多次执行】
    • 6.一个进程可包含多个程序
  • 进程是进程实体的运行过程【强调 “动态性” 】,是系统资源分配和调度的一个独立单位

    • 进程是动态的,进程实体是静态的

特征

  • 动态性最基本
    进程是程序的一次执行过程,是动态地产生、变化和消亡的
  • 并发性
    内存中有多个进程实体,各进程可并发执行
  • 独立性
    进程是能独立运行、独立获得资源、独立接受调度的基本单位
  • 异步性
    各进程以不可预知的速度向前推进,可能导致运行结果的不确定性
  • 结构性

状态

  • 运行【基本】

    • 占有CPU,并在CPU上运行
    • 单核处理机 → 最多一个进程处于运行态
  • 就绪【基本】

    • 已经具备运行条件,但由于没有空闲CPU暂时不能运行【万事俱备只欠CPU】
  • 阻塞【基本】

    • 因等待某一事件而暂时不能运行【提高CPU利用率,其他资源准备齐全最后才到CPU】
    • 运行态 → 阻塞态 是一种进程自身做出的 主动行为 ,【保存进程运行环境、修改PCB内容和相应队列】
    • 阻塞态 → 就绪态 不是进程自身能控制的,是一种 被动行为
  • 创建

    • 创建、初始化PCB
  • 结束

    • 运行结束/出bug导致无法执行,回收资源,撤销进程【删除PCB

进程控制

  • 基本概念
    • 定义

      进程控制的主要功能是对系统中的所有进程实施有效的管理,具有创建新进程、撤销已有进程、实现进程状态转换等功能

    • 实现

      用“原语”实现
      原语特点:执行期间 不允许中断,只能一气呵成
      关中断、开中断指令,只允许在核心态下执行的特权指令
      不可中断的操作:原子操作

  • 原语做什么
    • 更新PCB中的信息【修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境】

      所有的进程控制原语一定都会修改进程状态标志
      剥夺当前运行进程的CPU使用权必然需要保存其运行环境
      某进程开始运行前必然要恢复运行环境

    • 将PCB插入合适的队列

    • 分配/回收资源

  • 相关原语
    • 创建【无→创建态→就绪态】

      • 创建原语

        申请空白PCB
        为新进程分配资源
        初始化PCB
        将PCB插入就绪队列

      • 引起进程创建事件

        用户登录:分时系统中,用户登录成功,系统会为其建立个新的进程
        作业调度:多道批处理系统中,有新的作业放入内存时,会为其建立新进程
        提供服务:用户向操作系统提出某些请求时,会新建一个进程处理该请求
        应用请求:由用户进程主动请求创建一个子进程

    • 终止

      • 撤消原语

        从PCB集合中找到终止进程的PCB
        若进程正在运行,立即剥夺CPU,将CPU分配给其他进程
        终止其所有子进程
        将该进程拥有的所有资源归还给父进程或系统
        删除PCB

      • 引起进程终止的事件

        正常结束
        异常结束:bug
        外界干预:任务管理器杀进程

    • 阻塞与唤醒【成对使用

      • 阻塞【运行态→阻塞态】

        • 阻塞原语

          找到要阻塞的进程对应的PCB
          保护进程运行现场,将PCB状态信息设置为“阻塞态”,暂时停止进程运行
          将PCB插入相应事件的等待队列

        • 引起进程阻塞的事件

          需要等待系统分配某种资源
          需要等待相互合作的其他进程完成工作

      • 唤醒【阻塞态→就绪态】

        • 唤醒原语

          在事件等待队列中找到PCB
          将PCB从等待队列移除,设置进程为就绪态
          将PCB插入就绪队列,等待被调度

        • 引起进程唤醒的事件

          等待事件发生
          因何事阻塞,就应由何事唤醒

    • 切换【运行态→阻塞态/就绪态、就绪态→运行态】

      • 切换原语

        将运行环境信息存入PCB
        PCB移入相应队列
        选择另一个进程执行,并更新其PCB
        根据PCB恢复新进程所需的运行环境

      • 引起进程切换的事件

        当前进程时间片到
        有更高优先级的进程到达
        当前进程主动阻塞
        当前进程终止

  • 组织【三部分构成进程实体(进程映像)】
    • 进程的组成

      • 进程控制块PCB【进程管理者所需的数据】

        • 描述进程的各种信息【如代码存放位置】,是 进程存在的唯一标志
          创建/撤销进程 → 创建/撤销进程实体中的PCB

        • PCB内容

          1.进程描述信息
          ①进程标识符PID【当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的ID,用于区分不同进程
          ②用户标识符UID
          2.进程控制和管理信息
          ①进程当前状态
          ②进程优先级
          3.资源分配清单
          ①程序段指针
          ②数据段指针
          ③键盘
          ④鼠标
          4.处理机相关信息
          ①各种寄存器值【当进程切换时需要把进程当前运行情况记录下来保存在PCB中,如程序计数器的值表示了当前程序执行到哪一句【保存现场

      • 程序段【程序实际运行所需的数据】

      • 数据段【程序实际运行所需的数据】

    • 进程的组织方式【多个进程之间的组织方式问题】

      • 链接方式

        • 按照进程状态将PCB分为多个队列
        • 操作系统持有指向各个队列的指针

          1.执行指针
          【 指向当前运行状态的进程;单CPU计算机中,同一时刻只会有一个进程处于运行态】
          2. 就绪队列指针
          【 指向当前处于就绪态的进程;通常会把优先级高的进程放在队头
          3. 阻塞队列指针
          【 指向当前处于阻塞态的进程;根据阻塞原因不同,分为不同队列

      • 索引方式

        根据进程状态不同,建立几张索引表
        操作系统持有指向各个索引表的指针

通信

  • 进程通信:进程之间的信息交换

    • 进程是分配系统资源的单位,各进程拥有的内存地址空间相互独立
    • 为保证安全,一个进程不能直接访问另一个进程的地址空间
  • 通信方法
    • 共享存储

      • 两个进程对共享空间的访问必须是互斥的【一个进程正在访问的时候另一个不能访问】

        互斥通过操作系统提供工具实现
        【 P、V操作【同步互斥】

      • 基于数据结构的共享

        只能放相同数据结构的数据
        低级通信方式,速度慢、限制多

      • 基于存储区的共享

        内存中划出一块共享存储区,数据的形式、存放的位置都由进程控制,而非操作系统
        高级通信方式,速度更快

    • 消息传递

      • 数据交换 - 格式化消息为单位【消息头、消息体】
      • 原语:发送消息/接收消息
      • 方式
        • 直接通信方式

          消息直接挂到接受进程的消息缓冲队列上

        • 间接通信方式

          先发送到中间实体【信箱】中
          【 发送原语、接收原语

    • 管道通信

      • 用于连接读写进程的一个共享文件【pipe文件】,内存中开辟一个大小固定的缓冲区
      • 半双工通信,某一时间段内只能实现单向传输;如果想要实现双向同时通信,则需设置两个管道
      • 各进程要互斥地访问管道
      • 数据 - 字符流,管道写满时,写进程的write()系统调用将被阻塞,读进程将数据全部取走后,管道变空,读进程的read()系统调用被阻塞
      • 没写满,不能读;没读空,不能写;写满时,不能再写;读空时,不能再读
      • 数据一旦被读出,就从管道中被抛弃,即读进程最多只能有一个,否则可能会读错数据
        操作系统-进程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值