Advertisement

操作系统实验一:进程控制中的父子协作进程

阅读量:

问题描述

借鉴上述示例程序中所采用的并发进程构建方式,设计一个具备父子协作功能的进程系统。其中,父进程负责生成子进程,并对其运行进行管控,确保其能够按照设定的时间间隔,即每3秒执行一次当前目录下文件名称列表的展示操作。

设计思路概述

父进程生成子进程后,会处于等待状态直至子进程执行完毕。在子进程中,通过执行 ls 命令再次产生了一个名为 ps 的子进程(创建两个子进程并非强制要求),随后同样进入等待状态以确保子进程的完成。当 ls 命令执行结束后,由于设置了信号量 sleep(3),程序将在 3 秒后重新运行,形成循环操作,直至用户手动终止程序。

程序实现

Pctl.c

复制代码
    #include "pctl.h"
    int main(int argc, char *argv[])
    {
    char *args[] = {"/bin/ls","-a",NULL}; //子进程要缺省执行的命令
    int pid_1,pid_2; //存放子进程号
    int status_1,status_2; //存放子进程返回状态
    while(1){
    pid_1=fork() ;
    if(pid_1<0) // 建立子进程失败?
    {
    printf("Create Process fai

全部评论 (0)

还没有任何评论哟~