本课程涉及的主要方面

  • 基本概念及原理
  • 操作系统介绍
  • 中断及系统调用
  • 内存管理
  • 进程及线程
  • 调度
  • 同步
  • 文件系统
  • I/O子系统

什么是操作系统

我们很难对操作系统下一个完整,精确的定义,但是我们可以通过分析操作系统的在计算机工作时起的作用,来认识操作系统究竟是什么?

1. 从用户角度上,操作系统是一个控制软件

2. 操作系统管理应用程序,为应用程序提供服务

3. 操作系统管理内设,分配资源

4. 在计算机层次结构中,位于硬件之上,应用程序之下

 

操作系统管理的四大硬件资源

1. cpu——进程管理

2. 内存——物理内存管理和虚拟内存管理

3. 磁盘——文件系统

4. 底层硬件——中断处理与设计驱动

 

操作系统的四大特征

1. 并发:计算机系统可以同时运行多个运行的程序

2. 共享: "同时访问"资源,互斥共享 

3. 虚拟: 利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务

4. 异步: 程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知;但只要运行环境相同,OS需要保证程序运行的结果也要相同

 

为什么要学习操作系统

操作系统是一门综合课程,结合许多不同的课程,在学习操作系统的过程中,可以提升综合能力;学习操作系统很酷,很有用,很有挑战;学习操作系统能更好地理解计算机结构。

 

操作系统顶级会议

1. sosp

2. USENIX

 

操作系统难在哪里?

  • 代码量大,Windows XP有4500万行
  • 操作系统管理并发
  • 操作系统管理原始硬件
  • 操作体统必须是高效的
  • 操作系统必须比用户程序拥有更高的稳定性

 

学习操作系统的关注点

  • 滞后性:很多课本上的知识有老化性
  • 权衡性:操作系统需要权衡空间与时间,性能和可预测性,公平和性能

 

操作系统和硬件

硬件方面,操作系统需要良好的硬件管理,合理的资源分配,例如,硬盘速度跟CPU、内存相差很多,操作系统需要协调处理。

 

学习方法

不仅仅是背概念和原理,还要coding

 

操作系统实例:

  • UNIX BSD家族
  • Linux家族
  • Windows家族

 

操作系统历史

  • 单用户阶段:早期计算机使用纸带传输程序和数据操作系统只起到加载作用
  • 批处理阶段: 输入输出形成流水线,支持流水调度
  • 多道程序设计:内存中存有多个程序,cpu执行多个程序
  • 分时系统: 为了更好的利用计算机资源,并且更好的和用户交互,出现了分时系统
  • 个人电脑操作系统: 重点是用户界面和API
  • 分布式的操作系统

 

操作系统结构

  • 小型系统,如DOS系统:不分模块的单体内核,无保护,易被破坏,难扩展
  • 服务器上的操作系统,如Unix操作系统
  • 微内核架构操作系统:操作系统内核只放最基础的东西 
  • 外核架构:目前主要在学术界
  • 虚拟机监控器(VMM):在物理机上虚拟出多个操作系统