操作系统
实 验 报 告
课程名称 实验项目名称 学号 姓名 学生所在学院 操作系统实验 进程的同步 2012201425 颜凡腾 班级 专业 指导教师 20122014 软件工程 曹雪 软件学院 21b
实验室名称地点 哈尔滨工程大学 软件学院
0 / 19
. 一、实验概述
1. 实验名称 进程的同步 2. 实验目的
使用 EOS 的信号量, 编程解决生产者—消费者问题,理解进程同步的意义。 调试跟踪 EOS 信号量的工作过程,理解进程同步的原理。 修改 EOS 的信号量算法,使之支持等待超时唤醒功能(有限等待),加深理解进程同步的原理。 3. 实验类型
设计
二、实验环境
OS Lab
三、实验过程
使用EOS的信号量解决生产者—消费者问题:
立即激活虚拟机窗口查看生产者-消费者同步执行的过程
调试EOS信号量的工作过程:
0 / 19
. 创建信号量
1 / 19
. 按 F5 继续调试,到断点处中断。观察 PsInitializeSemaphore 函数中用来初始化信号量结构体成员的值,应该和传入 CreateSemaphore 函数的参数值是一致的
按 F10 单步调试 PsInitializeSemaphore 函数执行的过程,查看信号量结构体被初始化的过程。打开“调用堆栈”窗口,查看函数的调用层次。
2 / 19
.
等待、释放信号量: 等待信号量(不阻塞)
按 F10 单步调试,直到完成 PsWaitForSemaphore 函数中的所有操作。可以看到此次执行并没有进行等待,只是将 Empty 信号量的计数减少了 1(由 10 变为了 9)就返回了。
3 / 19