(一)课程概要、什么是操作系统

对应视频内容:
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、内存差很多,操作系统需要协调处理