- 作者:老汪软件技巧
- 发表时间:2024-12-17 21:04
- 浏览量:
开始13180 操作系统的学习过程,献给每一位拥有梦想的"带专人",
ps:有不正确的地方麻烦更新在评论区,我会一一修复
第二章 操作系统运行环境与运行机制1. 中央处理器CPU
CPU 一般由运算器、控制器、一系列的寄存器以及高速缓存构成
运算器实现指令中的算术和逻辑运算,是计算机计算的核心
控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU 与内存的交互等
寄存器:一种暂时存储器件,用于在 CPU 处理指令期间暂存数据、地址以及指令信息
用户可见的寄存器,包括:数据寄存器,地址寄存器以及条件码寄存器 数地条(速递条)控制和状态寄存器,常见:程序计数器(PC)、指令寄存器(IR)和程序状态字(PSW) 两程序一指令
高速缓存:cache
指令执行的基本过程
开始 →\rightarrow→ 取指令 →\rightarrow→ 执行 →\rightarrow→ 停止
2. 特权指令和非特权指令
特权指令:指令系统中那些只能由操作系统使用的指令,不允许一般用户使用,如果用户可以随意使用特权指令,会造成系统混乱
如:设置程序状态字、启动某设备、设置中断屏蔽、设置时钟指令、清内存指令和建立存储保护指令等
非特权指令:操作系统、普通用户都能使用的
用户程序如何使用特权指令:通过处理器的处理机制,将处理器状态切换到操作系统运行的特权状态,然后将处理权移交给操作系统中的一段特殊代码,通常将这个过程称为陷入
3. 处理器的状态
内核态:又叫管态、特权态、系统态、核心态。指操作系统管理程序运行的状态,具有较高的特权级别
用户态:又叫目态、普通态。指用户程序运行时的状态,具有较低的特权级别
当处理器处于内核态时,可以运行全部指令,可以使用全部资源并具有改变状态的能力。当处理器处于用户态时,只有非特权指令可以执行。不同的处理器状态的区别就是赋予运行程序的特权级别不同,可以运行的指令集合也不同。特权级别越高,可以运行的指令集合越大,高特权级别可以运行的指令集合包含低特权级别的
CPU状态的转换
用户态 →\rightarrow→ 内核态的转换
其转换的唯一途径是中断。中断响应时交换中断向量,新的中断向量中的 PSW 的 CPU 状态位标志为内核态
内核态 →\rightarrow→ 用户态的转换
可通过设置PSW指令(修改程序状态字),实现从操作系统向用户程序的转换
系统启动时,CPU的初始状态是内核态
操作系统退出执行时,让用户程序运行在用户态
限制用户程序执行特权指令
用户程序不能使用特权指令,当用户程序占用 CPU 时,应让 CPU 在用户状态下工作。若此刻收到了一条特权指令,CPU 将拒绝执行该指令,并生成一个非法操作事件。中断机制识别到该事件后,转交给操作系统处理,生成一个通知:程序中有非法指令
4. 程序状态字
程序状态字的作用是指示处理器状态
处理器的状态字(PSW)通常包括以下状态码
CPU的工作状态码:指明当前处理器的工作状态是管态还是目态,用来说明当前在处理器上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或用尤其他的特殊权利
条件码:反应指令执行后的结果特征
中断屏蔽码:指出是否允许中断
C(塞)条中华
标准条件位:
CF:进位标志位
ZF:零标志位
SF:符号标志位
OF:溢出标志位
TF:陷阱标志位
IF:中断使能标志位
VIF:虚拟中断标志位
VIP:虚拟中断待决标志位
IOPL:IO 特权级别
VIF 和VIP用于支持对一类可屏蔽的硬件中断处理
5. 存储器类型
随机访问存储器(RAM):存放随机存取的程序的数据
只读存储器(ROM):只能读取数据,不能随意地用普通方法写数据
PROM是一种可编程的只读存储器,它可以被特殊的 PROM 写入器向其中写入数据
EPROM 可以用一种特殊的紫外线照射芯片,擦去其中的信息位,使其恢复原来的状态,然后使用特殊的 EPROM 写入器来写入数据
RAM(随机存取存储器)和 ROM(只读存储器)有以下区别:
存储的最小单位是:二进位(又叫:比特或 bit 或 b )
存储器的最小编址单位是:字节(又叫 Byte 或 B)
内存空间的最小分配单位是:块(又叫物理页或 Page)
1B = 8b 1kb = 1024B 1MB = 1024KB 1GB = 1024KB 1TB = 1024GB
6. 存储器的层次结构
计算机存储系统的设计主要考虑三个问题
容量:容量是存储系统的基础速度:存储系统的速度则要能匹配处理器的速度,在处理器工作时不应该因为等待指令和操作符而发生暂停成本:存储器的成本和其他部件相比应该在一个合适的范围内
7. 存储访问局部性原理
提高存储系统效能的关键在于程序的存储访问局部性原理
存储器存取 N 级存储器:
I 级存储器,若命中则返回数据;若不命中,在方位 II 级存储器,命中则返回数据,若不命中,在访问 III 级存储器,命中则返回数据....
公式解读:一级存储器的命中概率 * 一级存储器的存取时间 + 二级存储器的命中概率 * (一级存储器的存取时间 + 二级存储器的存取时间)
8. 存储保护
界地址寄存器:
在 CPU 中设置一对界限寄存器来存放该用户作业在内存中的下限和上限地址,分别称为下限寄存器和上限寄存器。
也可以使用一个寄存器作为基址寄存器,另一个寄存器作为限长寄存器(指示存储区长度)来指出程序在内存中的存放区域。每当 CPU 要访问内存时,硬件会自动将被访问的内存地址与界限寄存器的内容进行比较,以判断是否越界。如果未越界,则按此地址访问内存,否则将产生的程序中断——越界中断或存储保护中断
存储保护键:
当一个用户作业被允许进入内存时,操作系统会为其分配一个唯一的,不与其他用户作业相同的存储保护键号;将分配给该作业的各存储块的存储保护键也设置成同样的键号,当操作系统挑选该作业到 CPU 上运行时,操作系统同时也会将该作业的存储保护键号放到 PSW 的存储保护键(“钥匙”)域中。这样每当 CPU 访问内存时,都将对内存块的存储保护键与 PSW 中的钥匙进行比较。如果相匹配,则允许访问。否则拒绝并报警
9. 中断机制
中断的概念:
所谓中断是指CPU对系统中或系统外发生的异步事件的响应
异步事件:无一定时序关系的随机发生的事件
中断的来源:当发生某个异步事件以后,处理器会中断当前事件的执行,而转去处理该异步事件(称为执行该事件的中断处理程序)。在该异步事件处理完之后,处理器在转回源程序的中断点继续执行
举例:某人正在看书,此时电话响了(异步事件),于是用书签记住正在看的那一页(中断点),再去接电话(响应异步事件并进行处理),接完电话后再从被打断的那一页继续看(返回原程序的中断点继续执行)
中断是所有要打断处理器的正常工作顺序,并要求其去处理某一事件的一种常用手段
引起中断的事件称为中断事件或中断源
中断源向处理器发出的请求称为中断请求
处理中断事件的程序称为中断处理程序
发生中断时正在执行的程序的暂停点称为中断断点
处理器暂停当前程序转而处理中断程序的过程称为中断响应
中断处理结束之后恢复原来程序的执行称为中断返回
中断的作用
能充分发挥处理器的使用效率,I/O 设备可以通过中断与 CPU 进行通信,主动向 CPU 报告当前输入的输入情况,可以避免 CPU 不断的查询和等待提高系统的实时能力,对于有较高实时处理要求的设备可以通过中断方式使请求可以及时处理
中断的分类
强迫中断:正在运行的程序不期望发生的,随机性较强程序性中断:算数运算溢出、被零除、用户态程序执行非法指令、访问不被允许的存储位置、虚拟存储缺页时钟中断:处理器内部的计时器产生,允许操作系统以一定规律执行函数,如时间片到,硬件实时时钟到时输入输出(I/O)中断:I/O 控制器产生,用于通知一个 I/O 操作是完成还是出现错误控制台中断:程序员在控制台发出命令硬件故障中断:掉电等硬件故障自愿性中断:程序有意安排的,由访管指令引起,目的是要求操作系统提供系统服务,发生时间以及位置具有确定
同步中断和异步中断区别
异步中断:一般由当对当前程序而言的外部事件激发的,属于外源性质
比如:用户输入、硬件故障等
时钟中断I/O 中段控制台中断硬件故障中断
同步中断(异常):由当前程序的编码和逻辑激发的,属于内因性质
比如:非法指令
程序性中断访管指令异常
10. 中断系统
中断系统是现代计算机系统的核心机制之一,他不是单纯的硬件或软件的概念,而是硬件和软件相互配合、相互渗透而使得计算机系统得以充分发挥能力的计算模式
两大组成部分:硬件中断装置和软件中断处理程序
硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序
硬件中断装置提供了中断系统的基本框架,是中断系统的机制部分
中断处理程序是中断系统的策略部分,它利用中断机制来实现对处理能力的扩展和对多种处理需求的适应
中断处理程序则针对中断事件的性质而执行相应的一系列操作
中断请求的接收:
在计算机硬件的中断逻辑线路和中断寄存器实现的
中断逻辑线路用于接收中断信号,并把收到的中断信号寄存在线路的硬件触发器上
由于计算机中可能有很多中断源请求,它们可能同时发生,因此由中断逻辑线路按中断优先级加以判定,即究竟应该响应哪个中断请求
中断响应:
扫描中断:指令执行周期结束时,处理器检查中断寄存器,看是否有中断信号。保存状态:保护现场, 将中断程序状态字 PSW 的值和程序计数器 PC 的值存入系统堆栈。切换内核态:进入内核态,处理中断更安全。查询中断向量表:分析中断向量,取得中断处理程序的入口地址。执行中断处理程序:转移控制权,调用中断处理程序
扫信号,存状态,切内核,查表跳,控转移。
11. 典型中断的处理
I/O中断:由 I/O 设备的控制器或通道发出
分类:I/O 操作正常结束以及I/O异常
时钟中断
维护软件时钟:定时维护、更新软件时钟。
处理器调度:时间片到时切换到下一个进程。
控制系统定时任务:定时启动任务,如死锁监测、记账、审计
实时处理:触发信号,监控硬件健康
维护处理器要定时处理
硬件故障中断
硬件故障:通常需要人工干预,例如复位或更换设备。
保存现场:确保当前状态数据不丢失
警告通知:提醒管理员并提供诊断信息
硬件故障需干预,保存现场发警示
程序性中断:程序指令出错,指令越权、寻址越界引发的系统保护
分类:
程序性中断只能由操作系统完成。例如程序尝试做不能做的操作程序性中断可以由程序自己完成。例如系统调试中断,断点和单步跟踪等
系统服务请求(自愿性中断)
系统服务请求一般由处理器提供的专用指令(又称访管指令)来激发
12. 中断优先级、中断屏蔽与中断嵌套13. I/O 技术14. 时钟
主要功能总结
1.死循环检测:多道程序运行环境中,时钟用于发现陷入死循环的程序,避免资源浪费。
2.分时系统:通过时钟间隔实现时间片轮转机制,确保任务公平调度。
3.实时控制:在实时系统中,按固定间隔输出信号用于实时设备控制。
4.定时唤醒:用于按需唤醒特定时间点需要执行的任务。
5.时间记录:记录用户设备使用时长或事件时间间隔。
6.绝对时间记录:提供系统日期和时间信息(年、月、日、时、分、秒)。
时钟分类
按实现方式:
1.硬件时钟:
•基于晶体振荡器的固定频率脉冲。
•通过时钟寄存器记录脉冲数。
2.软件时钟:
•使用内存模拟时钟寄存器。
•程序通过增减内存值来模拟时间。
按用途:
1.绝对时钟:
•运行独立,不受外界影响,即使断电仍保持准确时间。
•提供完整的时间信息。
2.相对时钟:
•记录从设定初值开始的时间间隔。
•支持倒计时功能,触发中断后用于任务管理或时间控制。
这类时钟的功能和分类为操作系统中的时间管理提供了基础支持。
15. 系统调用
用户在程序中调用操作系统所提供的一些子功能。这是一种特殊的过程调用,这种调用通常是由特殊的机器指令实现的,并且将系统转入特权方式(管态)
系统调用程序被看成是一个低级的过程,只能由汇编语言直接访问
系统调用是操作系统提供给编程人员的唯一接口
编程人员利用系统调用,动态请求和释放系统资源,调用系统中已有的功能来完成与计算机硬件部分相关的工作以及控制程序的执行速度等
系统调用与一般过程调用的区别
运行在不同的系统状态
系统调用运行在用户态,但是被调用程序运行在内核态,一般过程调用中的调用程序与被调用程序都是运行在相同的状态下
状态的转换
一般过程调用不涉及状态转换,系统调用通过软中断机制由用户态转换为内核态,由操作系统分析后,转入相应的系统子程序
返回问题
一般的过程调用在被调用过程执行完毕后,将返回调用过程继续执行。但是,在采用抢占调度方式的系统中,被调用过程执行完后,系统对所有要执行的进程进行优先级分析。如果调用进程仍然有最高优先级则返回到调用过程继续执行;否则让优先级最高的进程先执行
嵌套调用:
与一般调用过程一样,系统调用也允许嵌套调用,在一个被调用过程执行期间,还可以利用系统调用命令去调用另一个系统。一般情况下,每个系统对嵌套调用的深度都会有限制
运行 状态 回调
操作系统按功能分为两大部分
是系统自身所需要的是作为服务提供给用户的
通用操作系统系统调用分类
进程控制类系统调用
主要针对进程的控制,如创建和关闭进程、获得和设置进程
文件操作类系统调用
创建、打开、关闭、读\写文件、目录管理、移动文件指针、改变文件属性
进程通信类系统调用
用于进程之间的消息和信号传递
设备管理类系统调用
用来请求和释放有关设备,以及启动设备操作
信息维护类系统调用
用户可以用该类系统调用获得当前日期和时间、设置文件访问和修改时间、了解系统当前的用户数、操作系统版本号、空闲内存和磁盘空间大小
用户程序和系统程序之间的参数传递,常用方法
由陷入指令自带参数通过有关通用寄存器来传递参数在内存中开辟专用堆栈来传递参数练习
在处理器的所有寄存器中,对用户不可见的是
指令寄存器条件码寄存器地址寄存器数据寄存器
计算机处理器中用于管理程序运行流程的是
控制器高速缓存运算器寄存器
以下属于非特权指令的是
启动 I/O 设备设置中断屏蔽执行数据算数计算设置程序状态字
在多用户或多任务的多道程序设计环境中,以下不是特权指令的是
启动设备设置中断屏蔽清内存算数运算指令
程序状态字的内容不包含
CPU 的工作状态代码条件码中断屏蔽码执行代码的用户 ID
以下关于处理器工作状态的描述,正确的是
操作系统管理程序运行的状态称为目态当处理器处于管态时,可以执行全部指令系统启动时,处理器的初始状态为目态当用户程序占用处理器时,应让处理器在管态下工作
存储器的最小编址单位是字节,1024 个字节称为
1B1KB1MB1GB
可用作随机存取数据的存储器是
RAMROMPROMEPROM
内存空间的最小分配单位是
二进制位字节字块
计算机系统采用层次化的存储体系,以下存储装置中容量最小的是
硬盘内存高速缓存寄存器
如果处理器的上限寄存器值为 3000,下限寄存器值为 4000,那么当处理器要访问内存地址 4100 时,会产生
硬件故障中断存储保护中断时钟中断I/O 中断
以下可用于存储保护的技术是
缓冲技术DMA 技术通道技术界地址寄存器
时钟中断处理程序的主要内容不包括
维护软件时钟监控管理处理器调度实时处理
下列哪一种中断一般由处理器提供的专用指令(又称访管指令)来激发
程序性中断I/O 中断控制台中断自愿性中断
需要做的工作是保存现场,使用一定的手段警告管理员并提供一些辅助的诊断信息的是
硬件故障中断处理程序时钟中断处理程序程序性中断处理程序自愿性中断处理程序
中断系统接收中断源的中断请求的途径是计算机硬件的
中断源和中断逻辑线路中断逻辑线路和中断寄存器中断逻辑线路和中断位中断位和中断寄存器
中断处理结束时,处理器的状态
保持目态不变从目态恢复为被中断时的管态保持管态不变从管态恢复为被中断时的目态
在多级中断系统中,同时有多个中断请求,处理器将
向用户发出询问请求接收中断优先级最高的中断接收处理时间最短的中断根据先来先服务的方式进行响应
中断按照优先度分级,允许优先级较高的中断打断优先级较低的中断处理过程称为
中断断点中断响应中断嵌套中断事件
在多级中断系统中,决定了各个中断的优先级别的是
通道软件硬件时间
多级中断系统中,各中断优先级由硬件决定。但在某些情况下(如低优先级的事件正在执行),操作系统不能立即响应高优先级的中断,此时采用的技术是
软件设置中断优先级中断挂起中断嵌套中断屏蔽
以下关于处理器工作状态转换的说法中,不正确的是
处理器处于管态时可以执行一切机器指令,包括特权指令处理器处于目态时不允许执行特权指令系统启动时,处理器的初始状态为管态用程序计数器(PC)来指示处理器状态
处理器处理数据的速度与设备传输数据的速度不匹配时,可用于缓解两者之间速度矛盾的技术是
通道技术DMA 技术缓冲技术I/O 控制技术
下列关于通道的作用的描述中,不正确的是
可以实现中央处理器和各种外部设备并行工作可以实现各种外部设备之间的并行工作通道既能负责数据I/O传输,也能负责数据计算采用通道后,处理器和外部设备能够访问存储器
以下关于系统调用、库函数和应用程序的叙述中,正确的是
应用程序通过系统调用来获得操作系统内核提供的服务
应用程序可以通过库函数来获得操作系统内核提供的服务
库函数是操作系统提供给应用程序的接口
应用程序在目态执行系统调用
应用程序在管态执行系统调用
关于系统调用与函数调用的区别的叙述中,正确的是
函数调用的调用程序和被调用程序运行在不同状态
系统调用的调用程序运行在系统态
一般函数调用可直接由调用过程转向被调用过程
系统调用由可调用过程直接转向被调用过程
系统程序的调用程序运行在目态
捏捏捏捏捏捏捏捏捏捏捏
笔者观看的课程是 B 站博主小飞学长Pro的 课程,前四章是免费的如果需要看后面的建议大家去购买正版课程