JOS实验四:实现调度与exofork解析
5星 · 超过95%的资源 需积分: 10 135 浏览量
更新于2024-07-31
3
收藏 1.31MB DOC 举报
"JOS LAB4实验记录 - 华中科技大学集群网络与服务计算实验室 - 卓达城"
本文档详细记录了MIT JOS (Jail Operating System) 实验室实验四的内容,主要涉及操作系统内核的调度算法实现、系统调用的修改以及`sys_exofork`函数的解析。实验环境为华中科技大学集群网络与服务计算实验室,作者为卓达城。
在实验的第一部分,作者修改了`kern/sched.c`中的`sched_yield`函数,用于实现简单的调度算法。该函数遍历环境队列,寻找可运行的环境,并在找到时切换执行。同时,`syscall.c`中的`syscall`函数也被调整,以适应实验需求。
为了测试调度效果,`init.c`中创建了多个环境。实验过程中需要注意控制Bochs模拟器的输出,避免因调试信息过多导致屏幕刷屏。作者提供了两种解决方式:一是关闭Bochs或删除调试信息,二是激活特定代码行以优化输出。
实验的难点在于`sys_exofork`函数的实现。这个函数用于创建新的环境,是理解和实现JOS的关键。`sys_exofork`涉及到中断和异常处理,这部分内容需要对CPU中断机制有深入理解。作者简要介绍了CPU中断的分类,如fault、trap、interrupt(用户调用)以及不易翻译的`abort`。中断和异常可以跨特权级切换,而call则受限于同特权级或降级切换。
在`sys_exofork`中,需要处理页表的复制和内存分配,包括使用虚拟页目录(VPD)和虚拟页表(VPT)。实验过程中可能需要利用回环搜索来处理pgdir和二级页表,这部分用加粗字体表示,是理解实验过程的重点。
在实现`sys_exofork`时,还要回顾中断和异常处理的基本原理,包括如何进行特权级切换以及如何处理不同类型的中断和异常。这部分内容对于正确理解和实现JOS的进程创建至关重要。
JOS LAB4着重于操作系统的调度和进程创建,通过修改内核源码,学习操作系统核心功能的实现。实验者需要具备一定的汇编语言基础、中断处理知识以及操作系统原理的理解。通过这样的实践,学生能更深入地掌握操作系统的设计和实现。
2023-09-14 上传
2023-05-24 上传
2023-10-20 上传
2023-03-30 上传
2023-07-11 上传
2023-05-24 上传
2023-09-19 上传
dachengzhuo
- 粉丝: 0
- 资源: 7
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解