第一章 计算机系统概述
第一节 操作系统基本概念
「操作系统」计算机的分层
- 计算机系统自下而上可大致分为 4 部分(划分与计算机组成原理中的分层不同)
- 硬件
- 如中央处理器、内存、输入/输出设备等,提供基本的计算资源
- 操作系统
- 管理各种计算机硬件
- 为应用程序提供基础
- 充当计算机硬件与用户之间的中介
- 应用程序
- 如字处理程序、电子制表软件、编译器、网络浏览器等,规定按何种方式使用这些资源来解决用户的计算问题
- 用户
- 硬件
「操作系统」概念
- 操作系统(Operating System,OS)
- 指控制和管理整个计算机系统的硬件与软件资源
- 合理地组织、调度计算机的工作与资源的分配
- 进而为用户和其他软件提供方便接口与环境的程序集合
- 是计算机系统中最基本的系统软件
- 指控制和管理整个计算机系统的硬件与软件资源
「操作系统特征」并发
并发(Concurrence)
- 指两个或多个事件在同一时间间隔内发生
操作系统的并发性
- 什么是操作系统的并发性?
- 指计算机系统中同时存在多个同时运行的程序
- 操作系统的并发性是如何做到的?
- 引入进程,通过分时得以实现
- 什么是操作系统的并发性?
并发与并行的区别
- 并发(同一时间间隔)
- 微观上程序分时交替执行,同一时刻仍然是在完成一个任务
- 并行(同一时刻)
- 同时进行运算或操作,在同一时刻能完成两种或两种以上的工作
- 并发(同一时间间隔)
「操作系统特征」共享
共享(Sharing)
- 资源共享
- 指系统中的资源可供内存中多个并发执行的进程共同使用
互斥共享方式
- 什么是互斥共享方式?
- 在一段时间内只允许一个进程访问该资源
- 什么是临界资源?
- 一段时间内只允许一个进程访问的资源
- 什么是互斥共享方式?
同时访问方式
- 什么是同时访问方式?
- 允许在一段时间内由多个进程 “同时” 访问
- “同时” 通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问,即 “分时共享” 的
- 什么是同时访问方式?
并发和共享互为存在的条件
- 并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件
- 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
- 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
- 并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件
「操作系统特征」虚拟
- 虚拟(Virtual)
- 什么是虚拟?
- 把一个物理上的实体变为若干逻辑上的对应物
- 什么是虚拟处理器?
- 通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的
- 什么是虚拟存储器?
- 用虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器
- 从逻辑上扩充存储器的容量,用户感觉到(但实际不存在)的存储器称为虚拟存储器。
- 什么是虚拟?
- 操作系统的虚拟技术
- 时分复用技术,如处理器的分时共享
- 空分复用技术,如虚拟存储器
「操作系统特征」异步
- 异步 (Asynchronism)
- 什么是进程的异步性?
- 多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进
- 异步性的 错误与相同结果
- 操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)
- 运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果
「操作系统功能」资源管理者
操作系统作为计算机系统资源的管理者
处理机管理
- 什么是处理机管理?
- 在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理
- 进程管理的任务
- 管理 并发进程 何时创建、何时撤销、如何管理、如何避免冲突、合理共享
- 进程管理的主要功能
- 包括进程控制、进程同步、进程通信、死锁处理、处理机调度等
- 什么是处理机管理?
存储器管理
- 存储器管理的作用
- 给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率
- 存储器管理的功能
- 内存分配与回收、地址映射、内存保护与共享和内存扩充等。
- 存储器管理的作用
文件管理
- 什么是文件系统?
- 计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统
- 文件管理的作用
- 包括文件存储空间的管理、目录管理及文件读写管理和保护等
- 什么是文件系统?
设备管理
- 设备管理的任务
- 完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率
- 设备管理的功能
- 缓冲管理、设备分配、设备处理和虚拟设备等
- 设备管理的任务
「操作系统功能」接口
操作系统作为用户与计算机硬件系统之间的接口
命令接口
- 命令接口的作用
- 用户利用这些操作命令来组织和控制作业的执行
- 作业控制方式的分类
- 联机控制方式
- 脱机控制方式
- 命令接口的分类(依据作业控制方式)
- 联机命令接口(交互式命令接口)
- 适用于分时或实时系统, 由一组键盘操作命令组成
- “雇主”说一句话,“工人”做一件事,并做出反馈,这就强调了交互性
- 脱机命令接口(批处理命令接口)
- 适用于批处理系统,它由一组作业控制命令组成
- “雇主”把要“工人”做的事写在清单上,“工人”按照清单命令逐条完成这些事,这就是批处理
- 联机命令接口(交互式命令接口)
- 命令接口的作用
程序接口
- 程序接口的作用
- 编程人员可以使用程序接口来请求操作系统服务
- 程序接口的构成
- 由一组系统调用(也称广义指令)组成
- 程序接口的作用
图形用户界面(GUI)与操作系统的所属关系
- 图形用户界面(GUI)最终是通过调用程序接口实现的
- GUI 不是操作系统的一部分
- GUI 所调用的系统调用命令是操作系统的一部分
- 图形用户界面(GUI)最终是通过调用程序接口实现的
「操作系统功能」资源扩充
操作系统实现了对计算机资源的扩充
- 什么是 裸机?
- 没有任何软件支持的计算机
- 什么是 扩充机器 或 虚拟机 ?
- 覆盖了软件的机器
- “工人” 操作机器,机器就有更大的作用,于是 “工人” 便成了 “扩充机器”
第二节 操作系统发展历程
「手工操作阶段」无操作系统
- 两个缺点
- 用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低
- CPU 等待手工操作,CPU 的利用不充分
「批处理阶段」单道批处理系统
从批处理系统开始,操作系统正式出现
操作系统出现的目的
- 解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾
单道批处理系统的特征
- 自动性
- 磁带上的一批作业能自动地逐个运行,而无须人工干预。
- 顺序性
- 磁带上的各道作业顺序地进入内存,顺序完成。
- 单道性
- 一道程序运行在内存中,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。
- 自动性
单道批处理系统的问题
- 程序运行期间,有IO介入,需要等待慢速IO完成,速度慢。
「批处理阶段」多道批处理系统
- 多道批处理系统的原理
- 允许多个程序同时进入内存在 CPU 中交替运行,共享软硬件资源。
- 一个程序被IO阻塞,换另一个程序进行。
- 多道批处理系统的特点
- 多道
- 宏观上并行
- 微观上串行
- 多道批处理系统实现需要面对的问题
- 如何分配处理器
- 多道程序的内存分配问题
- IO设备分配问题
- 如何组织存放程序和数据,方便用户使用
- 如何保证程序和数据的安全性和一致性
- 多道批处理系统的优点
- 资源利用率高
- 多道批处理系统的缺点
- 用户响应时间长,没有人机交互能力
「操作系统」分时操作系统
- 什么是分时操作系统?
- 指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
- 作业在被分配时间片内不能完成计算,暂时停止运行,让出处理器,等待下一轮继续运行。
- 分时操作系统的特征
- 同时性
- 多路性,多个终端用户同时操作计算机
- 交互性
- 用户通过终端直接控制程序
- 独立性
- 多个用户独立操作,互不干扰
- 及时性
- 通过时间片轮转,用户在短时间内获得响应
- 同时性
「操作系统」实时操作系统
- 硬实时系统
- 什么是硬实时系统?
- 某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,提供完成的绝对保证。
- 举例
- 飞行器的飞行自动控制系统
- 什么是硬实时系统?
- 软实时系统
- 什么是软实时系统?
- 能够接受偶尔违反时间规定且不会引起任何永久性的损害
- 举例
- 飞机订票系统
- 银行管理系统
- 什么是软实时系统?
「操作系统」网络操作系统和分布式计算机系统
网络操作系统
- 什么是网络操作系统?
- 计算机网络中的各台计算机有机结合,实现数据的互相传送
- 网络操作系统的特点 + 是网络中各种资源的共享及各台计算机之间的通信
- 什么是网络操作系统?
分布式计算机系统
- 什么是分布式计算机系统?
- 多台计算机组成
- 系统中任意两台计算机通过通信方式交换信息
- 系统中的每台计算机都具有同等的地位,即没有主机也没有从机
- 每台计算机上的资源为所有用户共享
- 系统中的任意一台计算机都可以构成一个子系统,可重构
- 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成
- 分布式计算机系统的特点
- 分布性
- 并行性
- 什么是分布式计算机系统?
网络操作系统和分布式操作系统的不同
- 分布式操作系统中的若干计算机相互协同完成同一任务
「操作系统」个人计算机操作系统
- Windows、Linux 和 MacOS 等。
第三节 操作系统运行环境
「处理器运行模式」指令与状态
CPU 的运行模式划分
- 用户态(目态)
- 处于该状态,可以运行非特权指令。
- 核心态(管态、内核态)
- 处于该状态,可以运行特权指令。
- 用户态(目态)
指令
- 特权指令
- 不允许用户直接使用的指令
- 举例
- I/O 指令
- 置中断指令
- 存取用于内存保护的寄存器
- 送程序状态字到程序状态字寄存器等的指令
- 切换到用户态的指令
- 非特权指令
- 允许用户直接使用的指令
- 不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,为了防止用户程序对系统造成破坏
- 特权指令
CPU 用户态和核心态的切换
- 用户态
核心态 - 通过访管指令(非特权指令),产生中断事件切换状态
- 发生中断或异常时,运行用户态的CPU 会立即进入核心态,这是通过硬件实现的。
- (例如,用一个特殊寄存器的一位来表示 CPU 所处的工作状态,0 表示核心态,1 表示用户态。若要进入核心态,则只需将该位置 0 即可)。
- 核心态
用户态 - 通过特权指令,切换状态
- 用户态
「操作系统内核」时钟管理
- 时钟管理的功能
- 计时
- 操作系统通过时钟管理,向用户提供标准的系统时间
- 进程的切换(时钟中断)
- 通过时钟中断的管理,可以实现进程的切换
- 举例
- 分时操作系统的时间片轮转调度
- 实时系统中按截止时间控制运行
- 批处理系统用时钟管理衡量一个作业的运行程度
- 举例
- 通过时钟中断的管理,可以实现进程的切换
- 计时
「操作系统内核」中断机制
中断机制的初衷
- 提高多道程序运行环境中 CPU 的利用率,针对外部设备。
现代操作系统中的中断机制
- 现代操作系统是靠中断驱动的软件
- 举例
- 键盘或鼠标信息的输入
- 进程的管理和调度
- 系统功能的调用
- 设备驱动
- 文件访问
中断机制中属于内核的部分
- 中断机制中,只有一小部分功能属于内核。
- 负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。
- 减少中断的处理时间,提高系统的并行处理能力。
「操作系统内核」原语
- 原语特点 (Atomic Operation)
- 处于操作系统的最底层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
- 这些程序的运行时间较短,而且调用频繁。
- 定义原语的直接方法
- 关闭中断,让其所有动作不可分割地完成后再打开中断。
「操作系统内核」系统控制的数据结构
操作系统管理的数据结构
- 作业控制块
- 进程控制块(PCB)
- 设备控制块
- 各类链表
- 消息队列
- 缓冲区
- 空闲区登记表
- 内存分配表
- 等......
操作系统管理数据结构的基本操作
- 进程管理
- 进程状态管理、进程调度和分派、创建与撤销进程控制块等
- 存储器管理
- 存储器的空间分配和回收、内存信息保护程序、代码对换程序等
- 设备管理
- 缓冲区管理、设备分配和回收等
- 进程管理
「中断机制」中断与异常的定义
- 中断 (Interruption)
- 也称外中断,是指来自 CPU 执行指令外部的事件
- 举例
- I/O 结束中断
- 表示 I/O 完成。
- 时钟中断
- 表示一个固定的时间片已到。
- I/O 结束中断
- 异常(Exception)
- 也称内中断,是指来自 CPU 执行指令内部的事件
- 举例
- 如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件
- 不能被屏蔽,一旦出现,立即处理。
「中断机制」中断与异常的分类
- 外中断
- 可屏蔽中断
- 通过 INTR 线发出的中断请求,通过改变屏蔽字实现多重中断
- 不可屏蔽中断
- 通过 NMI 线发出的中断请求,通常是紧急的硬件故障。
- 异常也是不能被屏蔽的
- 可屏蔽中断
- 异常
- 故障(Fault)
- 是由指令执行引起的异常。
- 如非法操作码、缺页故障、除数为0、运算溢出等。
- 自陷(Trap)
- 是一种事先安排的“异常”事件。
- 用于在用户态下调用操作系统内核程序,如条件陷阱指令。
- 终止(Abort)
- 是指出现了使得 CPU 无法继续执行的硬件故障。
- 如控制器出错、存储器校验错等。
- 注
- 故障异常和自陷异常属于软件中断(程序性异常)。
- 终止异常和外部中断属于硬件中断。
- 故障(Fault)
「中断机制」中断和异常的处理过程
- 当CPU 在执行用户程序的第 i 条指令时检测到一个异常事件
- 则CPU打断当前用户程序,转到相应的中断或异常处理程序去执行。
- 若中断或异常处理程序能够解决相应的问题
- 则在中断或异常处理程序的最后,CPU通过执行中断或异常返回指令,回到被打断的用户程序的第 i 条指令或第 i+1 条指令继续执行
- 若中断或异常处理程序发现是不可恢复的致命错误
- 则终止用户程序。
- 通常情况下,对中断和异常的具体处理过程由操作系统(和驱动程序)完成。
「系统调用」定义、用途及分类
- 什么是系统调用?
- 用户在程序中调用操作系统提供的一些子功能(特殊的公共子程序)
- 为什么要用系统调用?
- 系统中的各种共享资源都由操作系统统一掌管,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行。
- 因此在用户程序中,凡是与资源有关的操作(如存储分配、进行1/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
- 系统调用命令的按功能分类
- 设备管理
- 完成设备的请求或释放,以及设备启动等功能。
- 文件管理
- 完成文件的读、写、创建及删除等功能。
- 进程控制
- 完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信
- 完成进程之间的消息传递或信号传递等功能。
- 内存管理
- 完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
- 设备管理
「系统调用」用户态转向核心态
- 用户程序要求操作系统的服务,即系统调用。
- 发生一次中断。
- 用户程序中产生了一个错误状态。
- 用户程序中企图执行一条特权指令。
- 从核心态转向用户态由一条指令实现,这条指令也是特权指令,一般是中断返回指令。
- 注意
- 由用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。
第四节 操作系统结构
「系统结构」分层法
- 分层法的原理
- 是将操作系统分为若干层,最底层(层0)为硬件,最高层(层N)为用户接,每层只能调用紧邻它的低层的功能和服务(单向依赖)。
- 分层法的优点
- 便于系统的调试和验证,简化了系统的设计和实现
- 易扩充和易维护
- 分层法的缺点
- 合理定义各层比较困难
- 效率较差
「系统结构」模块化
- 模块化的原理
- 将操作系统按功能划分为若干具有一定独立性的模块。
- 每个模块具有某方面的管理功能,规定各模块间的接口,各模块之间能够通过接口进行通信
- 模块化优劣的判别标准
- 内聚性
- 模块内部各部分间联系的紧密程度。
- 内聚性越高,模块独立性越好。
- 耦合度
- 模块间相互联系和相互影响的程度。
- 耦合度越低,模块独立性越好。
- 内聚性
- 模块化的优点
- 提高了操作系统设计的正确性、可理解性和可维护性。
- 增强了操作系统的可适应性。
- 加速了操作系统的开发过程。
- 模块化的缺点
- 模块间的接口规定很难满足对接口的实际需求。
- 各模块设计者齐头并进,每个决定无法建立在上一个己验证的正确决定的基础上,因此无法找到一个可靠的决定顺序。
「系统结构」宏内核
- 什么是宏内核(单内核或大内核)?
- 是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。
- 因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。
「系统结构」微内核的概念
什么是微内核?
- 利用“机制与策略分离”的原理,将内核中最基本的功能保留在内核。
- 将那些不需要在核心态执行的功能移到用户态执行。
- 移出内核的操作系统代码根据分层的原则被划分成若干服务程序。
- 它们的执行相互独立,交互则都借助于微内核进行通信。
微内核结构的操作系统结构
- 微内核
- 构成
- 与硬件处理紧密相关的部分
- 一些较基本的功能
- 客户和服务器之间的通信
- 构成
- 多个服务器
- 构成
- 用于提供对进程(线程)进行管理的进程(线程)服务器
- 提供虚拟存储器管理功能的虚拟存储器服务器等
- 它们都是作为进程来实现的,运行在用户态
- 客户与服务器之间是借助微内核提供的消息传递机制来实现交互的
- 构成
- 微内核
「系统结构」微内核的功能
微内核结构利用“机制与策略分离”的原理来构造OS 结构,将机制部分以及与硬件紧密相关的部分放入微内核。
进程(线程)管理
- 微内核 OS 最基本的功能
- 调度功能的机制部分(放入微内核)
- 如进程的切换、进程的调度,以及多处理机之间的同步
- 策略问题(放入微内核外的进程管理服务器)
- 如对用户进程如何分类,以及优先级的确认方式
低级存储器管理
- 依赖于硬件的(放入微内核)
- 如用于实现将逻辑地址变换为物理地址等的页表机制和地址变换机制
- 策略问题(放在微内核外的存储器管理服务器)
- 采取何种页面置换算法,采用何种内存分配与回收的策略
- 依赖于硬件的(放入微内核)
中断和陷入处理
- 微内核 OS 将与硬件紧密相关的一小部分放入微内核
- 微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断响应处理,在识别中断或陷入的事件后,再发送给相关的服务器来处理,故中断和陷入处理也应放入微内核。
「系统结构」微内核的特点
- 扩展性和灵活性
- 可靠性和安全性
- 可移植性
- 分布式计算
「系统结构」外核(exokernel)
- 外核的作用
- 在内核态中运行。
- 它的任务是为虚拟机分配资源,并检查使用这些资源的企图,以确保没有机器会使用他人的资源。
- 外核机制的优点
- 是减少了映射层,只需要记录已经分配给各个虚拟机的有关资源即可
- 不需要维护一张表格以重映像磁盘地址(或其他资源)
- 将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突
- 是减少了映射层,只需要记录已经分配给各个虚拟机的有关资源即可
第五节 操作系统引导
「操作系统引导」引导过程
- 激活 CPU
- 硬件自检
- 加载带有操作系统的硬盘
- 加载主引导记录 MBR
- 扫描硬盘分区表
- 加载分区引导记录 PBR
- 加载启动管理器
- 加载操作系统
第六节 虚拟机
「虚拟机概念」第一类虚拟机管理程序(裸金属架构)
第一类虚拟机管理程序
- 像操作系统,是唯一一个运行在最高特权级的程序。
- 它在裸机上运行并且具备多道程序功能。
- 虚拟机管理程序向上层提供若干台虚拟机,这些虚拟机是裸机硬件的精确复制品。
- 由于每台虚拟机都与裸机相同,所以在不同的虚拟机上可以运行任何不同的操作系统。
什么是虚拟内核态?
- 虚拟机作为用户态的一个进程运行,不允许执行敏感指令。
- 然而,虚拟机上的操作系统认为自己运行在内核态(实际上不是),称为虚拟内核态。
- 虚拟机中的用户进程认为自己运行在用户态(实际上确实是)。
- 虚拟机操作系统执行了一条 CPU 处于内核态才允许执行的指令时,陷入虚拟机管理程序。****
- 在支持虚拟化的 CPU 上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。
- 如果是虚拟机中的操作系统执行的,虚拟机管理程序将安排这条指令功能的正确执行。
- 如果是用户程序执行的,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为。
- 不支持虚拟化的 CPU 上,真实硬件不会直接执行虚拟机中的敏感指令,这些敏感指令被转为对虚拟机管理程序的调用,由虚拟机管理程序模拟这些指令的功能。
- 在支持虚拟化的 CPU 上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。
「虚拟机概念」第二类虚拟机管理程序(寄居架构)
是一个依赖于 Windows、Linux 等操作系统分配和调度资源的程序,很像一个普通的进程。
第二类虚拟机管理程序仍然伪装成具有 CPU 和各种设备的完整计算机。
VMware Workstation 是首个X86平台上的第二类虚拟机管理程序。
客户操作系统
- 运行在两类虚拟机管理程序上的操作系统
宿主操作系统
- 运行在底层硬件上的操作系统
本章疑难点
「疑难点」并行性与并发性的区别和联系
并行性是指两个或多个事件在同一时刻发生。
并发性是指两个或多个事件在同一时间间隔内发生。
多道程序环境下
- 并发性是指在一段时间内,宏观多程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观程序分时地交替执行。
- 并行性,即若有多处理器,则并发执行的程序被分配到多个处理器上,实现并行执行,即每个处理器来处理一个可并发执行的程序。
「疑难点」特权指令和非特权指令
- 特权指令
- 是指有特殊权限的指令
- 由于这类指令的权限最大,使用不当将导致整个系统崩溃,不能给用户执行,则特权指令必须在核心态执行。
- CPU在核心态下可以执行指令系统的全集。
- 在用户态下使用特权指令时,将产生中断以阻止用户使用特权指令。
- 从用户态转换为核心态的唯一途径是中断或异常。
「疑难点」访管指令和访管中断
- 为什么要在程序中引入访管指令呢?
- 这是因为用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,则需要访管指令。
- 访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
- 访管中断由访管指令(用户态执行)产生,程序员使用访管指令向操作系统请求服务,产生一个中断事件(自愿中断、访管中断),将操作系统转换为核心态。
- 系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。
- 完成服务功能后,退出中断,返回到用户程序断点继续执行。
「疑难点」定义徽内核结构 OS 的四个方面
- 足够小的内核。
- 基于客户/服务器模式。
- 应用“机制与策略分离”原理。
- 机制是指实现某一功能的具体执行机构。
- 策略则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。
- 在传统的OS 中,将机制放在 OS 内核的较低层中,把策略放在内核的较高层中。
- 而在微内核OS 中,通常将机制放在 OS 的微内核中。
- 正因如此,才可以将内核做得很小。
- 采用面向对象技术。
- 基于面向对象技术中的
抽象
和隐蔽
原则能控制系统的复杂性 - 进一步利用
对象
、封装
和继承
等概念还能确保操作系统的正确性、可靠性、易扩展性等。
- 基于面向对象技术中的