zoukankan      html  css  js  c++  java
  • 进程的组织:控制块、程序段和数据段

    进程是操作系统的资源分配和独立运行的基本单位。它一般由以下三个部分组成。

    进程控制块

    进程创建时,操作系统就新建一个PCB结构,它之后就常驻内存,任一时刻可以存取, 在进程结束时删除。PCB是进程实体的一部分,是进程存在的唯一标志。

    当创建一个进程时,系统为该进程建立一个PCB;当进程执行时,系统通过其PCB了解进程的现行状态信息,以便对其进行控制和管理;当进程结束时,系统收回其PCB,该进程随之消亡。操作系统通过PCB表来管理和控制进程。

    PCB通常包含的内容
    进程描述信息进程控制和管理信息资源分配清单处理机相关信息
    进程标识符(PID) 进程当前状态 代码段指针 通用寄存器值
    用户标识符(UID) 进程优先级 数据段指针 地址寄存器值
      代码运行入口地址 堆栈段指针 控制寄存器值
      程序的外存地址 文件描述符 标志寄存器值
      进入内存时间 键盘 状态字
      处理机占用时间 鼠标  
      信号量使用    


    上表是一个PCB的实例,PCB主要包括进程描述信息、进程控制和管理信息、资源分配清单和处理机相关信息等。各部分的主要说明如下:

    1) 进程描述信息
    进程标识符:标志各个进程,每个进程都有一个并且是唯一的标识号。
    用户标识符:进程归属的用户,用户标识符主要为共享和保护服务。

    2) 进程控制和管理信息
    进程当前状态:描述进程的状态信息,作为处理机分配调度的依据。
    进程优先级:描述进程抢占处理机的优先级,优先级高的进程可以优先获得处理机。

    3) 资源分配清单,用于说明有关内存地址空间或虚拟地址空间的状况;所打开文件的列表和所使用的输入/输出设备信息。

    4) 处理机相关信息,主要指处理机中各寄存器值,当进程被切换时,处理机状态信息都必须保存在相应的PCB中,以便在该进程重新执行时,能再从断点继续执行。

    在一个系统中,通常存在着许多进程,有的处于就绪状态,有的处于阻塞状态,而且阻塞的原因各不相同。为了方便进程的调度和管理,需要将各进程的PCB用适当的方法组织起来。目前,常用的组织方式有链接方式和索引方式两种。链接方式将同一状态的PCB链接成一个队列,不同状态对应不同的队列,也可以把处于阻塞状态的进程的PCB,根据其阻塞原因的不同,排成多个阻塞队列。索引方式是将同一状态的进程组织在一个索引表中,索引表的表项指向相应的PCB,不同状态对应不同的索引表,如就绪索引表和阻塞索引表等。

    程序段

    程序段就是能被进程调度程序调度到CPU执行的程序代码段。注意,程序可以被多个进程共享,就是说多个进程可以运行同一个程序。

    数据段

    一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果。

  • 相关阅读:
    使用特殊构造的5GB文件测试Win2012Dedup功能
    VMWare 回收磁盘空间
    一个极其高效的虚拟机内存冗余消除机制:UKSM
    基于Dedup的数据打包技术
    hadoop集群运行dedup实现去重功能
    Qt编写安防视频监控系统24-自定义悬浮条
    Qt编写百度地图综合应用(在线+离线+区域)
    Qt编写安防视频监控系统23-图片地图
    Qt编写安防视频监控系统22-摄像机搜索
    Qt编写安防视频监控系统21-摄像机管理
  • 原文地址:https://www.cnblogs.com/caidi/p/6698168.html
Copyright © 2011-2022 走看看