操作系统运行环境

目录

操作系统运行环境(1)

第一节

一、处理器的构成与基本工作方式

二、特权和非特权指令

三、处理器的工作状态

四、程序状态字

第二节、计算机系统硬件部件

一、存储系统

二、I/O部件:1.I/O结构,2.通道,3.DMA技术,4.缓冲技术 

三、时钟部件

操作系统运行环境(2)

第三节、系统中断

一、中断与异常的概念

二、中断系统

三、中断优先级、中断屏蔽与中断嵌套 

第四节、系统调用

一、系统调用简介

二、系统调用的处理过程


操作系统运行环境(1)

第一节

一、处理器的构成与基本工作方式

处理器一般由运算器、控制器和一系列寄存器以及高速缓存构成。
运算器:实现算数与逻辑处理
控制器:控制程序运行流程
寄存器:用于处理器执行指令的过程中暂存数据、地址及指令信息。
高速缓存:为CPU和内存提供一个高速的数据缓存区域。
1.处理器中的寄存器分为两类寄存器:
(1)用户可见寄存器,由编译程序分配,减少程序运行时访问内存的次数。
一般包括数据寄存器,地址寄存器、条件码寄存器。
(2)控制和状态寄存器,用来控制处理器的操作,常见的寄存器是程序计数器(PC)、指令寄存器(IR)、程序状态字(PSW)。
2.指令执行的基本过程
最简单的是两个基本步骤:
(1)读取指令,并将程序计数器的值变成下一条指令的地址。
(2)指令放入指令寄存器中,处理器解释并执行该指令。
3.指令的分类:访问存储器指令、I/O指令、算数逻辑指令、控制转移指令、控制器指令。

二、特权和非特权指令

在多道程序环境下,指令分为特权指令和非特权指令。
1.特权指令:
①在操作系统中那些只能由操作系统使用的指令。
②不允许一般用户使用
③比如:设置程序状态字、启动某设备、设置中断屏蔽字等
2.非特权指令:普通用户使用的指令

三、处理器的工作状态

1.管态和目态
管态:操作系统管理程序运行时的状态,又称内核态、系统态等,具有较高特权。
目态:一般用户程序运行时的状态,又称用户态、普通态,具有较低特权。
2.处理器工作状态的转换
目态到管态的转换:唯一途径是通过中断。中断响应时交换中断向量,新的中断向量的PSW处理器状态标志位管态。
管态到目态的转换:可通过设置PSW指令,实现从操作系统到用户程序的转换。
3.限制用户程序执行特权指令,当用户程序执行时,如果取到一条特权指令,则处理器拒绝执行该指令,并形成一个“非法操作事件”,然后操作系统通知用户程序-->程序中有非法指令。

四、程序状态字

为了解决处理器当前工作状态的问题,所有的处理器都有一些特别的寄存器,用以表明处理器当前的工作状态。用来指示处理器状态的寄存器,称为程序状态字。
比如:CF进位标志,ZF:结果为0标志等
程序状态字一般包括如下:
①CPU的工作状态代码,指明当前的工作状态是管态还是目态。
②条件码,反映指令执行后的结果特征,比如结果为0等。
③中断屏蔽码,指出是否允许中断

第二节、计算机系统硬件部件

一、存储系统

1.存储器的类型:
(1)类型:①读写型存储器(RAM),用来存储随机存取的程序和数据;②只读存储器(ROM),存放一些固化的程序
(2)存储分块
存储最小的单位:位(bit)
最小编制单位:字节
分块:为了分配和管理方便,将内存划分为大小相等的块(物理页Page),块为单位分配内存空间,大小一般为512B,1KB,4KB,8KB等。
2.存储器的层次结构
(1)容量、速度和成本的匹配,距离金字塔塔尖越近速度越快成本也越高,距离塔尖越远速度越慢成本越低
(2)存储访问局部性原理,程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下是顺序执行的。过程调用将会使程序的执行轨迹,由一部分区域转移至另一部分区域,即程序将会在一段时间内,都局限在这些过程的范围内运行。
程序中存在许多循环结构,这些虽由少数指令构成,但是它们将多次执行。程序中还包括对许多数据结构的处理,如对数组进行操作,它们往往都局限于很小的范围内。基于这一原理,设计多级存储的体系结构
3.存储保护,多道程序设计系统中,保证每个程序独立运行、互不干扰,称为存储器保护。
方法:界地址寄存器

二、I/O部件:1.I/O结构,2.通道,3.DMA技术,4.缓冲技术 

三、时钟部件

1.功能:(1)发现死循环,防止机时的浪费
(2)分时系统中,时钟间隔实现时间片轮转执行
(3)实时系统中,按要求的时间间隔控制设备
(4)定时唤醒各个外部事件
(5)记录各种设备的使用时间和某外部事件发生的时间间隔
(6)记录用户和系统所需的绝对时间,即年、月、日
2.分类:硬件时钟和软件时钟,用途分绝对时钟和相对时钟

操作系统运行环境(2)

第三节、系统中断

一、中断与异常的概念

中断:指处理器对系统中或系统外发生的异步事件的响应。
异步事件:指无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等。
1.中断与异常
中断源:引起中断的事件称为中断事件或中断源。
中断请求:中断源向处理器发出的请求信号。
中断事件处理程序:处理中断事件的程序
断点:发生中断时正在执行的程序的暂停点
中断响应:处理器暂停当前程序转而处理中断的过程
中断返回:中断处理程序结束后恢复原来程序的执行
中断向量表:为了使得中断装置可以找到恰当中断处理程序,专门设计了中断处理程序的入口地址映射表,又称中断向量表。
异常:由正在执行的指令引发的中断
2.中断与异常的分类
典型的中断:时钟中断、输入输出中断、控制台中断、硬件故障中断
典型的异常:程序性中断、访管指令异常

二、中断系统

1.中断请求的接收,中断系统如何接受中断源的中断请求,因机器而异,一般由中断逻辑线路和中断寄存器实现
2.中断响应,处理器的控制部件中有中断信号扫描结构,它每条指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号到来,若无中断信号,处理器就继续执行下一条指令。若有中断到来,处理器接收由硬件中断装置发来的中断向量代号,准备中断处理准备工作。
中断请求响应过程:①处理器接收中断信号;②保护现场;③分析中断向量;④将处理器的PC值置为中断程序的入口地址;⑤调用中断处理程序;
3.中断处理,中断信号被接收和响应之后,进行中断处理,包括:检查I/O相关的状态信息,操纵I/O设备或者在设备和内存之间传送数据等。
中断处理结束后,中断返回,恢复系统上下文,原有程序继续运行,处理器状态也成管态恢复成目态。
整个中断信号的接收、响应和处理过程,可归纳为以下步骤:
(1)接收和响应中断
(2)保护中断断点现场
(3)分析中断向量,调用中断处理程序
(4)中断处理结束恢复现场,原有程序继续执行
4.几种典型的中断处理
(1)I/O中断;(2)时钟中断;(3)硬件故障中断;(4)程序性中断;(5)系统服务请求

三、中断优先级、中断屏蔽与中断嵌套 

1.多级中断与中断优先级
作用:(1)对各类中断信号依据其紧急程度和重要性划分级别,系统优先处理最紧急或最重要的任务。
(2)解决如果有多个中断信号同时到达,如何选择首个被处理的中断信号的问题。
2.中断屏蔽,整个中断系统中,允许或禁止中断系统对某些类别中断的响应,PSW中设计有中断屏蔽位。
比如:某个I/O被中断屏蔽,意味着即使有I/O中断信号,处理器也不予响应。
注意:有些信号是不能屏蔽的,一般这类中断信号属于机器故障中断,比如掉电,机器无法继续操作,一旦发生,无论信号是否屏蔽,处理器都会立即响应,并进行处理。
3.中断嵌套,一般的计算机系统都有多个中断源,如果一个中断处理的过程又发生了中断,有两种策略处理:(1)当处理一个中断时禁止其他中断;(2)中断嵌套,即中断按照优先级划分,允许优先级高的中断优先级低的中断处理过程,优先进行处理。

第四节、系统调用

一、系统调用简介

系统调用的概念:就是用户在程序中调用操作系统提供的一些子功能,是操作系统提供给编程人员的唯一接口;是一种特殊的调用过程,由特殊的机器指令实现,这条指令将系统转入管态。
1.系统调用与函数调用的区别
(1)运行在不同状态,系统调用是管态,函数调用是目态
(2)状态的转换;(3)返回问题;(4)嵌套调用;
2.系统调用的分类
(1)进程控制类;(2)文件操作类;(3)进程通信类;(4)设备管理类;(5)信息维护类;

二、系统调用的处理过程

陷入(trap):在系统中为控制系统调用服务的机构称为陷入或异常处理机构。
陷入或异常指令(访管指令):把由于系统调用引起处理器中断的指令称为陷入或异常指令(或称访管指令)

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

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

相关文章

CSS 四中方法实现水平 垂直居中

CSS 四中方法实现水平 垂直居中 效果 结构 <div class"a"><div class"b"></div></div>样式 方法一 .a {width: 500px;height: 500px;margin: 50px auto;background-color: crimson;// 核心代码display: flex;justify-content: …

HTML整站规划与规范

文章目录 命名规则命名命名书写 包含样式规范样式重置样式引入页面结构页面宽度页面高度与背景页面设计 网址图标 命名规则 命名 根据每块元素的主题、功能、页面上的位置命名&#xff0c;便于后期更改与维护。 另外&#xff1a;如果所有样式放在同一文件下&#xff0c;可以给…

idea项目配置三大步

场景&#xff1a; 使用 idea 打开一个新项目的时候&#xff0c;想让项目迅速跑起来&#xff0c; 其实只需要下面简单三步&#xff1a; 1. 首先&#xff0c;配maven 2. 其次&#xff0c;配置 jdk 这里配置 project 就行了&#xff0c;不用管Modules中的配置。 3. 最后&#…

ubuntu 22.04运行opencv4的c++程序遇到的问题

摘要&#xff1a;本文介绍一下在ubuntu系统中&#xff0c;运行一个最简单的opencv4程序都出问题的解决方法&#xff0c;并对其基本原理作简单阐述。解决问题的方法有很多&#xff0c;本文只提供其中一种。 opencv版本是4.2.0&#xff0c;ubuntu版本是20.04 查询opencv版本的指…

如何让两台手机相互远程控制?

你的两台手机是什么系统的&#xff1f;如果你的两台手机都是安卓系统&#xff0c;而且都是安卓7.0及以上版本的系统&#xff0c;那么恭喜你&#xff0c;这两台手机可以相互远程控制&#xff01; 你可以利用两个软件实现将两台手机相互远程控制的想法。为了避免混淆&#xff0c…

XL-LightHouse 与 Flink 和 ClickHouse 流式大数据统计系统

一个Flink任务只能并行处理一个或少数几个数据流&#xff0c;而XL-LightHouse一个任务可以并行处理数万个、几十万个数据流&#xff1b; 一个Flink任务只能实现一个或少数几个数据指标&#xff0c;而XL-LightHouse单个任务就能支撑大批量、数以万计的数据指标。 1、XL-LightHo…

c语言每日一练(15)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;上学期间将看学业情况更新。 五道选择题&#xff1a; 1、程序运行的结果…

Linux四种I/O模型

一.四种模型 阻塞式IO&#xff0c;非阻塞式IO&#xff0c;信号驱动IO&#xff0c;IO多路复用 二.阻塞式IO 特点&#xff1a;最简单&#xff0c;最常用&#xff0c;效率低 阻塞I/O 模式是最普遍使用的I/O 模式 系统默认状态&#xff0c;套接字建立后所处于的模式就是阻塞I/O 模式…

IDEA连接数据库-MySql为例

1.找到Database 说明&#xff1a;找到Data Source下面的MySql 2.点击mysql 3.填写相关配置 说明&#xff1a;填写连接哪台服务器(这里是本机)&#xff0c;账号&#xff0c;密码&#xff0c;然后点击Test Connection 4.显示 说明&#xff1a;表示一共有7个&#xff0c;但是展…

FDM3D打印系列——Blue Mary

大家好&#xff0c;我是阿赵。   这次打印一个拳皇里面的Blue Mary。   打印这个模型的原因&#xff0c;是看到有网友说这个模型用FDM打印不出来&#xff0c;有些人评论说要光固化才行。所以我也想试试。结果是成功的。 一、打印过程 这个模型是分为了5个部分&#xff0c…

百度千帆大模型文心一言api调用

注册百度智能云账号并申请文心千帆大模型资格 https://login.bce.baidu.com/ https://cloud.baidu.com/product/wenxinworkshop 创建应用用于获取access_token 创建应用成功后,可以获取到API Key和Secret Key 获取access_token curl https://aip.baidubce.com/oauth/2.0/to…

基于安卓Java试题库在线考试系统uniapp 微信小程序

本文首先分析了题库app应用程序的需求&#xff0c;从系统开发环境、系统目标、设计流程、功能设计等几个方面对系统进行了系统设计。开发出本题库app&#xff0c;主要实现了学生、教师、测试卷、试题、考试等。总体设计主要包括系统功能设计、该系统里充分综合应用Mysql数据库、…