导图社区 OS-1 OS 概述
计算机考研操作系统概述,内容包含OS基本概念、OS分类和发展、 程序运行环境、OS体系结构、OS引导和虚拟机,希望这份脑图会对你有所帮助。
编辑于2023-04-03 17:54:05OS 概述
1.1 OS基本概念
概念、功能和目标
基本概念
计算机系统的划分
硬件—操作系统—应用程序—用户
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。
是计算机系统中最基本的系统软件
操作系统的功能和目标
作为系统资源的管理者
处理机管理(进程管理)
机器内部进程何时创建、何时撤销、如何管理、避免冲突,合理共享
包括进程控制、进程同步、进程通信、死锁处理、处理机调度等
存储管理
为给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率
包括内存分配与回收、地址映射、内存保护与共享和内存扩充等
文件管理
计算机中信息都是以文件的形式存在,OS中负责文件管理的部分称为文件系统
包括文件存储空间的管理、目录管理及文件读写管理和保护等
设备管理
主要任务是完成用户的IO请求,方便用户使用各种设备,并提高设备的利用率
包括缓冲管理、设备分配、设备处理和虚拟设备等
作为用户与硬件系统之间的接口

直接给用户使用的
图形接口GUI
GUI:图形化用户接口
最终还是通过调用程序接口实现的
严格来说,图形接口不是OS的一部分,所调用的系统调用命令是OS的一部分
eg:拖拽到回收站
命令接口
命令接口:
用户可利用这些操作命令来组织和控制作业的执行
联机命令接口 (交互式命令接口)
它由一组键盘操作命令组成。用户可直接通过控制台或终端输入操作命令,向系统提出各种服务要求
特点
交互性,实时反馈的,说一句做一句
适用于分时或实时系统的接口
eg:win+R,cmd
对应联机控制方式
脱机命令接口 (批处理命令接口)
由一组作业控制命令组成。脱机用户不能直接干预作业的运行,需要事先提交作业操作说明书和作业
特点
用户说一堆,系统逐条解释完成
适用于批处理系统
eg:.bat
对应脱机控制方式
给软件/程序使用
程序接口
程序接口由一组系统调用(也称为广义指令)组成
普通用户不能直接使用程序接口,只能通过程序代码间接使用
编程人员可以使用这些系统调用来请求操作系统服务
类似于函数调用,这是应用程序请求OS服务的唯一方式
实现对计算机资源的扩充
裸机和虚拟机
裸机
没有任何软件支持的计算机,仅构成计算机系统的物质基础
虚拟机
通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机
目标:
裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器,获得更高的资源利用率
操作系统的特征
四大特征
并发
并发性
并发性:系统中“同时”存在多个运行的程序,能处理和调度多个程序同时执行
操作系统就是伴随着“多道程序技术”出现的,并发性是OS的天然的,最基本的特征
宏观上并行,微观上串行(分时交替执行)
并发性是通过分时得以实现的
并行性
并行性:是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作
并行性必须有相关硬件的支持
对于单处理机,同一时刻只能执行一个程序,各个程序只能是并发的,不能是并行的
对于多核CPU或多流水线硬件环境,多个程序才可以并行执行
共享
即资源共享,系统中的资源可供内存中多个并发执行的进程共同使用
分类
互斥共享方式
系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
临界资源
在一段时间内只允许一个进程访问的资源称为临界资源
同步和互斥问题、死锁问题
eg:
大多物理设备及软件中的栈、变量、表格等都是临界资源,只能互斥共享
同时访问方式
系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
“同时”:宏观上“同时”,微观上可能是交替访问“分时共享”的
eg:
磁盘存储设备,一些用重入码(允许多个进程同时访问的代码)编写的文件
虚拟
把一个物理上的实体变为若干逻辑上的对应物
用于实现虚拟的技术,称为虚拟技术。
虚拟处理器
可理解为:虚拟技术中的“时分复用技术”
利用多道程序技术,并发执行,分时使用一个处理器,把一个物理上的CPU虚拟为多个逻辑上的CPU
eg:
四核处理器能够运行更多个程序(微观上处理机在各微小的时间交替为各个进程服务)
虚拟存储器
可理解为:虚拟技术中的“空分复用技术”
从逻辑上扩展机器的物理存储器
eg:
8GB内存能同时运行远超8GB的软件
异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进
即
在随机环境下,进程可能会产生与时间有关的错误
运行环境固定,能保证多次运行能获得相同的结果
信号量的使用
特征间的关系
并发和并行
并发:
指两个或多个事件在同一时间间隔内发生
并行:
指两个或多个事件在同一时刻同时发生
并发不一定并行,并行一定能并发,并行包含并发
并发和共享
并发性和共享性是OS最基本特征,互为存在的条件
资源共享是以并发为条件的,若失去并发性,只有一个程序运行,共享性则无意义
若系统不能对资源共享有效管理,则多道程序无法并发执行
虚拟 、异步和并发
没有并发性,谈不上虚拟性:只运行一道程序,则虚拟性无意义
有并发性,才可能导致异步性
1.2 OS分类和发展
手工和批处理
手工操作阶段(无OS)
概念
所有工作都要人工干预,程序装入,运行、输出都要人工操作
eg:纸带机
特点
用户独占全机,不会出现资源冲突,需要等待的情况,但会导致资源利用率极低
CPU要等待手工操作,人机速度矛盾导致利用不充分
批处理阶段(OS出现)
单道批处理系统 (OS雏形)
概念
对作业的处理是成批进行的,但内存中始终保持只有一道作业
引入脱机输入/输出技术(外围机和磁带,通过外围机把程序传输到磁带里),并由监督程序负责控制作业的IO
特点
自动性
在顺利的情况下,磁带上的一批作业能逐个运行,无需人工干预
顺序性
各道作业顺序进入内存,顺序完成,先进先完成
单道性
内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序
优缺点
缓解一定程度的人机速度矛盾
同一时间,内存中仅有一道程序运行,CPU有大量时间在空闲等待IO完成
多道批处理系统 (OS诞生)
概念
允许多个程序同时进入内存,并允许在CPU内交替运行(即程序共享系统中的软硬件资源)
操作系统诞生,用于支持多道程序并发运行
对应就要实现操作系统作为资源管理者的四个管理调度
特点
多道程序
宏观上并行
微观上串行
优缺点
响应时间长,没有人机交互功能(用户提交完作业后只能等待完成,中间不能控制执行,也不了解运行情况)
多道程序并发执行,共享资源,资源利用率大幅提升,CPU和其他资源尽量保持“忙”,系统吞吐量大
分时和实时
分时操作系统(交互)
概念
计算机以时间片为单位轮流为各个用户/作业服务。各个用户可通过终端和计算机交互,互不干扰,共享一台主机
“轮流”:时间片内未完成就暂停等待下一轮
支持多道程序设计
优点
同时性
也称多路性,允许多个终端用户同时使用一台主机
交互性
用户能通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互,解决了人机交互问题
独立性
多个用户可以彼此独立地进行操作,互不干扰
及时性
用户请求能在很短时间内获得响应(分时技术造成的)
缺点
用户请求可以被即时响应,实现了人机交互
不能优先处理一些紧急任务,对各个用户/作业是平等的,是循环轮流地提供服务,不区分任务的紧急性
实时操作系统(排队)
概念
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,产生了实时操作系统
特点
及时性和可靠性
能优先响应一些紧急任务,不需要时间片排队
分类
硬实时系统
某个动作必须绝对地在规定的时刻(或规定的时间范围)发生
eg:导弹控制系统、自动驾驶系统
软实时系统
能够接受偶尔违反时间规定且不会引起任何永久性的损害
eg:订票系统,银行管理系统
其他及发展过程
网络操作系统(联网)
把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送
特点
实现网络中各种资源的共享及各台计算机之间的通信
如,Windows NT
分布式操作系统(合作)
多台计算机组成,任两台计算机通过通信方式交换信息;每台具有同等地位;资源为所有用户共享;任意台计算机都可以构成一个子系统,并且还能重构——任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
特点
建立在网络OS之上,分布性、并行性
分布式OS中若干计算机能相互协同完成任务,网络操作系统不行,只能通信
发展过程
1.3 程序运行环境
运行模式
内核态与用户态
特权指令和非特权指令
特权指令
不允许用户直接使用的指令
影响重大,只能由OS内核来使用
如,IO指令、置中断指令、内存清零指令
非特权指令
允许用户直接使用的指令,其不能直接访问系统中的软硬件资源,仅限于访问用户的虚拟地址空间
如:加法指令、减法指令
划分特权与非特权,是为了防止用户程序对系统造成破坏
内核程序和用户程序
内核程序/管理程序
很多内核程序组成了操作系统内核,简称为内核kernel
内核是OS中最重要最核心的部分,是最接近硬件的部分,是计算机配置上的最底层软件
用户程序/应用程序/被管理程序
广泛的应用程序
内核态和用户态
内核态/核心态/管态
此时CPU正在运行内核程序:可以执行特权指令,也可以运行非特权指令
用户态/目态
此时CPU正在运行应用程序,只能执行非特权指令
由程序状态字寄存器PSW标记状态,1:用户态
内核态和用户态的切换
内核态—>用户态
一条修改PSW的特权指令
一般是中断返回指令
——修改PSW的标志位为“用户态”,OS将让出CPU使用权
用户态—>内核态
由中断(外中断)和异常(包括系统调用、错误)引起,硬件自动完成
中断导致
触发中断后,OS将强制夺回CPU使用权,暂停现行程序,运行处理中断信号的内核程序
异常导致
自陷、故障、终止
如,非法使用特权指令等
凡是需要OS介入的地方,都会触发中断
注意:
由用户态进入核心态,不仅状态需要切换,所用的堆栈也可能需要由用户堆栈换为系统堆栈
这个系统堆栈是属于该进程的
OS内核的内容
时钟管理
计时(提供标准的系统时间),时间片(时钟中断:控制进程切换,调度)
中断机制
中断机制中的一部分属于内核:保护和恢复现场信息,转移控制权等
原语
处于最底层,原子性一气呵成,运行时间短,调用频繁
关中断定义
系统控制的数据结构及处理
进程管理PCB,文件管理FAT,内存管理TLB等
核心态指令:实际上包括系统调用类指令和一些针对时钟、中断和原语的操作命令
中断和异常
中断的作用
让操作系统内核能够强制夺回CPU使用权
没有中断机制,就没有并发性,更无从谈起操作系统
要并发,就要在程序未占用某种资源时,需要将其释放,就要中断
让CPU能够从用户态变为内核态
系统不允许用户程序使用内核态的功能,但用户程序有时需要使用,就必须有中断机制建立“门”
中断是用户态变为内核态的唯一途径
中断的类型
内中断(异常、例外)
信号来自CPU执行指令内部的事件,与当前执行的指令有关
自陷/陷阱/陷入/trap
是一种事先安排的“异常”事件,由陷入指令引发,是应用程序故意引发的
用于在用户态下调用OS内核程序,是主动将CPU转交给OS内核
系统调用就是通过陷入指令完成
故障(fault)
指令执行中,由错误条件引起的,能被内核程序修复。
内核程序修复故障后会把CPU使用权还给应用程序,让它继续执行下去
如:非法操作码、缺页故障、除数为0、运算溢出等
软件中断(程序性异常)
终止(abort)
由致命错误引起,内核无法修复该错误
不再将CPU使用权还给引发终止的应用程序,而是直接终止该应用程序
如:非法使用特权指令(用户态中出现特权指令)、控制器出错、存储器校验错等
硬件中断
CPU在执行指令时,就会检查是否有异常
外中断(中断)
信号来自CPU执行指令外部的事件,与当前执行的指令无关,下一个周期处理
时钟中断
时钟部件每隔一段时间给CPU一个时钟中断
是操作系统能够进行线程调度的基础
IO中断请求
由输入/输出设备发来的中断信号
每个指令周期末尾(指令执行结束),检查是否有中断请求
硬件中断
按可屏蔽和不可屏蔽分
可屏蔽中断
通过INTR线发出的,是可屏蔽的,在关中断后不会被响应
可通过改变屏蔽字实现多重中断,使中断处理更灵活
不可屏蔽中断
通过NMI线发出的,不可屏蔽,关中断后仍会被响应
通常是紧急的硬件故障,如电源掉电
异常也是不能被屏蔽的
中断实现的基本原理(计组)
不同的中断信号,需要用不同的中断处理程序来处理。
当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,获取中断处理程序入口地址
具体处理过程一般由OS(和IO驱动程序完成)
系统调用
系统调用的概念
概念
应用程序可通过系统调用(广义指令/程序接口)来获取操作系统内核的服务
即,操作系统提供给应用程序编程人员使用的接口,
可认为是,可供应用程序调用的特殊函数(一类特殊的公共子程序)
和库函数的区别
注意:不是所有库函数都涉及系统调用
涉及的
如:取绝对值的函数
不涉及
如:创建一个新文件
系统调用的作用
系统调用的必要性
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管
凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等会直接影响到其他进程的操作),都必须通过系统调用的方式向操作系统内核提出请求服务
由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作,随意更改访问重要的系统资源
系统调用的功能
系统调用的过程
陷入指令/ 访管指令/ trap指令
异常中的trap情况,即,凡是用户程序要主动调用操作系统内核时,需要使用的指令
用户程序执行“陷入指令”,相当于把CPU的使用权主动交给操作系统内核程序(CPU状态会从用户态进入核心态)
是一条可以在目态(用户态)下执行的指令,不是特权指令
系统调用过程
传递系统调用参数
执行陷入指令(用户态)
执行相应的内核程序处理系统调用(核心态)
返回应用程序
注意
陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断/异常,使CPU进入核心态
发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
用户通过操作系统在用户态运行上层程序(如系统提供的命令解释程序或用户自编程序)
上层程序的运行依赖于操作系统的底层管理程序提供服务支持
两种情况
需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序
运行出现异常情况,被动需要管理程序的服务,通过异常处理来进入核心态
管理程序运行结束时,通过相应的保存的程序现场退出中断处理程序或异常处理程序,返回断点处继续执行
1.4 OS体系结构
操作系统内核
操作系统的内核
内核程序构成了操作系统内核,内核:Kernel
地位
内核是计算机上配置的最底层软件,最接近硬件的部分,是最重要最核心的部分
管理系统的各种资源,是应用程序和硬件的连接
组成
一些和硬件关联较紧密的模块:如,时钟管理、中断处理、设备驱动
一些运行频率较高的程序:如,进程管理、存储器管理、设备管理等
注意
OS的功能未必都在内核中,如GUI
内核的组成
时钟管理
时钟:实现计时功能
OS通过时钟管理,向用户提供标准的系统时间。
时间片是实现进程切换的基础
分时OS中,时间片轮转调度
实时OS中,按截止时间控制运行
批处理OS,衡量作业运行程度
中断机制
中断处理过程中的一部分在内核中
负责保护和恢复中断现场的信息,转移控制权到相关的处理程序
是操作系统各项操作(IO、系统调用、进程管理、设备驱动、文件访问等)的基础。能提高系统并行处理能力
原语
特点
Atomic Operation。是一类特殊的程序
处于操作系统的最低层,是最接近硬件的部分。
运行时间都较短,而且调用频繁
这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)
如何定义一个原语?
关中断实现原子操作
系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语
与硬件关联紧密的模块
系统控制的数据结构及处理
进程管理
进程状态管理、进程调度和分派、创建与撤销进程控制块等
存储器管理
存储器的空间分配和回收、内存信息保护程序、代码对换程序
设备管理
缓冲区管理、设备分配和回收
运行频率高的操作,不直接涉及硬件 有的OS内核不包括(微内核)
宏内核和微内核
宏内核 /大内核 /单内核
概念
系统的主要功能模块作为一个联系紧密的系统内核,运行在核心态
应用
主流的操作系统,win、IOS、Android、macOS、Linux
特点
优点:
性能高,各管理模块间共享信息,能直接调用各模块特性
缺点:
OS服务逐渐复杂,内核代码庞大、结构混乱、难以维护
图示
微内核
微内核概念
只有OS最基本的内容,其余的作为进程来实现,运行在用户态
移出内核的OS部分分层划分成若干服务程序(服务器),执行相互独立,交互都要借助微内核提供的消息传递机制来实现
包含
与硬件处理紧密相关的部分
一些较为基本的功能
客户和服务器之间的通信
非核心内容(与硬件联系不紧密的)移除到用户态,只保留最基本功能
描述
采用“机制和策略分离”的原理构造
采用面向对象技术
内核足够小
消息传递机制,基于客户/服务器模式
微内核基本功能
通常采用“机制和策略分离”的原理构造OS结构,机制部分及与硬件紧密的内容放到微内核 微内核OS将进程、存储器、IO管理这些功能划分,将小部分机制内容放入微内核,其他的放入各种服务器,这样可以将微内核做的很小
进程(线程)管理
进程(线程)之间的通信功能是微内核OS最基本的功能
还包括进程切换、进程调度,多处理机间同步等
分离
进程调度,需要设置一个或多个进程优先级队列——调度功能的机制部分,放入微内核中
进程如何分类,以及优先级的确认方式——策略问题,放入微内核外的进程管理服务器
低级存储器管理
只配置最基本的低级存储器管理机制
分离
逻辑地址变换为物理地址等的页表机制和地址变换机制,依赖于硬件,在微内核中
实现虚拟存储器管理的策略,何种页面置换算法,内存分配与回收的策略,放在存储器管理服务器中
中断和陷入处理
中断和陷入处理中与硬件联系紧密的功能放入微内核中
即,在中断过程中,由微内核实现捕获所发生的中断和陷入事件,并进行中断响应处理
特点
优点
扩展性和灵活性
内核功能少,复杂性降低,结构清晰,方便维护和扩展
当需要修改和增加功能时,只需要在相应服务器中修改或增加一个新的服务器,无需改内核
可靠性和安全性
只有微内核运行在内核态,其余模块运行在用户态,一个模块错误不会使整个系统崩溃
可移植性
微内核的内容更通用,更接近硬件,移植到另一个平台修改很少
分布式计算
采用的是消息传递机制,能更好的支持分布式系统和网络系统
缺点
需要频繁地在核心态和用户态之间切换,执行开销大,性能低
应用
在实时、工业、航空等需要高度可靠性的领域
windows NT
外核的概念
特性/思想
传统的内核设计都会对硬件作抽象,硬件资源和设备驱动程序都隐藏
例如,应用程序不知道使用的内存地址的真实物理地址
需要维护一张表格用以重映像磁盘地址(以及其他资源)
外核模型中

内核负责进程调度、进程通信等功能。
外核负责:
为用户进程分配未经抽象的硬件资源
保证硬件资源的使用安全
理解
让应用程序能直接请求一块特定的物理空间——未经抽象
外核只保证被请求的资源当前是空闲的,不发生冲突,只提供有限的原语,记录已经分配出去的资源即可
特点
优点
外核可直接给用户进程分配"不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
减少了虚拟硬件资源的“映射层",效率更高
将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应负载并不重
以往操作系统提供的抽象全部在用户空间当中运行
缺点
降低了系统的一致性
系统更复杂
分层法和模块化设计
1.5OS引导和虚拟机
操作系统引导
OS引导boot
计算机用CPU运行特定程序,通过程序识别硬盘——识别硬盘分区——识别分区上的操作系统——最后通过程序启动操作系统的过程
eg:windows操作系统完整的开机初始化程序在“根目录/Windows/Boot“下
磁盘中的数据
硬盘和分区
引导硬盘:存放操作系统程序的硬盘
硬盘会以特定的标识符区分引导硬盘和非引导硬盘
活动分区:启动操作系统的文件都装在这个分区
分区:(逻辑上的)如C:盘、D:盘
MBR和PBR
主引导记录MBR
组成
硬盘引导程序
硬盘分区表
可根据此表区分活动分区和非活动分区
作用:
告诉CPU
操作系统是否在这个盘(引导硬盘)
要去这个硬盘的哪个分区找OS(活动分区)
(分区)引导记录PBR
是活动分区的第一个扇区
也称为卷引导记录VBR
作用
寻找并激活分区根目录下用于引导OS的程序(启动管理器)
BIOS
基本输入输出系统
一般存放在主板的ROM上,存放boot引导程序
OS引导过程
上电,CPU会到一个固定的地址取指令,跳转到BIOS引导程序的入口地址
BIOS程序会进行硬件自检,自检无误,继续引导
如有故障,主板会蜂鸣,启动中止
识别引导硬盘
BIOS读取Boot Sequence:把控制权交给启动顺序第一的存储设备/或者由用户自己选取启动硬盘
将存储设备引导扇区的内容加载到内存中
并加载主引导记录MBR,确定这是引导硬盘,执行硬盘引导程序,控制权交给该引导硬盘
识别活动分区
CPU扫描MBR中的硬盘分区表
确定活动分区,控制权交给活动分区
eg:找到C盘
MBR的任务
找到启动管理器(boot loader)
分区引导记录PBR被读入内存,找到完整的操作系统初始化程序(启动管理器)
PBR的任务
启动管理器寻找并激活分区中的启动配置数据(多系统选择)
找到根目录下的操作系统程序,将操作系统内核载入内存,完成开机
BIOS——>MBR——>DPT(分区表)——>PBR——>boot loader(—>启动配置数据)——>OS加载
虚拟机技术
虚拟机技术
概念
虚拟机是一台逻辑计算机,是采用虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境
即,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系统
广泛应用于web主机领域,即云主机,云服务器
虚拟机管理程序(VMM,Virtual Machine Monitor)==虚拟机监控程序(Hypervisor)
运行在VMM上层的称为客户操作系统 Guest OS
运行在底层硬件上的称为宿主操作系统 Host OS
两类VMM
第一类虚拟机管理程序
eg:装双系统
也称为裸金属架构
特性
是唯一一个运行在最高特权级的程序,在裸机上运行并具备多道程序功能
向上层提供若干虚拟机,每个虚拟机都是裸机硬件的复制品
特点
虚拟机的OS运行在虚拟内核空间/虚拟内核态
OS执行一条内核态指令时,需要陷入VMM,由VMM控制硬件执行
用户程序执行敏感指令,VMM需要模拟真实硬件为上层服务
第二类虚拟机管理程序
eg:VirtualBox, VMware
也称为寄居架构
特性
是一个依赖于宿主操作系统分配和调度资源的程序
类似于普通的进程,客户操作系统只是宿主操作系统的一个大文件
特点
可迁移性好,性能差,能支持虚拟机数量更少
第二类VMM部分运行在用户态,部分在内核态
比较区分
概念区分
几种指令
核心态指令
核心态可以执行指令集中的所有指令,包括特权指令和非特权指令
但不执行访管指令
核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作命令。
特权指令
在指令系统中拥有用于管理硬件和整个系统安全的指令,让程序随意使用具有极高危险性
只能在核心态(管态)执行
访管指令
用户程序自愿进管(放弃cpu使用权)的指令
非特权指令,可在用户态执行
执行后进入核心态
陷入指令
执行陷入指令程序会中断,跳转到中断服务程序(操作系统的代码)
陷入指令在用户态
OS角度上可等价
访管指令强调cpu从用户态切换到了核心态
强调的是可以执行特权指令
陷入指令强调程序从用户程序从用户态切换到内核态
强调的是进程放弃cpu,交还给操作系统
广义指令(系统调用)
指用户程序需要借助操作系统来完成的特定操作,执行陷入指令后可以进行系统调用
系统调用是一段代码而不是一条代码,在高级语言层面可能表现为一条
发出系统调用在用户态,处理系统调用在核心态
两种调用
系统调用
通过中断方式,即软件中断/陷入指令INT,执行后通过硬件关中断 保存断点和程序状态字 形成中断服务程序入口地址,之后执行中断服务程序
系统调用会进入核心态
函数调用
函数调用通过CALL指令来进行
修改PC
函数调用不一定进入核心态
系统调用本质上应该也是一种函数调用
8086汇编语言函数返回
段内调用
使用RET指令返回,从栈中弹出一个字,即IP(指令指针寄存器)
段间调用
使用RETF指令返回,从栈中弹出两个字,即CS(代码段基址寄存器) 和IP
系统调用
使用IREF指令返回,从栈中弹出三个字,即IP CS PSW(程序状态字)