Linux系统编程------进程基本概念

进程
程序:死的,只占用磁盘空间;
进程:活的,运行起来的程序,占用内存、CPU等系统资源。

并发:同时触发,交替执行(单核);
并行:同时触发,同时执行(多核)。

虚拟内存和物理内存映射关系
一个寄存器大小只有 4字节。

PCB进程控制块
进程ID;
进程状态:初始态、就绪态、运行态、阻塞态、终止态;
文件描述符表;
信号相关信息资源;
用户ID和组ID;

fork函数
pid_t fork(void)
创建子进程,父子进程各自返回,父进程返回子进程pid,子进程返回0;

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

int main(int argc, char* argv[])
{

        int i;
        for(i=0; i<5; i++){
            if(fork() == 0){
                break;
            }
        }

        if(i==5){
            sleep(1);
            printf("I'm parent \n");
        } else{
            printf("I'm %dth child\n",i+1);
        }
        return 0;
}

进程共享
读时共享,写时复制 原则
父子进程不共享全局变量;
父子进程共享:文件描述符,mmap建立的映射区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值