操作系统课程简介
什么是系统
由一群有关联的组件/部件/模块/个体组成,根据某种规则运作,能完成单个组件不能单独完成的工作的群体/整体。
系统特征
- 系统是复杂的
- 不同组件之间需要交互
- 各个组件本身也很复杂
- 系统设计是多目标的
- 系统工作与理论工作
- 理论工作:寻找极限
- 系统工作:追求均衡/协调
- 在实现系统前先明确系统设计目标
什么是操作系统
操作系统是应用和硬件之间的一层软件。
- 对底层硬件进行管理、实现共享且保证隔离
- 对上层软件提供硬件抽象、实现共用功能和操作接口
操作系统能做什么
- 运行一个或多个程序
- 提供抽象与接口(例如输入和输出、使用硬件资源等)
- CPU、内存等的资源使用、管理与隔离
- 数据持久化与存储设备管理
- 并发访问控制(控制多个程序访问相同资源时的正确性)
- 保证操作系统不因为一个用户程序的崩溃而崩溃
- 将数据传递给远程的计算机
- 虚拟机和容器技术
- 保护数据的安全等
操作系统的发展
- 大型机
- 1954——IBM 701计算机
- OS作为一个通用函数库
- 用户提交程序,运行完后切换下一个用户
- 1959——IBM 709计算机
- 支持批处理
- 1954——IBM 701计算机
- 小型机
- 1960s
- 支持多个程序并行
- CPU、内存和存储资源共享与隔离
- 1965——Mulitics 和 1974——UNIX
- 分时操作系统(Time-sharing
OS),使用
Round-Robin算法。
- 分时操作系统(Time-sharing
OS),使用
- 1960s
- 个人计算机
- Alto OS
- GUI
- 以太网
- 文件系统
- 顺序执行的单用户系统
- DOS Linux MacOS Windows
- Alto OS
- 集群
- 网络连接的计算机
- 商用操作系统+分布式框架(MapReduce、Spark)
- 云计算
- 数据中心是一台计算机,按需分配资源
- Mesos和Kubernetes作为数据中心的操作系统
- 物联网
- 嵌入式OS(RT-Thread,LiteOS)
- 移动端OS(iOS,Android)
如何学好操作系统
理论联系实际,不断地阅读代码和开发代码
讲授内容
- 操作系统结构
- 处理器:进程、线程和中断
- 并发:同步、通信
- 内存:虚存管理
- 设备:驱动
- 存储:文件系统