一.概念
一个程序运行起来,就会对应一个进程(process),进程也是系统分配的基本单位。
二.PCB 的几个核心属性
1.pid 进程标识符.
同一个机器,同一个时刻,进程id一定是不同.`
2.内存指针
进程运行时需要消耗一定的硬件资源,内存就是一个关键的资源!!
一个程序再运行的时候,就会被从硬盘(xxx.exe)加载到内存中.
3.文件描述符表
一个进程运行的时候,会操作一些文件. 就通过一个"顺序表"这样的数据结构,记录下当前这个进程,都打开了哪些文件.
4. 进程调度
在任务管理器中,可以看到,系统中包含了很多进程,每个进程都需要执行.
执行就需要占用cpu资源,去cpu上执行. 然而进程的数量远远多于cpu的数量的这是就需要进 程调度来负责了!!!
PCB中提供了几个属性,支持 进程调度
(1)状态
随叫随到 => 在操作系统中称为"就绪状态"
拒之门外 => 在操作系统中,称为进程处于"阻塞状态",处于阻塞状态的进 程,无法在CPU上执行.往往这个进程在等待IO的时候就会进入阻塞状态
(2)优先级
(3)上下文
进程在CPU执行过程中,也会产生很多"中间结果",在进程切换出CPU之前,就需要把这 些中间结果(CPU的各种寄存器中的值)保持到pcb的上下文里 【存档】下次这个进程回到 CPU上执行的时候,就需要先把之前的存档恢复回来【读档】
(4)记账信息
操作系统也是要避免某个进程一直吃不到CPU资源,就会进行类似的统计,给吃的少的进 程,适当多分配一些
三. 管理
为什么要进行管理??
操作系统上面包括了很多的进程,一但东西多了,就得考虑“管理”。
在操作系统中,通常使用称为PCB(进程控制块)这样的结构体来描述进程的.
操作系统管理进程:
(1) 先描述 => PCB结构体 来把进程的各种属性都表示出来.
(2) 再组织 => 通过链表数据结构把多个PCB串起来.
标签:操作系统,cpu,面试,阻塞状态,进程,PCB,高频,CPU From: https://blog.csdn.net/2201_75808173/article/details/136973653