定义和目标 链接到标题
定义 链接到标题
一种
- 管理系统资源,
- 控制程执行,
- 改善人机界面,
- 提供各种服务,
- 合理组织计算机工作流程
- 为用户有效使用计算机提供良好运行环境 的系统软件
对上 链接到标题
与硬件交互,负责管理CPU的工作、访问存储器、设备驱动及中断处理等
对下 链接到标题
与用户及应用程序交互,提供用户使用和程序执行服务
设计目标 链接到标题
- 方便用户使用
- 扩充机器功能
- 管理各类资源
- 提高系统效率
- 构筑开放环境
资源管理技术 链接到标题
信息
资源:分配给用户的计算机硬件和软件资源
- 硬件资源:CPU、内存、I/O设备等
- 软件资源:操作系统、应用程序等
资源复用 链接到标题
- 空间复用:将资源划分为多个小块,分配给不同用户使用
- 时间复用:将资源按时间片段分配给进程使用
资源虚化 链接到标题
把一个物理资源变成逻辑上的多个逻辑资源的技术。
很通俗的理解就是 虚拟机!,比如VMware。
资源抽象 链接到标题
屏蔽资源访问的复杂细节,提高易用性
信息
最基本的资源抽象
- 进程:CPU资源的抽象
- 虚存:对物理主存和辅存的抽象,为集成模拟了一个更大的连续地址空间
- 文件:对数据、磁盘等设备的抽象
特性 链接到标题
- 并发性
- 共享性
- 异步性
并发性 链接到标题
定义:支持多个进程同时运行的能力
- 好处:提高资源利用率,增加系统吞吐量
- 坏处:增加了系统的复杂性,可能导致资源竞争和死锁等问题
并行性 链接到标题
两个或两个以上的事件或活动在同一时刻发生
警告
并行性是并发性的一个特例,指的是在同一时刻发生的事件或活动。
也就是说
$$
\text{并行性} \subseteq \text{并发性}
$$
共享性 链接到标题
操作系统中的资源可被多个并发/行执行的进程所使用
异步性 链接到标题
也就是随机性:
- 作业到达系统的类型和时间是随机的
- 进程执行、暂停、推进速度等都随机的
- 操作员发出命令或按按钮的时刻是随机的
- 程序运行发生错误或异常的时刻是随机的
- 硬件和软件中断事件发生的时刻是随机的
操作系统的形成与发展 链接到标题
人工操作阶段 链接到标题
- 无操作系统,计算机由人工操作,通过输入机器语言和机器指令来完成任务。
- 进一步的有了汇编语言 但是缺点仍然是明显的。
管理程序阶段 链接到标题
- 自动控制和处理作业流
- 提供一套操作命令
- 提供设备驱动和I/O控制功能
- 提供库程序和程序装配功能
- 提供简单的文件管理功能
多道程序设计 链接到标题
允许多个作业同时进入一个计算机系统的主存储器并启动进行交替计算的方法。 $$ \text{处理器效率}=\frac{\text{CPU工作时间}}{\text{CPU工作时间}+\text{I/O等待时间}} $$
信息
- 本质是因为计I/O设备和CPU可以并行工作
- 中断和通道使得并行处理成为可能
道数的选择 链接到标题
假如一道程序等待I/O操作的时间占其运行时间的比例为p,,则当内存中有n道程序时,CPU的利用率为: $$ \text{CPU利用率}=1-p^n $$ n称为道数或者度数
注释
不难知道,p一定时n越大,CPU利用率越高。
多重处理系统 链接到标题
配置了多个物理CPU,从而能真正同时执行多道程序。
操作系统的发展和分类 链接到标题
下面介绍的属于是早期的“自动化”操作系统了。
批处理系统 链接到标题
- 用户脱机工作
- 成批处理作业
- 多道程序运行
- 作业周期时间长
分时操作系统 链接到标题
- 用户同时联机
- 用户独立操作
- 命令及时响应:这是不同于批处理系统的最显著特点
- 用户联机交互
信息也就是所谓的哑终端。
实时操作系统 链接到标题
一般用于实时性较高的系统中,如飞行器、导弹、核电站等,不允许高延迟
- 必须提供及时的响应和高可靠性
- 若处理超过预定时间,则视为错误
操作系统的服务和接口 链接到标题
基本服务 链接到标题
面向进程
- 创建程序和执行程序
- 数据I/O和信息存取
- 通信服务
- 错误检测和处理
- 资源分配、统计、 保护等
用户接口 链接到标题
面向用户
程序接口 链接到标题
System Call
信息
与C等编程语言的function call有一点类似,
这里的SC则相当于是一个最底层的库,但是与一般的FC不同,可以说是FC更底层的实现(见后面一页的图)通过中断来实现
- 将通过将参数传递给这个函数,
- 再通过和这个函数将请求传递给内核,
- 内核再通过中断来实现对硬件的访问
- 最后将结果返回给调用者
好处
- 保证了系统的安全性
- 封装资源抽象,编程效率更高