计算机层次结构
- 硬件层:处理器(CPU)、存储器、I/O设备…
- 操作系统层:操作系统软件
- 系统程序层:编译器、数据库系统 …
- 应用层:面向特定用户和特定应用的软件
操作系统的任务
- 为应用开发人员提供简洁易用的资源抽象
- 管理种类繁多、纷繁复杂的硬件资源
资源管理(处理器管理、存储管理、设备管理、文件管理等)
控制执行(进程调度、并发进程控制等)
提供接口(作业管理等)
操作系统特征
- 并发性
- 并发性:多个事件活动在同一时间段发生。提高效率
- 并行性:完全同时发生
- 共享性
- 资源可以被多个并发的任务使用
- 互斥方位
- 同时访问
- 异步性
- 处理事件和事件不定
- 虚拟性
- 把物理实体变成逻辑上的多个对应物
操作系统运行机制
- 计算机引导过程
- BIOS->Bootloader->Kernel->user-space init
- 操作系统初始化到用户程序执行
- 操作系统的基本形态
- 操作系统代码如何获得主导地位
- 硬件机制的保障:核心态和用户态
- 主存保护机制
- 用户代码的执行与切换机制
操作系统的发展与形成
- 手工操作阶段, 电子继电器-真空管
- 用户独占,效率低
- 人工参与,浪费时间且出错
- 全程联机,导致计算时间长
- 管理程序阶段,晶体管
- 批处理方式,减少了人工干预,提高了效率
- 单道程序设计,导致系统资源利用率仍然较低
- 独占方式使用,单个作业等待时间过长
- .多道程序设计和分时系统,集成电路
- 多道批处理系统。其目标是提高作业的输入、输出和整个系统资源的利用率
- 分时系统。其目标是在多个用户共享时,保证能够以较快的速度响应用户的命令
操作系统分类
按功能与使用方式分类(基本分类方法):
- 批处理操作系统
- 用户脱机工作
- 成批处理作业
- 多道程序运行(早期为单道程序运行)
- 作业周转时间长
- 分时操作系统
- 同时性,多个用户同时
- 独立性,每个用户相对独立
- 及时性,快速响应用户请求
- 交互性,用户联机工作
- 实时操作系统:必须在一个事先定义好的时间限制内,对外部或内部的事件进行响应和处理
- 硬实时系统
- 软实时系统
操作系统提供
- 用户接口
- 程序接口
- 系统调用,应用程序请求内核操作系统服务的过程。由用户程序调用访管指令(陷入trap, 或异常)开始
- 参数传递方式
- 由访管指令或陷入指令自带参数(直接参数)
- 紧邻访管指令存放参数
- 通过CPU的通用寄存器传递参数:直接参数(值)。间接参数(值存放的主存地址)
- 主存中开辟专用堆栈区域传递参数
- 参数传递方式
- 和函数调用的区别
- 调用和实现的方式不同。call,trap,int
- 被调用函数代码的位置不同,一个是函数程序,另一个是系统调用实现,在内核代码里
- 提供的方式不同
操作系统的结构
- 内核的静态结构,模块的划分和关系
- 内核的运行模型,内核的运行过程,与其上层的应用之间关系
操作系统结构发展与分类
- 整体性结构
- 结构紧密,组合方便,效率高
- 模块独立性差,结构不清晰,正确性难保障,可靠性差,维护困难
- 层次式结构
- 维护方便,每层功能相对独立,复杂问题可分层化简
- 通信开销大,效率较低
- 虚拟机结构
- 灵活方便,满足不同用户对机器的需求
- 运行效率相对较低
- 客户服务器以及微内核结构
- 基本设计原则是策略与机制的分离
- 具有较好的一致性、可扩展性、可移植性、可靠性
- 通信开销大,效率稍低
操作系统举例
- DOS
- Windows
- UNIX
- MiniX
- Linux
问题
- 在Fork出来的进程应该是完全拷贝,执行exec之后会不会继续回到和原来进程一样的位置继续执行还是就结束了(被exec的东西替换了)