1)要求设计三个原语实现操作系统中信号量signal()与wait()功能:Request()、Release()和Broadcast()
2)Request()类似wait()操作,该原语允许多个进程因一个事件而阻塞,每次产生阻塞时均会发出一个消息,“有多少个进程处于阻塞状态。”
3)Release()类似signal()操作,当一个进程产生这个事件的信号时,该原语会唤醒处于阻塞队列中的第一个进程,并发出一个消息“进程XX解除了阻塞状态,尚有XX个进程处于阻塞状态。”;如果在信号产生时,没有进程因为这个事件阻塞,那么这个信号无效,不产生任何消息。
4)Broadcast()是类似一个广播操作,当一个进程产生这个事件的信号时,该原语会唤醒处于阻塞队列中的所有进程,并发出一个消息“广播,所有进程解除了阻塞状态。”;如果在信号产生时,没有进程因为这个事件阻塞,那么这个信号无效,不产生任何消息。
5)编写一个测试程序,验证原语的正确性。
6)要求在实验报告中列出Linux内核的版本与编译过程
2)Request()类似wait()操作,该原语允许多个进程因一个事件而阻塞,每次产生阻塞时均会发出一个消息,“有多少个进程处于阻塞状态。”
3)Release()类似signal()操作,当一个进程产生这个事件的信号时,该原语会唤醒处于阻塞队列中的第一个进程,并发出一个消息“进程XX解除了阻塞状态,尚有XX个进程处于阻塞状态。”;如果在信号产生时,没有进程因为这个事件阻塞,那么这个信号无效,不产生任何消息。
4)Broadcast()是类似一个广播操作,当一个进程产生这个事件的信号时,该原语会唤醒处于阻塞队列中的所有进程,并发出一个消息“广播,所有进程解除了阻塞状态。”;如果在信号产生时,没有进程因为这个事件阻塞,那么这个信号无效,不产生任何消息。
5)编写一个测试程序,验证原语的正确性。
6)要求在实验报告中列出Linux内核的版本与编译过程
解决方案 »
- HBASE启动报错
- pthread_rwlock_wrlock 挂死问题
- ubuntu下的shell(ctrl+alt+T)用什么工具编写的 采用什么语言
- g++ 编译c++出现错误
- centos 6.5 用了BCM4312的无线网卡不能连密码WIFI
- 重启后默认网关需要重新设置
- 求救!!!Ubuntu编译Android源码时,终端显示卡住,不输出log
- 求助急需webmin包
- ubuntu16.04安装nodejs发现问题
- zimbra8.5如何改进发件人必须登录
- win8.1-64位专业版系统中virtualbox启动centos报 Error In supR3HardenedWinReSpawn错
- 为什么网站要每次执行/etc/init.d/httpd restart重启后访问速度就变得很快
http://www.pansoso.com/ 兄弟我四川的 给你一个不错的搜资料的