进程和线程
进程
基本概念:
进程:是程序动态执行的过程,包括创建、调度、消亡
程序:存放在外存中的一段数据的集合
进程创建:
进程空间分布:
每个进程运行起来后,操作系统开辟0 - 4G虚拟内存空间
进程空间:用户空间 + 内核空间(不允许用户访问)
用户空间:文本段(文本区)+ 数据段(数据区)+ 系统数据段(堆区、栈区)
文本段:存放代码和指令
数据段:字符串常量、已初始化全局变量/静态变量、未初始化全局变量、静态变量
数据区存放数据特点:
未经初始化值为0
编译时开辟空间
程序结束时回收空间
系统数据段:堆区(malloc空间)、栈区(局部变量、函数运行)
堆区存放数据特点:
malloc申请堆区空间
free释放堆区空间
注意:避免产生内存泄露
栈区存放数据特点:
未经初始化值为随机值
执行到变量定义开辟内存空间
超过变量作用域回收变量空间
虚拟地址和物理地址:
虚拟地址:
所有能够被用户看到的地址均为虚拟地址,表示用户可以寻址的范围
物理地址:
内存存放数据对应的实际硬件物理地址
MMU:
实际地址和物理地址之间的映射由内存映射单元(MMU)完成

多进程存储:
存储方式:
多个进程空间在操作系统中存储时,空间是独立的(物理地址是独立的)
多个进程在操作系统中共用同一个虚拟内存空间(虚拟地址是共享的)

多进程的调度:
常见的进程调度算法:
先来先执行,后来后执行
进程相关的命令:
top:



后台执行进程任务:





进程的状态:

进程相关函数接口
fork:

getpid和getppid:

exit与_exit:

进程回收:


974

被折叠的 条评论
为什么被折叠?



