admin管理员组文章数量:1023903
操作系统实验
作者寄语
操作系统实验的学习是一个循序渐进的过程,初次看linux-0.11中的代码,看着满屏的汇编语言,确实头疼。但通过学习赵炯博士的Linux内核0.11完全注释,结合着王爽老师的汇编语言一书,我逐渐理解每段汇编语言的含义和作用。本文主要是通过对哈工大李治军配套实验的实现,着重解释每一段的汇编代码,使读者对实验的整体脉络有一个初步的认识,不再因为畏惧汇编而不放弃实验。本文只是抛砖引玉,希望读者可以深入研究我下文提供的参考资料,做到理论与实践兼具。
参考资料
- 视频:操作系统
- 书籍:现代操作系统
- 实验:操作系统原理与实践
- 书籍:王道操作系统
- 书籍:Linux内核完全注释
- 书籍:汇编语言(第3版) 王爽著
目录
文章目录
- 操作系统实验
-
- 作者寄语
- 参考资料
- 目录
- 实验一 熟悉实验环境
- 实验二 操作系统的引导
-
- 汇编知识
-
- int 0x10
- int 0x13
- int 0x15
- int 0x41
- CF
- jnc
- jl
- lds
- DF标志和串传送指令
- call
- ret
- 改写bootsect.s
- bootsect.s读入setup.s
- setup.s获取基本硬件参数
- 天道酬勤
- 实验三 系统调用
-
- 提醒
- 实验目的
- 应用程序如何调用系统调用
- 从“int 0x80”进入内核函数
- 实现 sys_iam() 和 sys_whoami()
- 按照上述逻辑修改相应文件
- 修改 Makefile
-
- (1)第一处
- (2)第二处
- 编写测试程序
- 天道酬勤
- 实验四 进程运行轨迹的跟踪与统计
-
- 实验目的
- 实验内容
- 编写process.c文件
-
- 提示
- 文件主要作用
- 关键函数解释
-
- fork()
- struct tms 结构体
- 数据类型 clock_t
- 代码实现
- 答疑
- 尽早打开log文件
-
- 小结
- 编写fprintk()函数
- jiffies,滴答
- 寻找状态切换点
-
- 例子 1:记录一个进程生命期的开始
- 例子 2:记录进入睡眠态的时间
- 修改fork.c文件
- 修改sched.c文件
-
- 修改schedule函数
- 修改sys_pause函数
- 修改sleep_on函数
- 修改interruptible_sleep_on函数
- 修改wake_up函数
- 修改exit.c文件
- 小结
- 编译
- 编译运行process.c
- process.log自动化分析
- 修改时间片
- 问题回答
-
- 问题1:单进程编程和多进程编程的区别?
- 问题2:仅针对样本程序建立的进程,在修改时间片前后,log 文件的统计结果都是什么样?结合你的修改分析一下为什么会这样变化,或者为什么没变化?
- 警示
- 天道酬勤
- 实验五 基于内核栈切换的进程切换
-
- 实验目的
- 实验内容
- TSS 切换
- 本次实验的内容
- 正式修改代码前小结
- schedule 与 switch_to
- 实现 switch_to
- 修改fork()系统调用
- 编译运行
- 天道酬勤
- 实验六 信号量的实现和应用
-
- 实验目的
- 实验内容
-
- 用信号量解决生产者—消费者问题
- 实现信号量
- 什么是信号量?
- 思路
- 用户程序 pc.c
-
- 知识点
- 信号量作用
- 代码展示
- 修改内核
-
- 编写 sem.h
- 编写 sem.c
- 添加系统调用号
- 改写系统调用数
- 添加系统调用的定义
- 修改工程文件的编译规则
- Debug
- 挂载文件
- 测试
- 天道酬勤
- 实验七 地址映射与共享
-
- 实验目的
- 实验内容
-
- 1 跟踪地址翻译过程
- 2 基于共享内存的生产者—消费者程序
- 3 共享内存的实现
- 创建test.c
- 跟踪地址翻译过程
-
- 1.准备
- 2.暂停
- 3.段表
- 4.段描述符
- 5.段基址和线性地址
- 6.页表
- 7.物理地址
- 添加系统调用号
- 添加系统调用的定义
- 改写系统调用数
- 编写 shm.c
- 修改工程文件的编译规则
- 编写消费者和生产者程序
-
- 编写producer.c
- 编写consumer.c
- 运行验证
- 天道酬勤
- 实验八 终端设备的控制
-
- 实验目的
- 实验内容
- 实验思路
-
- 键盘中断初始化
- 键盘中断发生
- 字符输出流程
- 添加`F12`功能键盘处理
- 添加字符`*`显示处理
- 编译运行
- 实验问题
- 天道酬勤
- 实验九 proc文件系统的实现
-
- 实验目的
- 实验内容
- procfs介绍
- 增加新文件类型
- 让 `mknod()` 支持新的文件类型
- `procfs` 的初始化工作
- 让 `proc` 文件可读
- 实现 `proc_read` 函数
- 编译运行
- 天道酬勤
- 终章
实验一 熟悉实验环境
只是熟悉实验环境&
操作系统实验
作者寄语
操作系统实验的学习是一个循序渐进的过程,初次看linux-0.11中的代码,看着满屏的汇编语言,确实头疼。但通过学习赵炯博士的Linux内核0.11完全注释,结合着王爽老师的汇编语言一书,我逐渐理解每段汇编语言的含义和作用。本文主要是通过对哈工大李治军配套实验的实现,着重解释每一段的汇编代码,使读者对实验的整体脉络有一个初步的认识,不再因为畏惧汇编而不放弃实验。本文只是抛砖引玉,希望读者可以深入研究我下文提供的参考资料,做到理论与实践兼具。
参考资料
- 视频:操作系统
- 书籍:现代操作系统
- 实验:操作系统原理与实践
- 书籍:王道操作系统
- 书籍:Linux内核完全注释
- 书籍:汇编语言(第3版) 王爽著
目录
文章目录
- 操作系统实验
-
- 作者寄语
- 参考资料
- 目录
- 实验一 熟悉实验环境
- 实验二 操作系统的引导
-
- 汇编知识
-
- int 0x10
- int 0x13
- int 0x15
- int 0x41
- CF
- jnc
- jl
- lds
- DF标志和串传送指令
- call
- ret
- 改写bootsect.s
- bootsect.s读入setup.s
- setup.s获取基本硬件参数
- 天道酬勤
- 实验三 系统调用
-
- 提醒
- 实验目的
- 应用程序如何调用系统调用
- 从“int 0x80”进入内核函数
- 实现 sys_iam() 和 sys_whoami()
- 按照上述逻辑修改相应文件
- 修改 Makefile
-
- (1)第一处
- (2)第二处
- 编写测试程序
- 天道酬勤
- 实验四 进程运行轨迹的跟踪与统计
-
- 实验目的
- 实验内容
- 编写process.c文件
-
- 提示
- 文件主要作用
- 关键函数解释
-
- fork()
- struct tms 结构体
- 数据类型 clock_t
- 代码实现
- 答疑
- 尽早打开log文件
-
- 小结
- 编写fprintk()函数
- jiffies,滴答
- 寻找状态切换点
-
- 例子 1:记录一个进程生命期的开始
- 例子 2:记录进入睡眠态的时间
- 修改fork.c文件
- 修改sched.c文件
-
- 修改schedule函数
- 修改sys_pause函数
- 修改sleep_on函数
- 修改interruptible_sleep_on函数
- 修改wake_up函数
- 修改exit.c文件
- 小结
- 编译
- 编译运行process.c
- process.log自动化分析
- 修改时间片
- 问题回答
-
- 问题1:单进程编程和多进程编程的区别?
- 问题2:仅针对样本程序建立的进程,在修改时间片前后,log 文件的统计结果都是什么样?结合你的修改分析一下为什么会这样变化,或者为什么没变化?
- 警示
- 天道酬勤
- 实验五 基于内核栈切换的进程切换
-
- 实验目的
- 实验内容
- TSS 切换
- 本次实验的内容
- 正式修改代码前小结
- schedule 与 switch_to
- 实现 switch_to
- 修改fork()系统调用
- 编译运行
- 天道酬勤
- 实验六 信号量的实现和应用
-
- 实验目的
- 实验内容
-
- 用信号量解决生产者—消费者问题
- 实现信号量
- 什么是信号量?
- 思路
- 用户程序 pc.c
-
- 知识点
- 信号量作用
- 代码展示
- 修改内核
-
- 编写 sem.h
- 编写 sem.c
- 添加系统调用号
- 改写系统调用数
- 添加系统调用的定义
- 修改工程文件的编译规则
- Debug
- 挂载文件
- 测试
- 天道酬勤
- 实验七 地址映射与共享
-
- 实验目的
- 实验内容
-
- 1 跟踪地址翻译过程
- 2 基于共享内存的生产者—消费者程序
- 3 共享内存的实现
- 创建test.c
- 跟踪地址翻译过程
-
- 1.准备
- 2.暂停
- 3.段表
- 4.段描述符
- 5.段基址和线性地址
- 6.页表
- 7.物理地址
- 添加系统调用号
- 添加系统调用的定义
- 改写系统调用数
- 编写 shm.c
- 修改工程文件的编译规则
- 编写消费者和生产者程序
-
- 编写producer.c
- 编写consumer.c
- 运行验证
- 天道酬勤
- 实验八 终端设备的控制
-
- 实验目的
- 实验内容
- 实验思路
-
- 键盘中断初始化
- 键盘中断发生
- 字符输出流程
- 添加`F12`功能键盘处理
- 添加字符`*`显示处理
- 编译运行
- 实验问题
- 天道酬勤
- 实验九 proc文件系统的实现
-
- 实验目的
- 实验内容
- procfs介绍
- 增加新文件类型
- 让 `mknod()` 支持新的文件类型
- `procfs` 的初始化工作
- 让 `proc` 文件可读
- 实现 `proc_read` 函数
- 编译运行
- 天道酬勤
- 终章
实验一 熟悉实验环境
只是熟悉实验环境&
版权声明:本文标题:操作系统实验一到实验九合集(哈工大李治军) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1741196953a1846155.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论