第1章 计算机系统概述
1.1 操作系统的基本概念
1.1.1 操作系统的概念
操作系统 operation System OS
负责管理硬件资源,为应用程序提供运行环境,充当硬件与用户之间的桥梁,是控制和管理计算机系统软硬件资源、合理调度任务与分配资源,并为用户及其他软件提供统一接口与运行环境的最基本的系统软件。
1.1.2 操作系统的功能和目标
1.操作系统作为计算机系统资源的管理者
处理机管理:进程的管理
存储器管理:为多道程序提供良好的内存运行环境
设备管理:处理用户的I/O请求,屏蔽设备差异
文件管理:文件系统 File System
2.作为用户与计算机硬件系统之间的接口
用户接口:联机用户接口(命令行接口),面向交互式用户;脱机用户接口(作业控制语言),用于批处理系统;图形用户接口(GUI),通过图标、菜单、对话框等图形元素替代文本命令。
程序接口:核心为系统调用。
3.操作系统实现了对计算机资源的扩充
将逻辑扩展为一台功能更强、使用更便捷的逻辑机器。
1.1.3 操作系统的特征
并发(Concurrency):同一时间间隔内发生
共享(Sharing):互斥共享、同时访问两种方式。互斥共享的独占资源被称作临界资源。
虚拟(Virtual):时分复用和空分复用。将一个物理实体,映射为多个逻辑上的对应物。
异步(Asynchronism):多个进程以不可预知的速度断续推进。
1.2 操作系统发展历程
手工操作阶段(未配备OS):人工操作方式;脱机I/O方式。
批处理阶段(OS开始出现):单道批处理系统、多道批处理系统(依赖中断技术,宏观并行,微观串行)。
分时操作系统:划分时间片。以人机交互为核心目标。通识性、交互性、独立性、及时性。
实时操作系统:严格的时间限制内完成关键任务。确定性、高可靠性和强时效性。
网络操作系统和分布式系统:拓展网络功能和多台计算机组成的集合。前者仅实现资源功能和通信功能,后者向用户提供单一系统映像。
微机操作系统:单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统。
本节知识点:甘特图、CPU与I/O轮转
1.3 操作系统的运行环境
1.3.1 操作系统内核
操作系统内核一般是分层设计下,和硬件紧密相关的模块和核心组件。这种设计有两个主要目的:
保护核心模块面授应用程序破坏
提升操作系统运行效率
大多数操作系统包含以下两种功能:
支撑功能:为OS其他模块提供基础支持:时钟管理、中断机制、原语。
系统资源管理功能:进程管理、存储器管理、设备管理。
1.3.2 处理机的双重工作模式
内核态,用户态;特权指令,非特权指令。
硬件从内核态开始工作,应用程序一般运行在用户态。
特权指令仅允许在内核态执行。
1.3.3 中断和异常的概念
用户态进入内核态的唯一合法途径。
1.中断和异常的定义
中断(Interrupt):外中断,来自CPU执行指令外部的事件。分有可屏蔽中断INTR、不可屏蔽中断NMI
异常(Exception):内中断,来自CPU执行指令内部的事件。分有 故障(Fault)、自陷(Trap)、终止(Abort)。
2.中断和异常的分类
软件中断:故障、自陷。
硬件中断:终止、外中断。
3.中断和异常的处理过程
当CPU执行用户程序的第i条指令时,若该指令触发异常,或在指令执行结束后检测到中断请求信号,则CPU会打断当前程序,转入相应的中断或异常处理程序执行。若问题可悲处理程序解决,则对于异常,通常在处理完成后返回第i条指令重新执行;而对于中断,则在处理完成后返回第i+1条指令继续执行。
通常情况下,中断和异常的具体处理有OS完成。
中断处理和子程序调用的比较:
中断处理程序与被中断的程序相互独立,无固定关联;子程序与主程序属于同一程序的主从关系;
中断的产生通常是随机的;子程序调用由CALL指令显式触发。
子程序调用完全由软件实现;中断处理需要硬件电路支持。
中断处理程序的入口地址由中断向量表直接提供;子程序的入口地址由CALL指令中的地址码指定。
调用中断处理程序和子程序均需保护程序计数器(PC)的内容:前者由硬件在中断响应过程中自动保存,后者由CALL指令在执行时将当前PC压入栈中。
响应中断时,需对同时到达的多个中断请求进行优先级裁决;子程序调用不需要。
1.3.4 系统调用
OS提供给应用程序使用的接口。
设备管理
文件管理
进程控制
进程通信
内存管理
与普通过程调用相比:
运行状态不同(内核态);状态转换不同(陷入指令);返回机制不同;嵌套调用限制不同(内核栈空间和用户栈大小)。
系统调用的处理过程:
传递系统调用参数:用户程序将系统调用号及所需参数压入堆栈;
执行陷入指令并切换至内核态:CPU从用户态切换至内核态,硬件与内核协同保存现场,将PC/PSW(Program Status Word)及通用寄存器内容压入内核堆栈;
定位并执行相应服务程序:根据系统调用号查询系统调用表,找到对应处理程序的入口地址并执行具体的服务逻辑。
恢复现场并返回用户态。
1.4 操作系统结构
1.分层法
单向依赖。
优点:便于调试和验证;易于扩充与维护
缺点:层次划分困难;运行效率较低。
2.模块化
模块-接口法
衡量模块独立性的主要标准:
内聚性
耦合性
优点:提高了操作系统设计的正确性、可理解性和可维护性;增强了系统的可适应性,便于功能扩展;支持并行开发,加速OS研制过程。
缺点:模块间的接口规定很难满足对接口的实际需求;各模块设计着齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序
3.宏内核
将系统的主要功能模块集成在一个紧密耦合的整体中,运行在内核态。
4.微内核
关键词:微内核;多个服务器;信息传递机制;机制与策略分离
仅将最基本的功能保留在内核,其他非核心功能移至用户态运行。
移出的功能被组织为若干独立的服务程序,彼此之间以及与客户进程之间的交互均通过微内核提供的信息传递机制完成。
微内核;多个服务器。
微内核:
与硬件紧密相关的部分
基本的资源管理机制
客户与服务器间的通信支持
微内核的基本功能
进程管理:创建、切换、调度队列管理。其余策略由用户态进程管理服务器实现。
低级存储器管理:硬件相关的地址转换机制。
中断和陷入处理
微内核的特点
扩展性和灵活性
可靠性和安全性
可移植性
分布式计算
缺点是性能问题,系统调用延迟增加
5.外核
exokernel
将物理资源直接暴露给用户级系统,自身仅负责资源的安全分配与隔离。
核心职责:将底层硬件资源划分为互不重叠的子集,并分配给不同的用户级系统。
在外核之上,可在用户空间构建库操作系统(library OS)。
优点:
减少抽象开销
提升灵活性与性能
清晰分离保护与实现
1.5 操作系统引导
CPU激活与BIOS初始化:中断向量表
硬件自检与启动设备选择:CMOS,首个有效的启动设备
加载主引导记录(MBR):引导代码,硬盘分区表
定位活动分区并加载分区引导记录(PBR):活动分区
加载启动管理器
加载操作系统内核:内核接管系统控制权,重建中断处理机制,不再依赖BIOS
内核初始化与用户环境启动:内存管理模块-内核页表及用户进程地址空间框架;进程调度模块-进程控制块链表、就绪队列与阻塞队列;设备驱动模块-设备控制块、设备分配表以及I/O缓冲区管理结构
1.6 虚拟机
1.6.1 虚拟机的基本概念
通过虚拟化技术将一台物理计算机抽象为多肽逻辑上独立的计算环境,隐藏底层物理硬件的细节
1.第一类虚拟机管理程序
裸金属架构
虚拟机管理程序直接晕在物理硬件之上,系统中唯一处于最高特权记得软件。
负责管理硬件资源和并发调度多个虚拟机。
客户操作系统运行于虚拟内核态。
2.第二类虚拟机管理程序
虚拟机管理程序运行在宿主操作系统之上
1.7 本章疑难点
并发与并行
特权指令与非特权指令
访管指令(Trap)与访管中断
微内核的四个方面:足够小的内核;客户/服务器模式;机制与策略分离;面向对象技术
甘特图