进程概念
一、进程概念
1、进程与程序:
程序:通常为二进制程序放置在存储媒介中(硬盘、光盘、磁带),以物理文件的形式存在
进程:程序被触发后,执行者的权限和属性、程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),可以说进程就是一个正在运行中的程序
2、进程概念:
进程是正在运行的程序的实例,是系统进行资源分配和调度运行的基本单位
进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(存储处理器执行的代码)、数据区域(存储变量和进程执行期间使用的动态分配的内存)和堆栈(存储着活动过程调用的指令和本地变量)。
进程由程序、数据和进程控制块三部分组成。(进程是所执行的程序和数据集合。)
3、进程特点:
(1)、一个程序可以由不同的进程执行
两个进程即使执行在相同的程序上,只要他们运行在不同的数据集合上,他们也是两个进程。
(2)、进程的生命周期
当操作系统要完成某个任务时,它会创建一个进程。当进程完成任务之后,系统就会撤销这个进程,收回它所占用的资源。从创建到撤销的时间段就是进程的生命期
(3)、 进程之间存在并发性
在一个系统中,同时会存在多个进程。他们轮流占用CPU和各种资源
(4)、 进程间会相互制约
进程是系统中资源分配和运行调度的单位,在对资源的共享和竞争中,必然相互制约,影响各自向前推进的速度
(5)、 进程可以创建子进程,程序不能创建子程序
3、PCB:
进程控制块又称PCB,是进程属性的集合
4、task_struct:
在Linux中描述进程的结构体叫做task_struct,他会被装载到RAM里并且包含着进程的信息。
——标识符 :用来描述进程的唯一标识符
——状态 :任务状态,退出代码,退出信号等
——优先级 :相对于其他进程的优先级
——程序计数器:程序中即将被执行的下一条指令的地址
——内存指针 :包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
——上下文数据:进程执行时处理器的寄存器中的数据
——I/O状态 :显示的I/O请求,分配给进程的I/O设备和进程使用的文件列表
——记账信息 :可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号
5、进程的组织:
进程都是以结构体的方式存在,操作系统以链表的方式将这些结构体连接起来
6、进程的查看
(1)、参数:
——ps aux 查看系统所有的进程数据
——Ps -lA 查看所有系统数据
——-A:所有进程都显示出来,同-e
——x:通常与a一起使用,列出较完整的信息
(2)、输出格式规划:
——l:较长、较详细的将该PID的信息列出
——j:工作格式
—— -f:做一个更为完整的输出
二、fork(创建子进程)
fork