操作系统实验四旨在让学生深入理解进程的概念以及操作系统中的系统调用、PV操作和进程调度的实现。以下是关于实验内容的详细解释: 1. **进程调度**: - 在操作系统中,进程调度是决定哪个进程应该获得CPU执行权的关键部分。在这个实验中,你需要在nasm+bochs平台上模拟特定的进程调度算法。 - **系统调用**:添加新的系统调用,如`mills_delay`,它接受一个整数参数`milli_seconds`,使得调用该系统调用的进程在指定毫秒内不会被分配时间片。这意味着进程将进入空循环,但不会被切换出去。 - **打印字符串系统调用**:需要创建一个系统调用来打印字符串,这需要在内核层面上实现,并封装为用户可调用的接口。 2. **PV操作与读者写者问题**: - **信号量**:PV操作是同步原语,用于解决多进程间的同步问题。在这个实验中,你需要通过PV操作模拟经典的读者写者问题。 - **读者写者问题**:多个读者可以同时读取资源,但只有一个写者能写入。当写者在写时,所有读者都不能读,同时,写者也不能在有读者阅读时写入。实验中,有A、B、C三个读者进程,D和E为写者进程,还有一个F进程用来监控当前状态。不同进程的执行时间片不同,需要保证所有情况下的正确同步,并能动态改变优先级策略(读者优先或写者优先)。 3. **注意事项**: - 使用make工具构建项目,确保`make run`命令可以直接启动实验。 - 修改或新增的代码需清晰记录。 - 提交所有相关文件,包括代码、Makefile、说明文档和截图。 4. **问题清单**: - **进程**:是操作系统中独立执行的程序实例,拥有自己的内存空间和状态。 - **进程表**:是操作系统维护的关于所有进程信息的数据结构,包含进程的状态、优先级等。 - **进程栈**:每个进程都有自己的栈,用于存储局部变量、函数调用参数和返回地址。 - **ESP寄存器**:在保护模式下,ESP(堆栈指针)应指向栈顶,以防止破坏进程表。 - **TTY**:终端设备,通常指用户与操作系统交互的文本界面。 - **不同TTY的输出**:每个TTY有自己的输入/输出缓冲区,所以即使在同一显示器上,它们也能独立显示内容。 - **TTY任务执行过程**:用户输入被处理并发送到对应的TTY,然后由TTY驱动程序处理输出。 - **TTY结构体**:可能包括终端设备状态、缓冲区、控制信息等。 - **console结构体**:可能包含有关控制台的配置、缓冲区和显示设置等信息。 5. **参考资料**: - 《Orange’s 一个操作系统的实现》提供了操作系统设计的基础知识,对于理解和实现实验非常有帮助。 这个实验不仅要求理论知识,还需要实践能力,通过实现这些功能,学生可以更深入地理解操作系统的内部机制。
- 粉丝: 23
- 资源: 323
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0