1.1 什么是操作系统?
操作系统的定义
- 没有公认的精确定义
- 操作系统是一个==控制程序==
- 执行用户程序,给用户程序提供各种服务
- 操作系统是一个==资源管理器==
- 提供访问计算机软硬件资源的高效手段
-
解决资源访问冲突
操作系统软件的组成
- Shell --命令行接口
- GUI --图形用户接口
- Kernel --操作系统的内部
操作系统内核特征
-
并发
- 计算机系统中同时存在多个运行的程序,需要OS管理和调度
-
共享
- “同时”访问(宏观)
- 互斥访问(微观)
-
虚拟
- 利用多道程序设计技术,让每个用户都觉得有一个计算机为他服务
-
异步
- 程序的执行并不是一贯到底,而是走走停停的,向前推进的速度不可预知
- 只要运行环境相同,OS需要保证程序运行的结果也要相同
1.2 为什么学习操作系统?
- 综合课程 :结合许多不同课程
- 材料:操作系统概念和原理、源代码
- 技能:操作系统的设计和实现
- 目的
- 地位:计算机科学研究的基石之一
- 操作系统具有挑战性
- 权衡
- 硬件
1.3 操作系统实例
- UNIX
- Linux
- Windows
1.4 操作系统的演变
硬件抽象和协调管理
- 单用户系统
- 批处理系统
- 多道程序系统
- 保持多个工作在内存中并且在各工作间复用CPU
- 系统效率和系统吞吐量
- 分时
- 定时中断用于工作对CPU的复用
- 交互性、及时性
- 个人计算机:每个用户一个系统
- 分布式计算:每个用户多个系统
- 网络支持成为一个重要的功能
1.5 操作系统结构
简单结构
- MS-DOS-在最小的空间,设计用于提供大部分功能
- 没有拆分为模块
- 接口和功能水平没有很好的分离,主要用汇编编写
分层结构
- 将操作系统分为多层
- 每层建立在低层之上
- 最底层是硬件
- 最高层是用户界面
-
使用模块化,每一层仅使用更低一层的功能(操作)和服务
微内核结构(Microkernel)
- 尽可能把内核功能移到用户空间
- 用户模块间的通信使用消息传递
- 好处:灵活、安全...
- 缺点:性能
外核结构(Exkernel)
- 让内核分配机器的物理资源给多个应用程序,让每个程序自己决定分配资源
- 保护与控制分类
- 程序能连接到操作系统库(libOS)实现了操作系统抽象