什么是进程控制?(实现进程状态转换)

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

思考:如果将一个进程从一个队列放入到另一个队列,但是并没有改变进程PCB的状态标               志,那么就有可能导致系统错误。因为PCB所处的队列和当前PCB的状态标志位数               据不一致。为防止这类问题:用原语实现进程控制(原语运行在核心态)

原语的特点是执行期间不允许中断,只能一气呵成

这种不可被中断的操作即原子操作

原语采用“关中断指令”和“开中断指令”实现一气呵成(一气呵成是指将一个进程从一个队列放入到另一个队列,并且同时保证PCB的数据也被修改)

执行了关中断指令之后,如果此时收到外部中断信号,则此时的外部中断信号会被忽略,暂时不会被处理。保证了原语的一系列处理不会被中断。

之后执行了开中断指令之后,这是收到外部中断信号,才会转入到相应的中断处理程序开始处理。

显然,开/关中断指令的权限非常大,必然是指允许在核心态下执行的特权指令

进程控制相关的原语:

无论哪个原语,无非就是要做三类事情:

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

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

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

c.某进程开始运行前

2.将PCB插入合适的队列

3.分配/回收资源

创建原语

撤销原语

阻塞原语和唤醒原语

切换原语:

总结:

java控制进程_⑨进程控制相关推荐

  1. potplayer 多个进程_进程组、会话、控制终端概念,如何创建守护进程?

    守护进程 概念: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程.周期性的执行某种任务或等待处理某些发生的事件. Linux系统有很多守护进程,大多数服务都是用守护进程实现的 ...

  2. 10taskkill无法终止进程_?进程的状态转换

    一.进程的状态和转换 1.1进程的三态模型 按进程在执行过程中的不同情况至少要定义三种状态: 运行(running)态:进程占有处理器正在运行的状态. 进程已获得CPU,其程序正在执行.在单处理机系统 ...

  3. vmware-vmx.exe无法结束进程_?进程的状态转换

    一.进程的状态和转换 1.1进程的三态模型 按进程在执行过程中的不同情况至少要定义三种状态: 运行(running)态:进程占有处理器正在运行的状态. 进程已获得CPU,其程序正在执行.在单处理机系统 ...

  4. python僵尸进程和孤儿进程_进程3.0——进程状态与僵尸进程、孤儿进程

    进程3.0--进程状态与僵尸进程.孤儿进程 进程状态 一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程.进程状态即体现一个进程的生命状态 一般来说,进程有五种状态:创建状态:进程在创建时需 ...

  5. 协程 进程_进程,线程,协程的关系

    对于很多WEB服务器的开发人员,编程前几年大多以实现业务代码为主,很少接触或者系统的学习服务器的进程,线程,协成的概念和应用,下面我就进程,线程,协成在Nginx服务器中的应用对比浅析: 关系图: 概 ...

  6. JAVA语言语法_流程控制(part3)

    文章目录 JAVA语言语法 三.流程控制 1.程序流程控制概述 2.顺序结构 3.分支结构 4.分支结构语句练习 5.加深键盘类Scanner类的使用 6.分支结构语句练习2 7.分支结构&s ...

  7. Java并发篇_进程线程

    一个进程包括由操作系统分配的内存空间,包含一个或多个线程.一个线程不能独立的存在,它必须是进程的一部分.一个进程一直运行,直到所有的非守护线程都结束运行后才能结束. 多线程能满足程序员编写高效率的程序 ...

  8. JAVA电机控制程序_步进电机控制时序

    在使用Microchip TCP / IP堆栈时,我对步进电机控制有疑问 . 在过去,我使用计时器进行步进电机控制 . 我将定时器的周期设置为脉冲之间所需的时间,然后根据需要在定时器标记ISR中更改电 ...

  9. supervisor 守护多个进程_进程管理工具之Supervisor

    相关介绍 Supervisor是用Python 开发的一个client/server服务,是 Linux /Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止. ...

最新文章

  1. Posted content type isn't multipart/form-data
  2. 硬盘出现坏道后的修复技巧
  3. 泰信通获得正唐资本首轮投资,加速进军SDN、云网市场
  4. Matlab | matpower5.0:最优潮流执行步骤
  5. CF1167F. Scalar Queries
  6. 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)
  7. 转:用ASP.NET创建网络相册
  8. Axure经典案例下载(crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板)
  9. unity---------------------关于BuildAssetBundles的使用(打包)
  10. 2018 AI趋势:AI芯片更丰富,用机器学习的企业翻倍 | 德勤报告
  11. OpenCV之线性混合操作
  12. java 多线程 6 : 同步锁(Lock)
  13. 思科模拟器CiscoPacketTracer下载
  14. LG 的数学计划 ---- 第三步 欧几里得算法和扩展欧几里得
  15. 数26个大写字母里带圈的字母个数
  16. 实例解剖一个牛 B 的融资 PPT
  17. 提示BeanPostProcessorChecker:is not eligible for getting processed by all BeanPostProcessors的原因
  18. 华师新生研讨课 课后心得004
  19. 基于C90标准的C语言开发工具
  20. 监控摄像头的测试方法

热门文章

  1. 高性能MySQL—第一章 MySQL架构与历史
  2. leetcode100. 相同的树
  3. spark中一些不是很有意义的数据结构
  4. nginx 替换返回请求中的字符
  5. PHP curl 直接获取请求变量,不直接输出
  6. Bootstrap研究0-概述
  7. zookeeper专题:zookeeper集群搭建和客户端连接
  8. 大数据-HDFS 配置与使用
  9. 【3】docker-compose
  10. 解决方案:SpringBoot分布式项目跨域