实验三-进程管理.doc

实验三-进程管理.doc

ID:60816878

大小:14.50 KB

页数:2页

时间:2020-12-20

实验三-进程管理.doc_第1页
实验三-进程管理.doc_第2页
资源描述:

《实验三-进程管理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验三进程管理1.实验目的和要求(1)复习操作系统中进程的基本概念。(2)掌握Linux操作系统进程创建,父子进程同步,进程终止基本方法。(3)理解进程并发运行的过程。2.实验环境Linux操作系统的计算机。3.实验内容(1)学习Linux操作系统中进程创建,父子进程同步,进程终止系统调用的格式与方法。主要涉及的系统调用有:fork()、wait()、exit()、getpid()、getppid()。学习将这些系统调用嵌入C语言程序中,观察程序运行过程并分析程序输出结果。1)用VI新建程序文件fork_wait.

2、c。2)程序功能可参考如下:#include#include#include#include#include main(){pid_tpid1,pid2;intstat;if(pid1=fork()<0){printf("fork1error!");exit(1);//父创子进程出错,终止。}elseif(pid1==0)//父创子进程成功,子进程返回{if(pid2=fork()<0)//子创孙进程出错。{

3、printf("fork2error!");exit(1);//子进程出错终止。}elseif(pid2>0)//子进程返回后,子创孙进程成功。exit(0);//子进程终止。else{sleep(2);//pid2==0即:孙进程成功创建后入睡printf("Thisisgrandson,parentis%d",getppid());exit(0);//孙进程醒来,输出其父进程标识数后,终止。}}wait(&stat);//pid1>0即:父创子进程成功返回,父等待子进程终止。exit(0);//子进程终

4、止后,父进程终止。}(2)学习系统调用signal()的使用方法,理解signal()功能,即重新设置进程对信号的处理方式。格式:signal(信号,方式);方式:SIG_IGN——忽略处理方式SIG_DFL——缺省处理方式(终止进程)int_func——一段用户预定义的信号处理函数名1)用VI新建程序文件signal.c。2)程序功能为在主函数中首先设置信号SIGINT(可由按键“Ctrl+C”产生)的处理方式,处理方式为执行一段用户预定义的信号处理函数int_func()。当进程接获从控制终端键入的“Ctrl+

5、C”后转入执行int_func()函数,再次设置信号SIGINT的处理方式为缺省处理方式(终止进程)并显示信号值。观察程序运行过程并分析程序输出结果。3)参考程序如下:#include#include#includevoidint_func(intsig){printf("inint_func,receivesignal=%d",sig);signal(SIGINT,SIG_DFL);//SIG_IGN忽略处理方式//改变为缺省处理方式(终止进程!)re

6、turn;}intmain(){signal(SIGINT,int_func);//函数调用设置信号处理方式 while(1){printf("Helloworld!");sleep(1);//入睡1秒}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。