Go to file
2024-05-10 15:05:42 +08:00
.vscode 实验3环境初始化 2024-04-28 22:00:55 +08:00
assets README添加实验三 2024-05-10 15:05:42 +08:00
labcodes update check_sync.c in lab8&lab8_result 2016-05-10 10:10:11 +08:00
labcodes_answer 完成实验3 2024-05-07 21:50:16 +08:00
related_info update student name 王乃峥 2018-02-05 15:54:44 +08:00
.dir-locals.el Add a few configuration files for emacsers 2015-03-24 10:20:35 +08:00
.gitignore Add target run-nox-<program> 2015-03-24 10:43:49 +08:00
background.sh 第一次实验调试环境 2024-03-24 11:44:54 +08:00
LICENSE update codes 2012-09-14 21:36:57 +08:00
opensource_os_list.md add open source OSes info 2015-07-02 00:42:38 +08:00
README-chinese.md update student name 王乃峥 2018-02-05 15:54:44 +08:00
README-old.md 将原先的README重命名 2024-03-27 10:54:26 +08:00
README.md README添加实验三 2024-05-10 15:05:42 +08:00

实验一

题目

利用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也需要略微更改