可变分区分配与回收——采用最坏算法,操作系统课程设计(7)

2019-03-28 19:47

哈尔滨理工大学课程设计报告

1.3 设计思想

系统调用fork()创建两个子进程,再调用signal()让父进程捕

捉键

盘上的中断信号(即按Ctrl + C键);当捕捉到中断信号后, Kill()向两个子进程发出信号,子进程捕捉到信号 终止:

Child Process 1 is Killed by Parent! Child Process 2 is Killed by Parent!

父进程调用

后分别输出下列信息后

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

Parent Process is Killed!

1.4 流程图

创建子进程p1NoP1 > 0Yes创建子进程p2No子进程P2等待父进程SIGSUR2消息后输出Child Process 2 is Killed by Parent!子进程P1等待父进程SIGSUR1消息后输出Child Process 1 is Killed by Parent!P2 > 0Yes

父进程等待子进程都结束后输出Parent process is killed! 1.5 主要程序代码

#include\

哈尔滨理工大学课程设计报告

#include\#include\#include\#include\int k = 0; int p1,p2;

// pid_t child1 = 0,child2 = 0;

void func_father (int sig) // 父进程信号处理函数; {

// 传送参数sig指定的信号给参数pid指定的进程;返回值:0:成功;-1:出

错;

// 信号宏名:SIGUSR1,用户定义信号1,信号值:10,默认动作:终止进程; }

void func_p1 (int sig) // 子进程p1信号处理函数; {

k=1;

// 标志相应SIGUSR1消息结束;}

kill (p1, SIGUSR1); kill (p2, SIGUSR2);

void func_p2 (int sig) // 子进程p2信号处理函数; {

k=1;

// 标志相应SIGUSR2消息结束;}

int main () {

while((p1 = fork()) == -1); // fork () = -1创建子进程失败; if (p1 > 0) // 父进程继续创建子进程p2;

哈尔滨理工大学课程设计报告

{

while ((p2 = fork ()) == -1); if (p2 > 0) // 父进程 {

// 设置信号处理方式,依照参数signum指定的信号编号设置处理函数; // 指定信号到达时跳转到参数handler指定的函数执行;

// 返回值:成功:返回先前信号处理函数指针;出错:SIG_ERR(-1); } else { }

signal (SIGINT, func_father); wait (0); // 等待子进程1结束 wait (0); // 等待子进程2结束 printf (\ exit (0);

// 子进程p2

signal (SIGINT, SIG_IGN); // 忽略本应给父进程的按键中断;

signal (SIGUSR2, func_p2); // 接收父进程的消息后转到处理函数; k = 0;

while (k == 0); // 等待子进程2收到父进程的消息后置k=1 printf (\exit(0);

哈尔滨理工大学课程设计报告

}

else // 子进程p1 { } }

return 0;

signal (SIGINT, SIG_IGN); // 忽略本应给父进程的按键中断; signal (SIGUSR1, func_p1); // 接收父进程的消息后转到处理函数; k = 0; while (k == 0);

// 等待子进程1收到父进程的消息后置k=1

printf (\exit(0);

1.6 运行结果及分析

当按下Ctrl + C后,产生消息响应。

1.7 心得体会

哈尔滨理工大学课程设计报告

通过本次实验,掌握了如何创建进程以及进程的软中断。

题目2 进程的管道通信

2.1 题目的主要研究内容及预期达到的目标

实现进程的管道通信。

2.2 题目研究的工作基础或实验条件

(1)硬件环境:Linux平台。 (2)软件环境:标准C语言。

2.3 设计思想

使用系统调用pipe()建立一条管道线;两个子进程P1和P2分管道各写一句话: Message from Child l!

Message from Child 2!

别向


可变分区分配与回收——采用最坏算法,操作系统课程设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:司法考试《刑法》知识点:破坏社会主义市场经济秩序罪每日一练(2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: