从本期开始,笔者将出一系列哈工大的《操作系统》课堂要点笔记,该课程应该算得上是国内最好的操作系统课程之一,也是哈工大CS课程含金量最高的课程之一。尤其是对于想学习国外课程《MIT 6.S081》《MIT 6.828》又基础不足的同学,
特别是实验课,八个 Lab 实验涉及到了操作系统的核心部分,虽然 lab 不是在哈工大自创的 HITOS 上,但 linux-0.11 确实是一个非常好的选择。
课程链接:【哈工大】操作系统 李治军(全32讲)哔哩哔哩_bilibili
笔者将按照哈工大的课程大纲来逐讲介绍,将记录课程上李治军老师讲述的要点。本博文适合结合着视频进行学习,希望让帮助大家回顾与总结重点,一点一点在脑海里构建出 OS 大框架。
**操作系统之基础**
L1 什么是操作系统
L2 开始揭开钢琴的盖子
L3 操作系统启动
L4 操作系统接口
L5 系统调用的实现
L6 操作系统概述
L7 操作系统历史
L8 我们的任务
**操作系统之进程与线程**
L9 多进程图像
L11 用户级线程
L12 核心级线程
L13 核心级线程实现实例
L14 CPU调度策略
L15 一个实际的schedule函数
L16 进程同步与信号量
L17 对信号量的临界区保护
L18 信号量的代码实现
L19 死锁处理
**操作系统之内存管理**
L20 内存使用与分段
L21 内存分区与分页
L22 段页结合的实际内存管理
L23 请求调页内存换入
L24 内存换出
**操作系统之外设与文件系统**
L25 IO与显示器
L26 键盘
L27 生磁盘的使用
L28 用文件使用磁盘
L29目录与文件系统
L30 目录解析代码实现
操作系统是计算机硬件和应用之间的一层软件(方便、高效)
应用软件(Word、Matlab…)-> 操作系统(Linux、Windows)-> 计算机硬件(CPU、内存、显存)
- 有了操作系统之后,操作计算机硬件变得更加简单,如printf(给计算机硬件穿上衣服)
- 进一步,在操作系统上开发应用软件,实现一些更方便的操作(锦上添花)
1、管理的硬件:CPU管理、文件管理、内存管理、网络管理、终端管理、电源管理、磁盘管理、多核管理
2、操作系统学习层次:
- “探到操作系统”:接口(应用软件-操作系统):使用显示器:printf;使用CPU:fork;使用文件: open、read.
- “进入操作系统”:文字写到磁盘上
- “设计并实现操作系统”:从板子出发,配一个操作系统
3、课程目标:能改操作系统(改CPU管理、改屏幕输出、改系统接口、改内存管理)