第三十一讲 进程

第三十一讲 进程

文章目录

操作系统是通过进程来实现对应用程序的协调运行

一、进程

在单片机开发中,是没有进程的概念的。因为单片机内就运行了一个程序。但是在 Windows 或者 Linux 里面可以运行多个程序,这些程序需要进行统一的管理。操作系统通过对进程的管理来对不同程序进行管理。

获取进程之间的关系:pstree

操作系统通过 pid 来区分不同的进程。通过命令 ps -ef 可以查看进程的pid。

二,创建一个进程

1、函数介绍

函数 说明 返回值 头文件
pid_t fork(void); 创建进程 成功:
0或者其他正整数
失败:
-1
unistd.h

2、fork 函数特性

  • 执行 fork 函数之后, fork 函数会返回两次不同的值

    执行 fork 函数后会创建一个新的进程,他会复制旧的进程里面几乎所有的内容。也就是生成两个几乎一摸一样的进程。而这两个进程都是从 fork 函数返回,所以会有两个返回值。如果从旧的返回,返回值为0或者-1,在新进程返回时,返回新进程的pid

  • 在执行 fork 函数之前,操作系统只有一个进程,fork 函数之前的代码只会被执行一次。fork 函数执行之后的代码会被执行 2 次。

三、fork 实验

1、实验代码

#include <unistd.h>
#include <stdio.h>

int main(char *argc, char **argv)
{
    pid_t lPid;
    printf("Before fork!\r\n");
    lPid = fork();
    printf("After fork pid is %d\r\n", lPid);
    return 0;
}

2、实验结果

执行编译完成的可执行程序

Before fork!
After fork pid is 3177
After fork pid is 0

上一篇:第三章学习笔记


下一篇:code first , Migration