
操作系统
文章平均质量分 50
RRRRFLY
这个作者很懒,什么都没留下…
展开
-
LINUX 哲学家就餐问题 C语言实例
问题描述假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。分析:最多4个人拿起筷子,则可以避免死锁。设置信号量控制。C语言实现#include <stdio.h>#include <stdlib.h>#include <unist原创 2021-05-08 21:55:05 · 1476 阅读 · 3 评论 -
LINUX 线程同步与互斥 C语言实例
实践题目事先编辑好数据文件1.dat和2.dat,假设它们的内容分别为1 2 3 4 5 6 7 8 9 10和 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 , 设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同的处理(加和乘运算)。具体要求:• 线程1从1.dat将数据读文件读到buf1中;• 线程2从2.dat 将数据读到buf2中;• 当buf1,buf2有数据时,线程3将buf1和buf2的结果相加和原创 2021-05-08 21:45:35 · 595 阅读 · 0 评论 -
LINUX 多进程编程 C语言实例
LINUX多进程编程 简单实例1.ps与top命令 查看进程状态2.系统调用ping,并执行#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>int main(){int main(){ char *exec_argv[4]; exec_argv[0] = "ping"; exec_argv[1] = "127.0.0.1"原创 2021-05-08 21:27:48 · 1387 阅读 · 0 评论