处理器管理

news2024/10/2 8:26:46

处理器状态

  1. 处理器管理是操作系统中重要组成部分,负责管理、调度和分配计算机系统的重要资源——处理器,并控制程序执行

  1. 由于处理器管理是操作系统最核心的部分,无论是应用程序还是系统程序,最终都要在处理器上执行以实现其功能,因此处理器管理的优劣性直接影响系统性能

  1. 程序以进程的形式来占用处理器和系统资源,处理器管理中最重要的是处理器调度,即进程调度,也就是控制、协调进程对处理器的竞争

  1. 进程可以被调度在一个处理器上交替地执行,或者在多个处理器上并行执行。不同类型的操作系统可能采取不同的调度策略

  1. 交替执行和并行执行都是并发的类型

  1. 计算机系统中运行的程序可以分为两大类:系统程序和应用程序,前者实现系统任务,后者实现应用任务

  1. 中断和异常是用户态到内核态转换的仅有途径

中断技术

  1. 中断概念

中断指在程序执行的过程中遇到紧急处理的事件时,暂时中止现行程序在 CPU 上的运行,转而执行相应的紧急事件处理的程序,待处理完成后再返回断点或者或者调度其他程序执行的过程

  1. 中断源分类

由硬件发出或者产生的中断称为硬中断,按硬中断事件的来源和实现手段可将中断分为外中断和内中断

  1. 外中断又叫中断或者异步中断,是指来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和外部设备中断等。外中断又分为可屏蔽中断和不可屏蔽中断,各个中断具有不同中断优先级,表示事件的紧急状态,在处理高一级中断时,往往会部分或者全部屏蔽低级中断

  1. 内中断又称异常中断或者同步中断,是指来自处理器内部的中断信号,通常是由于在程序执行过程中,发现与当前指令关联的、不正常的或者错误的事件

内中断又可细分为:

  1. 访管中断,由执行系统调用而引起的

  1. 硬件故障中断(处理器内部的硬件),如电源失效、奇偶校验错误、总线超时等

  1. 程序性异常,如非法操作、地址越界、页面故障、调试指令、除数为0和浮点数溢出

所有这些事件均由异常处理程序处理,并且通常依赖于执行程序的当前现场

  1. 中断和异常的响应以及服务

无论是处理器外部产生的中断还是内部出现的异常,或是程序执行系统调用自愿访管;无论中断源是被动的还是主动的,cpu的响应过程基本上是一致的,即在执行完当前指令后,根据中断源所提供的得“中断向量”,在内核中找到相应中断服务例程并调度执行

中断向量:中断服务程序的入口地址

中断响应:由硬件对中断和异常事件做出反应的过程称为中断响应

中断:外部设备、时钟部件、或者其他计算机发出的,发现中断源并产生中断的硬件称为中断控制器,这些硬件包括中断逻辑线路和中断寄存器,当前指令执行结束后,CPU会检查中断寄存器是否有中断事件发生,若无中断信号或中断信号被屏蔽,继续执行程序的后序指令,否则将暂停执行当前程序,转向内核的中断处理程序运行

异常:在执行指令的时候,由指令本身的原因发生的,指令的控制逻辑和实现线路一旦发现异常情况便转向内核的异常处理程序

中断/异常的响应需要顺序做四件事:

  1. 发现中断源

在中断没有被屏蔽的情况下,硬件(中断控制器)发现中断/异常事件,并由 CPU 响应中断/异常请求。当发现多个中断源的时候,将根据预设的中断优先级先后响应中断请求

  1. 保护现场

暂停当前程序的运行,硬件将中断点的现场信息(PSW)保存至核心栈,使得中断/异常处理程序在运行的时候不会破坏中断程序中的有用信息,以便在处理结束后返回原程序继续运行

  1. 转向中断/异常事件处理程序执行

此时处理器已经从用户态转换至内核态,中断/异常程序开始工作

  1. 恢复现场

当中断处理结束后,恢复原运行程序的 PSW ,重新返回中断点以便执行后续指令

4. 中断事件处理原则

  1. 硬件故障中断

硬件故障导致,如电源故障、内存故障、设备故障等,需要人工干预。同时中断处理程序需要保护现场,停止设备工作,停止处理机运行,向操作员报告故障信息并对故障造成的破坏进行估计和恢复

  1. 程序性中断

语法错误:编译程序发现并报错

逻辑错误:测试程序发现并报错

程序运行的额过程中产生的异常,如定点溢出、阶下溢、除数为 0 等

  1. I/O中断

  1. 访管中断

  1. 时钟中断

时钟是操作系统进行调度的重要工具,如维护系统绝对日期和时间、让分时进程按照时间片轮转等

进程及其实现

进程定义和属性

  1. 进程是程序在一个数据集合上的运行过程,是操作系统进行资源分配和调度的一个独立的基本单位。

  1. 进程的提出是为了刻画程序的并发性、解决资源的共享性

  1. 进程的属性:动态性、共享性、独立性、制约性、并发性

  1. 在OS为什么引入进程的概念?它与程序的差别和关系是怎样的?其基本特征是什么?

进程引入的原因:

多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。

进程和程序的区别:

①进程是程序的一次执行,属于动态概念,而程序是一组有序的指令,是一种静态概念。但进程离开了程序也就失去了存在的意义。

②一个进程可以执行一个或几个程序;反之,同一程序可能由几个进程同时执行。

③程序可作为软件资源长期保留,而进程是程序的一次执行过程,是暂时的。进程具有生命期。

④进程具有并发性,能与其它进程并发运行。而程序不具备这种特征。

⑤进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。因此,进程具有独立性,但有时进程间又具有相互制约性。

特征:

动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

并发性:任何进程都可以同其他进程一起并发执行

独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

结构特征:进程由程序、数据和进程控制块三部分组成。

进程状态和转换

等待态:又称阻塞态或者睡眠态,指进程不具备运行条件,正在等待某个事件完成的状态

就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态

运行态:进程占有处理器正在运行的状态

  1. 进程的基本状态有哪些?试描述进程状态转换图?

运行→阻塞:进程为等待输入而阻塞

阻塞→就绪:调度程序选择另一个进程(当进程等待的一个外部事件发生时)

就绪→运行:调度程序选择这个进程(再次轮到该进程占用CPU运行)

运行→就绪:调度程序选择另一个进程(让其他进程使用CPU时间时)

运行态:进程占用处理器资源

就绪态:进程已获得除处理器外的所需资源,等待分配处理器资源;

阻塞态:由于进程等待某种条件,在条件满足之前无法继续执行。

进程的描述和组成

进程映像:进程在不断发生变化,某时刻进程的内容以及其状态的集合称为进程映像,包括以下几个方面

进程控制块:每一个进程捆绑一个,用来存储存储进程的标志信息、现场信息和控制信息。进程创建时建立进程控制块,进程撤销时回收进程控制块,它与进程一一对应

进程程序块:进程执行的程序,规定进程一次运行所应完成的功能

进程核心栈:每一个进程绑定一个,进程在内核态工作时使用,用来保存中断/异常现场,保存函数调用的参数、局部变量和函数返回地址等

进程数据块:是进程的私有地址空间,存放各种私有数据,用户栈也在数据块中开辟,用在函数调用时存放栈帧、局部变量和返回地址等

进程的四个组成要素:控制块、程序块、数据块、核心栈

进程控制块

每一个进程有且仅有一个进程控制块,或者又叫进程描述符,它是进程存在的唯一标识,是操作系统用来记录和刻画进程状态以及环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。进程控制块包括执行进程的时的情况,以及进程让出处理器之后所处的状态、断点等信息。

(1)、标识信息。标识信息用来唯一地标识一个进程

(2)、现场信息。现场信息用于保留进程在运行时存放在处理器现场中的各种信息。进程在让出处理器的时候,必须将此时的现场信息保存到它的 PCB 中,而当此进程恢复运行时也恢复处理器现场

(3)、控制信息。控制信息用于管理调度进程

线程及其实现

引入进程的目:(刻画程序的并发性、解决资源的共享性)使多个程序并发执行,改善资源利用率和提高系统效率

引入线程的目的:是为了减少程序并发执行时所付出的时空开销,使得并发力度更细、并发性更好

多线程中进程的定义:操作系统中除了了处理器以外的资源分配和保护的基本单位

线程是进程中能够并发执行的实体,是进程的组成部分,是处理器和调度和分配的基本单位,允许进程包含多个线程,这些线程共享进程所获得的内存空间和资源,可以为完成某一项任务而协同工作

进程可以分为两部分:资源集合和线程集合

进程要支撑线程运行,为线程提供虚拟地址空间和各种资源


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

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

相关文章

5.OCR文本识别CRNN算法

文章目录1.基础介绍2.CRNN模型结构2.1 特征提取2.2 双向循环神经网络层2.3 转录层(Transcription Layers)参考资料欢迎访问个人网络日志🌹🌹知行空间🌹🌹 title: 2.OCR文本识别Convolution Recurrent Neural Network toc: true ca…

记一次冲突的产生与解决

冲突的概念 git在使用中,如果遵循了它的使用的步骤,比如,在上班之前先去拉取,下班的时候,先提交,如果遵循这个步骤,一般在用的时候没有错误会产生的,但是,因为在开发的时…

Unity 之 实现读取代码写进Word文档功能实现 -- 软著脚本生成工具

Unity 之 实现读取代码写进Word文档功能前言一,实现步骤1.1 逻辑梳理1.2 用到工具二,实现读写文件2.1 读取目录相关2.2 读写文件三,编辑器拓展3.1 编辑器拓展介绍3.2 实现界面可视化四,源码分享4.1 工具目录4.2 完整代码前言 之所…

【SPSS】两独立样本T检验分析详细操作教程(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

消除“马路黑洞”,计讯物联智能井盖综合管理系统平台有绝招

窨井盖作为市政公用设施的重要组成部分,一旦出现松动、损坏等问题时,不仅会影响市容市貌,还会给道路上的车辆、行人带来安全隐患,对社会安定与安全造成极大负面影响。 痛点分析 01 由于地下管线错综复杂、窨井盖分布广泛,加之信…

Linux 进程:父子进程

目录一、了解子进程二、创建子进程1.创建子进程2.区分父子进程三、理解子进程四、创建子进程的意义进程就是运行中的应用程序,如果一个程序较为庞大,我们可以给这个程序创建多个进程,每个进程负责一部分代码的运行。 A进程如果创建了B进程&am…

【华为OD机试模拟题】用 C++ 实现 - GPU 调度(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明GPU 调度题目输入输出示例一输入输出说明示例二输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。

动态规划:完全背包基础、518.零钱兑换II、377.组合总和IV

leetcode 518.零钱兑换IIleetcode 377.组合总和IV完全背包基础有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里…

CleanMyMac4.20最新版新增功能及电脑清理垃圾使用教程

CleanMyMac4.20作为知名的Mac清理工具,仅需一键即可快速而安全地清理系统垃圾,释放磁盘空间,因此一直深受Mac用户的喜爱。在不断更新的版本中,CleanMyMac已经不仅仅满足于只做简单的Mac清理工具,而是为Mac用户提供更多…

借助Intune无感知开启Bitlocker

希望使用 Intune 部署 BitLocker,但不知道从哪里开始?这是人们最开始使用 Intune 时最常见的问题之一。在本博客中,你将了解有关使用 Intune 管理 BitLocker 的所有信息,包括建议的设置、BitLocker CSP 在客户端上的工作方式&…

彻底搞懂React-hook链表构建原理

写在前面的小结 每一个 hook 函数都有对应的 hook 对象保存状态信息useContext是唯一一个不需要添加到 hook 链表的 hook 函数只有 useEffect、useLayoutEffect 以及 useImperativeHandle 这三个 hook 具有副作用,在 render 阶段需要给函数组件 fiber 添加对应的副…

Spring Boot系列04--静态资源处理

目录1. 静态资源映射规则2. 欢迎页1. 静态资源映射规则 在项目中双击shift或ctrlN搜索WebMvcAutoConfiguration.class文件,文件中的addResourceHandlers方法如下: public void addResourceHandlers(ResourceHandlerRegistry registry) {if (!this.reso…

运维排查篇 | Redis占用内存过高怎么办

我们知道,Redis是一个key-value数据库,它的数据是运行在内存中的其读写效率比将数据存储到磁盘上的数据库要快很多虽然性能强大,但是如果我们不了解Redis的内存回收策略,就有可能导致Redis消耗内存过高甚至导致内存溢出&#xff0…

[优化]上下游交互策略

书接上文:https://blog.csdn.net/weixin_43303530/article/details/127227147?spm1001.2014.3001.5502,为满足产品提的在24小时内能重试尽量去重试,不计较重试的次数的要求,在第三方电子卡系统无法提升接口并发数量的情况下&…

电脑C盘空间不足?这样做就行了!

一般来说,电脑C盘都是系统盘,它的稳定关系到系统能否正常运行,但是很多朋友的C盘却总是红色的,这也就意味着C盘储存空间不足了,那么我们就需要进行以下操作,来让C盘重新拥有储存空间。方案一:运…

BLE Mesh蓝牙协议学习记录

BLE Mesh蓝牙协议学习 文章目录BLE Mesh蓝牙协议学习前言概述一、蓝牙技术整体框架二、经典蓝牙和低功耗蓝牙mesh协议架构图承载层(Bearer Layer)网络层(Network Layer)底层传输层(Lower Transport Layer)上…

JAVA连接数据库——JDBC的简单使用

JDBC即Java数据库连接.用来实现Java程序对数据库增删查改。 为了对接Java程序和数据库,java.sql提供了很多api包含在java.sql和javax.sql里面 结构: DriverManager接口: 每一个数据库的驱动程序都必须去到DriverManager注册,生成一个Connection Conn…

电商平台的促销活动如何抵御大流量的ddos攻击

每一次活动大促带来的迅猛流量,对技术人而言都是一次严峻考验。如果在活动期间遭受黑产恶意 DDoS 攻击,无疑是雪上加霜。电商的特性是业务常态下通常不会遭受大流量 DDoS 攻击,且对延迟敏感,因此只需要在活动期间按需使用 DDoS 防…

【第五章 AOP概述,底层原理,AOP术语,切入点表达式,AOP操作(基于注解方式,基于xml配置文件)】

第五章 AOP概述,底层原理,AOP术语,切入点表达式,AOP操作(基于注解方式,基于xml配置文件) 1.AOP概述: (1)什么是AOP: ①面向切面编程(…

11-KMP算法

KMP算法是一个字符串匹配算法,总的意义是在给定的字符串A中利用优化的方法快速地找出字符串B的位置,相比于传统匹配算法,它能有效减少匹配时间,提高效率。 前缀和后缀 在我们看KMP算法前我们先考虑一个问题:假如我们…