课程概述
# 操作系统概述
课件
# 教学内容
# 主要内容
- 操作系统结构
- 中断及系统调用
- 内存管理
- 进程及线程
- 处理机调度
- 同步互斥
- 文件系统
- I/O子系统
# 练习及实验
课堂练习
操作系统实验
- 实验0: 实验环境准备
- 实验1: 系统启动及中断
- 实验2: 物理内存管理
- 实验3: 虚拟内存管理
- 实验4: 内核线程管理
- 实验5: 用户进程管理
- 实验6: CPU调度
- 实验7: 同步与互斥
- 实验8: 文件系统
# 操作系统定义
- 没有公认的精确定义
# 控制程序
- 操作系统是一个控制程序
- 一个系统软件
- 控制程序执行过程,防止错误和计算机的不当使用
- 执行用户程序,给用户程序提供各种服务
- 方便用户使用计算机系统
# 资源管理器
- 操作系统是一个资源管理器
- 应用程序与硬件之间的中间层
- 管理各种计算机软硬件资源
- 提供访问计算机软硬件资源的高效手段
- 解决资源访问冲突,确保资源公平使用
# 操作系统的地位
操作系统:计算机科学研究的基石之一
- 计算机系统的基本组成部分
图示
- 由硬件的发展和应用需求所驱动
- 学术和工业的持续推进
- 操作系统的顶级会议
- ACM操作系统原理研讨会(SOSP)
- USENIX操作系统设计和实现研讨会
- 最具影响力的操作系统论文
- 操作系统的顶级会议
# 操作系统软件
# 软件的整体分类
图示
# 操作系统软件的组成
# Shell--命令行接口
- 通过键盘操纵
- 方便用户进行命令输入
# GUI--图形用户接口
# WIMP
- (视窗(Window)、图标(Icon)、选单(Menu)、指标(Pointer))
- 直接操作和所见即所得
# Kernel--操作系统的内核
- 执行各种资源管理等功能
# ucore 教学操作系统内核
图示
# 操作系统的内核特征
- 并发
- 计算机系统中同时存在多个运行的程序,需要OS管理和调度
- 共享
- “同时” 访问
- 互斥共享
- 虚拟
- 利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
- 异步
# 操作系统的特点及挑战性
操作系统很大
- Windows Xp 有4500万行
操作系统管理并发
- 并发性是一小部分, 进程调度是个比较小话题
- 内核里存在管程和哲学家问题
- 内核中的锁问题需要极多的背景知识
- 磁盘调度大多是不相干的 (SCSI 已经做了这些)
- 并发性是一小部分, 进程调度是个比较小话题
操作系统代码管理原始硬件
- 时间依赖行为, 非法行为, 硬件故障
操作系统代码必须是高效的, 低耗CPU、内存、磁盘的
操作系统出错,就意味着机器出错
- 操作系统必须比用户程序拥有更高的稳定性
操作系统是系统安全的基础
操作系统与权衡相关
- 时间与空间
- 性能与可预测性
- 公平与性能(哪种设计能工作?为什么?)
操作系统与硬件相关
- 如何让中断、异常、上下文切换真正有效
- TLB是如何工作的?这对页表又意味着什么?
- 操作系统与汇编代码密切相关
编辑 (opens new window)