进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配(cpu时间,内存)和调度的基本单位,是操作系统结构的基础。
描述进程-PCB
为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。
描述数据的结构体,任何pcb包含了进程的所有属性信息
Linux操作系统下的PCB是 task_struct:
在Linux中描述进程的结构体叫task_struct。
task_struct是Linux内核中的一种数据结构,它会被装载在RAM内存里包含着进程的所有信息。
task_struct内容分类:
- 标识符: 描述本进程的唯一标识符,用于区别其他区进程。(PID:进程ID。PPID:父进程的ID)
- 状态:任务状态,退出代码,退出信号等。
可能存在多个r状态,但运行的只有一个。 在系统中R状态仅表示该进程允许被放在cpu上
时间片是一个进进程占有CPU资源的基本单位,任何一个进程在CPU上运行超过一定的时间就会被从CPU上剥离下来
调度队列:把r状态的pcb取出来
-
优先级 :相对于其他程序的优先级。(使用数字表示,优先级越高数字越小)
-
程序计数器:(pc指针,CPU中的寄存器)程序中将被执行的下一条指令的地址。
-
内存指针:包括程序代码和相关数据的指针,还有和其他进程共享内存块的指针。
-
上下文数据:进程执行时处理器的寄存器中所保存的数据。
把一个进程调度运行时CPU中寄存器中的数据叫做上下文数据,当一个进 程被切换,时上下文数据会被存入PCB中,下次执行该进程时直接获取。 进程间的切换必须要做保存 / 恢复上下文数据。 当一个进程被切换时,上下文数据会被存入pcb中等待下次调用时,直接恢复
-
I/O状态信息:包括显示的I/O请求,分配给进程的I/o设备和被进程使用的文件列表。
-
记账信息: