第二讲 操作系统实验

实验内容
对操作系统的理解
  • 计算机科学与计算机工程相结合
  • 原理和实验教学内容并行进行
  • 强调动手编程实践
  • 实验需求 理解系统, 循序渐进, 阅读代码, 把握全局, 功能完善,改进创新
软件环境
  • 大量采用开源软件
  • 实验环境: Windows/Linux
  • 源码阅读工具: understand
  • 源码文档自动生成工具: Doxygen
  • 编译环境: gcc, make, Binutils
  • 真实/虚拟运行环境: X86机器或QEMU
  • 调试工具: 改进的QEMU + (GDB O.R.IDE)
    IDE工具: Eclipse-CDT
实验内容
  • OS启动, 中断与设备管理 200-1800
  • 物理内存管理 1800-2500
  • 虚拟内存管理 2500-3200
  • 内核线程管理 3200-3600
  • 用户进程管理 3600-4300
  • 处理器调度 4300-5100
  • 同步互斥 5100-6400
  • 文件系统 6400-9999

在这里插入图片描述
在这里插入图片描述

Lab1: Bootloader/Interrupt/Device Driver
Lab2: 物理内存管理

  • 理解x86分段/分页模式, 了解操作系统如何连续管理连续空间的物理内存
    • 理解内存地址的转换和保护
    • 实现页表的建立和使用方法
    • 实现物理内存的管理方法
    • 了解常用的减少碎片的方法

Lab3: 虚拟内存管理

  • 了解页表机制和换出(swap)机制, 以及中断- “故障中断”, 缺页故障处理等, 基于页的内存替换算法
    • 理解换页的软硬件协同机制
    • 实现虚拟内存的Page Fault异常处理
    • 实现页替换算法

Lab4: 内核线程管理

  • 了解如果利用CPU来高效地完成各种工作的设计与实现基础, 如何创建相对于用户进程更简单的内核态线程,如何对内核线程进行动态管理.
    • 建立内核线程的关键信息
    • 实现内核线程的管理方法

Lab5: 用户进程管理

  • 了解用户态进程创建, 执行, 切换和结束的动态管理过程, 了解用户态通过系统调用得到内核态的内核服务的过程.
    • 建立用户进程的关键信息
    • 实现用户进程管理
    • 分析进程和内存管理的关系
    • 实现系统调用的处理过程

Lba6: 进程调度

  • 用于理解操作系统的调度过程和调度算法
  • 熟悉ucore的系统调度器框架, 以及内置的Round-Robin调度算法
  • 基于调度器框架实现的一个调度器算法

Lab7: 同步互斥

  • 了解进程间如何进行信息交互和共享, 并了解同步互斥的具体实现以及对系统性能的影响, 研究思索产生的原因, 以及如何避免死锁
  • 熟悉ucore的同步互斥机制
  • 理解基本的spinlock, semphpore, condition variable的实现
    用各种同步机制解决同步问题

Lab8: 文件系统

  • 了解文件系统的具体实现, 与进程管理等的关系, 了解缓存对操作系统IO访问的性能改进, 了解虚拟文件系统(VFS), buffer cache和disk driver之间的关系
    • 掌握基本的文件系统调用的实现方法
    • 了解一个基于索引节点组织方式的SimpleFS文件系统的设计与实现
    • 了解文件系统抽象层-VFS的设计与实现
实验准备

安装实验环境

  • 在虚拟机上使用安装好的ubuntu实验环境
    使用实验工具
  • shell命令
    系统维护工具: apt, git
    源码阅读与编辑工具: eclipse-CDT, vim
    源码比较工具: diff, meld
    开发编译工具: gcc, gdb, make
    硬件模拟器: qemu

了解 x86-32硬件

  • Intel 80386 运行模式概述

    • 实模式, 保护模式, SMM模式, 虚拟8086模式
    • 实模式: 80386加电启动后处于实模式运行状态, 这种状态下软件可访问的物理内存空间不超过1M, 无法发挥80386以上级别的32位CPU的4GB内存管理能力.
    • 保护模式: 支持内存分页, 支持优先级机制,不同软件优先级不同 0-3级别, 操作系统处于0级, 应用程序在较低级别
  • Intel 80386 内存架构概述

  • Intel 80386 寄存器概述

了解ucore编程方法和通用数据结构

  • 面向对象编程方法
  • 通用数据结构
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值