深入解析进程与线程核心原理

一.进程和线程

1.进程的基本概念;

  1) 进程:是程序动态执行的过程,包括创建,调度,消亡

  2)程序:存放在外存中的i一段数据的集合

二.进程创建

1.进程空间分布

  1)每个进程运行起来后,操作系统开辟0-4G虚拟内存空间

  2)进程用户空间:文本端(文本区)+数据段(数据区)+系统数据端(堆区,栈区)

  3)进程空间:用户空间+内核空间(不允许用户访问)

  4)文本段:字符串常量、已初始化全局变量/静态变量,未初始化全局变量/静态变量

  5)系统数据段:堆区(malloc空间),栈区(局部变量,函数运行)

          a.栈区:未经初始化值为随机值,执行到变量定义开辟内存空间,超过变量作用域回收变量空间。

          b.堆区:malloc申请堆区空间,free释放堆区空间,避免产生内存泄漏

          c.

          

                                                           

2.虚拟地址和物理地址

  1)虚拟地址:所有能够被用户看到的地址均为虚拟地址,表示用户可以寻址的范围

  2)物理地址: 内存释放数据对应的实际硬件物理地址

  3)MMU:实际地址和物理地址之间的映射由内存映射单元(MMU)完成

           

3.多进程存储

  1)存储方式:

      a.多个进程空间在操作系统中存储时,空间是独立的(物理地址独立)

      b.多个进程在操作系统中共用一个虚拟内存空间(虚拟地址是共享的)

4.多进程的调度

  1)常见进程调度算法

      (1)先来先执行,后来后执行

      (2)高优先级调度算法

      (3)时间片轮转调度算法

  2)多进程调度本质

      (1)宏观并行,微观串行

      (2)宏观分析:一个CPU同时执行多个进程任务

      (3)微观分析:一个CPU在多个任务中高速切换保障多任务执行

5.进程相关的命令

  1)top

  2)ps-ef                                                                 

             

 3)ps-aux        

  4)后台执行进程任务

  5)jobs

  6)fg

7)nice/rnice

  8)kill/killall

6.进程的状态

三.进程相关函数接口

 1.fork

注意:子进程拷贝父进程文本端,数据端,系统数据端

          进程的PID不一样

           fork的返回值不一样,父进程返回子进程的PID,子进程中返回0

           PID:一定是>0

           父子进程空间独立,同一份代码中的变量和数据都会在父子进程中各有一份,修改自己空               间的数据不会影响对方的

2.getpid和getppid

  

3.exit与_exit

  注意:在主函数中调用exit和return功能保持一致

             return在函数内部将结束该函数

             exit在函数内部会将进程结束

             exit在结束前刷新缓存区

             _exit不会刷新缓存区

4.进程回收

  1)wait

注意:wait具有等待阻塞的功能,等到有子进程结束才会回收子进程继续向下执行

  2)waitpid

四.进程消亡

  1.孤儿进程:

    1)如果父进程先结束,子进程会成为孤儿进程,被init进程收养

    2)僵尸进程:

         是每个进程结束必然会经历的阶段

         产生原因:子进程结束后,父进程没有回收子进程空间,导致进程执行结束,空间依然被占用的状态

    3)如何避免产生僵尸进程

        (1)让父进程先结束,子进程会成为孤儿进程,孤儿进程被init进程收养,子进程在结束,init进程回收进程空间

        (2)子进程结束,父进程回收子进程空间,避免产生僵尸进程

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值