[OS] 操作系统课程(三)
- 工具
- 源码阅读: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启动操作系统
- 操作系统启动前的状态和要做的准备工作
- 运行操作系统的硬件支持
- 操作系统如何加载到内存
- 两类中断:外设中断,中断陷阱
- Lab1:Bootloader/Interrupt/Device Driver


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


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


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


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


- Lab6:进程调度
- 理解操作系统调度过程和调度算法
- Lab6:进程调度

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

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

参考
实验楼
https://www.shiyanlou.com/courses/221/learning/?id=709
[OS] 操作系统课程(三)的更多相关文章
- [OS] 操作系统课程(五)
系统启动 启动过程 CPU加电稳定后从0XFFFF0读取第一条指令 BIOS 固化到计算机主板上的程序 包括系统设置.自检程序和系统自启动程序 系统加电后读BIOS 加电自检POST,内存.显卡等关键 ...
- 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门
. 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...
- solr与.net系列课程(三)solr连接数据库
solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...
- 清华大学OS操作系统实验lab1练习知识点汇总
lab1知识点汇总 还是有很多问题,但是我觉得我需要在查看更多资料后回来再理解,学这个也学了一周了,看了大量的资料...还是它们自己的80386手册和lab的指导手册觉得最准确,现在我就把这部分知识做 ...
- Bryce1010的操作系统课程设计
https://download.csdn.net/download/fire_to_cheat_/10221003 上面是课程设计的代码,下载需要一些积分. 1.作业调度 2.磁盘调度 常见的磁盘调 ...
- ucore操作系统学习(三) ucore lab3虚拟内存管理分析
1. ucore lab3介绍 虚拟内存介绍 在目前的硬件体系结构中,程序要想在计算机中运行,必须先加载至物理主存中.在支持多道程序运行的系统上,我们想要让包括操作系统内核在内的各种程序能并发的执行, ...
- 自制操作系统 (三) 从启动区执行操作系统并进入C世界
qq:992591601 欢迎交流 2016.04.03 2016.05.31 2016.06.29 这一章是有些复杂的,我不太懂作者为什么要把这么多内容都放进一天. 1读入了十个柱面 2从启动区执行 ...
- Oracle 课程三之表设计
完成本课程的学习后,您应该能够: •普通堆表优点和缺点 •理解rowid •全局临时表优点.缺点和适用场景 •分区表的类型和原理.优点和缺点.适用场景 •表字段的高效设计 •sequence的设计 ...
- Android灭亡论之Firefox OS操作系统出现
今天是2014年7月1日,过几天就要到深圳实训去了,实训核心内容是Android开发.尽管Android现在很火,但作为程序猿的我们必须时刻保持清醒的头脑.我虽不是什么预言家,但近期接触的Androi ...
随机推荐
- [搜索]P1088 火星人
火星人 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉 ...
- Python-Tkinter 使用for循环生成列表式Button及函数调用
Tkinter是轻量级的图形化界面,在使用中我们可能遇到需要生成一串Button按钮的情况,如图: 如果一个一个操作就太麻烦了,但我们可以通过for循环列表的形式来实现 来看看以下例子: from t ...
- Qt信号槽源码剖析(二)
大家好,我是IT文艺男,来自一线大厂的一线程序员 上节视频给大家讲解了Qt信号槽的基本概念.元对象编译器.示例代码以及Qt宏:今天接着深入分析,进入Qt信号槽源码剖析系列的第二节视频. Qt信号槽的宏 ...
- Autofac 框架初识与应用
文字首发地址 一.前言 这上一篇中,主要讲述了什么是IoC容器,以及了解到它是DI构造函注入的框架,它管理着依赖项的生命周期以及映射关系,同时也介绍实践了在ASP.Net Core中,默认提供的内置I ...
- WPF -- 使用当前进程打开自定义文件的一种方式
问题描述 当双击打开自定义格式的文件时,希望使用当前正在运行的进程,而不是另起一个进程. 本文介绍一种方式解决如上问题,方案参考user3582780的解答 设置自定义文件格式的默认打开方式 参考链接 ...
- MzzTxx——团队介绍
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-团队介绍 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作业在哪 ...
- Unity2D项目-平台、解谜、战斗! 0.1 序言:团队、项目提出、初步设计、剧情大纲
各位看官老爷们,这里是RuaiRuai工作室(以下简称RR社),一个做单机游戏的兴趣作坊. 本文跟大家聊一下社团内第一个游戏项目.算是从萌新项目组长的角度,从第一个里程碑的结点处,往前看总结一下项目之 ...
- 它来了!!!有史以来第一个64位Visual Studio(2022)预览版将在今夏发布!
美国时间2021年4月19日,微软产品研发部一位负责人Amanda Silver在其博客上发布一则<Visual Studio 2022>的消息,表示将在今年(2021年)夏天发布Visu ...
- create-react-app 核心思路分析
原文链接:http://axuebin.com/articles/fe-solution/cli/cra.html,转载请联系 Create React App is an officially su ...
- json 标准库
1. 序列化的简单概念 2. json 标准库 2.1 json.dumps() 2.2 json.loads() 2.3 json.dump() 2.4 json.load() 1. 序列化的简单概 ...