zoukankan      html  css  js  c++  java
  • 进程知识点概要(一)

    1.进程和进程

    1.进程

    ​ 进程是一个存储在磁盘上某个目录种的可执行文档。内核使用exec函数(7个exec函数之一),将进程读入内存,并执行进程。

    2.进程和进程ID

    ​ 进程的执行实例被称为进程(process).某些操作系统用任务(task)表示正在被执行的进程。UNIX系统确保每个进程都有一个唯一的数字标识符,称为进程ID,是一个非负整数。

    3.进程控制

    ​ 有3个用于进程控制的主要函数:fork,exec和waitpid。

    ​ 下面看一个示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26


    int
    main(void)
    {
    char buf[MAXLINE];
    pid_t pid;
    int status;

    while(fgets(buf, MAXLINE, stdin) != NULL){
    if(buf[strlen(buf) - 1]=='n')
    buf[strlen(buf) - 1] = 0;
    if((pid = fork()) < 0){
    err_sys("fork error");
    }else if (pid == 0){
    execlp(buf, buf, (char*)0);
    err_ret("couldn't execute: %s", buf);
    exit(127);
    大专栏  进程知识点概要(一)}


    if((pid = waitpid(pid, &status, 0)) < 0)
    err_sys("waitpid error");
    }
    exit(0);
    }

    上述进程很有参考价值

    • 调用fork创建一个新进程。新进程是调用进程的一个副本,我们称调用进程为父进程,新创建的进程是子进程。fork对父进程返回新的子进程的进程ID(一个非负整数),对于子进程则返回0.因为fork创建一个新进程,所以说它被调用一次(由父进程),但返回两次(分别在父进程和子进程中).
    • 在子进程中,调用execlp以执行从标准输入读入的命令。这就用新的进程文档替换了子进程原先执行的进程文档。fork和跟随其后的exec两者的组合就是某些操作系统所称的产生(spawn)一个新进程。在UNIX系统中,这两部分分离成2个独立的函数。
    • 子进程调用execlp执行新进程文档,而父进程希望等待子进程终止,这是通过调用waitpid实现的,其参数指定要等待的进程(即pid参数是子进程的ID)。waitpid函数返回子进程的终止状态(status变量)

    4.信号

    ​ 信号用于通知进程发生了某种情况。例如,若某一进程执行除法操作,其除数为0,则将名为SIGFPE(浮点异常)的信号发送给该进程,进程有以下3种处理信号的方式

    • 忽略信号
    • 按系统默认方式处理
    • 提供一个函数,信号发生时调用该函数,这被称为捕捉该信号

    2.进程环境

    1.退出函数

    1
    2
    3
    4
    5
    #include<stdlib.h>
    void (int status);
    void _Exit(int status);
    #include<unistd.h>
    void _exit(int status);

    main函数返回一个整型值与用该值调用exit等价。即main函数中

    1
    exit(0);等价于return(0);
  • 相关阅读:
    vue 表单 enter 键触发默认事件
    img找不到图片时,去除默认边框
    Javascript 计算
    Azure 上SQL Database(PaaS)Time Zone时区问题处理
    c#: 颜色选择控件之实现
    hive建库,建表,删表,删库,添加静或动态分区
    仿写一个 nodejs 中 queryString 的 parse 方法
    数独小游戏
    tnpm
    《翻页时钟特效》或者《日历翻页效果》的 css 部分原理实现
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12014273.html
Copyright © 2011-2022 走看看