进程
(1)进程和程序是什么?
程序:存在在硬盘当中,却没有运行起来
进程:在内存中运行起来的成勋,称为进程,方便系统调用管理
(2)Linux进程
PCB控制块:用来维护进程的相关信息
虚拟空间地址:linux运行一个进程,操作系统分配0~4G的地址空间
在磁盘三分配4G空间供内存使用
其中0~3G为用户空间,程序员可以进行操作
3~4G为u内核空间(kernel)不可以操作
这么做的好处是
1.方便进程隔离
2.方便系统使用那一段内存
3.方便编译器与操作系统程序隔离
(3)TEXT段构成
bss段:里面存放未初始化的全局变量
data段:里面存放已初始化的全局变量
堆区:malloc开辟空间的内存
栈区:就是和队列一样先进先出,从上到下
(4)文件描述符表file_struct
0,1,2都是固定占用
0标准输入
1标准输出
2标准错误
最小从3开始,默认的大小为1024
(5)进程的状态
进程的状态有运行,挂起,停止,僵尸等状态
就绪-》运行
运行-》就绪
运行-》睡眠
睡眠不能转运行。-》就绪
所有状态都可以转停止
(6)进程原语
fork(叉子)
pid_t fork();//创建父进程
在pcb中有个进程id号 不一样,不能够拷贝
pid没有被复制
经过fork完完全全复制拷贝了父进程
子进程得到新的pid
(7)父进程与子进程全局变量的物理内存
1.读时共享,写时复制
2.数据发生改变,才会马上复制一份给子进程
优点节省扣减
copy on write
(8)僵尸进程与孤儿进程
僵尸进程:进程的终止,父进程尚未回收还在,子进程还残留在PCB中,内核中称为僵尸进程
孤儿进程:父进程先于子进程结束,则子进程称职为孤儿进程(孤儿进程)
子进程的父进程称之为init 进程 领养孤儿进程
(9)kill信号
kill -9 +进程id号强制结束;强制结束该进程号的进程