
操作系统平台:Linux服务器系统: CentOS 7
概念抽象程序程序 = 代码 + 数据
程序是储存在硬盘上的可执行文件
进程将程序加载到内存后,就在内存中程序的就是进程。也就是说一个正在运行的程序就能叫做进程
结构关系如下
如图,操作系统为了管理内存中的进程,使用了PCB结构体来描述进程,通过管理PCB来管理进程,依然是先描述再组织
PCB:进程控制块的数据结构(process control block)
所以实际上:进程=PCB+代码和数据
对于代码和数据没什么好说的,接下来主要讨论PCB
task_structLinux平台下的PCB叫做task_struct
task_struct内容分类:
标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据。
I/O状态信息: 包括显示的I/ ...