进程、父进程和子进程
在操作系统中,fork() 系统调用用于进程创建另一个进程。使用 fork() 系统调用的进程称为父进程,而由此创建的进程称为子进程。
以下是关于这些内容的详细信息:
进程
进程是一个正在执行的活动程序。它不仅仅是程序代码,还包括程序计数器、进程栈、寄存器、程序代码等。相比之下,程序代码仅是文本部分。
进程在其执行过程中会改变其状态。此状态部分取决于进程的当前活动。进程在其执行过程中所处的不同状态包括新建、就绪、运行、阻塞、终止。
每个进程都关联着一个进程控制块。它包含与其关联的进程的重要信息,例如进程状态、进程号、程序计数器、文件和寄存器列表、CPU 信息、内存信息等。
父进程
操作系统中所有进程都是由一个进程执行 fork() 系统调用创建的,除了启动进程。使用 fork() 系统调用的进程是父进程。换句话说,父进程是创建子进程的进程。一个父进程可以有多个子进程,但一个子进程只有一个父进程。
在 fork() 系统调用成功后,子进程的 PID 会返回给父进程,而 0 会返回给子进程。如果 fork() 系统调用失败,则 -1 会返回给父进程,并且不会创建子进程。
子进程
子进程是操作系统中父进程使用 fork() 系统调用创建的进程。子进程也可能被称为子进程或子任务。
子进程作为其父进程的副本创建,并继承其大部分属性。如果子进程没有父进程,则它是由内核直接创建的。
如果子进程退出或被中断,则会向父进程发送 SIGCHLD 信号。
以下是演示父进程和子进程的图表:
广告