• 计算机系统(9)----- 进程控制


    ----------文章参考自王道论坛视频

    一、基本概念

    (1)什么是进程控制

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

     (2)进程控制的实现

            创建进程: 需要初始化 PCB 、分配系统资源;

            创建态转换为就绪态需要修改 PCB 内容和相应队列;

            

            就绪态转换为运行态需要恢复进程运行环境、修改 PCB 内容和相应对列;

            

            运行态转换成就绪态需要保存进程运行环境、修改 PCB 内容和相应队列;

            运行态转换阻塞态需要保存进程运行环境、修改 PCB 内容和相应对类;

            运行态转换成终止态需要收回进程拥有的资源,撤销 PCB ;

            

            堵塞态转换成就绪态需要修改 PCB 内容和相应对类,如果等待的是资源,则还需要为进程分配系统资源;

            用原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成,这种操作叫原语操作;

            原语采用 " 关中断指令 " 和 " 开中断指令 " 实现;

            

    二、进程相关的原语

            原语做的三类事情:

            1. 更新 PCB 中的信息(如修改进程状态标志、将运行环境保存到 PCB 、从 PCB 恢复运行环境)

                    a. 所有的进程控制原语一定都会修改进程的状态标志;

                    b. 剥夺当前执行进程的 CPU 使用权必然需要保存其运行环境;

                    c. 某进程开始运行前必然要恢复其运行环境;

            2. 将 PCB 插入合适的队列;

            3. 分配 / 回收资源;

    (1)进程的创建和终止

            创建原语:

            申请空白 PCB;

            为新进程分配所需资源;

            初始化 PCB ;

            将 PCB 插入就绪队列;

            

            撤销原语:

            从 PCB 集合中找到终止进程的 PCB ;

            若进程正在运行,立即剥夺 CPU ,将 CPU 分配给其他进程

            终止其所有子进程;

            将该进程拥有的所有资源归还给父进程或操作系统

            删除 PCB ;

     (2)进程的阻塞和唤醒

            阻塞原语:

            找到要阻塞的进程对应的 PCB ;

            保护进程运行现场,将 PCB 状态信息设置为 " 阻塞态 " ,暂时停止进程运行;

            将 PCB 插入相应事件的等待队列;

            

            唤醒原语 :

            在事件等待队列中找到 PCB ;

            将 PCB 从等待队列移除,设置进程为就绪态;

            将 PCB 插入就绪队列,等待被调度;

    (3)进程的切换

             切换原语:

            将运行环境信息存入 PCB ;

             PCB 移入相应队列;

            选择另一个进程执行,并更新其 PCB ;

            根据 PCB 恢复新进程所需的运行环境;

  • 相关阅读:
    CentOS7 网络配置
    如何批量图片重命名不同名字?
    企业为什么难创新?5个常见的创新障碍
    深入探索JVM高效并发 — Java内存模型(三) 原子性、可见性与有序性
    【LeetCode】【两个数组的交集】
    正则表达式可视化校验工具Regulex
    武汉新时标文化传媒有限公司短视频营销玩法大比拼
    使用nvm管理多版本node.js
    CNN模型合集 | Resnet变种-WideResnet解读
    spark stream入门案例:netcat准实时处理wordCount(scala 编程)
  • 原文地址:https://blog.csdn.net/jc15274630894/article/details/125989496