什么是进程控制块,进程控制块的作用
操作系统内的每个进程表示,釆用进程控制块(Process Control Block,PCB),也称为任务控制块。
图 1 进程控制块(PCB)
每个进程控制块如图 1 所示,它包含许多与当前进程相关的信息:
简而言之,PCB 简单地作为这些信息的仓库,这些信息随着进程的不同而不同。
图 1 进程控制块(PCB)
每个进程控制块如图 1 所示,它包含许多与当前进程相关的信息:
- 进程状态:状态可以包括新的、就绪、运行、等待、停止等。
- 程序计数器:计数器表示进程将要执行的下个指令的地址。
- CPU 寄存器:根据计算机体系结构的不同,寄存器的类型和数量也会不同。它们包括累加器、索引寄存器、堆栈指针、通用寄存器和其他条件码信息寄存器。在发生中断时,这些状态信息与程序计数器一起需要保存,以便进程以后能正确地继续执行。
- CPU 调度信息:这类信息包括进程优先级、调度队列的指针和其他调度参数。
- 内存管理信息:根据操作系统使用的内存系统,这类信息可以包括基地址和界限寄存器的值、页表或段表。
- 记账信息:这类信息包括 CPU 时间、实际使用时间、时间期限、记账数据、作业或进程数量等。
- I/O 状态信息:这类信息包括分配给进程的 I/O 设备列表、打开文件列表等。
简而言之,PCB 简单地作为这些信息的仓库,这些信息随着进程的不同而不同。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算