进程控制块(一)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-09
今天学习了关于进程控制块的部分知识,只是觉得比较抽象,便在网上收集了一些信息和实例,以加深理解.
一、定义
进程控制块(PCB):系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程.系统利用PCB来控制和管理进程,PCB是系统感知进程存在的唯一标志.进程与PCB是一一对应的.
二、PCB存放的信息
在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少也不一样,通常PCB应包含如下一些信息.
1、进程标识符 name每个进程都有一个唯一的标识符,可以是字符串,也可以是一个数字.
2、进程当前状态 status说明进程当前所处的状态.为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待磁盘I/O完成队列等等.
3、进程相应的程序和数据地址,以便把PCB与其程序和数据联系起来.
4、进程资源清单.列出所拥有的除CPU外的资源记录,如拥有的I/O设备,打开的文件列表等.
/* * offsets of these are hardcoded elsewhere - touch with care */ volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ //进程当前的状态 unsigned long flags; /* per process flags, defined below */ //反应进程状态的信息,但不是运行状态,定义见下 int sigpending; //进程收到了信号,但尚未处理 mm_segment_t addr_limit; /* thread address space: //虚存地址上限 0-0xBFFFFFFF for user-thead 0-0xFFFFFFFF for kernel-thread */ struct exec_domain *exec_domain; volatile long need_resched; //与进程调度有关表示用户从系统空间按返回用户空间要执行的一次调度 unsigned long ptrace; int lock_depth; /* Lock depth */ /* * offset 32 begins here on 32-bit platforms. We keep * all fields in a single cacheline that are needed for * the goodness() loop in schedule(). */ long counter; //与进程调度相关 long nice; unsigned long policy; //实用于本进程的调度政策 struct mm_struct *mm; int processor;
* cpus_runnable is ~0 if the process is not running on any * CPU. It''s (1 << cpu) if it''s running on a CPU. This mask |
|||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: linux磁盘和数据恢复软件下一篇: 嵌入式Linux系统BSP简介
关于进程控制块(一)的所有评论