第一章
第一节 操作系统的概念、功能与目标
-
操作系统作为
用户接口
,提供了如下功能:命令接口(允许用户直接使用)
- 联机命令接口:交互(如命令行,用户说一句系统做一句)
- 脱机命令接口:用户说一句系统做一堆
程序接口(允许用户通过程序间接调用)
- 由一组系统调用组成(程序接口 = 系统调用 = 广义指令)
GUI
-
自顶向下的层次结构
用户
应用程序
操作系统
裸机(硬件)
第二节 操作系统的特征(4个特征)
并发
、共享
互为存在条件,并发
是虚拟
和异步
的前提并发:指两个事情同时发生(宏观上同时,微观上交替发生)
- 操作系统的
并发
,指同时存在多个运行着的程序- 并行是指宏观、围观都是同时发生(如多线程)
共享:系统钟的资源可以被内存的多个并发进程共同使用
两种共享方式
- 互斥共享:一个时间段内只允许一个进程使用
- 同时共享:一个时间段内只允许多个进程使用
虚拟:将物理实体变成若干个逻辑上的对应(如虚拟存储)
两种虚拟技术(
并发性
是前提)
空分复用技术(如虚拟存储器)
时分复用技术(如虚拟处理器)
异步:多程序环境下,允许多个程序并发执行。因为多程序的原因,各程序的执行“走走停停”而不是一贯到底(
并发性
是前提)
第三节 操作系统的发展与分类
手工操作阶段(没有操作系统)
批处理阶段
单道批处理系统
- 内存中只能运行一道程序,CPU大量空闲以等待I/O完成
多道批处理系统
- 实现了
并发
和共享
- 没有人机交互
分时操作系统
- 计算机以时间片为单位,轮流对各用户\作业提供服务
分时操作系统是完全“公平”的,任务不存在优先级
- 用户可通过终端与计算机交互
实时操作系统(及时性和可靠性)
硬实时系统:绝对严格的时间内完成处理
软实时系统:偶尔违反时间约定
网络操作系统
分布式操作系统
个人计算机系统
第四节 OS的运行机制和体系结构
运行机制
两种指令
特权指令:只允许内核程序使用的指令
非特权指令:内核和应用程序均可使用(如加减乘除)
两种处理器状态
核心态和用户态,是
CPU
来“分辨”两种指令的方式使用程序状态寄存器(PSW)中的二进制位区分两种状态
核心态(内核态、管态):此时正在执行内核程序,此时可以执行特权指令
内核态 -> 用户态:一条修改状态寄存器
PSW
的特权指令用户态(目态):此时运行应用程序,只能执行非特权指令
用户态 -> 内核态:中断引起,由硬件自动完成
两种程序
内核程序:实现操作系统的程序,很多内核程序组成了操作系统内核
Kernel
,是最接近硬件的部分应用程序:操作系统之上的程序
第五章 中断和异常
中断的作用:将
CPU
的使用权从应用程序交还到内核程序中断的类型
内中断:异常
内中断的产生与当前执行的指令有关
指令检查时发生
- 陷阱、陷入
程序请求操作系统内核的服务,使用“陷入指令”(陷入指令不是特权指令)
应用程序故意引发
- 用户程序中含有错误条件
错误条件引起
由内核程序修复故障,再交回使用权
(比如缺页故障)
- 用户程序中含有(“非法的”)特权指令
致命错误,内核也无法修复
不将使用权再交回应用程序,而是直接终止程序
(比如整数除以0,用户程序非法调用特权指令)
中断来自
CPU
内部外中断:狭义的中断
与当前指令无关
- 发生时钟中断:实现并发的条件
时钟并发:
应用程序1(用户态) -> 中断处理的内核程序(内核态) -> 应用程序2(用户态)
每个时钟周期的末尾都会执行
- 外接设别(如I\O)中断
中断信号来自
CPU
外部中断的基本原理:
不同的中断信号由不同的中断程序处理
根据中断信号类型查询“中断向量表”
中断处理程序是一种内核态程序
第六节 系统调用
什么是系统调用:系统调用使处理器从用户态进入核心态
系统调用是指可供应用程序调用的,提供操作系统服务的特殊函数,保证系统的稳定性和安全性防止非法操作
操作系统对于上层应用程序的接口分为
命令接口
和程序接口
(本章第一节)系统调用按照功能分类
设备管理:设备的请求、释放、启动
文件管理:文件的读、写、创建、删除
进程控制:进程的创建、撤销、阻塞、唤醒
进程通信:进程间的消息和信号传递
内存管理:内存的分配和回收
系统调用的处理是核心态下完成,是一种特权指令
系统调用和库函数
库函数(部分)是部分系统调用的封装
系统调用的过程:传递系统调用参数 -> 执行陷入指令(用户态,引发内中断) -> 执行系统调用相应服务(核心态) -> 返回用户程序继续执行