导图社区 第1章 计算机系统概述
该模板是一张关于考研408,期末考试操作系统第一章思维导图,专为计算机专业学生、软考备考者、考研计算机学科学习者及计算机基础课程学习者打造,是系统梳理操作系统入门知识的高效学习工具。将操作系统的基本概念、发展与分类、运行环境、体系结构、系统引导及虚拟机六大核心模块,拆解为层级清晰、逻辑连贯的分支,帮助使用者快速构建操作系统的知识体系,精准把握入门阶段的核心考点与概念逻辑。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将零散的操作系统基础知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机基础课程学习者,模板清晰呈现了操作系统的核心概念、发展阶段、分类方式、运行机制与体系结构,可用于入门学习。模板完整覆盖计算机系统概述第一章核心考点:从操作系统的概念、功能与特征,到手工 / 批处理 / 分时 / 实时等发展阶段与网络 / 分布式 / 个人计算机等分类;从操作系统的运行环境(中断与异常、系统调用),到宏内核 / 微内核 / 分层结构等体系结构;再到系统引导流程与虚拟机概念,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。
编辑于2026-05-07 15:41:10这是一篇关于408考研,期末考试,计算机组成原理,输入输出系统思维导图,专为计算机专业学生、考研(如 408 统考)/ 软考备考者、计算机硬件底层原理学习者打造,是系统梳理 I/O 系统核心知识的高效学习工具。思维导图的结构化呈现方式,将 I/O 系统的基本概念、I/O 接口、I/O 控制方式、中断处理流程四大核心模块拆解为层级清晰、逻辑连贯的分支框架,同时融入高频考点标注、原理示意图与对比表格,帮助使用者快速构建输入 / 输出系统的知识体系,精准攻克 I/O 控制方式对比、DMA 传输原理、中断处理流程、磁盘调度算法等重难点与高频考点。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将 I/O 接口的软硬件构成、程序查询 / 中断 / DMA 控制方式的差异、中断响应与处理全过程、磁盘调度计算等零散知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机底层原理学习者,模板清晰呈现了主机与外设数据交互的完整逻辑,可用于入门学习、硬件原理学习的知识框架搭建,快速建立对计算机输入输出系统的整体认知。模板完整覆盖输入 / 输出系统核心考点:从 I/O 系统的基本概念、接口的分类与工作原理,到程序查询、中断、DMA 三种核心 I/O 控制方式的对比;从中断响应与完整处理流程,到磁盘调度算法、DMA 传输原理等计算类高频考点,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。该模板借助万兴脑图软件绘制,助力计算机学习者高效掌握输入 / 输出系统核心知识。
这是一篇关于408考研,期末考试,计算机组成原理,总线的思维导图,专为计算机专业学生、考研 / 软考备考者、计算机底层原理学习者打造,是系统梳理总线系统核心知识的高效学习工具。思维导图的结构化呈现方式,将总线概述、总线仲裁、总线操作和定时、总线标准四大核心模块拆解为层级清晰、逻辑连贯的分支框架,同时融入关键原理示意图、性能计算要点与对比说明,帮助使用者快速构建总线系统的知识体系,精准攻克总线分类、仲裁方式、传输定时与性能分析等重难点与高频考点。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将总线的特性与分类、集中式 / 分布式仲裁方式、同步 / 异步传输定时、总线性能指标计算等零散知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机底层原理学习者,模板清晰呈现了计算机系统中各部件通过总线进行数据传输的完整逻辑,可用于入门学习、硬件原理学习的知识框架搭建,快速建立对计算机系统互连机制的整体认知。模板完整覆盖总线系统核心考点:从总线的基本概念、分类与特性,到总线仲裁的集中式与分布式实现;从总线操作的同步 / 异步 / 半同步定时方式,到总线标准与性能指标计算,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。
这是一篇关于408考研,期末考试,计算机组成原理,中央处理器的思维导图,专为计算机专业学生、考研 / 软考备考者、计算机底层原理学习者打造,是系统梳理 CPU 核心知识的高效学习工具。思维导图的结构化呈现方式,将 CPU 的功能和基本结构、指令执行过程、数据通路、控制器、指令流水线、多处理器系统六大核心模块拆解为层级清晰、逻辑连贯的分支框架,同时融入高频考点标注、关键概念对比与计算要点,帮助使用者快速构建 CPU 工作原理的知识体系,精准攻克数据通路设计、流水线性能分析、中断处理流程等重难点与高频考点。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将 CPU 结构、指令执行周期、数据通路设计、硬布线 / 微程序控制器对比、流水线冲突处理、多处理器系统分类等零散知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机底层原理学习者,模板清晰呈现了 CPU 从指令取指到执行的完整工作流程,可用于入门学习、底层原理学习的知识框架搭建,快速建立对计算机核心部件的整体认知。模板完整覆盖中央处理器核心考点:从 CPU 的功能与基本结构、指令执行的完整过程,到数据通路的设计原理与分类;从硬布线与微程序控制器的工作原理与对比,到指令流水线的性能指标、冲突处理与多发技术;再到多处理器系统的基本概念与硬件多线程技术,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。
社区模板帮助中心,点此进入>>
这是一篇关于408考研,期末考试,计算机组成原理,输入输出系统思维导图,专为计算机专业学生、考研(如 408 统考)/ 软考备考者、计算机硬件底层原理学习者打造,是系统梳理 I/O 系统核心知识的高效学习工具。思维导图的结构化呈现方式,将 I/O 系统的基本概念、I/O 接口、I/O 控制方式、中断处理流程四大核心模块拆解为层级清晰、逻辑连贯的分支框架,同时融入高频考点标注、原理示意图与对比表格,帮助使用者快速构建输入 / 输出系统的知识体系,精准攻克 I/O 控制方式对比、DMA 传输原理、中断处理流程、磁盘调度算法等重难点与高频考点。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将 I/O 接口的软硬件构成、程序查询 / 中断 / DMA 控制方式的差异、中断响应与处理全过程、磁盘调度计算等零散知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机底层原理学习者,模板清晰呈现了主机与外设数据交互的完整逻辑,可用于入门学习、硬件原理学习的知识框架搭建,快速建立对计算机输入输出系统的整体认知。模板完整覆盖输入 / 输出系统核心考点:从 I/O 系统的基本概念、接口的分类与工作原理,到程序查询、中断、DMA 三种核心 I/O 控制方式的对比;从中断响应与完整处理流程,到磁盘调度算法、DMA 传输原理等计算类高频考点,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。该模板借助万兴脑图软件绘制,助力计算机学习者高效掌握输入 / 输出系统核心知识。
这是一篇关于408考研,期末考试,计算机组成原理,总线的思维导图,专为计算机专业学生、考研 / 软考备考者、计算机底层原理学习者打造,是系统梳理总线系统核心知识的高效学习工具。思维导图的结构化呈现方式,将总线概述、总线仲裁、总线操作和定时、总线标准四大核心模块拆解为层级清晰、逻辑连贯的分支框架,同时融入关键原理示意图、性能计算要点与对比说明,帮助使用者快速构建总线系统的知识体系,精准攻克总线分类、仲裁方式、传输定时与性能分析等重难点与高频考点。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将总线的特性与分类、集中式 / 分布式仲裁方式、同步 / 异步传输定时、总线性能指标计算等零散知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机底层原理学习者,模板清晰呈现了计算机系统中各部件通过总线进行数据传输的完整逻辑,可用于入门学习、硬件原理学习的知识框架搭建,快速建立对计算机系统互连机制的整体认知。模板完整覆盖总线系统核心考点:从总线的基本概念、分类与特性,到总线仲裁的集中式与分布式实现;从总线操作的同步 / 异步 / 半同步定时方式,到总线标准与性能指标计算,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。
这是一篇关于408考研,期末考试,计算机组成原理,中央处理器的思维导图,专为计算机专业学生、考研 / 软考备考者、计算机底层原理学习者打造,是系统梳理 CPU 核心知识的高效学习工具。思维导图的结构化呈现方式,将 CPU 的功能和基本结构、指令执行过程、数据通路、控制器、指令流水线、多处理器系统六大核心模块拆解为层级清晰、逻辑连贯的分支框架,同时融入高频考点标注、关键概念对比与计算要点,帮助使用者快速构建 CPU 工作原理的知识体系,精准攻克数据通路设计、流水线性能分析、中断处理流程等重难点与高频考点。对于计算机专业学生与考研 / 软考备考者而言,这份思维导图模板可直接用于课堂笔记整理、期末复习、考点梳理,将 CPU 结构、指令执行周期、数据通路设计、硬布线 / 微程序控制器对比、流水线冲突处理、多处理器系统分类等零散知识点系统化,降低理解与记忆难度,提升备考效率;对于计算机底层原理学习者,模板清晰呈现了 CPU 从指令取指到执行的完整工作流程,可用于入门学习、底层原理学习的知识框架搭建,快速建立对计算机核心部件的整体认知。模板完整覆盖中央处理器核心考点:从 CPU 的功能与基本结构、指令执行的完整过程,到数据通路的设计原理与分类;从硬布线与微程序控制器的工作原理与对比,到指令流水线的性能指标、冲突处理与多发技术;再到多处理器系统的基本概念与硬件多线程技术,均以思维导图形式清晰呈现,层级分明,便于快速查阅、重点标记与按需编辑修改,适配备考笔记、课程复习提纲、学习课件等多种场景。
第一章 计算机系统概述
1.1操作系统的基本概念
操作系统的概念
计算机系统自上而下分为
用户
应用程序
操作系统
硬件
是软件
计算机系统中最基本的软件
最接近硬件
补充
编译器的实质是一段程序指令,存储在计算机中
软件=程序+其他相关文件
程序设计无法形成屏蔽中断指令
操作系统的功能
系统资源的管理者
管理计算机资源(硬件、软件资源、文件等)
处理机管理
对进程的管理
存储器管理
文件管理
操作系统中负责文件管理的部分称为文件系统
不关心文件中的具体内容
设备管理
作为用户与计算机硬件系统之间的接口
为上层提供方便接口/界面与环境的程序集合(简单易用的服务)
用户接口
允许用户直接使用
命令接口
按作业控制方式的不同
联机命令接口/交互式命令接口
CMD
适用于分时或实时系统
说一句做一句
脱机命令接口/批处理命令接口
脚本
适用批处理系统
说一堆做一堆
利用这些操作命令来组织和控制作业的执行
GUI图形接口(图形用户界面)

是调用了程序接口(系统调用)而实现的功能
狭义用户接口,不包含GUI
给应用程序用的
程序接口/系统调用
程序接口=系统调用
用作扩充机器
实现对硬件机器的拓展
裸机
没有任何软件支持的计算机
扩充机器/虚拟机
覆盖了软件的机器
操作系统的特征
并发
并发与并行
并发
同一时间间隔内发生
同时存在着多个运行着的程序
失去并发性——一个时间段只有一个程序在运行
宏观上是同时,微观上是交替
单核CPU
同一时刻只能执行一个程序
各个程序只能并发地执行
操作系统和程序并发是一起诞生的
多道程序技术
并行
同一时刻同时发生
多核CPU
同时执行多个程序
一般只要支持多进程并发的操作系统有并行特性
CPU和I/O设备在某个时刻并行运行
程序并发执行的特征
间断性
失去封闭性
并发进程共享变量,其执行结果与速度有关
不可再现性
共享
即资源共享
系统中的资源可供内存中多个并发执行的进程共同使用
eg同时访问硬盘资源,同时发送文件
两种资源共享方式
互斥共享方式
可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
如:摄像头
同时共享方式
一个时间段内多个进程“同时”访问
如:发送文件
微观上进程可能交替地进行访问
分时共享
也有微观也同时的,比如扬声器
并发和共享的关系
操作系统的两个最基本的特征
虚拟和异步的前提
两者互为存在的条件
资源共享是以程序的并发为条件
若系统不能对资源共享实施有效的管理,将影响程序的并发执行
虚拟
把一个物理上的实体变为若干个逻辑上的对应物
虚拟技术
时分复用技术(处理器的分时共享)
虚拟处理器
通过多道程序设计技术,采用多道程序并发执行的方法
虚拟设备技术
将一台物理I/O设备虚拟为多台逻辑上的I/O设备
交替着为各个进程服务
空分复用技术(虚拟存储器)
虚拟磁盘
虚拟存储器
异步
多个程序并发执行,由于资源有限,进程的执行不是一贯到底的
拥有并发性,才可能导致异步
使得操作系统运行在随机的环境下
可能会产生与时间有关的错误(多次运行结果不同)
串行执行:
一个程序执行完才到另一个程序
1.2操作系统的发展和分类
注意:各操作系统想解决什么问题,用什么方法来解决,优缺点
手工操作阶段
无操作系统
缺点
资源利用率极低
独占全机、人机速度矛盾
CPU等待手工操作
批处理阶段
单道批处理系统
引入脱机输入/输出技术
外围机+磁带
通过外围机把程序提前存到磁带里
并由监督程序负责控制作业的输入、输出
脱机技术
在主机以外的设备上进行输入/输出操作
优点
缓解了一定程度的人机速度矛盾
缺点
各程序之间串行执行
内存中仅能有一道程序运行
只有该程序运行结束之后才能调入下一道程序。
CPU等待I/O完成
特点
自动性
顺序性
单道性
多道批处理系统
引入中断技术
多道批处理系统的 I/O 设备可与 CPU 并行工作
所有进程的数据全部调入主存,再让多道程序并发执行
多道程序设计技术
多个程序同时进入内存并在CPU中交替的运行
程序并发运行
前提条件
中断功能
需要实现进程调度以保证CPU的工作效率
程序的执行失去了封闭性和顺序性
系统要付出额外的开销来组织作业和切换作业
系统开销变大
目的
提高系统利用率和吞吐量
特点
多道
内存里同时存放多道相互独立的程序
宏观上并行,微观上串行
多道程序的实现需要解决的问题
如何分配处理器
多道程序的内存分配问题
I/O设备的分配
优点
多道程序并发执行,共享计算机资源。
资源利用率大幅提升
进程多并不意味着CPU利用率高
进程数量越多,进程之间的资源竞争越激烈,可能出现死锁导致 CPU 利用率低
系统吞吐量增大
系统吞吐量
单位时间内CPU完成作业数量
缺点
用户响应时间长
提交作业后就只能等待计算机处理
没有人机交互功能
eg:无法调试程序/无法在程序运行过程中输入一些参数)
补充
多任务操作系统
可以支持多个进程并发运行的操作系统
分时操作系统
特点
同时性/多路性
计算机以时间片为单位轮流为各个用户/作业服务
交互性
各个用户可通过终端与计算机进行交互
独立性
及时性
优点
用户请求可以被即时响应,解决了人机交互问题。
交互式作业
允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
缺点
不能优先处理一些紧急任务
对各个用户/作业完全公平
循环地为每个用户/作业服务一个时间片
响应时间
从用户提交请求到系统首次产生响应所用的时间
响应时间近似=Q*N(Q时间片,N用户数目)
加大时间片可能会延长系统的响应时间
时间片固定,用户越多,响应时间越长
响应时间和内存无关
实时操作系统
特点
及时性
在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地运行
快速处理,及时响应
可靠性
允许浪费一些系统资源
优点
能优先响应一些紧急任务
不需时间片排队
分类
按任务执行时是否呈现周期性来划分
周期性实时任务
外部设备周期性地发出激励信号给计算机
非周期性实时任务
外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间
根据对截止时间的要求划分
硬实时任务
系统必须满足任务对截止时间的要求
如:导弹控制系统、 自动驾驶系统
软实时任务
也联系着任务对截止时间的要求,但并不严格
了解即可
在IBM-PC中,操作系统称为微型计算机操作系统
1.3操作系统的运行环境
操作系统的运行机制
一条高级语言可能对应多条指令
执行一个程序前需要将该程序放到内存中,才能被CPU处理。
程序运行过程其实是CPU执行机器指令的过程
命令&指令
命令:交互式命令接口
指令:处理器(CPU)能够识别、执行的最基本命令(二进制机器指令)
内核程序和用户程序
内核程序/管理程序
实现操作系统
执行特权指令和非特权指令
CPU执行一条指令前就能判断其类型
CPU设计时就划分了特权指令和非特权指令
特权指令:
运行后可能会影响到其他程序的正常运行
只允许操作系统内核来使用
非特权指令
不会影响系统的安全和整体状态
用户程序/应用程序
只能使用非特权指令
操作系统之上
内核态和用户态
用于区分在执行什么程序(内核?应用)
寄存器:程序状态寄存器PSW,用二进制位标记CPU状态
内核态
内核态=核心态=管态;
运行的是内核程序
CPU 可以执行除访管指令之外的任何指令
特权指令
文件 I/O 需要在内核态运行
用户态
用户态=目态
运行的是应用/用户程序
只能执行非特权指令
访管指令
内核态→用户态
执行一条特权指令
修改PSW的标志位为“用户态“
操作系统主动让出CPU
用户态→内核态
触发中断信号
操作系统强行夺回CPU的使用权
不是通过指令来修改 CPU 的状态标志位,而是由 CPU 在中断时自动完成
只要是中断都会引发变态
在内核态执行的指令
能够影响到系统的运行的指令
特权指令
直接管理系统资源的指令
设置时钟、切换进程
设置中断
开中断指令和关中断指令
I/O指令,输入/输出指令
中断屏蔽字设置指令
中断屏蔽字寄存器属于中断控制器的一部分
中断控制器属于 I/O 接口的一部分
设置中断屏蔽字寄存器的操作就相当于对 I/O接口中的 I/O 端口进行设置,属于 /O 指令
启动/关闭硬件设备
存取用于内存保护的寄存器等
系统状态修改指令
如修改中断向量表、修改程序状态字的指令、切换 CPU 的运行模式等
系统控制指令
如停机指令、重启指令等
系统调用指令
调用的发生可能在用户态,但必然在内核态执行
在内核态执行的程序
和硬件密切相关
磁盘调度程序
控制磁头运行
设备驱动程序
硬件设备进行通信
中断处理程序
操作系统初始化程序
进程调度程序
在用户态执行的指令
普通的数据处理指令、流程控制指令、读操作指令
如寄存器清零、寄存器中的内容取非、存数指令
分支跳转指令、无条件转移指令
压栈指令
陷入指令
在用户态执行的程序
命令解释程序
属于命令接口
可能在用户态发生的事件
系统调用
外部中断
缺页
引发用户态到内核态的转变
内核
大内核
将操作系统的主要功能模块作为系统内核,运行在核心态
优点
高性能
缺点
内核代码庞大、结构混乱、难以维护
微内核
只把最基本的功能保留在内核
优点
内核功能少
方便维护
有效地分离了内核与服务、服务与服务,接口(更加清晰
操作系统的可靠性
各部分可以独立地优化和演进
缺点
性能低
频繁在用户态和核心态之间切换
变态的过程是有成本的,频繁地变态会降低系统性能
书面语:变态---CPU状态的转换

操作系统
非内核功能
操作系统的功能未必都在内核中
如图形化用户界面GUI
内核
操作系统最重要最核心、最接近硬件的部分
操作系统的管理功能在内核部分实现
内核程序
实现操作系统内核功能的程序
包含的内容
系统控制的数据结构及处理
进程管理
存储器管理
设备管理
对数据结构的操作,不会直接涉及硬件
时钟管理
时钟中断
由计算机硬件时钟部件发出
每隔一段时间给CPU发送一个时钟中断信号
实现多道程序并发运行
实现计时功能
实现进程的切换
中断处理
负责实现中断机制
在中断机制中,只有一小部分功能属于内核
负责保护和恢复中断现场的信息
转移控制权到相关的处理程序
原语
是一种特殊的程序段
是由关中断/开中断指令实现的。
特点
处于操作系统的最低层,是最接近硬件的部分
程序的运行具有原子性
程序运行一气呵成不可中断
包括外部中断信号
程序运行时间短,并且调用频繁
与硬件紧密相关
中断和异常的概念
中断的类型
中断 (外中断)
与当前执行的指令无关,中断信号来源于CPU外部
断点是被中断指令的下一条指令的地址
返回到下一条指令
例子
时钟中断
I/O中断
异常(内中断)
与当前执行的指令有关,中断信号来源于CPU内部
异常不能被屏蔽
一旦出现应立刻处理
对异常的处理一般要依赖于当前的运行现场
内部异常的检测是由CPU 自身完成的,不必通过外部的某个信号通知 CPU
CPU内部逻辑实现
分类
陷入、陷阱(trap)
由陷入指令引发
陷入指令
陷入指令=trap指令=访管指令
系统调用
在用户态执行,不是特权指令
立即引发访管中断或陷阱中断(内中断)
CPU 保存断点和其他上下文环境
切换到内核态
应用程序主动请求操作系统内核的服务
主动把CPU还给操作系统内核
断点为自陷指令下一条指令地址
返回到下一条指令
故障(fault)
由错误条件引起
可能被内核程序修复
修复故障后会把CPU使用权还给应用程序,让它继续执行下去
如:缺页故障/缺页中断/缺页异常
断点为发生故障指令的地址
可能返回到当前指令
终止(abort)
由致命错误引起
内核程序无法修复
直接终止该应用程序
严重情况下调出中断服务程序来重启系统
如:
指令非法
用户态执行特权指令
指令的参数非法
除以0
控制器出错、存储器校验错等
不会返回
注
浮点数运算下溢,直接当作机器零处理,而不会引发中断
浮点数上溢,表示超过了浮点数的表示范围,属于内中断
补充
CPU 的控制流
CPU 所执行指令的地址序列
正常控制流
在程序正常执行时,通过顺序执行指令或转移指令得到的控制流
异常控制流
在正常执行过程中,因遇到异常或中断事件而引起用户程序的正常执行被打断所形成的意外控制流
指令的执行顺序
在计算机系统的各个层面都有实现异常控制流的机制
硬件层
CPU中有检测异常和中断事件并将控制转移到操作系统内核执行的机制
操作系统层
内核通过进程的上下文切换将一个进程的执行转移到另一个进程执行
应用软件层
一个进程可以直接发送信号到另一个进程,使得接收到信号的进程将控制转移到它的一个信号处理程序执行
异常和中断的响应
都需要保存断点和程序状态字并转到相应的处理程序去执行
检测到中断请求后
CPU 必须通过“中断回答“信号启动中断控制器进行中断查询,以确定当前发出的优先级最高的中断请求,并通过数据线获取相应的中断类型号
异常
CPU无须进行中断回答。
中断源识别
硬件识别
中断请求引脚线来进行查询
得到中断类信号
中断类信号指明中断服务程序的入口地址
多用于外部中断
软件识别
异常状态寄存器+异常查询程序
多用于内部异常
中断机制的基本原理
步骤
CPU检测到中断信号
内中断:
CPU 在执行指令时会检查是否有异常发生
外中断:
每个指令周期未尾(指令执行结束),CPU都会检查是否有外中断信号需要处理
凡需要操作系统介入的地方,都会触发中断信号
当 CPU 检测到中断信号后
信息保存
硬件自动保存被中断程序的断点
程序状态字寄存器(PSW)
程序计数器(PC)
由中断隐指令自动保存
通用寄存器内容
由操作系统保存
快表(TLB)和 Cache 中的内容
在外部中断处理过程中通常无须保存
直接置有效位为0即可
根据中断信号的类型查询“中断向量表”
中断向量表
由操作系统初始化
硬件找到该中断信号对应的中断向量
中断向量
指明中断服务程序入口地址
存放在中断向量表中
一组指向中断处理程序的指针,存放在内存的固定位置
找到相应的中断处理程序在内存中的存放位置
执行中断服务程序
保存中断屏蔽字
保存各通用寄存器的值
提供与中断信号对应的中断服务
当中断或异常发生时,CPU 既可能处于内核态,又可能处于用户态,具体取决于当时CPU正在处理的任务
中断处理程序
运行在内核态
内核程序
是OS专门为处理中断事件而设计的程序
即中断的处理程序一定是 OS 程序
不同的中断信号,需要用不同的中断处理程序来处理。
注
中断程序本身可能是用户程序
但是进入中断的处理程序一定是OS程序
中断
被中断的是用户程序
系统从目态转入管态
在管态下进行中断的处理
硬件自动变态
中断或异常发生时,通过硬件实现将运行在用户态的CPU立即转入核心态
停止运行当前应用程序转为执行内核程序
中断可以发生在管态 (中断套中断)
被中断的是低级中断,则仍然保持在管态
因此中断处理可能会改变程序的状态
可能需要用到 PSW 原来的内容
压栈保持
区别
子程序调用不改变程序状态,即使改变PSW的内容,但其执行完返回后,一定不需要用到PSW原来的内容
中断的作用
操作系统内核夺回CPU使用权的唯一途径
CPU由用户态->内核态
没有中断
无法实现多道程序并发
没有操作系统
分类
硬中断
由外设触发,通知操作系统设备状态变化
可屏蔽
不可屏蔽
软中断
软件触发的,用于系统调用和异常处理,处理耗时任务
系统调用
操作系统提供给应用程序/程序员使用的接口
请求操作系统内核服务的唯一方式
调用操作系统所提供的一些子功能。
只能通过代码/用户程序间接使用
用户不能直接使用
不许用户直接操作各种硬件资源
作用
保证系统的稳定性和安全性,防止用户进行非法操作
系统调用
程序接口=系统调用=系统调用命令=广义指令
发出系统调用
用户态
陷入指令发起调用
处理系统调用
核心态
进程切换
系统调用执行过程中的事件
只能发生在内核态
什么功能要用系统调用实现
分类
设备管理
文件管理
进程控制
进程通信
内存管理
与共享资源有关的操作都须通过系统调用的方式向操作系统内核提出服务请求
如存储分配、I/O操作、文件管理等
系统调用的过程
传参
正在运行的进程传递系统调用参数
执行陷入指令
用户态
并将返回地址压入堆栈以备后用
操作系统内核程序处理系统调用请求
核心态
返回应用程序
系统调用与库函数的区别
系统调用:
操作系统为用户提供的接口
运行在内核态
面向硬件
通常不可替换
开销较大
需要在用户空间和内核空间中进行上下文切换
库函数
被封装在库文件中的可复用的代码块
由编程语言提供
属于用户程序
运行在用户态
系统调用的上层
隐藏访管指令的细节
有的库函数与系统调用对应(对系统调用的进一步封装)
有的与系统调用无关(取绝对值)
普通的函数调用不涉及请求操作系统服务
可以很方便地替换
属于过程调用
开销较小
系统调用和一般过程调用对比
系统调用
需要保存 PSW 和 PC 的值
被调用程序是系统级程序
运行在内核态
一般过程调用
只需保存 PC的值
被调用程序与调用程序运行在同一个状态
可能是系统态,也可能是用户态
1.4操作系统体系结构
分层结构

0层为硬件(最底层)
最高层(层N)为用户接口
特点
内核分多层
每层可单向调用(相邻)更低一层提供的接口
不能跨层调用
单向依赖
优点
1||| 结构清晰便于调试
简化了系统的设计和实现
调试某层时发现错误,则错误应在这层
2||| 层间接口固定,方便维护、扩充
替换一层中的模块时,只要不改变层间的接口,就不会影响其他层
缺点
1||| 难以合理定义各层的边界
2||| 效率低,不够灵活
仅可调用相邻底层
系统调用执行时间长
模块化
将操作系统按功能划分为多个模块,各模块之间相互协作。
内核=主模块+可加载内核模块
主模块:只负责核心功能,如进程调度、内存管理
没有这些模块操作系统就无法运行
可加载内核模块
可以动态加载新模块到内核,而无需重新编译整个内核
优点
1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
知道你用那个功能即使你还没完成,但我能用那个名字称呼
2.支持动态加载新的内核模块,增强OS适应性
(如: 安装设备驱动程序、安装新的文件系统模块到内核)
影响系统的可扩展性
3.任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
缺点
1.模块间的接口定义未必合理、实用
2.模块间相互依赖。更难调试和验证
宏内核(大内核/单内核)
所有的系统功能都放在内核里
大内核结构的OS通常也采用了“模块化”的设计思想
优点
性能高,内核内部各种功能都可以直接相互调用
缺点
1.内核庞大功能复杂,难以维护
2.大内核中某个功能模块出错就可能导致整个系统崩溃
微内核
最核心的功能放入内核
原语、通信功能、中断处理、机制部分
进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态
核心功能和其他服务分离
可扩展性
添加服务不必修改内核
并发性
不同服务可在不同处理器上并行执行
可移植性
优点
1||| 可靠性、安全性、稳定性高
内核小功能少、易于维护
2||| 内核外的某个功能模块出错不会导致整个系统崩溃
缺点
1||| 性能低
频繁的切换用户态/核心态
2||| 用户态下的各功能模块不可以直接相互调用
只能通过内核的“消息传递"来间接通信
外核
内核
负责进程调度、进程通信等功能
外核
负责为用户进程分配未经抽象的硬件资源
未经抽象的硬件资源
磁盘的存储空间,内存的存储空间
抽象
实际地址不连续,逻辑地址连续
负责保证资源使用安全
已经分配的资源不能被其他的进程访问
优点
1.外核可直接给用户进程分配“不虚拟、不抽象"的硬件资源,使用户进程可以更灵活的使用硬件资源
从逻辑连续因为频繁访问而分配物理连续的空间
2.减少了虚拟硬件资源的"映射层“,提升效率
虚拟地址映射为实际物理地址
缺点
1. 降低了系统的一致性
有的申请的虚拟地址空间,需要映射,有的申请实际物理地址空间,不需要映射,管理需要考虑各种情况
2.使系统变得更复杂
1.5操作系统引导
操作系统要启动,数据要被放到主存里面
主存由RAM和ROM组成
ROM芯片
被集成在电脑主板上
存储BIOS
基本输入输出系统
由一系列程序组成
系统设置程序
基本输入/输出程序
开机自检程序
系统启动自举程序(ROM引导程序)等。
断电不易失
RAM
手机内存和电脑内存是多少通常说的是RAM
断电易失
磁盘

主引导记录MAR
磁盘的第一块
告诉计算机如何处理分区表,如何定位操作系统
查找活动分区
包括
磁盘引导程序
分区表
数据结构
说明在磁盘中每个分区分别占多大的空间,以及每个分区的地址范围
活动分区/主分区
安装了操作系统的分区
用来启动操作系统
结构

引导记录PBR
负责找到(操作系统初始化程序)启动管理器
完整的操作系统初始化程序可在根目录下找到
两种引导程序
自举程序
位于主板ROM芯片中
BIOS的组成部分
用于启动具体的设备
启动管理器
位于装有操作系统硬盘的活动分区的引导扇区中
用于引导操作系统。
操作系统引导boot

过程
1||| CPU加电(引导过程)
从一个特定主存地址开始,取指令
2||| 执行JMP指令跳转到BIOS
执行ROM中的引导程序
3||| 登记BIOS中断例程入口地址
4||| 硬件自检
5||| 主引导记录MBR读入,执行磁盘引导程序
6||| 扫描硬盘分区表
7||| 加载分区引导记录PBR,执行分区引导程序
从根目录下找到完整的启动管理器
8||| 加载启动管理器,执行操作系统初始化程序
9||| 加载操作系统
ROM引导程序
指示CPU将磁盘的主引导记录读入内存
注
常驻内存的只是操作系统内核,其他部分仅在需要时才调入。
1.6虚拟机
传统计算机

虚拟机
虚拟机
同义术语:虚拟机管理程序/虚拟机监控程序Nirtual Machine Monitor/Hypervisor
使用虚拟化技术,将一台物理 机器虚拟化为多台虚拟机器(Virtual Machine, VM)
每个虚拟机器都可以独立运行一个操作系统
两类虚拟机
分类
第一:类VMM,直接运行在硬件上

虚拟机会将一个物理机器虚拟化为多台虚拟机器
把一个总的硬件资源划分为多个部分,分别给各个虚拟机来使用
每一台虚拟机上面可以安装各自的操作系统
在每个操作系统之上又可以运行各自的用户进程
类似于传统的操作系统
负责直接管理硬件资源并分配硬件资源
只有虚拟机管理程序运行在内核态,可以使用特权最高的指令
上层的操作系统和应用程序运行在用户态
以为自己运行在内核空间
实际用户空间(虚拟内核空间)
当上层操作系统想要使用特权指令,会被虚拟机管理程序截获,将对方想执行的特权指令进行等价转换。
直接运行在硬件之上,管理硬件,分配硬件资源
第二类VMM,运行在宿主操作系统上.

一部分运行在用户态
一部分运行在内核态
内核态的部分是以虚拟机驱动程序的方式加载在操作系统内核之中
用户进程的系统调用会被虚拟机管理程序截获
由VMM进行一些处理代替其向底层的宿主操作系统发出系统调用来请求底层宿主操作系统的服务
区别

把特权指令中敏感指令放在0环,不敏感的指令放在一环
虚拟机管理程序不需要检查每一环特权指令的执行,只需要检查某些敏感指令的执行
只有VMM运行在最高特权级
上一层操作系统运行在次高优先级
用于区分在执行什么程序(内核?应用)