waitpid什么是进程Id

waitpid  时间:2021-06-10  阅读:()

嵌入式里面的system,exec是什么?_?

linux的系统调用,执行某个可执行文件 system是再另起一个进程来执行system里面的命令 exec是在本进程内自行exec里面的内容,不另外创建进程。

嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。

与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。

由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。

嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。

求助,SIGCHLD和waitpid的关系

其实这两者之间没有必然的关系。

SIGCHILD只是在子进程退出的时候发送给父进程的一个信号值,这是一种异步通知父进程的方式.父进程可以捕获,忽略这个信号,忽略这个信号也是避免僵尸进程的一种方式. waitpid or wait回收子进程的结束状态,避免子进程进入僵尸状态. 主进程可以直接调用waitpid or wait来回收子进程的结束状态,不一定非得通过SIGCHILD信号处理函数,也就是说waitpid or wait不是依靠SIGCHLD信号是否到达来判断子进程是否结束.但是如果主进程除了回收子进程状态以外还有其他的业务需要处理那么最好是通过SIGCHILD信号处理函数来调用waitpid or wait,因为这是异步的操作. 如果注册了SIGCHLD信号处理函数,那么就需要等待SIGCHLD信号的到达并且完成信号处理函数,waitpid or wait才能接受到子进程的的退出状态. 前面的3点可能很多同学都知道,但是对第4点可能没有关注过,其实以前我也没有关注过第4点,某天man system的时候看到"During execution of mand, SIGCHLD will be blocked",觉得有点不解."为什么要阻塞SIGCHLD信号呢?是不是跟waitpid有关呢?" 在system实现中会调用waitpid来回收子进程的状态,首先想到的一点是:阻塞SIGCHLD是为了避免主进程已经注册的SIGCHLD处理函数回收所有的子进程状态,那么在system中的waitpid调用会导致ECHILD(No child processes)的错误.为了证实自己的想法是否正确在网上查了一下,最后发现还跟第4点有关系,因为如果不阻塞SIGCHLD信号并且主进程注册了SIGCHLD信号处理函数,那么就需要等主进程的信号处理函数返回waitpid才能接受到子进程的退出状态,也就是如果信号处理函数需要1min才能处理完那么system也需要1min才能返回.所以在调用system函数的时候阻塞SIGCHLD,这样在执行期间信号被阻塞就不会调用信号处理函数了,system中的waitpid就能"及时"的获取到子进程的状态,然后"及时"退出.

什么是进程Id

1. 进程ID(英语:processID)、PID)是大多数操作系统的内核用于唯一标识进程的一个数值。

(简言之,就是进程的绰号。

)这一数值可以作为许多函数调用的参数,以使调整进程优先级、kill(命令)进程之类的进程控制行为成为可能。

2. 在类UNIX操作系统中,新进程都衍自系统调用fork函数(英语:Fork (operating system))。

fork()调用会将子进程的PID返回给父进程,使其可以之指代子进程,从而在需要时以之为函数参数。

例如,若以子进程PID为参数调用waitpid(),可使父进程以休眠状态等待子进程结束;若以之为参数调用kill()(英语:kill mand)),便可结束对应子进程。

3. 在各PID中,较为特别的是0号PID和1号PID。

PID为0者为交换进程(英语:swapper),属于内核进程,负责分页任务;PID为1者则常为init进程,主要负责启动与关闭系统。

值得一提的是,1号PID本来并非是特意为init进程预留的,而init进程之所以拥有这一PID,则是因为init即是内核创建的第一个进程。

不过,现今的许多UNIX/类UNIX系统内核也有以进程形式存在的其他组成部分,而在这种情况下,1号PID则仍为init进程保有,以与之前系统保持一致。

4. PID的分配机制则因系统而异,一般从0开始,然后顺序分配,直到达到一个最大值(亦因系统而异),而后又从300开始重新分配;在Mac OS X和HP-UX下,则是由100开始重分配。

在分配PID时,若遇到已分配的PID,则直接跳过,继续递增查找下一个可分配PID。

A400互联37.8元/季,香港节点cn2,cmi线路云服务器,1核/1G/10M/300G

A400互联怎么样?A400互联是一家成立于2020年的商家,A400互联是云服务器网(yuntue.com)首次发布的云主机商家。本次A400互联给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐,香港节点上线cn2+cmi线路云服务器,37.8元/季/1H/1G/10M/300G,云上日子,你我共享。...

ATCLOUD-KVM架构的VPS产品$4.5,杜绝DDoS攻击

ATCLOUD.NET怎么样?ATCLOUD.NET主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解析、域名注册、SSL证书等海外网站建设服务。 其大部分数据中心是由OVH机房提供,其节点包括美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国以及新加坡。 提供超过480Gbps的DDoS高防保护,杜绝DDoS攻击骚扰,比较适合海外建站等业务。官方网站:点击访问ATCLOUD官网活...

RackNerd新上圣何塞、芝加哥、达拉斯、亚特兰大INTEL系列,$9.49/年

racknerd怎么样?racknerd商家最近促销三款美国便宜vps,最低只需要9.49美元,可以选择美国圣何塞、西雅图、纽约和芝加哥机房。RackNerd是一家成立于2019年的美国高性价比服务器商家,主要从事美国和荷兰数据中心的便宜vps、独立服务器销售!支持中文工单、支持支付宝和微信以及PayPal付款购买!点击直达:racknerd官方网站INTEL系列可选机房:加利福尼亚州圣何塞、芝加...

waitpid为你推荐
刘建平刘建平的履历企业资源管理系统企业内部管理系统有哪些qq博客怎么开QQ博客啊!华为总裁女儿为啥姓孟孟晚舟姓孟,任正非姓任,孟晚舟怎么是任正非的女?腾讯汽车网可以了解汽车知识的权威网站大概有哪些印度尼西亚国家代码印尼身份证号的编码规则是什么?(比如中国的1-6位是地址代码,7-14位是出生日期码等)云计划云计划创富平台有谁了解啊 是骗人的吗?什么是生态系统生态系统的我主要特征是什么?微软操作系统下载怎么下载官方win10 64位镜像系统超级播放器一共有哪些播放器?
虚拟主机服务商 免费vps t牌 天猫双十一秒杀 怎么测试下载速度 国外ip加速器 银盘服务是什么 空间租赁 linode支付宝 国外在线代理服务器 国内域名 阿里云手机官网 测速电信 云服务是什么意思 网络速度 美国vpn代理 德国代理 低价 海尔t68g 万网主机代理 更多