分段存储管理的地址结构
在该地址结构中,允许一个作业最长有64K个段,每个段的最大长度为64KB。
访问次数
每访问一个数据,需要访问内存两次
段表展示
逻辑地址转化为物理地址
为了实现进程从逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段表起始地址和段表长度TL。在进行地址变换时,系统将逻辑地址中的段号S与段表长度TL进行比较。若S>TL,则表示段号太大,访问越界,于是产生越界中断信号。若未越界,则根据段表起始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存中的起始地址。然后再检查段内地址d是否超过该段的段长SL。若超过,即d>SL,则同样产生越界中断信号。若未越界,则将该段的起始地址d与段内地址相加,即可得到要访问的内存物理地址。
例题
如以下段表所示,请将逻辑地址(0,125),(1,4096),(2,3800),(6,350)转换成物理地址
段号 | 内存始址 | 段长 |
---|---|---|
0 | 50K | 10K |
1 | 60K | 3K |
2 | 70K | 5K |
3 | 120K | 8K |
4 | 150K | 4K |
(0,125) : 0<=4 125<=10K,所以物理地址为:50*1024+125
(1,4096) : 1<=4,但4096>3k,越界中断
(2,3800) : 2<=4,3600<=5k ,所以物理地址为:70*1024+3800
(6,350) : 因为6>4,越界中断