《操作系统》的实验代码。
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
423A35C7 de32302bd6 实验6环境初始化 il y a 6 mois
.vscode 实验6环境初始化 删除 il y a 6 mois
assets README添加实验三 删除 il y a 7 mois
labcodes update check_sync.c in lab8&lab8_result 删除 il y a 8 ans
labcodes_answer 实验6环境初始化 删除 il y a 6 mois
related_info update student name 王乃峥 删除 il y a 6 ans
.dir-locals.el Add a few configuration files for emacsers il y a 9 ans
.gitignore Add target run-nox-<program> il y a 9 ans
LICENSE update codes il y a 12 ans
README-chinese.md update student name 王乃峥 il y a 6 ans
README-old.md 将原先的README重命名 il y a 8 mois
README.md README添加实验三 il y a 7 mois
background.sh 第一次实验调试环境 il y a 8 mois
opensource_os_list.md add open source OSes info il y a 9 ans

README.md

实验一

题目

利用uCore的中断机制,编程实现一个计时器( 秒表 ),可以实现正计时和倒计时。先选择计时模式,输入“A”为正计时,“B”为倒计时。若选择倒计时,则要先输入初始时间(秒数)。按“S”开始正(倒)计时,按“P”暂停正(倒)计时,按“C”继续正(倒)计时,按“E”停止正(倒)计时,暂停正(倒)计时或停止正(倒)计时时显示计时(剩余)时间值(秒数)。(时间精确到0.1秒)

效果

原理

在trap.c文件中,在计时器中断(IRQ_OFFSET + IRQ_TIMER)和键盘中断(IRQ_OFFSET + IRQ_KBD)的部分添加状态转换、输入、输出。

实验二

题目

在现有的物理块分配首次适应算法基础上,实现循环首次适应算法。

效果

原理

在default_pmm.c文件中,修改default_alloc_pages(或者新建一个函数),记录下循环首次适应算法的指针,每次从该指针的位置开始继续查找下一个空闲块。(原有的测试函数default_check、basic_check也需要略微更改)

实验三

题目

编程实现第二次机会页面置换算法。

效果

原理

在swap_fifo.c文件中,修改_fifo_swap_out_victim(或者新建一个函数)。当需要换出页面时,从链表尾部取出一个页面,如果这个页面的访问位是1,那么将其访问位改为0,并放到链表头部。接着再从链表尾部检测下一个页面,直到找到一个访问位为0页面的作为换出的页面。(测试函数_fifo_check_swap也需要略微更改)