操作系统
分享
课程详情
课程评价
spContent=认识操作系统是认识整个计算机系统的大门,认识计算机系统对于计算机科研、产业、工程创新都是关键,因为我们总是工作在计算机系统上。
—— 课程团队
课程概述

      本课程以“如何给一个拥有单核 CPU、内存、磁盘、键盘和显示器的基本计算机配备一个可实际运转的操作系统?”这一基本问题作为主线。本课程对一个基本操作系统中的六个基本模块,即 CPU 管理、内存管理、外设管理、磁盘管理与文件系统、用户接口和启动模块,以及这些模块之间的内在联系,进行了深入细致地原理教授、算法与数据结构设计,并借鉴开源操作系统 Linux 全面讲授了整个操作系统的代码实现。通过本系列课程的学习,学生可以体会一个完整的操作系统是如何良好运转的,据此培养学生设计和实现一个完整操作系统的能力,进而在未来从事计算机系统层面的工作时能应用这些能力和经验,最终逐渐形成计算机系统能力。同时本课程包含了进程设计与实现、虚存设计与实现、外设驱动与实现在内的12个配套实验,通过丰富的实践环节,使学生真正掌握设计、实现和分析完整操作系统的能力。

课程大纲

操作系统基础

章节测试

L6 操作系统历史

L7 我们的学习任务

L3 操作系统启动

L2 开始揭开钢琴的盖子

L5 系统调用的实现

L1 什么是操作系统

L4 操作系统接口

实验项目1 控制系统启动

实验项目2 添加系统调用

进程与线程

章节测试

L19 死锁处理

L16 进程同步与信号量

L15 一个实际的schedule函数

L17 信号量临界区保护

L8 CPU管理的直观想法

L10 用户级线程

L14 CPU调度策略

L12 内核级线程实现

L9 多进程图像

L11 内核级线程

L13 操作系统之“树”

L18 信号量的代码实现

实验项目3 进程运行轨迹的跟踪与统计

内存管理

章节测试

L23 段页结合的实际内存管理

L20 内存使用与分段

L22 多级页表与快表

L21 内存分区与分页

L25 内存换出

L24 内存换入-请求调页

实验项目4 地址映射与共享

设备驱动与文件系统

章节测试

L32 目录解析代码实现

L27 键盘

L28 生磁盘的使用

L30 文件使用磁盘的实现

L26 I/O与显示器

L29 从生磁盘到文件

L31 目录与文件系统

实验项目 5 终端设备的控制

证书要求

合格证书成绩要求 60≤ 得分 < 90分

优秀证书成绩要求 90≤ 得分