计算机系统核心组成部分的descriptor table

计算机系统核心组成部分的descriptor table

计算机系统中最基本的功能是将数据和指令存储到内存中,并在需要时检索出来,供CPU执行。但是内存和CPU是通过系统总线相互连接的,而不是直接相连的,因此需要一种机制来映射内存地址到总线上。这种机制在许多体系结构中被称为“描述符表”,意思是由一组描述符组成的表格,每个描述符对应于一个内存页或设备,并告诉系统如何访问它。

系统段描述符表(SDT)

系统段描述符表(SDT)是一个特殊的描述符表,它包含了许多不同的表,每个表都描述了系统的一个方面。例如,一个表格可以描述内存中不同段的位置,另一个表格可以描述进程间通信的方式。这些表格都是由操作系统内核来填充和管理的,因此它们通常是只读的。

全局描述符表(GDT)

全局描述符表(GDT)是一个非常重要的数据结构,在Intel x86架构计算机中被广泛使用。它包含了系统中所有可能使用的段描述符,比如代码段、数据段、栈段等等。当CPU需要访问内存时,它会首先查找GDT,以确定访问所需数据的段描述符。

GDT包括了许多不同的段描述符,每个描述符都描述了一个内存段的基地址、大小和属性,例如可读、可写、可执行等。当CPU要访问一个内存段时,它必须首先从GDT中获取该段的描述符,并根据描述符中指定的信息进行访问。

局部描述符表(LDT)

局部描述符表(LDT)是一个特殊的描述符表,用于在x86架构计算机中支持多任务。每个任务(进程)都有一个单独的LDT,其中包含了该任务所需要的段描述符。当操作系统将控制权从一个任务切换到另一个任务时,它会切换LDT以确保正在运行的任务可以访问正确的段。

选择符

除了描述符表之外,x86架构还有许多其他机制用于访问内存。其中最重要的是选择符,它是一个16位的值,通常被称为“段选择器”。选择符具有两个部分:段描述符表索引和请求特权级别。

段描述符表索引指向一个特定的描述符表,如GDT或LDT。请求特权级别用于确定访问该段所需的权限级别。当CPU需要访问内存时,它会使用选择符来定位对应的段描述符。

总结

总之,描述符表是计算机系统中非常重要的一部分,它允许CPU访问内存和外设。为了保证安全性和可靠性,描述符表通常由操作系统内核来管理,以确保只有授权的进程能够访问特定的内存段,同时还需要遵循内存保护和安全规则。

本篇文章简单介绍了x86架构计算机中的三种描述符表形式:系统段描述符表(SDT),全局描述符表(GDT)和局部描述符表(LDT),以及选择符,这些都是重要的机制,对于理解计算机系统的核心组成部分非常关键。

猜你喜欢

转载自blog.csdn.net/m0_72410588/article/details/133001796
今日推荐