主页 > 电脑硬件  > 

多任务(20250210)

多任务(20250210)
1. 进程的概念

    (1) 程序:是一段存放在外存中代码的集合(静态的)     (2) 进程:是一个程序动态执行的过程,包括创建、调度、消亡(动态的)

2. 如何实现多任务

Linux中,通过进程、线性实现多任务

3. 进程

正在执行的程序(动态),需要消耗内存和CPU,是一个动态执行的过程

进程的生存周期:创建 -> 调度 -> 消亡

进程:源代码编译为可执行程序,运行程序,消耗CPU和内存资源

进程和程序的区别:

    1)程序是永存,进程是暂时的     2)进程有程序状态的变化,程序没有     3)进程可以并发,程序无并发     4)进程与进程会存在竞争计算机的资源     5)一个程序可以运行多次,变成多个进程, 一个进程可以运行一个或多个程序

4. 进程的创建

每个进程被创建时,操作系统回味进程创建4G虚拟的内存空间

系统启动(空间被创建)时,bss段按位清零

5. 进程调度

原则:保障多个任务能同时执行         1)宏观并行             多个任务同时向下执行         2)微观串行             CPU在多个任务中快速切换,保障多个任务同时向下执行

多任务操作系统分为:

        非抢占式多任务:由调度程序来决定什么时候停止一个进程的运行(如时间片结束时),以便其他进程得到执行机会         Unix, Linux抢占式多任务:除非进程自己主动停止运行,否则会一直执行。         Mac os9  Windows3.1

常用调度算法:

        1. 先来先执行,后来后执行         2. 短作业优先         3. 高优先级调度算法         4. 时间片轮转调度算法

6. 进程的状态

        1)运行态(用户运行态、内核运行态)     R                 正在执行,且被CPU任务调度所执行的进程

        2)就绪态    R                 正在执行,没有CPU任务调度执行的进程(只缺少cpu)

        3)可唤醒等待态    S                 也称为睡眠态,阻塞等待资源的进程

        4 )不可唤醒等待态 D                 不想被CPU任务调度所打断的进程任务可以设置为不可唤醒等待态         5) 暂停态    T                 被暂停执行的进程         6) 僵尸态    Z                 进程执行结束,空间没有被回收

        7) 结束态    X                 进程执行结束,空间被回收

 三态图

Linux七态图

7. 进程相关指令

        1.ps -aux         查看进程状态         ps -aux|grep a.out

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

        3.ps -ef         查看当前时刻进程信息        

        PID:进程的ID号(唯一)         PPID:父进程的ID号

        4.pstree         查看进程关系         pstree -p            查看所有进程关系及pid号         pstree -sp + 进程id号         查看某一进程关系   

        5.kill         killall         给进程发送一个信号         kill -9 进程PID         killall -9 进程名

        6.jobs         查看当前终端下的后台执行任务

        7.fg 编号         让一个后台执行的任务放到前台执行

8 进程相关接口

父子进程:             父进程:创建新进程的进程称为新进程的父进程             子进程:被创建的进程称为原进程的子进程

 8.1 fork 函数

        pid_t fork(void);                  一次调用,会返回两次。                 子进程先运行还是父进程先运行,顺序不确定,变量不共享。                 子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。         功能:通过该函数可以从当前进程中克隆一个同名新进程。                 克隆的进程称为子进程,原有的进程称为 父进程。                 子进程是父进程的完全拷贝。                 子进程的执行过程是从fork函数之后执行。                 子进程与父进程具有相同的代码逻辑。         参数:         返回值:                 失败返回-1                  成功父进程中返回子进程的PID                         子进程中返回0 

8.2 getpid函数

        pid_t getpid(void);         功能:                 获得调用该函数进程的pid         参数:         返回值:                 进程的pid

8.3 getppid函数

        pid_t getppid(void);         功能:                 获得调用该函数进程的父进程pid号         参数:         返回值:                 返回父进程id号

标签:

多任务(20250210)由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“多任务(20250210)