OS实验课程设计

Lab1: bootloader / interrupt / device driver

启动OS的bootloader,
了解操作系统启动前的状态和要做的准备工作,
了解运行OS的硬件支持,
OS如何加载到内存中,
理解两类中断:外设中断、陷阱中断

  • 基于分段机制的存储管理
  • 设备管理的基本概念
  • PC启动bootloader的过程
  • bootloader的文件组成
  • 编译运行bootloader的过程
  • 调试bootloader的方法
  • 在汇编级了解栈的结构和处理过程
  • 中断处理机制
  • 通过串口/并口/CGA输出字符的方法

Lab2: 物理内存管理

理解x86分段/分页模式,
了解OS如何管理连续空间的物理内存。

  • 理解内存地址的转换和保护
  • 实现页表的建立和使用方法
  • 实现物理内存的管理方法
  • 了解常用的减少碎片的方法

Lab3: 虚拟内存管理

了解页表机制和换出(swap)机制,
以及中断-“故障中断”、缺页故障处理等,
基于页的内存替换方法

  • 理解换页的软硬件协同机制
  • 实现虚拟内存的Page Fault异常处理
  • 实现页替换算法

Lab4: 内核线程管理

了解如果利用CPU来高效地完成各种工作的设计与实现基础,
如何创建相对与用户进程更加简单的内核态线程,
如果对内核线程进行动态管理等;

  • 建立内核线程的关键信息
  • 实现内核线程的管理方法

Lab5: 用户进程管理

了解用户态进程创建、执行、切换和结束的动态管理过程,
了解在用户态通过系统调用得到内核态的内核服务的过程;

  • 建立用户进程的关键信息
  • 实现用户进程管理
  • 分析进程和内存管理的关系
  • 实现系统调用的处理过程
OS实验课程设计_第1张图片
Paste_Image.png

Lab6:进程调度

用于理解OS的调度过程和调度算法

  • 熟悉ucore的系统调度器框架,以及内置的Round-Robin调度算法
  • 基于调度器框架实现一个调度器算法

Lab7: 同步互斥

了解进程间如何进行信息交换和共享,
并了解同步互斥的具体实现以及对系统性能的影响,
研究死锁产生的原因,
以及如何避免死锁;

  • 熟悉ucore的同步互斥机制
  • 理解基本的spinlock,semphpore,condition variable的实现
  • 用各种同步机制解决同步问题

Lab8: 文件系统

了解文件系统的具体实现,
与进程管理等的关系,
了解缓存对OS IO访问的性能改进,
了解虚拟文件系统(VFS)、buffer cache和disk driver之间的关系

  • 掌握基本的文件系统系统调用的实现方法;
  • 了解一个基于索引节点组织方式的Simple FS 文件系统的设计与实现;
  • 了解文件系统抽象层-VFS的设计与实现

你可能感兴趣的:(OS实验课程设计)