os_kernel_lab/README.md
2024-05-10 15:05:42 +08:00

23 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 实验一
### 题目
利用uCore的中断机制编程实现一个计时器 秒表 可以实现正计时和倒计时。先选择计时模式输入“A”为正计时“B”为倒计时。若选择倒计时则要先输入初始时间秒数。按“S”开始正计时按“P”暂停正计时按“C”继续正计时按“E”停止正计时暂停正计时或停止正计时时显示计时剩余时间值秒数时间精确到0.1秒)
### 效果
![](assets/实验一演示.gif)
### 原理
在trap.c文件中在计时器中断IRQ_OFFSET + IRQ_TIMER和键盘中断IRQ_OFFSET + IRQ_KBD的部分添加状态转换、输入、输出。
## 实验二
### 题目
在现有的物理块分配首次适应算法基础上,实现循环首次适应算法。
### 效果
![](assets/实验二演示.gif)
### 原理
在default_pmm.c文件中修改default_alloc_pages或者新建一个函数记录下循环首次适应算法的指针每次从该指针的位置开始继续查找下一个空闲块。原有的测试函数default_check、basic_check也需要略微更改
## 实验三
### 题目
编程实现第二次机会页面置换算法。
### 效果
![](assets/实验三演示.gif)
### 原理
在swap_fifo.c文件中修改_fifo_swap_out_victim或者新建一个函数。当需要换出页面时从链表尾部取出一个页面如果这个页面的访问位是1那么将其访问位改为0并放到链表头部。接着再从链表尾部检测下一个页面直到找到一个访问位为0页面的作为换出的页面。测试函数_fifo_check_swap也需要略微更改