当前位置: 首页 > news >正文

处理器管理

处理器状态

  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. 进程的属性:动态性、共享性、独立性、制约性、并发性

进程状态和转换

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

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

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

进程的描述和组成

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

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

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

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

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

进程控制块

相关文章:

处理器管理

处理器状态处理器管理是操作系统中重要组成部分,负责管理、调度和分配计算机系统的重要资源——处理器,并控制程序执行由于处理器管理是操作系统最核心的部分,无论是应用程序还是系统程序,最终都要在处理器上执行以实现其功能&…...

跟着我从零开始入门FPGA(一周入门系列)第五

5、同步和异步设计 前面已有铺垫,同步就是与时钟同步。 同步就是走正步,一二一,该迈哪个脚就迈那个脚,跑的快的要等着跑的慢的。 异步就是搞赛跑,各显神通,尽最大力量去跑,谁跑得快,…...

【第42天】Arrays.sort 与 Collections.sort 应用 | 整形数组与集合的排序

本文已收录于专栏🌸《Java入门一百练》🌸学习指引序、专栏前言一.sort函数二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析三、推荐专栏序、专栏前言 本专栏开启,目的…...

LeetCode第334场周赛

2023.2.26LeetCode第334场周赛 A. 左右元素和的差值 思路 前缀和后缀和 代码 class Solution { public:vector<int> leftRigthDifference(vector<int>& nums) {int n nums.size();vector<int> l(n), r(n), ans(n);for (int i 1; i < n; i )l[…...

基于深度学习的三维重建网络PatchMatchNet(三):PatchMatchNet配置及代码主要运行流程

目录 1.PatchMatchNet环境配置 2. PatchMatchNet的大致执行流程(eval.py) 2.1 深度图的保存...

【一天一门编程语言】设计一门编程语言,给出基础语法代码示例,SDK设计。

文章目录设计一门编程语言&#xff0c;给出基础语法代码示例&#xff0c;SDK设计。一、编程语言设计1.1 语言名称1.2 数据类型1.3 基本运算符1.4 控制语句二、SDK设计2.1 基础库2.2 第三方库三、例子用 Mango 这门语言实现斐波那契数列。基础语法代码示例SDK 设计使用 Mango 语…...

ubuntu 下 python 安装 venv

ubuntu 下 python 安装 venv1.首先&#xff0c;确保您的系统已安装 Python3 和 pip3&#xff0c;如果没有安装&#xff0c;可以使用以下命令安装&#xff1a;2. 接着&#xff0c;安装 virtualenv 包&#xff0c;使用以下命令&#xff1a;3.创建 Python 虚拟环境&#xff0c;使用…...

HTML#1快速入门

一. 简介HTML是一门语言, 所有的网页都是用HTML编写的HTML(Hyper Text Markup Language): 超文本(超越了文本限制,除了文字信息还可以定义图片,音频,视频等)标记语言(有标签构成的语言)W3C标准: 网页主要由三部分组成(1) 结构: HTML(2) 表现: CSS(3) 行为: JavaScript二. 快速入…...

【MySQL】事务隔离级别是怎么实现的?

事务隔离级别是怎么实现的&#xff1f; 四种隔离级别具体的实现方式 对于「读未提交」&#xff1a;直接读取最新的数据就好。对于「串行化」&#xff1a;通过加读写锁的方式来避免并行访问。对于「读提交」和「可重复读」&#xff1a;通过 Read View 来实现&#xff0c;主要区…...

JSP网上书店系统用myeclipse定制开发mysql数据库B/S模式java编程计算机网页

一、源码特点 JSP 网上书店系统 是一套完善的系统源码&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。研究的基本内容是基于网上书店系 统&#xff0c;使用JSP作为页面开发工具。Web服务的运…...

配置 Haproxy 负载均衡群集

配置 haproxy 负载均衡群集 &#x1f3c6;荣誉认证&#xff1a;51CTO博客专家博主、TOP红人、明日之星&#xff1b;阿里云开发者社区专家博主、技术博主、星级博主。 &#x1f4bb;微信公众号&#xff1a;微笑的段嘉许 &#x1f4cc;本文由微笑的段嘉许原创&#xff01; &#…...

计算机网络笔记 | 第一章:计算机网络概述(1.1-1.4小节知识点整理)

从专栏将讲述有关于计算机网络相关知识点&#xff0c;如果有想学习Java的小伙伴可以点击下方连接查看专栏&#xff0c;还有JavaEE部分 本专栏地址&#xff08;持续更新中&#xff09;&#xff1a;&#x1f525;计算机网络 MyBatis&#xff1a;✍️MyBatis Java入门篇&#xff1…...

Flutter3引用原生播放器-Android篇

接上篇&#xff1a;Flutter3引用原生播放器-IOS(Swift)篇 安卓端原生播放器的接入思路与ios基本一致&#xff0c;所以本篇就不废话了&#xff0c;直接上代码&#xff1a; 创建插件VideoViewPlugin实现FlutterPlugin&#xff1a; package io.flutter.plugins.videoplayer;imp…...

SerenityOS 操作系统类 Unix 操作系统

创建于2018年的SerenityOS是一个类似Unix的操作系统&#xff0c;但是带有图形化界面&#xff0c;适合X86台式计算机&#xff0c;&#xff0c;其界面类似90 年代的Win98/NT。几乎由一个人完成额操作系统。这几天其Web浏览器通过了 Acid3 浏览器。 Kernel features 具有抢占式多…...

Bean作用域和生命周期

目录 Bean作用域的例子 作用域定义 Bean的六种作用域 设置作用域 Spring的执行过程和Bean的生命周期 Spring的主要执行流程 Bean的生命周期 在上篇博客中我们使用Spring存储和获取Bean,因此Bean是Spring中最重要的资源,今天这篇博客就深入了解Bean对象 Bean作用域的例子 …...

STM32笔记

目录 1.1. 预备阶段 1.2. 单片机介绍 2. 初识STM32 2.1. STM32 1.1. 预备阶段 1.2. 单片机介绍 1.2.1. 单片机是什么 单片微型计算机(Single Chip Microcomputer)简称为单片机&#xff08;Microcontrollers&#xff09;&#xff0c;也称为微控制单元(Microcontroller Uni…...

【论文阅读】基于LevelDB的分布式数据库研究

基于LevelDB的分布式数据库研究 基于LevelDB的分布式数据库的研究与实现 - 中国知网 (cnki.net) 实现了什么&#xff1f; 基于键值型NoSQL数据库LevelDB&#xff0c;并与数据一致性算法Raft、 数据分片和负载均衡相结合&#xff0c;设计并实现基于LevelDB的分布式数据库。 主要…...

JavaScript高级 Iterator Generator

1. Iterator 1. JavaScript迭代器协议 在JavaScript中&#xff0c;迭代器也是一个具体的对象&#xff0c;这个对象需要符合迭代器协议&#xff08;iterator protocol&#xff09;&#xff1a; ◼ 迭代器协议定义了产生一系列值&#xff08;无论是有限还是无限个&#xff09;…...

数字IC手撕代码--乐鑫科技(次小值与次小值出现的次数)

前言&#xff1a;本专栏旨在记录高频笔面试手撕代码题&#xff0c;以备数字前端秋招&#xff0c;本专栏所有文章提供原理分析、代码及波形&#xff0c;所有代码均经过本人验证。目录如下&#xff1a;1.数字IC手撕代码-分频器&#xff08;任意偶数分频&#xff09;2.数字IC手撕代…...

JavaScript DOM和BOM

目录 查找html元素 1.通过id 2.通过标签名 3.通过类名 DOM 1.创建动态的HTML内容 2.修改元素内容 3.改变HTML属性 4.改变css样式 DOM事件 DOM节点 1.添加HTML元素 2.删除HTML元素 浏览器对象 1.Window对象 2.Screen对象 3.History对象 4.Location对象 5.Navi…...

JUC并发编程(二)

一、过时方法 一些不推荐使用的方法已经过时&#xff0c;容易破坏同步代码块&#xff0c;使对象的锁得不到释放&#xff0c;进而造成线程死锁 二、守护线程 默认情况下&#xff0c;Java 进程需要等待所有线程都运行结束&#xff0c;才会结束。有一种特殊的线程叫做守护线程…...

Python控制CANoe使能TestCase

前面介绍了多种CANoe配置下的dbc文件添加,常见的配置我们能够常用的就是testcase的使能和环境变量的设置,针对于环境变量的问题,我们下次再进行详聊,今天主要聊一下测试脚本的使能。在做这块之前,我们第一步就需要了解我们的测试脚本的层级是都包含有哪些? 一、测试脚本结…...

sql的执行顺序

一.前言 在我们世家开发中,我们少不了和数据库打交道, 我们的持久层是与数据库打交道的, 少不了要用sql语句来请求数据库的数据, 前台(前端页面)请求到-->控制器(接口层)-->service(业务层)-->mapper或dao(持久层) 简图: 在持久层我们的sql是怎么执行的, 它的执行顺…...

java 8 中的实用技巧

1 判断2个对象是否相等Objects.equals(a, b)(1) 比较时&#xff0c; 若a 和 b 都是null, 则返回 true, 如果a 和 b 其中一个是null, 另一个不是null, 则返回false。注意&#xff1a;不会抛出空指针异常。(2) a 和 b 如果都是空值字符串&#xff1a;"", 则 a.equals(b…...

自学大数据的第一天

默认跳过基础部分,直接搞集群的部分,期间用到的linux基础默认大伙都会了(不会的话可以现用现查) Hadoop集群搭建 集群特点: 1,逻辑上分离~集群之间没有依赖,互不影响 2,某些进程往往部署在一台服务器上,但是属于不同的集群 3,MapReduce 是计算框架,代码层面的处理逻辑 集群的…...

redis秒杀

redis优惠券秒杀 为什么订单表订单ID不采用自增长&#xff1f; id规律性太明显&#xff0c;容易被用户猜测到&#xff08;比如第一天下订单id10&#xff0c;第二天下订单id100&#xff0c;在昨天的1天内只卖出90商品&#xff09;受单表数据量限制&#xff08;订单数据量大&am…...

JS学习第3天——Web APIs之DOM(什么是DOM,相关API【创建、增删改查、属性操作、事件操作API】)

目录一、Web APIs介绍1、API2、Web API二、DOM1、DOM树2、获取元素3、事件基础4、操作元素属性5、节点&#xff08;node&#xff09;操作三、DOM操作总结&#xff08;创建、增删改查、属性操作、事件操作API&#xff09;1、创建2、增3、删4、改5、查6、属性操作7、事件操作四、…...

【MySQL】增删改操作(基础篇)

目录 1、新增操作(Create) 1.1 单行数据 全列插入 1.2 多行数据 全列插入 1.3 单行数据 指定列插入 2、修改操作(Update) 3、删除操作(Delete) 1、新增操作(Create) 如何给一张表新增数据呢&#xff1f; 新增(Create)&#xff0c;在我们数据库中&#xff0c;用 ins…...

STM32—DMA

什么是DMA&#xff1f; DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于CPU&#xff0c;在这个时间中&#xff0c;CPU对于内存的工作来…...

C语言刷题(3)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容还是做几道题噢&#xff0c;好好复习一下之前的知识点&#xff0c;现在&#xff0c;就让我们开始复习吧 牛客网在线编程_编程学习|练习题_数据结构|系统设计题库 倒置字符串_牛客题霸_牛客网 BC40 竞选社长 BC41 你是天才…...