Linux进程(一)

一.进程的介绍

1.引出进程

Google Chrome
Google Chrome 是一个进程
Google Chrome 底下的选项是多个线程

Ubuntu
通过top命令可以查看正在运行的进程

2.进程的介绍

  • 课本概念
    程序的一个执行实例,正在执行的程序
  • 内核观点
    担当分派系统资源(CPU 时间, 内存)的实体

二.创建进程

1.创建进程的原理

创建新进程在Linux下是是由父进程完成的,创建完成的新进程是子进程.

新的进程的地址空间有两种可能性:

  • 子进程是父进程的复制品(除了PID和task_struct是子进程自己的,其余的都从父进程复制而来)
  • 子进程装入另一个程序

在Linux下的fork函数用于创建一个新的进程,使用fork函数来创建一个进程时,子进程只是完全复制父进程的资源。这样得到的子进程和父进程是独立的,具有良好的并发性。但是进程间通信需要专门的机制

2.什么是fork函数

(1).通过手册查看fork

在这里插入图片描述

  • NAME

    创建一个子程序

  • SYNOPSIS

#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
  • 函数说明:

通过复制调用进程创建一个新进程:

fork 有两个返回值

父子进程代码共享,数据各自私有一份(采用写时拷贝)

  • 返回值说明

如果成功则会给父进程返回子进程的PID,给子进程返回0
如果失败的话则会给父进程返回-1

3.例子

#include <sys/wait.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
  
int main(){
      pid_t pid=fork();                                                                                         
      if(pid==-1)exit(1);
      if(pid==0){
          printf("fork:%d %d\n",getpid(),getppid());
          exit(5);
      }else{
          printf("main:%d %d\n",getpid(),getppid());
      }                                                                                                         
      return 0;                                                                                                 
  }    

结果
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值