Linux进程的基础知识、fork复制进程

目录

1、进程的基础知识:

(1)进程:

(2)PCB:

(3)进程的状态:

(4)并发与运行

 2.操作系统发展史

3.fork复制进程


1、进程的基础知识:

(1)进程:

一个正在运行的程序

(2)PCB:

进程控制块

进程控制块是用一个结构体struct task_struct来实现

Linux进程的基础知识、fork复制进程_第1张图片

(3)进程的状态:

就绪,阻塞,运行

Linux进程的基础知识、fork复制进程_第2张图片

时间片轮转调度

(4)并发与运行

Linux进程的基础知识、fork复制进程_第3张图片

 2.操作系统发展史

操作系统:管理计算机上的软硬件资源,为用户提供一个交换接口

操作系统精髓与设计原理35页

(1)串行处理

(2)简单的批处理

(3)多道程序设计

(4)分时系统

3.fork复制进程

Linux进程的基础知识、fork复制进程_第4张图片

fork 是把已有的进程复制一份 , 当然把 PCB 也复制了一份 , 然后申请一个 PID, 子进程的
PID( 父进程的 )+1;
子进程的 PID= 父进程的 PID+1;
如果父子进程想要做不同的事情 , 那么我们通过返回值来判断 ;
man fork;
#include 
#include
#include
#include
#include

int main()
{
    char *s=NULL;
    int n=0;//控制父子进程的次数
    
    pid_t id=fork();
    assert(id!=-1);
    
    if(id==0)//子进程
    {
        s="child";
        n=3;
    }
    else
    {
        s="parent";
        n=7;
    }
    //父子进程一起运行
    int i=0;
    for(;i

Linux进程的基础知识、fork复制进程_第5张图片

fork是把已有的进程复制,当然把PCB复制了一份,然后申请一个PID,子进程的PID(父进程的)+1

子进程PID=父进程PID+1

如果父子进程想要做不同的事,那我们通过返回值来判断

man fork

获取进程PID 子:getpid() 父getppid()

Linux进程的基础知识、fork复制进程_第6张图片

注:程序中看到的都是逻辑地址

逻辑地址一样,所以地址一样,物理地址不一样,所以值不一样

2034是什么?bash

现有bash再有父进程再有子进程,bash是源头

你可能感兴趣的:(Linux命令,笔记,代码+运行结果,linux,运维,服务器)