zoukankan      html  css  js  c++  java
  • PCB(Processing Control Block进程控制块)

    PCB:进程控制块,实际是一个结构体,放在sched.h文件中,Linux下可以通过whereis sched.h命令查看具体路径
    该结构体主要包含:
    1.进程id
    用于区别进程
    2.进程的状态:就绪、运行、挂起、停止

    3.进程切换时需要保存和恢复的一些CPU寄存器
    寄存器放在CUP中,A程序和B程序分时执行的时候,A占用CPU执行一定时间,CPU便被B占用了,然后又轮到A执行,A的资源如寄存器如何恢复到挂起时的状态,这时候就需要PCB来记住A停止运行时的寄存器状态,恢复后继续执行。
    4.描述虚拟地址空间的信息
    虚拟地址和物理地址的对于关系
    5.描述控制终端的信息
    如xshell打开两个终端连接同一个linux主机,在两个终端中执行同一个程序,这个终端的信息都分别存在PCB中
    6.当前工作目录
    如分别在/home和/etc目录下分别执行pwd命令,shell进程输出的结果是不一样的,这个工作目录就记录在PCB中
    7.umask掩码
    保护文件创建和修改的权限
    如输入umask命令,默认输出是0022,表示创建一个文件的时候,默认去掉组用户和其他用户对该文件的写权限,如果把umask改为0000,则用户创建的文件可以被文件的所属用户,所属组,其他用户具有可写可读可执行权限。
    8.文件描述符
    9.和信号相关的信息
    10.用户id和组id
    11.会话和进程组
    12.进程可以使用的资源上限
    PCB的组织方式
    PCB的组织方式是指如何组织和管理多个PCB。
    • 链接方式
    把具有同一状态的PCB,用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。就绪队列常按进程优先级的高低排列,把优先级高的进程的PCB排在队列前面。根据阻塞原因的不同把处于阻塞状态的进程的PCB排成等待I/O操作完成的队列和等待分配内存的队列等。
    在这里插入图片描述

    • 索引方式
    系统根据所有进程的状态建立几张索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。
    在这里插入图片描述

  • 相关阅读:
    Tomcat8服务
    windows部署tomcat
    LINUX部署TOMCAT服务器
    线程安全这么回答才牛逼(转)
    读取文件夹下的所有文件
    Mycat简单配置
    删除服务端文件
    nginx搭建文件服务器
    SERVER.MAPPATH
    存储过程与表的关系
  • 原文地址:https://www.cnblogs.com/frankltf/p/13801773.html
Copyright © 2011-2022 走看看