操作系统实验2-进程通信与进程同步
本文最后更新于 584 天前,其中的信息可能已经有所发展或是发生改变。

编写C程序,使用Linux中的IPC机制,完成 “石头、剪子、布”的游戏。

  • 可以创建三个进程:一个进程为裁判进程,另外两个进程为选手进程。可将“石头、剪子、布”这三招定义为三个整型值,胜负关系为:石头>剪子>布>石头。
  • 选手进程按照某种策略(例如,随机产生)出招,交给裁判进程判断大小。裁判进程将对手的出招和胜负结果通知选手。比赛可以采取多盘(如100盘)定胜负,由裁判宣布最后结果。每次出招由裁判限定时间,超时判负。
  • 每盘结果可以存放在文件或其他数据结构中。比赛结束,可以打印每盘的胜负情况和总的结果。

编写程序,使用Linux操作系统中的信号量机制模拟实现生产者-消费者问题。设有一个生产者和一个消费者,缓冲区可以存放产品,生产者不断生成产品放入缓冲区,消费者不断从缓冲区中取出产品,消费产品。

  • 示例代码设计:
  • 使用两个线程来模拟生产者和消费者
  • 使用pthread库提供的线程操作,需要包含头文件pthread.h
  • 使用POSIX的无名信号量机制,需要包含头文件semaphore.h

System V信号量和POSIX信号量的区别:https://blog.csdn.net/luren2015/article/details/107739149

Linux c语言 socket编程相关资料:

石头剪刀布用socket做,生产者-消费者模拟用无名信号量做就行了。

编译时应该加上-lpthread参数

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇