父进程

✍ dations ◷ 2025-04-12 12:17:53 #操作系统,进程,计算机科学

在计算机领域,父进程(英语:Parent Process)指已创建一个或多个子进程的进程。

在UNIX里,除了进程0(即PID=0的交换进程,)以外的所有进程都是由其他进程使用系统调用fork创建的,这里调用fork创建新进程的进程即为父进程,而相对应的为其创建出的进程则为子进程,因而除了进程0以外的进程都只有一个父进程,但一个进程可以有多个子进程。

操作系统内核以进程标识符(,即PID)来识别进程。进程0是系统引导时创建的一个特殊进程,在其调用fork创建出一个子进程(即PID=1的进程1,又称init)后,进程0就转为交换进程(有时也被称为空闲进程(英语:Idle (CPU))),而进程1(init进程)就是系统里其他所有进程的祖先。

当一个子进程结束运行(一般是调用exit(英语:exit (operating system))、运行时发生致命错误或收到终止信号所导致)时,子进程的退出状态(返回值)会回报给操作系统,系统则以SIGCHLD信号将子进程被结束的事件告知父进程,此时子进程的进程控制块(PCB)仍驻留在内存中。一般来说,收到SIGCHLD后,父进程会使用wait系统调用以获取子进程的退出状态,然后内核就可以从内存中释放已结束的子进程的PCB;而如若父进程没有这么做的话,子进程的PCB就会一直驻留在内存中,也即成为僵尸进程。

孤儿进程则是指父进程结束后仍在运行的子进程。在类UNIX系统中,孤儿进程一般会被init进程所“收养”,成为init的子进程。

为避免产生僵尸进程,实际应用中一般采取的方式是:

在Linux内核中,进程和POSIX线程有着相当微小的区别,父进程的定义也与UNIX不尽相同。Linux有两种父进程,分别称为(形式)父进程与实际父进程,对于一个子进程来说,其父进程是在子进程结束时收取SIGCHLD信号的进程,而实际父进程则是在多线程环境里实际创建该子进程的进程。对于普通进程来说,父进程与实际父进程是同一个进程,但对于一个以进程形式存在的POSIX线程,父进程和实际父进程可能是不一样的。

本条目部分或全部内容出自以GFDL授权发布的《自由在线电脑词典》(FOLDOC)。

相关

  • 热疲劳中暑(英语:Heat stroke)是一种受室外空气的高温多湿或阳光过久直接照射动物体、人体等造成体温异常升高不降所引起的症状的通称。从病情的差异大致上可分为以下四类:
  • 五个自治领土美国领地是指美国行政区划的一种分类,其领土由美国政府管理但不属于美国任何一个州。建立这些领地的目的是为了管理这些新获得的地区,因为当时美国领土的边界还在扩张中。这些
  • 乌得勒支乌得勒支(荷兰语:Utrecht)是荷兰第四大城市和市镇,为荷兰乌得勒支省人口最多的城市,同时也是该省的省会。其为兰斯台德地区最东边的城市,也是荷兰第四大城市,2009年人口超越300,030
  • 麦穗麦可以指:
  • 周法高周法高(1915年9月29日-1994年6月25日),字子范,中国语言学家,中华民国中央研究院院士。妻王绵,为师王伯沆之女。
  • 托莱多战争托莱多战争(1835–1836),亦称密歇根-俄亥俄战争,是美国密歇根州与俄亥俄州之间爆发的一场几乎不流血的边境冲突。该战争的爆发很大程度上是由于当时人们对五大湖地理特点的不了
  • 老官台文化老官台文化是中国黄河中游已知最早的新石器时代文化,又称为“大地湾文化”,主要分布在渭河流域、关中及丹江上游地区,存在于约7000年至8000年前。重要遗址包括:华县老官台遗址是
  • 2012年法国羽毛球国际赛2012年法国羽毛球国际赛为第1届法国羽毛球国际赛,属世界羽联国际系列赛级别,亦是2011/12赛季欧洲羽联巡回赛的其中一站。本届赛事于2012年4月5日至4月8日在法国奥尔良内的 Pal
  • Ba.88攻击机布雷达 Ba.88 “猞猁”(意大利语:Breda Ba.88 "Lince") 是意大利于二战期间装备的一种攻击机。该机于1937年首次公布,并打破了当时多项速度记录。Ba.88具有流线型外形与可伸缩起
  • Nexus QWi-Fi (802.11 a/b/g/n), NFC, Bluetooth, microUSB (for service and support), 10/100BASE-T Ethernet (RJ45).Nexus Q是Google Nexus产品家族中一款流媒体娱乐设备。这一