段 Table 计算

Segment Table Calculations

我有一个问题。我"Googled"它很多次但找不到解决方案或任何方法来解决它。

On a system using simple segmentation, the segment table is as follows (All values are in decimal):

| Segment | Base Register Value | Limit Register Value |
|---------|---------------------|----------------------|
| 0       | 3000                | 1024                 |
| 1       | 8192                | 1208                 |
| 2       | 1000                | 1200                 |
| 3       | 5000                | 2048                 |

a) Draw a memory allocation chart showing all segments.

b) Compute the physical addresses corresponding to the following segment+offset logical addresses (if the address generates a fault, indicate): 0+1200, 1+500, 3+1024.

c) Compute the logical segment+offset addresses corresponding to the following physical addresses (if the address generates a fault, indicate): 9000, 50, 1200.

答案在这里;我想你仔细看看就会明白:

a)

| Main Memory |              |
|-------------|--------------|
| 0           |              |
|             | Segment 2    |
| 1000        |              |
|             | unallocated  |
| 2200        |              |
|             | unallocated  |
| 3000        |              |
|             | Segment 0    |
| 4024        |              |
|             | unallocated  |
| 5000        |              |
|             | Segment 3    |
| 7048        |              |
|             | unallocated  |
| 8192        |              |
|             | Segment 1    |
| 9208        |              |
| ...         | unallocated  |

b) 0+1200 --> 4200, 1+500 --> 8692, 3+1024 --> 6024.

c) 9000 --> 1+808, 50 --> fault, 1200 --> 2+200.