了解进程控制

news2025/1/14 18:13:54

目录

1、基本概念

2、操作系统内核

2.1支撑功能

2.2资源管理功能

3、进程的创建

3.1进程的层次结构

3.2进程图

3.3引起创建进程的事件

3.4进程的创建

 4、进程的终止

4.1引起进程终止的事件

 4.2进程的终止过程

5、进程阻塞与唤醒

5.1引起进程阻塞和唤醒的事件

5.2进程阻塞过程(block)

5.3进程唤醒过程(wakeup)

 6、进程挂起与激活

6.1进程的挂起(suspend)

6.2进程的激活(active)


1、基本概念

进程控制是进程管理中 最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。

2、操作系统内核

现代操作系统一般将OS划分为若干层次,再将OS的不同功能分别设置在不同的层次中。

2.1支撑功能

(1)中断功能:中断功能那个是内核 最基本的功能,是整个操作系统赖以活动的基础。

(2)时钟管理:时钟管理产生一个中断信号,促进调度程序重新进行调度。

(3)原语操作:所谓原语,就是由若干条指令组成,用于完成一定功能的一个过程。

        原语操作是指一个操作中的动作要么全不做要么全做。换言之,它是一个不可分割的基本操作。

2.2资源管理功能

(1)进程管理:主要包括进程的调用与分派、进程的创建与撤销等;

(2)存储器管理:用于实现将用户空间的逻辑地址变换为内存空间的物理地址的地址转换机构、内存分配与回收的功能模拟以及实现内存保护和兑换功能的模块;

(3)设备管理:各类设备的驱动程序、用于缓和CPU与I/O速度不匹配矛盾的缓冲管理、用于实现设备分配和设备独立性功能的模块;

3、进程的创建

3.1进程的层次结构

父进程:创建进程的进程。

子进程:被创建的进程。

3.2进程图

  • 描述进程的家族关系的有向树.
  • 进程Pi创建了进程Pj,则Pi是Pj的父进程, Pj是Pi的子进程,用一条由进程Pi指向进程Pj的有向边来描述。
  • 创建父进程的进程为祖先进程,由此形成进程树,树根为进程家族的祖先。

3.3引起创建进程的事件

  • 用户登录
  • 作业调度
  • 提供服务
  • 应用请求

3.4进程的创建

(1)申请空白PCB(进程控制块)
(2)为新进程分配运行所需的资源
(3)初始化PCB(初始化标识信息、处理机状态信息、处理机控制信息)
(4)将新进程插入就绪队列

 4、进程的终止

4.1引起进程终止的事件

  1. 正常结束
  2. 异常结束
    越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O故障
  3. 外界干预

 4.2进程的终止过程

(1) 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。
(2) 若被终止进程正处于执行状态,应立即终止该进程的执行,置调度标志为真,用于指示该进程被终止后应重新进行进程调度。
(3) 若该进程有子孙进程,应将其所有子孙进程予以终止,以防他们成为不可控的进程。
(4) 将被终止进程所拥有的全部资源,或归还其父进程,或归还系统。
(5) 将被终止进程的PCB从所在队列或链表中移出,挂入空白PCB队列,等待其它程序来搜集信息。

5、进程阻塞与唤醒

5.1引起进程阻塞和唤醒的事件

  1. 向系统请求共享资源失败
  2. 等待某种操作的完成
  3. 新数据尚未到达
  4. 等待新任务的到达

5.2进程阻塞过程(block)

  • 调用阻塞原语阻塞自己,终止该进程的执行,将PCB中的状态改为阻塞,并加入到阻塞队列中;
  • 然后转进程调度,将处理机分配给另一进程,并进行进程切换以及处理机状态的保护与重新设置。

5.3进程唤醒过程(wakeup)

  • 把阻塞进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态改为就绪,将PCB插入到就绪队列中。

 6、进程挂起与激活

6.1进程的挂起(suspend)

当出现引起进程挂起的事件时,系统利用挂起原语将指定进程挂起。

  • 检查被挂起进程的状态;
  • 若处于活动就绪,则改为静止就绪;
  • 若处于活动阻塞,则改为静止阻塞;
  • 将该进程PCB复制到内存指定区域;
  • 若挂起的进程正在执行,则重新进行进程调度。

6.2进程的激活(active)

  • 当发生激活进程的事件时,系统利用激活原语将指定进程激活。
  • 激活原语先将进程从外存调入内存,检查该进程的状态;
    若处于静止就绪,则改为活动就绪;
    若处于静止阻塞,则改为活动阻塞;
    若采用抢占调度策略,则每当有静止就绪进程被激活进入就绪队列时,检查是否要重新进行进程调度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

老测试告诉你自动化测试需要考虑什么?

写在前面 这篇文章译自著名测试专家James Bach的《Test Automation Snake Oil》一文,是笔者在学习和研究探索性测试时偶然发现的一篇较有意义的文章,很好地解答了我们对自动化测试的疑惑。 比如万能的自动化测试是否可以替代一切,还给我们提…

什么是多相流?在熟悉工业中常见的两相及多相流的分类及特点

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

安全工程与运营

安全工程与运营 系统安全工程系统安全工程重要性安全工程系统安全工程理论基础 成立成熟度模型、系统安全工程能力成熟度模型能力成熟度模型(Capability Maturity Model)能力成熟度模型基本思想系统安全工程能力成熟度模型SSE-CMM的作用SSE-CMM体系结构域…

第9章:创建和管理表

一、数据库的创建修改和删除 1.SQL的分类 DDL:数据定义语言 create创建、alter修改、drop删除、rename重命名、truncate清空 DML:数据操作语言 insert、delete、update、select DCL:数据控制语言 commit提交、rollback回滚、savepoint保存…

Spot CEO:我们为什么选择Babylon.js而不是Three.js

为现代网络开发令人兴奋的事情之一是底层平台的快速发展。 WebAssembly、WebGL、WebGPU、Web Worker 等正在解锁以前典型 Web 产品无法想象的体验。 在过去的几年里,我们看到像 Figma 这样的产品利用这一点创造了极具吸引力的业务和产品。 推荐:用 NSDT设…

前端-01Html5基本知识

1 基本 1.1 第一个前端程序 内容 <html><head><title>我的网页</title></head><body>Hello,我的第一个网页</body> </html>使用浏览器打开 1.2 工具安装 浏览器 谷歌浏览器 清缓存 ctrlshiftdelete vscode 生成浏览器文…

cubic 的 tcp friendliness 与拐点控制

TCP CUBIC 应该是迄今为止综合表现最优秀的算法&#xff0c;其中有两个亮点&#xff0c;一个是 RTT 无关性&#xff0c;另一个是可扩展性。RTT 无关性表现在 CUBIC 的 cwnd 表达式中没有 RTT 因子&#xff0c;而可扩展性则来自于曲线本身&#xff1a; 随着 BDP 增加&#xff0…

音视频技术开发周刊 | 292

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 谷歌将 AI 芯片团队并入云计算部门 追赶微软和亚马逊 OpenAI推出的ChatGPT获得一定成功&#xff0c;微软是OpenAI的重要投资者&#xff0c;它将ChatGPT植入必应搜索&#…

【16】SCI易中期刊推荐——计算机 | 人工智能领域(中科院2区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【IO】零拷贝、mmap、sendfile

文章目录 前言一、普通IO二、mmap三、sendfile1. Linux2.1的sendfile2. Linux2.4的sendfile 四、总结与扩展1. 结论2. 解释、扩展 参考 前言 概念&#xff1a; 没有发生CPU拷贝数据&#xff0c;都是DMA&#xff08;直接内存访问&#xff09;拷贝 优势&#xff1a; 减少内核态…

《算经》中的百钱买百鸡问题,你会做吗?试下看看(39)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 你知道我国历史上有个王朝叫北魏吗&#xff1f; 北魏&#xff08;386年—534年&#xff09;&#xff0c;南北朝时期北…

HashMap 简述

文章目录 前言一、HashMap的数据结构二、HashMap存储数据的大致过程1 哈希值2 什么是哈希冲突?3 为何有两种数据结构? 三、HashMap常用知识总结 前言 HashMap 是开发中常用的一种数据结构,通常用做返回值,计算比对等,会经常用到; 一、HashMap的数据结构 jdk8之后,数据结构是…

时至今日,Pascal系列Turbo Pascal 5.0依旧是我心中永远的神

从DOS时代到Windows时代&#xff0c;从桌面应用到Web应用&#xff0c;每一个时代都有它特定的编程工具 在我看来&#xff0c;DOS时代的编程语言&#xff0c;Pascal必占一席之地。 尤其是Turbo Pascal系列的最后一个版本——Turbo Pascal 5.0&#xff0c;更是我心目中永不褪色的…

nginx企业级高性能配置优化

一、基础配置优化 1、CPU亲和性优化 1.1、推荐直接将配置项设置成auto (worker_cpu_affinity)&#xff0c;即采用了Nginx推荐的CPU绑核策略方式。 1.2、手动绑定&#xff0c;将worker线程数量与CPU核心数一一绑定方式设置&#xff0c;设置成auto Nginx会自动识别并按照推荐策略…

New Bing 全面开放?我看未必

前段时间大家应该都被ChatGPT刷屏了&#xff0c;其实就回答来说New Bing 才是最厉害的&#xff0c;因为它底层使用了ChatGPT 并且可以支持联网查询数据&#xff0c;回答中还能支持看到出处&#xff0c;方便确认其真实性。 New Bing 是微软基于 OpenAI ChatGPT 技术开发的新一代…

vue3项目搭建

一、安装 vue3.0 脚手架 &#xff08;1&#xff09;node安装&#xff08;前端开发环境&#xff09; 打开node官网:https://nodejs.org/zh-cn/ 下载node并安装&#xff08;安装vue3建议node在10.0版本以上&#xff09;。 输入node -v可显示node版本 &#xff08;2&#xff09;…

使用思维链(Chain-of-thoughts)提示在大型语言模型中引出推理

语言模型(LM)在NLP领域的发展速度非常快&#xff0c;特别是在大型语言模型(LLM)方面&#xff1a;当语言模型具有大量参数或权重/系数时&#xff0c;它们被称为“大型”。这些“大型”语言模型拥有处理和理解大量自然语言数据的能力。 LLM被用于一系列自然语言任务&#xff0c;…

【Java EE】-Servlet(三) MessageWall

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 寂寞会发慌&#xff0c;孤独是饱满的。——史铁生《命若琴弦》 主要内容&#xff1a;前后端交互接口协商&#xff0c;约定好&#xff0c;使用什么数据格式传输&…

变现 起航篇! 手把手交你用chatgpt快速生成视频!

Chatgpt 很多同学都用的非常熟练了&#xff0c;但是都停留在文字阶段&#xff0c;有没有更好玩的用法&#xff0c;可以深度的利用chatgpt做一些事情呢&#xff1f; 今天菜哥就找一个方法可以快速利用chatgpt制作视频&#xff0c;整个过程大概3分钟&#xff0c;非常有趣&#xf…

浪涌保护器的工作类型及其应用

所有电路系统中的电气设备都需要浪涌保护器的保护支持。这主要取决于器件的内部电路如何能够处理电压波动。如果器件出现输入电压波动&#xff0c;则会导致器件损坏&#xff0c;因为电源电压的波动可能对器件有害。在本文中&#xff0c;我们将了解什么是浪涌保护器&#xff0c;…