进程
一、进程的生命周期
(1)概念引入: 进程从创建出来 到 被系统回收释放 这个周期中进程的各个状态
(2)生命周期分析:
- 静态:没运行,相当于一个exe程序文件只占用磁盘内存(闪存)
- 就绪态:已经运行起来,一开始是程序员在键盘输入./a.out命令,让系统(CPU)使 进程 调用一个函数exec创建新的进程空间,比如运动员等信号枪指令
- 执行态:由就绪态演变来的,进程得到调度器给的时间片就变成执行态,但是时间片指的是有限的时间内,意味着进程只能在规定的时间内运行。
注:时间片如果用完了,进程就会从 执行态 回到 就绪态 继续等待时间片(如果等待时间片的过程中 流畅 就是分配了新的时间片,卡顿 就是用完了还没分配新的)
- 暂停态:给指定的进程发 暂停信号SIGSTOP 使得进程进入 暂停态,直到发送继续信号SIGCON才能回到 就绪态(例如单机小游戏点了暂停就一直等待你点击开始)
- 睡眠态:当进程所需要的资源可得时,就会导致进入睡眠态,通常是程序调用函数时(申请资源的函数),当资源得到了信号就会被唤醒进入就绪态(例如read:读取触摸屏坐标,一直等待获取到点击的坐标)
注:分为可中断和不可中断
可中断:绝大多数普通的等待都是可中断的
不可中断:等待的是硬件资源,如ioctl获取硬件LCD的屏幕宽度和高度
- 僵尸态:程序退出时大部分的内存资源都会被系统回收然后进入僵尸态
- 死亡态:如果僵尸态的时候进程所有的内存资源都被系统回收释放掉了,那么就不需要死亡态了,遗留下来的小部分内存资源自称的进程(僵尸态进程),如果把遗留下来的资源也全部回收,那进程就啥都释放了(死亡态)
*考点总结*:
1)以下哪种状态不属于进程的生命周期状态:
- A.就绪态 B.运行态
C.用户态D.僵尸态 - A.运行 B.就绪 C.阻塞
D.等待
2)LINUX进程状态有 就绪态 和 ______ 、_______。(运行态、睡眠态(可写成阻塞/睡眠态))
二、进程的创建
1、使用LINUX命令创建
1)前台运行: ./程序的名字 程序的路径/程序的名字 运行起来的程序会占用 系统的会话终端,程序员可以通过终端输入 ctrl c 终止他
2)后台运行: ./程序的名字 程序的路径/程序的名字 运行起来的程序不会占用 系统的会话终端,程序员没办法 ctrl c 终止他 我们可以发送终止信号去终止这个后台运行的程序:killall -9 程序的名字
2、使用system系统调用函数创建


被折叠的 条评论
为什么被折叠?



