第二章 操作系统结构
基本内容分为:操作系统为用户、进程和其他系统提供的服务;组织操作系统的不同方法
操作系统服务
(以下服务为提高系统高效运行)
- 用户界面(UI):命令行界面(CLI)和图形用户界面(GUI)
- 程序执行(Program execution):系统能将程序装入到内存并运行,程序能够结束执行,包括正常结束跟非正常结束
- I/O操作(I/O operation):用户无法直接控制I/O设备,只能由操作系统提供相关方法
- 文件系统操作(File-system manipulation):见后面章节
- 通信(Communications):同一计算机的不同进程、不同计算机的进程之间的通信。共享内存或者消息交换技术来实现
- 错误检测(Error detection):需要知道错误发生的位置,以及根据位置决定采取何种适当的动作
(以下服务为提高效率)
- 资源分配(Resource allocation):为每一个作业分配资源
- 统计(Accounting):记录用户所用资源
- 保护和安全(Protection and security):通过一定的信息,获取资源或者其他进程的权限
操作系统的用户界面
命令解释程序
- 有多种Shell
- 作用:获取并执行用户指定的下一条指令
- 大多采用识别指令并装入内存,调用相关的系统调用即可
图形化界面
- 基于鼠标的窗口和菜单系统作为接口
系统调用(system call)
- 调用一般用C或C++来实现的
- 一般直接通过更上一层的API来编辑程序,而不是底层的系统调用
系统调用类型
- 系统调用可分为五大类:进程控制、文件管理、设备管理、信息维护和通信
- 进程管理:需要能够正常或者非正常中断其执行
- 文件管理:创建、删除、打开、关闭、读写、重定位
- 设备管理
- 信息维护
- 通信:两种方式是消息传递模型和共享内存模型
- 消息传递模型:先通过主机名或进程名进行连接,在进行消息的传递
- 共享内存模型:通过读写公共区域来交换信息
系统程序
- 文件管理:创建、删除、复制、重命名、打印、转储、列出和操作文件和目录
- 状态信息:从系统得到有关计算机的一些相关详细信息
- 文件修改
- 多种程序语言支持
- 程序装入和执行
- 通信
- 系统工具的相关定义
操作系统设计和实现
- 区分用户目标和系统目标
- 策略和机制:机制决定如何做,策略决定做什么;策略随时间跟位置会变换,相应的机制也会发生改变
操作系统的结构
- 简单结构:没有划分板块
- 分层方法:底层为硬件,最高层为用户程序接口,每一层通过利用较低一层来实现;优点是构造和调试的简单化;缺点是多层划分带来参数调用的额外开销
- 微内核:只包括最小的进程和内存管理以及通信功能,优点是提供更好的安全性和可靠新,缺点是系统总开销大
- 模块划分
虚拟机
- 硬件实现共享(CPU、内存、磁盘、网卡等)
- 实现:虚拟软件运行在内核模式;虚拟机运行在用户模式上
系统生成
系统启动
- 启动操作系统
- 引导系统:将操作系统装入内核以启动程序
- 或者引导程序或者引导装载程序