进程复习111

进程的含义

进程是一个程序执行的过程会分配内存资源,CPU的调度是资源分配的基本单位。

内存分布

每个进程有3G的进程空间,3G~4G是内核的空间,

MMU(Memory Manager Unit),是内存管理单元,负责将虚拟地址转换成物理地址。除此之外,MMU 实现了内存保护,进程无法直接访问物理内存,防止内存数据被随意篡改。

虚拟地址 *  物理内存和虚拟内存的地址 映射表 1page=4k

名称内容
code放着二进制可执行程序
data初始化为0的全局变量和静态变量
bss初始化为0和未初始化的全局变量和静态变量

程序员自己管理的空间,需要手动申请和释放

8M局部空间,函数的返回地址、函数的参数

进程的分类

1、交互式进程    2、批处理进程 shell脚本   3、守护进程

进程的作用

并发,同时推进。

进程的状态

有三种状态:    就绪态-----执行态----阻塞态         //基本系统

linux中有四种状态:  运行态-----睡眠态---僵尸态----暂停态      //Linux中

使用方法

1、原语言

        

pid_t fork();

一次调用返回两次,产生一个子进程,子进程先运行和父进程先运行顺序不确定。

它们之间变量不共享。

子进程复制父进程的0~3G空间和父进程内核中的PCB,但ID号不同。

功能:通过fork可以从当前进程中克隆一个同名的新进程。

克隆的进程被称为子进程,原有的进程被称作父进程。

子进程是父进程的完全拷贝,子进程与父进程有相同的代码逻辑,并且子进程的执行是在fork()执行之后执行的。

返回值:int 类型的数字。

在父进程中:成功   -----》 返回子进程的pid号  > 0

                     失败   ------》返回-1;

在子进程中:成功 -------》 返回 0;

                     失败 ------》 无。

函数操作

getpid()         //获得自己的ID号

getppid()       //获得父进程的ID号

父子进程的关系

子进程是父进程的副本。子进程获得父进程数据段,堆,栈,正文段共享。

进程的终止

8个情况
1)main 中return
2)exit(), c库函数,会执行io库的清理工作,关闭所有 的流,以及所有打开的文件。已经清理函数(atexit)。
3)_exit,_Exit 会关闭所有的已经打开的文件,不执行清理函数。
4) 主线程退出
5)主线程调用pthread_exit

异常终止
6)abort()
7)signal   kill pid
8)最后一个线程被pthread_cancle

exit(0  /  1 )  在使用的时候都是对的写 0 
                         存在错误的时候写         1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值