linux软件编程-----进程

目录

1.进程:

2.进程相关的命令

    1.top

    2.ps -ef 

    3.ps -aux 

    4.kill

    5.后台运行代码:

    6.jobs 

    7.fg 任务编号

    8.nice 

    9.renice

    10.pstree

3.进程的创建:

​编辑  1.  虚拟内存空间分为:

        1.用户空间:

        2.内核空间:

   2. 实际物理内存空间:

4.进程的调度:

    1.进程调度算法:

        1.先来先执行,后来后执行

        2.高优先级调度算法

        3.时间片轮转调度算法

          4.抢占式调度算法 

        5.多级反馈队列调度算法

   2. 进程的状态:

        1.运行态、就绪态:  R

        2.可唤醒等待态:    S

        3.不可唤醒等待态:  D

        4.暂停态            T 

        5.僵尸态            Z

        6.结束态             X  

5.进程相关的函数接口:

    1.fork 

    2.getpid

    3.getppid  

注意1:

注意2:

    4.exit

    5._exit 

6.进程消亡:

   1. 僵尸态:

   2. 僵尸进程产生原因:

    3.如何避免产生僵尸进程:

    4.孤儿进程:

7.wait

8.waitpid 

9.exec函数族:

10.system函数原型



1.进程:


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

2.进程相关的命令


            PID:进程的标识符(进程的ID) 
            PPID:父进程的ID号

                  同一个程序打开多个,进程不是一个而是多个,PID不同。

                   PID没有规律是随机的   

    1.top


              根据CPU占用率查看进程信息 
              q退出 

    2.ps -ef 


              查看当前所有进程的信息 

              ps -ef | grep a.out 

    3.ps -aux 


              查看当前所有进程的信息

              ps -aux | grep a.out

    4.kill


        向进程发送信号,并让进程结束 
      
              kill -l 
                      查看信号的类型 

              kill -信号名/信号编号 进程ID
              kill -9 进程ID (9号信号杀死最强)

              killall -信号名/信号编号 进程名 

    5.后台运行代码:


                ./a.out & 
    


    6.jobs 


              查看后台执行的任务

    7.fg 任务编号


              将任务编号对应的后台任务放到前台执行 

    8.nice 


                nice -n 10 ./a.out
                以10作为优先级运行a.out进程         在Linux系统中数字越小优先级越高

                nice是在运行前设定优先级。

    9.renice


                renice -n 10 进程ID

                renice是运行的时候可以更改优先级。

    10.pstree


                查看进程的关系

3.进程的创建:


            32bit操作系统中,进程运行,操作系统开辟 0 - 4G虚拟内存空间


  1.  虚拟内存空间分为:


        1.用户空间:


            1.文本段:文本区 存放代码、指令
            2.数据段:数据区 存放全局变量、静态变量、常量
            3.系统数据段:堆、栈 

        2.内核空间:


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

   2. 实际物理内存空间:


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

            两个进程所占虚拟内存空间并不是 8 G,而是 4 G,两个进程分时共用同一空间
            两个进程物理内存空间是独立的,进程1和进程2空间独立

    结论:
                进程的空间是独立的,但是两个进程并不是8G

                可以理解不同的进程为不同的班级,虚拟地址是同一个教室,不同的进程在不同时刻,在同一个虚拟地址。理解为不同班级在同一个教室在不同时刻上课。

                一个进程实际的所占物理空间很小的,但是可以使用很大的虚拟空间。

4.进程的调度:


    1.进程调度算法:


        1.先来先执行,后来后执行


        2.高优先级调度算法


        3.时间片轮转调度算法

                当有fges等函数造成阻塞,或者时间过长的时候,保存现场然后进行下一个进程,由调度算法决定到底去哪个进程

  
        4.抢占式调度算法 


        5.多级反馈队列调度算法

    时间片:
        CPU在一个进程任务中执行的时间称为时间片
    
    宏观并行、微观串行

        在用户看来例如qq,钉钉,微信等是同步进行的,但实际对于cpu来看是一直在不同的进程直接跳转,只不过是速度太快,人类无法捕捉到。

   2. 进程的状态:


        1.运行态、就绪态:  R


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

        2.可唤醒等待态:    S


            睡眠态
            由于缺少资源导致程序阻塞的状态,当拿到资源后,继续向下执行

        3.不可唤醒等待态:  D


            不想被CPU任务调度打断 

        4.暂停态            T 


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

        5.僵尸态            Z


         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值