过程的组织:掌握块、程序段和数据段

过程是操作零碎的资本分派和自力运转的根本单元。它普通由以下三个局部构成。

过程掌握块

过程创立时,操作零碎就新建一个PCB构造,它之后就常驻内存,任一时辰可以存取, 在过程完毕时删除。PCB是过程实体的一局部,是过程存在的独一标记。
当创立一个过程时,零碎为该过程树立一个PCB;当过程履行时,零碎经过其PCB 了 解过程的现行形态信息,以便对其停止掌握和治理;当过程完毕时,零碎发出其PCB,该进 程随之灭亡。操作零碎经过PCB表来治理和掌握过程。
表2-1 PCB平日包括的内容

过程描绘信息 过程掌握和治理信息 资本分派清单 处置机相干信息
过程标识符(PID) 过程以后形态 代码段指针 通用存放器值
用户标识符(UID) 过程优先级 数据段指针 地址存放器值
代码运转进口地址 客栈段指针 掌握存放器值
程序的外存地址 文件描绘符 标记存放器值
进入内存工夫 键盘 形态字
处置机占用工夫 鼠标
旌旗灯号量运用

表2-1是一个PCB的实例,PCB次要包含过程描绘信息、过程掌握和治理信息、资本 分派清单和处置机相干信息等。各局部的次要阐明如下:
1) 过程描绘信息
过程标识符:标记各个过程,每一个过程都有一个而且是独一的标识号。
用户标识符:过程归属的用户,用户标识符次要为共享和维护效劳。
2) 过程掌握和治理信息
过程以后形态:描绘过程的形态信息,作为处置机分派调剂的根据。
过程优先级:描绘过程抢占处置机的优先级,优先级高的过程可以优先取得处置机。
3) 资本分派清单,用于阐明有关内存地址空间或虚拟地址空间的情况;所翻开文件的 列表和所运用的输出/输入装备信息。
4) 处置机相干信息,次要指处置机中各存放器值,当过程被切换时,处置机形态信息 都必需保管在响应的PCB中,以便在该过程从新履行时,能再从断点持续履行。
在一个零碎中,平日存在着很多过程,有的处于停当形态,有的处于壅塞形态,并且壅塞的缘由各不相反。为了便利过程的调剂和治理,需求将各过程的PCB用恰当的办法组织起来。今朝,常用的组织方法有链接方法和索引方法两种。链接方法将统一形态的PCB链接成一个队列,分歧形态对应分歧的队列,也可以把处于壅塞形态的过程的PCB,依据其壅塞缘由的分歧,排成多个壅塞队列。索引方法是将统一形态的过程组织在一个索引表中,索引表的表项指向响应的PCB,分歧形态对应分歧的索引表,如停当索引表和壅塞索引表等。

程序段

程序段就是能被过程调剂程序调剂到CPU履行的程序代码段。留意,程序可以被多个过程共享,就是说多个过程可以运转统一个程序。

数据段

一个过程的数据段,可所以过程对应的程序加工处置的原始数据,也可所以程序履行时发生的两头或最终后果

时间: 2024-08-15 19:16:41

过程的组织:掌握块、程序段和数据段的相关文章

进程的组织:控制块、程序段和数据段

进程是操作系统的资源分配和独立运行的基本单位.它一般由以下三个部分组成. 进程控制块 进程创建时,操作系统就新建一个PCB结构,它之后就常驻内存,任一时刻可以存取, 在进程结束时删除.PCB是进程实体的一部分,是进程存在的唯一标志. 当创建一个进程时,系统为该进程建立一个PCB:当进程执行时,系统通过其PCB了解进程的现行状态信息,以便对其进行控制和管理:当进程结束时,系统收回其PCB,该进程随之消亡.操作系统通过PCB表来管理和控制进程. PCB通常包含的内容 进程描述信息 进程控制和管理信息

C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)

BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据段(data segment)通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域.数据段属于静态内存分配. 代码段: 代码段(code segment/text segment)通常是指用来存放 程序执行代码 的一块内存区域.这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于 

Oracle块,区,段

数据块(Block) 数据块Block是Oracle存储数据信息的最小单位.注意,这里说的是Oracle环境下的最小单位.Oracle也就是通过数据块来屏蔽不同操作系统存储结构的差异.无论是Windows环境,还是Unix/Linux环境,他们的操作系统存储结构和方式.甚至字符排列的方式都是不同的.Oracle利用数据块将这些差异加以屏蔽,全部数据操作采用对Oracle块的操作,相当于是一个层次的抽象. Oracle所有对数据的操作和空间分配,实际上都是针对数据块Block的操作.我们从数据表中

计算机中地址和内存大小的计算和编译出来的数据段

由地址计算内存大小(消除模糊认知) 在计算机中一个地址代表一个字节的内存的位置,即这个byte的门牌号,所以如果给出地址空间的起始地址是可以计算出内存大小的,比如STM32中Flash可编程的地址是从0x0800 0000开始到0x0801FFFF结束的所以内存大小的计算过程如下: 地址差 = 结束地址 - 开始地址  =  0x0001FFFF:他们可以表示的Byte的个数是N = 0x0001 FFFF + 1即0x00020000将N变换为十进制是131072. 内存大小 = N/1024

转:程序内存空间(代码段、数据段、堆栈段)

https://blog.csdn.net/ywcpig/article/details/52303745 在冯诺依曼的体系结构中,一个进程必须有:代码段,堆栈段,数据段. 进程的虚拟地址空间图示如下: BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域.数据

进程的虚拟地址空间,堆栈、堆、数据段、代码段

上图是进程的虚拟地址空间示意图. 堆栈段: 1. 为函数内部的局部变量提供存储空间. 2. 进行函数调用时,存储“过程活动记录”. 3. 用作暂时存储区.如计算一个很长的算术表达式时,可以将部分计算结果压入堆栈. 数据段(静态存储区): 包括BSS段的数据段,BSS段存储未初始化的全局变量.静态变量.数据段存储经过初始化的全局和静态变量. 代码段: 又称为文本段.存储可执行文件的指令. 堆: 就像堆栈段能够根据需要自动增长一样,数据段也有一个对象,用于完成这项工作,这就是堆(heap).堆区域用

内存分配(堆、栈、BSS、代码段、数据段)

这两天看了马士兵老师的视频.视频中提到了一个万能钥匙.就是了解程序运行中对内存的操作.主要讲了堆.栈.Data.说真的有点晕.看了两遍.也就略懂一二.在这做个小小知道总结 简介 我们程序运行的时候都是放在内存里的.根据静态.成员函数.代码段.对象.等等.放在不同的内存分块里.大概分为5块 1  栈 2  堆 3 BSS段-全局区-(静态区) 4 代码段 5 数据段 栈 存放局部变量.临时变量.声明.返回值.指向堆对象的地址(指针).总之存放一些小的东西.当不需要时候.栈会自动清除.比如一个加法方

(转)Linux下数据段的区别(数据段、代码段、堆栈段、BSS段)

进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的.对任何一个普通进程来讲,它都会涉及到5种不同的数据段. Linux进程的五个段 下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的. BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BS

程序运行中(BSS段、数据段、代码段、堆栈)

程序运行中(BSS段.数据段.代码段.堆栈) BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据段(data segment)通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域.数据段属于静态内存分配. 代码段: 代码段(code segment/text segment)通常是指用来存放 程序执行代码 的一块内存区域.这部分区域的大小