新-实验报告2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统

实验报告

课程名称操作系统及安全

实验学期 2014 至 2014 学年第二学期学生所在系部通信工程系

年级专业班级班

学生姓名学号

任课教师陈晨

实验成绩

通信工程系制

一、实验题目:

熟悉Linux IPC; 通过对signal的使用,为后续编写进阶调度程序和处理程序响应奠定基础。

二、实验设备及环境:

1. 硬件设备:PC机一台

2. 软件环境:安装Linux操作系统,并安装相关的程序开发环境,如C \C++\tsh\bsh等编程语言环境。

三、实验内容及要求:

(1)编写一个c程序,满足以下要求

●用系统调用列出所有的信号;(kill –l)

●用系统调用signal()让父进程捕捉键盘上来的中断信号(Ctrl-C);

●当捕捉到中断信号后,父进程用系统调用kill()向两个子进程发出信号,子进程捕

捉到信号后分别输出下列信息后终止

⏹Child Process 1 is Killed by Parent!

⏹Child Process 2 is Killed by Parent!

父进程等待两个子进程终止后,输出如下的信息后终止:Parent Process is Killed!

(2)编写一个C程序实现消息队列

●发送两条消息,父进程创建消息队列并发送,子进程接收;

●要使用waitpid回收子进程,防止僵尸进程;

●消息队列使用完回收消息id(msgctl)

●有精力将该程序扩展为不同机器上的两个分布式进程

(3)编写c程序实现共享内存操作

●程序1向共享内存写入键盘输入的数据;

●程序2从共享内存读取程序1的数据并打印;

●两个程序都使用while(1)循环执行,直到强制退出。

(4)将《linux c编程大全》第六章中信号量(灯)的程序照样编写一遍,完成结果分析。

四、实验方法内容

1.需要的头文件

#include

#include

#include

#include

#include

#include

2.主要的常量变量

struct msgbuf

{

long msgtype;

char msgtext[128];

};

int msgqid;

struct msqid_ds msgidds;

void delmsgqid(void);

3.主要模块

int main(void)

五.代码

六.实验结果

1.执行结果

a)实验1

b)实验2

c)实验3

子程序1

子程序2

d)实验4

未给出。

2.结果分析

评价教师签名:

相关文档
最新文档