基本(理论上)主题:虚拟地址的分段寻址

时间:2019-03-16 16:01:40

标签: memory segment virtual-address-space

我目前在操作系统讲座上,他们谈论进程的内存管理。现在,可以对流程进行不同的管理,尤其是段寻址使我头疼。

我提供了一个段寄存器(CPU显然提供了它),我可以从中得出进程的基地址。段寄存器的结构如下:

  

CS 0x01

     

SS 0x03

     

...等等。

基地址如下所示,并在全局描述符表中给出:

  

0x10000

     

0x30000

     

...等等。

GDT 还保存有关……的长度的内容。

如何计算具有给定基址的基址?

特别是,如何计算在 x86 系统中要转换为 0x41000 gs:0x3000 上的访问权限?

然后是最后一个问题:GDT包含访问权限,例如用户或内核。如果在具有内核访问权限的地址上执行写请求,那将不可能,对吗?

感谢您的帮助!

0 个答案:

没有答案