(一)课程概要、什么是操作系统
对应视频内容:
1.1 课程概述
1.2 什么是操作系统
1.3 为什么学习操作系统
文章怎么自动添加目录 看这里
一、课程概要
本课程学习什么?
- 基本概念及原理
- 操作系统介绍
- 中断及系统调用
- 内存管理
- 进程及线程
- 调度
- 同步
- 文件系统
- I/O 子系统
二、操作系统
什么是操作系统?
用户角度: 操作性是一个 控制软件:
- 管理应用程序;
- 为应用程序提供服务;
- 杀死应用程序
对内角度: 操作系统用于资源管理:
- 管理外设、分配资源
操作系统是硬件之上、应用程序之下的层次结构。
操作系统位于应用软件之下,为应用软件提供服务支撑。
Linux、Windows、Android界面属于外壳(Shell),而不是内核(Kernel)。Kernel是我们研究的重点。
Shell可以理解为操作系统对外的接口,比如Windows的GUI,也有命令行类型的Shell。
操作系统包含什么
硬件资源三大块:CPU、内存、磁盘。
CPU: CPU调度、进程线程
内存: 物理内存管理、虚拟内存管理(在有限物理内存之上为应用提供内存)
文件系统: disk过于底层,不方便上层应用。
中断处理与设备驱动: 驱动实现操作系统。
OS Kernel的特征:
1.并发
- 并发:在一段时间内多个程序运行;
- 并行:在一个时间点上共同运行(因此只有一个CPU无法完成并行)
2.共享
- 是“同时”访问还是互斥共享,根据情况而定。
3.虚拟
- 利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务。
4.异步
- 程序执行不是一贯到底,而是走走停停,向前推进速度不可预知;
- 但只要运行环境相同,OS需要保证程序运行的结果也相同。
三、学习操作系统的意义
操作系统是一门综合课程,包含:
- 程序设计语言
- 数据结构
- 算法
- 计算机体系结构
操作系统还在不停地发展、在工控等各种领域 有强烈的需求。
USENIX、CCF(国内)等组织在开展操作系统的研究。
如何关注操作系统的研究:
- 顶级会议:SOSP、USENIX
操作系统很大:Windows XP有4500多万行;
操作系统是并发的,很有挑战性;
操作系统要能够应对非法操作、硬件故障;
操作系统必须是可靠高效的。
操作系统在发展,比如I/O已经不需要操作系统管理,而是交给硬件进行。
操作系统需要权衡:
- 空间与时间
- 性能和可预测性
- 公平和性能
硬件方面,操作系统需要:
- 良好的硬件管理
- 合理的资源分配
- 比如:磁盘速度与CPU、内存差很多,操作系统需要协调处理