day 20进程

一、程序和进程的区别
程序:保存在磁盘空间中的的一段代码的集合,死的
进程:是一个程序动态执行的过程,包括进程的创建、调度和消亡的过程

二、进程相关的命令
PID:进程的标识符(进程的ID) 
PPID:父进程的ID号    

三、进程的创建
在32bit操作系统中,进程运行,操作系统会开辟 0 - 4G的虚拟内存空间
虚拟内存空间又分为用户空间和内核空间:
        用户空间:
            1.文本段:文本区 存放代码、指令
            2.数据段:数据区 存放全局变量、静态变量、常量
            3.系统数据段:堆、栈 

        内核空间:
            1.用户无法访问内核空间,通过信号、系统调用实现用户层和内核层的交互 

实际物理内存空间:
        MMU内存映射单元实现虚拟地址和物理地址间的映射关系

n个进程所占虚拟内存空间并不是n * 4G,而是 4 G,进程分时共用同一空间
n个进程物理内存空间是独立的,进程之间空间独立

四、进程的调度
常见的进程调度算法有:
        1.先来先执行,后来后执行
        2.高优先级调度算法
        3.时间片轮转调度算法(最常使用)   
        4.抢占式调度算法 
        5.多级反馈队列调度算法

时间片:
        CPU在一个进程任务中执行的时间称为时间片

五、进程的状态
1、运行态、就绪态:  R
        运行态:正在被CPU执行的进程任务
        就绪态:正在执行的任务,但由于CPU调度还没有被调度到

2、可唤醒等待态(睡眠态):    S
        由于缺少资源导致程序阻塞的状态,当拿到资源后,继续向下执行

3、不可唤醒等待态:  D
        不想被CPU任务调度打断 

4、暂停态            T 
        用户主动让进程任务暂停(挂起)状态

5、僵尸态            Z
        进程任务结束,但空间未被回收

6、结束态             X  
        进程任务执行结束,同时空间被回收

六、进程相关的函数接口

注意:
        wait具有阻塞功能,如果子进程先结束,wait会不阻塞直接回收
        如果子进程没结束,wait会阻塞直到子进程结束回收子进程空间

这四个宏可检测出一般进程是否正常结束和原因 

     WIFEXITED(wstatus):判断子进程是否正常结束
     WEXITSTATUS(wstatus):获取子进程正常结束的状态码
     WIFSIGNALED(wstatus):判断子进程是否被信号打断结束
     WTERMSIG(wstatus):获取子进程被信号打断结束的状态码

七、进程消亡
1、僵尸态:进程代码执行结束,空间没有被回收

2、僵尸进程产生原因:子进程任务结束,空间没有被回收,该进程成为僵尸进程

3、如何避免产生僵尸进程:
        1.让父进程先结束,子进程再结束,子进程不会变成僵尸进程
        2.子进程结束,父进程回收子进程空间,子进程不会变成僵尸进程(优先选择)

4、孤儿进程:
        父进程先结束,子进程成为孤儿进程,被init进程(1号)进程收养,子进程结束,init系统进程自动回收进程空间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值