UNIX环境高级编程读书笔记(九)—进程关系 (1)

本文详细介绍了Unix/Linux系统中进程组的概念及其管理方法,包括如何获取进程组ID、改变进程组归属以及创建进程组。通过实例展示了如何在父子进程中进行进程组ID的获取与设置。

一、进程组

1.

名称::

getpgrp

功能:

得到进程的进程组id

头文件:

#include <unistd.h>

函数原形:

pid_t getpgrp(void);

参数:

返回值:

调用进程的进程组ID

 

进程组是一个或多个进程的集合,通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程除了一个进程ID之外,还属于一个进程组。每个进程组有一个唯一的进程组ID。

 

2.

名称::

getpgid

功能:

得到进程的进程组id

头文件:

#include <unistd.h>

函数原形:

pid_t getpgid(pid_t pid);

参数:

pid  进程组id

返回值:

若成功则返回进程组ID,若出错则返回-1。

getpid的功能与getpgrp的功能相似,getpgrp返回调用进程的进程组,而getpgid返回指定进程的进程组,getgpid(0);等价于getpgrp(); .

每个进程组都可以有一个组长进程。组长进程的进程ID等于其进程组ID。组长进程可以创建一个进程组,创建该进程组中的进程,然后终止。

 

3.

名称::

setpgid

功能:

加入或创建一个进程组

头文件:

#include <unistd.h>

函数原形:

pid_t setpgid(pid_t pid,pid_t pgid);

参数:

pid  进程id

pgid 进程组id

返回值:

若成功则返回进程组ID,若出错则返回-1。

 setpgid函数将pid进程的进程组ID设置为pgid,如果这两个参数相等,则由pid指定的进程变成进程组组长。如果pid是0,则使用调用者的进程Id。如果pgid是0,则有pid指定的进程ID将用作进程组id。

 

#include <unistd.h>

#include <sys/types.h>

 

main();

{

pid_t cpid;

pid_t fpid;

 

if((cpid=fork())==0)

{

    sleep(1);

    printf(“I’m child,my id is %d, gpid is %d\n”,getpid(),getpgrp());

}

else

{

    fpid=getpid();

    setpgid(cpid,fpid);

    printf(“I’m father,my id is %d,gpid is %d\n”,fpid,getpgrp());

    waitpid(cpid,NULL,0);

}

}

 

下载方式:https://renmaiwang.cn/s/t0445 在时序发生器设计实验中,如何达成T4至T1的生成? 时序发生器的构建可以通过运用一个4位循环移位寄存器来达成T4至T1的输出。 具体而言:- **CLR(清除)**: 作为全局清零信号,当CLR呈现低电平状态时,所有输出(涵盖T1至T4)皆会被清除。 - **STOP**: 在T4脉冲的下降沿时刻,若STOP信号处于低电平状态,则T1至T4会被重置。 - **启动流程**: 当启动信号START处于高电平,并且STOP为高电平时,移位寄存器将在每个时钟的上升沿向左移动一位。 移位寄存器的输出端对应了T4、T3、T2、T1。 #### 2. 时序发生器如何调控T1至T4的波形形态? 时序发生器通过以下几个信号调控T1至T4的波形形态:- **CLR**: 当CLR处于低电平状态时,所有输出均会被清零。 - **STOP**: 若STOP信号为低电平,且在T4脉冲的下降沿时刻,所有输出同样会被清零。 - **START**: 在START信号有效(通常为高电平),并且STOP为高电平时,移位寄存器启动,从而产生环形脉冲输出。 ### 微程序控制器实验#### 3. 微程序控制器实验中的四条机器指令及其对应的微程序段指定的机器指令及其关联的微程序段如下:- **NOP**: 00- **R0->B**: 04- **A+B->R0**: 05- **P<1>**: 30- **IN->R0**: 32- **R0->OUT**: 33- **HLT**: 35#### 4. 微程序段中的微操作/微命令序列针对每条微指令,其对应的微操作或微命令序列如下:- **IN->R0**: 输入(IN)单元的数据被...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值