【学霸笔记】由浅入深:进程详解

1.进程

进程是程序的一次动态执行;

进程是程序执行和系统资源管理的最小单位,存在资源的分配;

2.程序

程序是若干指令的集合;

程序是静态存储在文件中;

3.进程控制块

保存创建进程的信息;

4.进程号和进程状态

系统标识进程;S阻塞 Z 僵尸 R运行

5.进程的分类

1.交互进程:由shell创建,依赖于终端,

终端退出,进程退出;

2.批处理进程:不受终端控制。进入队列,顺序执行

3.守护进程:在后台运行,独立于终端,

6.进程的拷贝

子进程对父进程进行的地址资源的基本全部拷贝;

(数据段,代码段(fork后),缓冲区);

各个进程拥有独立的虚拟地址空间0-4G;

7.Fork函数理解

Fork父进程执行一次,但是操作系统会给父子进程不同的返回值;

 

8.孤儿进程

父进程先于子进程退出;被init收养;

9.终止进程

Exit; _exit; return (main);fflush缓冲区区别

10. 僵尸进程defunct(Z)

子进程已经退出,父进程没有回收子进程的资源PCB(进程控制块);

11. 阻塞非阻塞

阻塞:信号的唤醒;等待进程退出,回收子进程资源;

非阻塞:立即返回,时刻轮询;

12. 退出状态返回wait

Wait返回保存子进程exit退出时的退出状态;

Exit()退出状态;

实际编程时,可以通过wait系统调用接收子进程的退出状态,来进行相应的处理。

13. Wait和waitpid

Wait阻塞父进程等待任意子进程结束,返回结束进程的进程号

Waitpid

Waitpid(-1,int *status,0);=== wait(int *status)

非阻塞:

如果没有等到结果,则返回0;

如果等到,则返回退出进程的PID

14. Exec函数族(概念)

通过调用exec函数来取代原有进程的数据段,代码段,堆栈段来执行另外一个程序。

在形式上实现了程序间的调用;

15. Exec函数的总结

1.可执行文件的查找方式 :

带路径execl/execv

省略路径execlp/execvp

指定路径execle/execve

2.参数的传递v

Char * 列举; char * [] 指针数组;

3.环境变量的使用e

指定环境变量,可执行文件的查找路径

16. 进程的内存空间

进程的虚拟内存是操作系统在逻辑上假想的一片内存

进程的虚拟内存只会在程序实际运行过程中,需要被访问到的部分被映射到实际的物理内存,映射通过页表的实现;虚拟内存空间大,只是代表了他能访问的内存空间比较大,不带表他占用的实际的物理内存大;通过TOP命令来查看;进程之间通过。

进程的内存图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值