【计算机四级(网络工程师)笔记】操作系统运行机制

目录

一、中央处理器(CPU)

1.1CPU的状态

1.2指令分类

二、寄存器

2.1寄存器分类

2.2程序状态字(PSW)

三、系统调用

3.1系统调用与一般过程调用的区别

3.2系统调用的分类

四、中断与异常

4.1中断

4.2异常


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

一、中央处理器(CPU)

构成CPU的主要部件:运算器,控制器,寄存器,高速缓存。

CPU的工作:取指令,设置CPU状态,响应中断请求。

1.1CPU的状态

CPU状态分为管态(系统态),目态(用户态)。

1.管态∶操作系统管理程序运行的状态,全部指令可以执行,所有资源可使用,并改变处理器状态。此时既可运行特权指令(操作系统使用),也可以运行任何非特权指令(用户程序使用)。

2.目态∶用户程序运行时的状态,只有非特权指令能执行。

目态到管态的转换途径是通过中断或异常,管态到目态转换的途径可以通过设置PSW指令。

1.2指令分类

指令按照权限分为特权指令,非特权指令。

1.特权指令(只能在内核态下运行):置程序计数器、清指令寄存器、清溢出标志、屏蔽中断。

2.非特权指令(可以在内核态下运行又可以在用户态下运行):置移位方向标志位、算术运算指令。

二、寄存器

2.1寄存器分类

寄存器分为用户可见寄存器和用户不可见寄存器。

1.用户可见寄存器:数据寄存器、地址寄存器、条件码寄存器。

2.用户不可见寄存器:程序计数器、指令寄存器、程序状态字。

2.2程序状态字(PSW)

1.PSW状态码:
(1)CPU工作状态码(S)
(2)条件码(C)
(3)中断屏蔽码(IF)

2.PSW常见标志位:
(1)进位标志位(CF)
(2)结果为零标志位(ZF)
(3)符号标志位(SF)
(4)溢出标志位(OF)

3.PSW特殊标志位:
(1)陷阱标志位(TF)
(2)中断使能(中断屏蔽)标志位(IF)
注:进程运行时状态发生转换的原因是发生中断,不希望被外部事件打扰只有设置程序状态字寄存器(PSW)的IF中断标志位,设置为F为0屏蔽中断。
(3)虚拟中断标志位(VIF)
(4)虚拟中断待决标志位(VIP)
(5)IO特权级别位(IOPL)

三、系统调用

系统调用是用户在程序运行时调用的操作系统所提供的一些子功能,这些系统调用可以看作是操作系统提供给用户程序的服务(用于应用程序编程的唯一接口,“扩充”的机器指令)

系统调用传递参数方法有3种:通过寄存器传递、通过堆栈传递、通过指令自带传递。

3.1系统调用与一般过程调用的区别

系统调用时调用程序位于用户态,被调用程序位于核心态。

过程调用直接返回到调用程序,系统调用在返回到调用程序前先运行调度程序(系统调用时需要通过陷入机制,从用户态的调用程序转到核心态的被调用程序)。

3.2系统调用的分类

系统调用的分类主要有进程控制类、文件操作类、进程通信类、设备管理类和信息维护类5种。

1.进程控制类:主要用于对进程的控制,如创建和终止进程、获得和设置进程属性等。

2.文件操作类:主要用于对文件的操作,如创建文件、打开文件、关闭文件、读文件、写文件、创建一个目录、建立目录、移动文件的读/写指针、改变文件的属性等。

3.进程通信类:主要用于进程之间传递消息和信号。

4.设备管理类:主要用于请求和释放有关设备,以及启动设备操作等。

5.信息维护类:主要用于获得当前时间和日期,如设置文件访问和修改时间,了解系统当前的用户数、操作系统的版本号、空闲内存和磁盘空间大小等。

四、中断与异常

一般系统中产生的事件分为中断和异常两类。中断是由外部事件引发的,而异常则是由正在执行的指令引发的。

4.1中断

中断:CPU对系统中或系统外发生的异步事件的响应。

中断源:引起中断的设备或事件。

中断字:一个计算机系统提供的中断源的有序集合。

中断断点:正在执行的程序的暂停点。

中断请求:中断源向处理器发出的中断信号。

中断响应:处理器暂停当前程序,转而进入中断处理程序。(用户程序需要关闭中断响应,必须首先发起访管中断。)

中断处理程序:处理中断事件的程序。

中断向量表:包含中断向量代号和中断处理程序的地址。当中断发生时,从中断向量表中取得中断处理程序的入口地址。

中断向量:中断处理程序入口地址,由程序状态字PSW和PC(指令计数器)组成。

属于中断事件的有:
(1)时钟中断
(2)输入/输出(I/O)中断:数据传送完毕、设备出错、键盘输入、网卡上数据缓冲区满
(3)控制台中断
(4)硬件故障中断
(5)访管中断:用户程序在用户态下执行了特权指令(想要避免访管中断,首先要执行访管指令,把目态切换成管态)

4.2异常

属于异常事件的有:
(1)程序性中断(与当前运行的进程有关):算术溢出、虚存中的缺页中断、被零除、指令错误(目态程序试图执行特权指令)、程序执行时所访问的变量不在内存、内存保护出错
(2)访管指令异常

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JMeter入门】—— JMeter介绍

1、什么是JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试。它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 (Apache JMeter是100%纯JAVA桌面应用程序) Apache JMeter可以用于对静…

idea structure视图介绍

作用 idea的Structure视图可以辅助查看代码结构 如何呼出Structure视图? Alt 7 Ctrl F12 侧边栏点Structure 我的常用配置 1、选Show Toolbar,便于使用功能按钮 2、使用Float视图,悬浮于窗口表面,可以使用 ShiftEsc来退出…

SpringMVC:整合 SSM 上篇

文章目录 SpringMVC - 03整合 SSM 上篇一、准备工作二、MyBatis 层1. dao 层2. service 层 三、Spring 层四、SpringMVC 层五、执行六、说明 SpringMVC - 03 整合 SSM 上篇 用到的环境: IDEA 2019(JDK 1.8)MySQL 8.0.31Tomcat 8.5.85Maven…

ModuleNotFoundError: No module named ‘sklearn.cross_validation‘

文章目录 报错信息报错原因解决方案 关注公众号:『AI学习星球』 算法学习、4对1辅导、论文辅导或核心期刊可以通过公众号或➕v:codebiubiu滴滴我 报错信息 ModuleNotFoundError: No module named sklearn.cross_validation 报错原因 这个cross_vali…

Redis数据库入门学习(下载与安装、常用命令、在Java中操作Redis)

简介 下载与安装 数据类型 常用命令 1.字符串操作命令 2.哈希操作命令 3.列表操作命令 push是将元素总是插入到第一个 0表示第一个,1表示第二个。-1表示倒数第一个,-2表示倒数第二个。当前命令的意思是第一个到倒数第一个,即就是全部元素 rpo…

最新技术整理3款开源免费直播推流工具,实现实时视频推流、视频拉流,目标端可以是服务器、云平台、移动设备等(附源码)

最新技术整理3款开源免费直播推流工具,实现实时视频推流、视频拉流,目标端可以是服务器、云平台、移动设备等(附源码)。 什么是推流? 视频推流是指将实时的视频数据从一个源端发送到一个或多个目标端的过程。推流的源…

基于ssm重庆理工大学心理咨询管理子系统的分析与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,心理咨询预约信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能…

.NET中的Swagger使用

目录 前言 一、Swagger是什么? 二、如何Swagger文档说明的信息 1.在AddSwaggerGen方法中写入文档信息 2.运行效果 二、文档UI界面标题、路由设置 1.在中间件UseSwaggerUI方法中配置 三、文档UI界面添加接口注释 1.在 .csproj中配置 2.在AddSwaggerGen方法中配置Incl…

nosql-redis整合测试

nosql-redis整合测试 1、创建项目并导入redis2、配置redis3、写测试类4、在redis中创建key5、访问80826、在集成测试中测试方法 1、创建项目并导入redis 2、配置redis 3、写测试类 4、在redis中创建key 5、访问8082 6、在集成测试中测试方法 package com.example.boot3.redis;…

JS之移动端触屏事件

在我们PC端中有许多的事件,那我们在移动端有没有事件呢?让我为大家介绍一下移动端常用的事件,触屏事件 触屏事件 touch (也称触摸事件),Android 和IOS 都有 touch 对象代表一个触摸点。触摸点可能是一根手指,也可能是一…

深入理解CANopen通信协议:CAN-ID、COB-ID与节点ID的协同工作

深入理解CANopen通信协议:CAN-ID、COB-ID与节点ID的协同工作 引言 在现代工业自动化和控制系统中,CANopen协议因其卓越的通信效率和出色的灵活性而备受推崇。本文旨在探讨CANopen中CAN-ID、COB-ID及节点ID的结构和作用,深入解析这些组件如何…

【SpringCloud笔记】(8)服务网关之GateWay

GateWay 概述简介 官网地址: 上一代网关Zuul 1.x:https://github.com/Netflix/zuul/wiki(有兴趣可以了解一下) gateway:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/…

PyQt5和Qt designer的详细安装教程

Qt designer界面和所有组件功能的详细介绍参考:https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001.5501 目录 0. 写在前面1. Anaconda创建虚拟环境2. 安装PyQt5和Qt designer3. 测试安装成功 0. 写在前面 Qt Designer是Qt提供的一种…

巅峰画师Midjourney:新时代的独角兽

介绍 AI绘画领域中,Midjourney处于绝对地位,并且一年时间就登顶。 Midjourney是一家独立的AI研究实验室,探索新的思维媒介,拓展人类的想象力。 它由一个小型的自筹资金团队组成,专注于设计、人类基础设施和AI。 在AI绘画领域,Midjourney取得了非常突出…

定义一个二维数组并输入数据,将二维数组元素的值按升序排列,并输出排序后的二维数组。

目录 问题: 回顾: 给出两种做法: 解法一:调用qsort 函数进行排序 代码: 运行结果: 解法二:冒泡排序 代码: 运行结果: 回顾里的4种方法的模板参考: 1.冒泡排序…

裸机开发(1)-汇编基础

文章目录 GNU汇编语法常用汇编指令处理器内部数据传输指令存储器访问指令压栈和出栈指令跳转指令算术指令逻辑运算指令实战 函数发生调用时,需要进行线程保护,简单来说,就是先进行压栈操作,将调用函数参数、返回值等存到R0-15寄存…

【GoLang】Go语言几种标准库介绍(一)

你见过哪些令你膛目结舌的代码技巧? 文章目录 你见过哪些令你膛目结舌的代码技巧?前言几种库bufio(带缓冲的 I/O 操作)特性示例 bytes (实现字节操作)特性示例 总结专栏集锦写在最后 前言 随着计算机科学的迅猛发展,编…

统计和绘图软件GraphPad Prism mac功能特点

GraphPad Prism mac是一款专业的统计和绘图软件,主要用于生物医学研究、实验设计和数据分析。 GraphPad Prism mac功能和特点 数据导入和整理:GraphPad Prism 可以导入各种数据格式,并提供直观的界面用于整理、编辑和管理数据。用户可以轻松…

使用 ElementUI 组件构建无边框 Window 桌面应用(WinForm/WPF)

生活不可能像你想象得那么好,但也不会像你想象得那么糟。 我觉得人的脆弱和坚强都超乎自己的想象。 有时,我可能脆弱得一句话就泪流满面;有时,也发现自己咬着牙走了很长的路。 ——莫泊桑 《一生》 一、技术栈 Vite + Vue3 + TS + ElementUI(plus) + .NET Framework 4.7.2…

如何使用Docker将.Net6项目部署到Linux服务器(二)

二 安装Redis 2.1 基本安装 2.1.1 下载Redis 进去Redis官网 http://www.redis.io/ 历史版本下载地址:Index of /releases/ Redis中文文档地址:Redis文档中心 -- Redis中国用户组(CRUG) Redis下载地址: Downloa…