- 21
- 0
- 约6.01千字
- 约 16页
- 2019-11-11 发布于安徽
- 举报
-/
PAGE
操作系统
实 验 报 告
课程名称
操作系统实验
实验项目名称
操作系统实验报告物理存储器与进程逻辑地址空间的管理
学号
2011
班级
姓名
型钢
专业
学生所在学院
指导教师
实验室名称地点
哈尔滨工程大学
-/
一、实验概述
1. 实验名称
进程的同步
2. 实验目的
1.使用EOS的信号量,编程解决生产者—消费者问题,理解进程同步的意义。
2.调试跟踪EOS信号量的工作过程,理解进程同步的原理。
3.修改EOS的信号量算法,使之支持等待超时唤醒功能(有限等待),加深理解进程同步的原理。
3. 实验类型
验证
二、实验环境
OS Lab
三、实验过程
3.1 准备实验
按照下面的步骤准备本次实验:
1. 启动OS Lab。
2. 新建一个EOS Kernel项目。
3. 生成EOS Kernel项目,从而在该项目文件夹中生成SDK文件夹。
4. 新建一个EOS应用程序项目。
5. 使用在第3步生成的SDK文件夹覆盖EOS应用程序项目文件夹中的SDK文件夹。
3.2 使用EOS的信号量解决生产者-消费者问题
按照下面的步骤查看生产者-消费者同步执行的过程:
1. 使用pc.c文件中的源代码,替换之前创建的EOS应用程序项目中EOSApp.c文件内的源代码。
2. 按F7生成修改后的EOS应用程序项目。
3. 按F5启动调试。OS Lab会首先弹出一个调试异常对话框。
4. 在调试异常对话框中选择“否”,继续执行。
5. 立即激活虚拟机窗口查看生产者-消费者同步执行的过程。
6. 待应用程序执行完毕后,结束此次调试。
3.3 调试EOS信号量的工作过程
3.3.1 创建信号量
按照下面的步骤调试信号量创建的过程:
1. 按F5启动调试EOS应用项目。OS Lab会首先弹出一个调试异常对话框。
2. 在调试异常对话框中选择是,调试会中断。
3. 在main函数中创建Empty信号量的代码行(第77行) EmptySemaphoreHandle=CreateSemaphore(BUFFER_SIZE, BUFFER_SIZE, NULL); 添加一个断点。
4. 按F5继续调试,到此断点处中断。
5. 按F11调试进入CreateSemaphore函数。可以看到此API函数只是调用了EOS内核中的PsCreateSemaphoreObject函数来创建信号量对象。
6. 按F11调试进入semaphore.c文件中的PsCreateSemaphoreObject函数。在此函数中,会在EOS内核管理的内存中创建一个信号量对象(分配一块内存),而初始化信号量对象中各个成员的操作是在PsInitializeSemaphore函数中完成的。
7. 在semaphore.c文件的顶部查找到PsInitializeSemaphore函数的定义(第19行),在此函数的第一行(第39行)代码处添加一个断点。
8. 按F5继续调试,到断点处中断。观察PsInitializeSemaphore函数中用来初始化信号量结构体成员的值,应该和传入CreateSemaphore函数的参数值是一致的。
9. 按F10单步调试PsInitializeSemaphore函数执行的过程,查看信号量结构体被初始化的过程。打开调用堆栈窗口,查看函数的调用层次。
3.3.2 等待、释放信号量
3.3.2.1 等待信号量(不阻塞)
生产者和消费者刚开始执行时,用来放产品的缓冲区都是空的,所以生产者在第一次调用WaitForSingleObject函数等待Empty信号量时,应该不需要阻塞就可以立即返回。按照下面的步骤调试:
1. 删除所有的断点(防止有些断点影响后面的调试)。
2. 在eosapp.c文件的Producer函数中,等待Empty信号量的代码行(144)WaitForSingleObject(EmptySemaphoreHandle, INFINITE); 添加一个断点。
3. 按F5继续调试,到断点处中断。
4. WaitForSingleObject 函数最终会调用内核中的PsWaitForSemaphore函数完成等待操作。所以,在semaphore.c文件中PsWaitForSemaphore函数的第一行(第68行)添加一个断点。
5. 按F5继续调试,到断点处中断。
6. 按F10单步调试,直到完成PsWaitForSemaphore函数中的所有操作。可以看到此次执行并没有进行等待,只是将Empty信号量的计数减少了1(由10变为了9)就返回了。
如图所示,empty的初始值为10。
在完成PsWaitFor
您可能关注的文档
- 生物必修一知识材料点归纳.doc
- 生物必修一知识材料点学习总结.doc
- 生物必修一知识材料框架.doc
- 生物必修一知识材料网络.doc
- 生物材料学问答题整编汇总.doc
- 生物分类学(新编完整编辑版).doc
- 生物化学(本科)第七章氨基酸代谢随堂练习提高与参考总结地答案解析.doc
- 生物化学复习材料题及其答案解析.doc
- 生物化学海南大学资料题库.doc
- 生物化学考试-重要材料学习笔记(完整编辑版).doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)