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。

丽萨主机:美国CN2 GIA精品网/KVM/9折,美国原生IP,最低27元/月

丽萨主机怎么样?丽萨主机,团队于2017年成立。成立之初主要做的是 CDN 和域名等相关业务。最近开辟新领域,新增了独立服务器出租、VPS 等业务,为了保证业务质量从一开始就选择了中美之间的 CN2 GIA 国际精品网络,三网回程 CN2 GIA,电信去程 CN2 GIA + BGP 直连智能路由,联通移动去程直连,原生IP。适合对网络要求较高的用户,同时价格也比较亲民。点击进入:丽萨主机官方网站...

华纳云E5处理器16G内存100Mbps688元/月

近日华纳云商家正式上线了美国服务器产品,这次美国机房上线的产品包括美国云服务器、美国独立服务器、美国高防御服务器以及美国高防云服务器等产品,新产品上线华纳云推出了史上优惠力度最高的特价优惠活动,美国云服务器低至3折,1核心1G内存5Mbps带宽低至24元/月,20G ddos高防御服务器低至688元/月,年付周期再送2个月、两年送4个月、三年送6个月,终身续费同价,有需要的朋友可以关注一下。华纳云...

麻花云-香港CN2云服务器,安徽BGP线路,安徽移动大带宽!全系6折!

一、麻花云官网点击直达麻花云官方网站二、活动方案优惠码:专属优惠码:F1B07B 享受85折优惠。点击访问活动链接最新活动 :五一狂欢 惠战到底 香港云主机 1.9折起香港特价体验云主机CN2 云服务器最新上线KVM架构,,默认40G SSD,+10G自带一个IPv4,免费10Gbps防御,CPU内存带宽价格购买1核1G1M19元首月链接2核2G 2M92元/3个月链接2核4G3M112元/3个月...

waitpid为你推荐
知识分享平台微信看到一些文章,可以分享到知识付费的平台吗?怎么操作呀?国产操作系统下载国产操作系统要钱吗自定义表情手机qq添加的自定义表情怎么分组jstz举手望,草上马跑,打什么数字?遗传算法实例如何用C语言实现遗传算法的实际应用?单元测试规范求解,单片机程序的单元测试应该怎么做呢?文本框透明word文本框的背景图片怎样调透明度中信银行理财宝中信银行理财宝可以长期存款吗?点心os点心 OS 用户界面(UI)的设计理念是什么?web推送javaweb写的聊天网页是如何向客户端发送消息?
免费虚拟主机申请 网站虚拟主机空间 过期已备案域名 中国万网域名 主机屋免费空间 godaddy域名转出 php探针 idc资讯 双11秒杀 沈阳主机托管 徐州电信 第八届中美互联网论坛 超低价 bwg 服务器操作系统安装 灵动鬼影实录2 免费网络加速器下载 盛大免费网络游戏 贵州电信营业厅 winds组合 更多