打印
[技术问答]

进程的状态和类型

[复制链接]
19|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2024-11-15 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
进程的状态:在Linux系统中,一个进程可以处于以下几种状态:运行(Running):进程正在执行。就绪(Ready):进程已经准备好运行,等待系统分配CPU时间片。阻塞(Blocked):进程暂时无法执行,等待某些事件发生(如I/O操作)。终止(Terminated):进程执行完毕或被终止。进程的类型:父进程(Parent Process):创建一个或多个子进程的进程。子进程(Child Process):由父进程创建的进程。僵尸进程(Zombie Process):子进程结束,但父进程尚未回收其资源。孤儿进程(Orphan Process):其父进程已经终止或不存在的进程,被init进程接管。守护进程(Daemon Process):在后台运行的长期运行的进程,通常不与控制终端关联。使用C语言代码举例:#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main() {
    pid_t pid;

    pid = fork(); // 创建子进程

    if (pid < 0) {
        fprintf(stderr, "Fork failed\n");
        return 1;
    } else if (pid == 0) {
        // 子进程
        printf("Child process created with PID: %d\n", getpid());
        sleep(5); // 子进程睡眠5秒
        printf("Child process finished\n");
    } else {
        // 父进程
        printf("Parent process with PID: %d\n", getpid());
        wait(NULL); // 等待子进程结束
        printf("Parent process finished\n");
    }

    return 0;
}
在这个例子中,父进程创建了一个子进程,子进程会睡眠5秒然后结束。父进程会等待子进程结束后再结束。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

653

主题

2697

帖子

0

粉丝