操作系统实验三旨在让学生深入理解操作系统的中断与异常、I/O操作及其机制,以及实模式和保护模式下的中断处理。本次实验要求编写一个OS层次的I/O程序,以实现键盘输入并在屏幕上回显,同时支持特定的键盘组合键和功能。 1. 实验内容: - 程序需要从屏幕左上角开始接收并显示键盘输入的a-z、A-Z和0-9字符,同时支持大小写切换、回车换行、退格键删除、空格键和Tab键。 - 每20秒左右,屏幕将被清空,输入字符重新从左上角开始显示。 - Esc键进入查找模式,输入关键字高亮显示,回车后匹配文本高亮,再次Esc键恢复原状。 - 基准分10分的额外要求包括处理空白字符的特殊情况,如连续回车后的退格、Tab键的对齐等。 - 程序必须在保护模式下运行,使用make构建,提交代码及运行截图,makefile应支持`make run`命令。 2. 注意事项: - 使用make完成编译过程。 - 需要阅读《Orange’s》相关章节以理解中断、I/O等概念。 - 可以基于提供的代码修改,但需说明改动之处。 3. 问题清单: - 中断向量是中断处理程序的地址和处理状态的集合。 - 中断类型码标识中断的种类。 - 中断向量表存储所有中断和异常的中断向量。 - 在实模式下,中断程序地址通过中断向量表中的段基址和偏移地址计算得出。 - 保护模式下,中断程序地址由中断描述符表中的中断门描述符获取。 - 中断向量的地址存储在中断向量表中。 - 实模式下,通过中断向量表的物理地址和中断号来获取中断程序地址。 - 中断描述符是保护模式下描述中断或陷阱处理程序的结构。 - 保护模式下,中断描述符表用于存储所有中断门和陷阱门。 - 中断门是保护模式中断描述符表中的一个条目,用于跳转到中断处理程序。 - 中断分为硬件中断和软件中断,如时钟中断、键盘中断和INT指令触发的中断。 - 中断是外部事件引起的,异常是内部错误或指令引起的。 - 实模式中断处理直接跳转到中断处理程序,保护模式下需要经过中断描述符表。 - 识别键盘组合键可通过检测键盘状态寄存器,还有其他方法如软件模拟。 - IDT(Interrupt Descriptor Table)是保护模式下的中断描述符表,用于定位中断处理程序。 - IDT中有中断门和陷阱门两种描述符。 - 异常通常分为算术异常、页错误和调试异常等类别。 - 用户态和内核态分别为特权级3和0。 - 中断向量表中,每个中断占用8字节,结构包括段选择子和偏移量。 - 中断和异常的共同点:都会暂停当前进程,切换到处理程序;不同点:中断通常由硬件引发,异常由软件或异常条件引发;中断可被屏蔽,异常不可;异常处理通常涉及错误恢复。 4. 参考资料: - 《Orange’S: 一个操作系统的实现》 通过这次实验,学生将掌握操作系统底层的中断处理、I/O操作及模式切换等核心概念,为深入学习操作系统原理打下坚实基础。
- 粉丝: 24
- 资源: 337
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0