探索Linux中的进程控制:从启动到退出的背后原理
个人主页:chian-ocean
文章专栏-Linux
前言:
进程控制是操作系统对进程的创建、运行、调度、中止等活动进行管理和协调的行为。它是操作系统中至关重要的一部分,保证多任务处理环境下的资源分配和系统稳定性。
进程创建
fork( )
-
fork()
调用后:- 子进程是父进程的副本,拥有相同的代码和数据。
- 子进程的所有资源(如内存、打开的文件描述符)最初与父进程共享,但在写入数据时会触发**写时复制(Copy-on-Write,COW)**机制。
返回值:
- **在父进程中:**返回子进程的 PID(进程 ID)。
- **在子进程中:**返回
0
。 - **如果失败:**返回
-1
并设置错误码(通常是因为系统资源不足)
int main()
{
pid_t id = fork();
if(id > 0){
while(1){
cout << "父进程"<< "pid :"<<getpid() <<endl;
sleep(2);
}
}
else if(id == 0){
while(1)
{
cout << "子进程"<<endl;
sleep(2);
}
}
else
{
perror("fork");
cout << "子进程"<< "pid :"<<getpid(