进程控制块PCB详解

进程控制块PCB详解PCB processcontr 进程控制块 是我们学习操作系统后遇到的第一个数据结构描述 它是对系统的进程进行管理的重要依据 和进程管理相关的操作无一不用到 PCB 中的内容 一般情况下 PCB 中包含以下内容 1 进程标识符 内部 外部 2 处理机的信息

进程控制块PCB详解 

PCB(process control block),进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不用到PCB中的内容。一般情况下,PCB中包含以下内容:

(1)进程标识符(内部,外部)
(2)处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针)。
(3)进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件)
(4)进程控制信息(程序的数据的地址,资源清单,进程同步和通信机制,链接指针)






    数据结构中定义的内容是为后面的管理提供支持的,所以不同的操作系统根据自己的特点又对PCB的内容做了一些调整。下面整理了比较流行的一些操作系统的PCB结构,供参考。

1.Linux的进程块

2.Unix的进程块(教科书10.2节有详细介绍)

在 UNIX 系统Ⅴ中, 把进程控制块分为四部分:
   
进程控制块PCB详解进程表项

     进程控制块PCB详解 进程标识符(PID)

     进程控制块PCB详解 用户标识符(UID)

     进程控制块PCB详解 进程状态

     进程控制块PCB详解 事件描述符

     进程控制块PCB详解 进程和U区在内存或外存的地址

     进程控制块PCB详解 软中断信息

     进程控制块PCB详解 计时域

     进程控制块PCB详解 进程的大小

     进程控制块PCB详解 偏置值nice

     进程控制块PCB详解 P-Link指针

     进程控制块PCB详解 指向U区进程正文、数据及栈在内存区域的指针

   进程控制块PCB详解 U 区  

     进程控制块PCB详解 进程表项指针

     进程控制块PCB详解 真正用户标识符u-ruid(real user ID)

     进程控制块PCB详解 有效用户标识符u-euid(effective user ID)

     进程控制块PCB详解 用户文件描述符表

     进程控制块PCB详解 当前目录和当前根

     进程控制块PCB详解 计时器

     进程控制块PCB详解 内部I/O参数

     进程控制块PCB详解 限制字段

     进程控制块PCB详解 差错字段

     进程控制块PCB详解 返回值

     进程控制块PCB详解 信号处理数组

进程控制块PCB详解 进程区表

     进程控制块PCB详解 区的类型和大小

     进程控制块PCB详解 区的状态

     进程控制块PCB详解 区在物理存储器中的位置

     进程控制块PCB详解 引用计数

     进程控制块PCB详解 指向文件索引结点的指针

进程控制块PCB详解系统区表
进程控制块PCB详解 进程区表项、系统区表项和区的关系
进程控制块PCB详解 进程的数据结构
进程控制块PCB详解
进程控制块PCB详解 进程状态与进程映像  
   进程控制块PCB详解进程状态
进程控制块PCB详解

3.windows下的PCB

        Windows中的进程控制块是EPROCESS结构, 线程控制块是ETHREAD结构. EPROCESS/ETHREAD的定义在inside windows2000中有比较详细的描述。

        Windows的进程链表是一个双向环链表。这个环链表LIST_ENTRY结构把每个EPROCESS链接起来. 那么只要找到一个EPROCESS结构, 我们就可以遍历整个链表, 这就是枚举进程的原理。

建议:同学看看<
>这本书,对大家进行高级程序设计有很大的帮助

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222119.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:31
下一篇 2026年3月17日 下午4:32


相关推荐

  • Spring的基本配置和Spring与Mybatis的整合

    Spring的基本配置和Spring与Mybatis的整合Spring:        Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪…

    2022年4月29日
    43
  • vb中copymemory如何用_vb中lcase函数

    vb中copymemory如何用_vb中lcase函数vb中copymemory函数的使用挺耐人寻味的。copymemory的使用说明资料书上就一句“该函数用于将一块内存的数据从一个位置复制到另一个位置”。其参数数据类型destinationasany,sourceasany。尽管是any型可理解成任一类型但是我看很多地方都说参数是指针类型的。因此起初我很不解,既然是指针型的参数我们往往直接将变量传递过去而不是变量的地址传递过去不是非法的吗?

    2025年7月7日
    4
  • 跟我学系列教程——《13天让你学会Redis》火热报名中

    跟我学系列教程——《13天让你学会Redis》火热报名中

    2021年12月2日
    54
  • 在PyCharm环境下使用Jupyter Notebook

    在PyCharm环境下使用Jupyter Notebook1 安装 JupyterNoteb 打开 Pytharm 中的 setting 找到 ProjectInter 里面通过 号添加 如下图 然后搜索 Jupyter 点击 install 安装 2 在 PyCharm 中新建 JupyterNoteb 文件步骤 File gt New gt JupyterNoteb gt 输入文件名建好之后效果如下图

    2026年3月19日
    1
  • scanf返回值被忽略的原因及其解决方法

    scanf返回值被忽略的原因及其解决方法VisualStudio 编写 C 语言程序时 scanf 返回值被忽略问题 scanf 返回值被忽略的解决方法在 ANSIC 中只有 scanf 没有 scanf s 但是 scanf 在读取时不检查边界 所以可能会造成内存泄漏 于是 Microsoft 公司在 VS 编译器中提供了 scanf s 如果想继续使用 scanf 这个不安全的函数

    2026年3月20日
    3
  • java 获取文件名长度,Java-性能问题;变量名和文件名长度

    java 获取文件名长度,Java-性能问题;变量名和文件名长度Welljustsome butithinksom Ifiusevariab fastertoproc Example Strings willbebetter

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号