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