• 工具

    • 源码阅读:understand
    • 源码文档自动生成工具:Doxygen
    • 编译环境:gcc
    • 运行环境:x86机器或QEMU
    • 调试工具:QEMU+(GDB or IDE)
    • IDE:Eclipse-CDT
  • 设计思路
    • 外设:IO管理/中断管理
    • 内存:虚存管理/页表/缺页处理/页替换算法
    • CPU:进程管理/调度器算法
    • 并发:信号量实现同步互斥应用
    • 存储:基于链表/FAT的文件系统
  • 实验内容(对应源码行数)
    • 1 OS启动、中断与设备管理:0200~1800
    • 2 物理内存管理:1800~2500
    • 3 虚拟内存管理:2500~3200
    • 4 内核线程管理:3200~3600
    • 5 用户进程管理:3600~4300
    • 6 处理器调度:4300~5100
    • 7 同步互斥:5100~6400
    • 8 文件系统:6400~9999

  • 实验内容

    • Lab1:Bootloader/Interrupt/Device Driver

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

    • Lab2:物理内存管理

      • 理解x86分段/分页模式,了解操作系统如何管理连续空间的物理内存

    • Lab3:虚拟内存管理

      • 了解页表机制和换出(swap)机制
      • 故障中断,缺页故障处理,基于页的内存替换算法

    • Lab4:内核线程管理

      • 如何利用CPU高效完成工作
      • 创建相对用户进程更简单的内核态线程
      • 对内核线程进行动态管理

    • Lab5:用户进程管理

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

    • Lab6:进程调度

      • 理解操作系统调度过程和调度算法

 

    • Lab7: 同步互斥

      • 进程间如何进行信息交换和共享
      • 同步互斥的具体实现及对系统性能的影响
      • 死锁产生的原因,如何避免
      • 哲学家吃饭问题

 

  • Lab8:文件系统

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

 

参考

实验楼

https://www.shiyanlou.com/courses/221/learning/?id=709

[OS] 操作系统课程(三)的更多相关文章

  1. [OS] 操作系统课程(五)

    系统启动 启动过程 CPU加电稳定后从0XFFFF0读取第一条指令 BIOS 固化到计算机主板上的程序 包括系统设置.自检程序和系统自启动程序 系统加电后读BIOS 加电自检POST,内存.显卡等关键 ...

  2. 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门

    . 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...

  3. solr与.net系列课程(三)solr连接数据库

     solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...

  4. 清华大学OS操作系统实验lab1练习知识点汇总

    lab1知识点汇总 还是有很多问题,但是我觉得我需要在查看更多资料后回来再理解,学这个也学了一周了,看了大量的资料...还是它们自己的80386手册和lab的指导手册觉得最准确,现在我就把这部分知识做 ...

  5. Bryce1010的操作系统课程设计

    https://download.csdn.net/download/fire_to_cheat_/10221003 上面是课程设计的代码,下载需要一些积分. 1.作业调度 2.磁盘调度 常见的磁盘调 ...

  6. ucore操作系统学习(三) ucore lab3虚拟内存管理分析

    1. ucore lab3介绍 虚拟内存介绍 在目前的硬件体系结构中,程序要想在计算机中运行,必须先加载至物理主存中.在支持多道程序运行的系统上,我们想要让包括操作系统内核在内的各种程序能并发的执行, ...

  7. 自制操作系统 (三) 从启动区执行操作系统并进入C世界

    qq:992591601 欢迎交流 2016.04.03 2016.05.31 2016.06.29 这一章是有些复杂的,我不太懂作者为什么要把这么多内容都放进一天. 1读入了十个柱面 2从启动区执行 ...

  8. Oracle 课程三之表设计

    完成本课程的学习后,您应该能够: •普通堆表优点和缺点 •理解rowid •全局临时表优点.缺点和适用场景 •分区表的类型和原理.优点和缺点.适用场景 •表字段的高效设计 •sequence的设计   ...

  9. Android灭亡论之Firefox OS操作系统出现

    今天是2014年7月1日,过几天就要到深圳实训去了,实训核心内容是Android开发.尽管Android现在很火,但作为程序猿的我们必须时刻保持清醒的头脑.我虽不是什么预言家,但近期接触的Androi ...

随机推荐

  1. DAOS 分布式异步对象存储|事务模型

    DAOS API 支持分布式事务,允许将针对属于同一 Container 的对象的任何更新操作组合到单个 ACID 事务中.分布式一致性是通过基于多版本时间戳排序的无锁乐观并发控制机制提供的.DAOS ...

  2. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  3. [状压DP]车

    车 车 车 题目描述 在 n ∗ n n*n n∗n( n ≤ 20 n≤20 n≤20)的方格棋盘上放置 n n n个车(可以攻击所在行.列),有些格子不能放,求使它们不能互相攻击的方案总数. 输入 ...

  4. OO第四单元总结及学期总结

    目录 OO第四单元总结及学期总结 第四单元三次作业架构设计 第十三次作业 第十四次作业 第十五次作业 四个单元中架构设计及OO方法理解的演进 第一单元 第二单元 第三单元 第四单元 四个单元中测试理解 ...

  5. wap视频广告遇到的问题

    最近在做一个wap端的视频广告,耗了很多心力在上面,仍旧做不好.没想到wap浏览器对video标签这么不友好.广告需要在原编辑视频播完后插入并自动播放. ios浏览器点击播放按钮后喜欢自动全屏播放,希 ...

  6. CentOS系统安装Nginx

    目录 1. 官网下载地址 2. 上传到服务器安装 2.1 检查是否安装以下软件包 2.2 安装 2.3 安装nginx 3. 启动&停止 nginx是 HTTP 和反向代理服务器,邮件(IMA ...

  7. pandas(1):Pandas文件读取——read_excel()

    目录 一.函数原型 二.功能说明 三.常用参数说明 四.总结 一.函数原型 pd.read_excel(io, sheet_name=0, header=0, names=None, index_co ...

  8. 1.jsp-out和response输出的区别

    jsp中代码: out.write("out输出1 <br/>"); out.write("out输出2 <br/>"); respon ...

  9. NTP时间同步服务

    NTP时间服务器 作用:ntp主要是用于对计算机的时间同步管理操作. 时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响. 部署安装NTP ...

  10. Day09_43_Set集合_HashSet_02(HashCode方法 与 equals方法 )

    HashSet - 向Hash表中添加元素的过程? 1. 先调用将要被存储的值key的HashCode方法得出Hash值,如果该Hash值在现有Hash表中不存在,那么直接加入元素. 2. 如果该Ha ...