1 操作系统基本概念
清华大学 操作系统课笔记
功能定义
- 向上管理应用程序,并为应用程序提供服务
- 向下管理、分配硬件资源
操作系统拆分
- Linux、Windows等操作系统提供的界面接口(Shell)
- 操作系统内部kernel
kernel内部组件
- CPU调度
- 物理内存管理
- 虚拟内存管理
- 文件系统管理
- 中断和设备驱动
kernel特征
- 并发:
一段时间内,系统中同时存在多个运行的程序,需要OS管理和调度
(并行:一个时间点内,系统中同时运行多个应用程序,需要多CPU支持) - 共享:
- 同时访问
- 互斥共享
- 虚拟:
利用多道程序设计技术,使每个用户都觉得有一个计算机专门为自己服务- CPU → 进程
- 磁盘→文件
- 内存→地址空间
- 异步:
并发的程序不是一贯到底,而是走走停停,但只要运行环境相同,结果也要相同
如何学习OS
- 我听到的我会忘记
- 我看到的我能记住
- 只有我做过的我才能理解
发展
硬件发展和需求变化共同推动OS发展
结构设计发展
早期
- PC:简单操作系统MS-DOS
- 单体操作系统
- 没有模块化、分层设计
- 没有保护机制,易受攻击、破坏
- Server:Unix
- 分层、模块化设计
微内核
- 内核只放基本功能(如中断处理、消息传递),其他功能(如FS、内存管理)通过外层模块实现。模块间不通过函数调用机制,仅通过消息传递机制通信
- 降低了模块间的耦合度,灵活、安全
- 问题:服务模块交互开销较大,性能较差,因此工业界目前较少使用
外核
- Kernel分成两个ExoKernel(外核)和LibOS(操作系统库)
- ExoKernel负责管理硬件,向上为LibOS服务。针对不同的应用程序可以设计不同的LibOS(有利于提升效率)
- 目前停留在学术研究
VMM(虚拟机监视器)
- 位于操作系统之下
- 虚拟出多台完整的计算机,虚拟机并不知道自己运行在VMM
- 目的:充分利用富余的计算机资源