logo - 刷刷题
下载APP
【简答题】

实验目的:在Linux环境中,了解以下几种进程通信机制:管道、消息队列、信号量的创建与使用、共享内存。 1.管道的创建 编译pipe.c gcc pipe.c -o pipe 执行 ./pipe 2.父进程和子进程利用管道进行传递参数 分别编译monitor.c和ctrlprocess.c gcc monitor.c -o monitor gcc ctrlprocess.c -o ctrlprocess 运行./monitor exit 运行./monitor getpid 3.消息队列 消息队列是随着内核的存在而存在的,因此创建消息队列时,需要提供消息队列的键值,ftok.c这个程序是创建消息队列键值的例子 可以通过该程序,感受操作系统是如何创建消息队列键值的。 编译ftok.c并运行 gcc ftok.c -o ftork ./ftok 对消息队列进行写和读是通过以下两个程序来实现的。sendmsg.c和rcvmsg.c 分别编译并运行sendmsg.c和rcvmsg.c gcc sendmsg.c -o sendmsg gcc rcvmsg.c -o rcvmsg 5.信号量 信号量的操作包括信号量集的创建和信号量操作两部分,通过信号量来对程序进行控制是通过以下两个程序来实现的。结合server.c和.c两个程序的代码和结果,分析Linux系统是如何通过信号量来实现对进城的控制。 分别编译server.c和.c并开启两个终端,分别运行。请分析程序的执行过程。 6.共享内存 共享内存是通过在内存中开辟出一块共享的空间,并对这段空间进行互斥访问,一个进程向共享内存空间中写,另一个进程从共享内存空间中读取数据,从而实现进城之间信息的传递。通过writer.c和reader.c两个程序来观察和分析程序的执行过程。 分别编译writer.c和reader.c,并分别开启两个终端来执行。程序运行的结果是什么?请分析程序的执行过程。

举报
参考答案:
参考解析:
.
刷刷题刷刷变学霸
举一反三