Google Answers Logo
View Question
 
Q: Process Address Space ( Answered 5 out of 5 stars,   2 Comments )
Question  
Subject: Process Address Space
Category: Computers > Operating Systems
Asked by: siball-ga
List Price: $30.00
Posted: 18 Oct 2005 14:41 PDT
Expires: 17 Nov 2005 13:41 PST
Question ID: 581839
A certain OS supports four different address spaces for each process,
called Sa, Sb, Sc, and Sd. Suppose the memory manager loads the four
address spaces into physical memory as shown:

Space	Physical Memory Location

Sa	0x00600000
Sb	0x00180000
Sc	0x01000000
Sd	0x01010000
               
What is the physical address of each of the following process addresses?

a.	0x00456789 in Sa.
b.	0x0000089A in Sd.
c.	0x00043210 in Sb.
d.	0x00010234 in Sc.
e.	0x000BCDEF in Sa.
f.	0x01010000 in Sd.
Answer  
Subject: Re: Process Address Space
Answered By: leapinglizard-ga on 18 Oct 2005 17:08 PDT
Rated:5 out of 5 stars
 
Dear siball,


There are two important principles at work here. The first is that a
process address is an offset from a physical address. We are given the
starting physical address of each process address space, which means that
process address 0 has that physical address. For example, process address 
0x00000000 in space Sa has physical address 0x00600000. To translate a
process address into a physical address, we just add it to the starting
physical address. 

The second important principle is that we are dealing with hexadecimal
numbers rather than decimal numbers. There are several ways to perform
hexadecimal calculations. You may do so with a scientific calculator, or
with a programming language that has built-in support for the hexadecimal
number system. Or you can carry out hexadecimal calculations by hand. The
method is nearly the same as decimal addition and subtraction, with the
difference that numerals top out at E (which denotes 15) rather than at 9.


a.

The starting physical address of space Sa is 0x00600000, and we are
dealing with process address 0x00456789. We add the two together.

  0x00600000 + 0x00456789  =  0x00a56789
  
Thus, the physical address is 0x00a56789.


b.

  0x01010000 + 0x0000089A  =  0x0101089a
 

c.

  0x00180000 + 0x00043210  =  0x001c3210
 

d.

  0x01000000 + 0x00010234  =  0x01010234
 

e.

  0x00600000 + 0x000BCDEF  =  0x006bcdef
 

f.

  0x01010000 + 0x01010000  =  0x02020000
 
 
Regards,
 
leapinglizard
siball-ga rated this answer:5 out of 5 stars
Fast response, clear and complete answer. Just what I was looking for.
Thank you very much.

Comments  
Subject: Re: Process Address Space
From: philnj-ga on 19 Oct 2005 08:28 PDT
 
A small correction:

Leapinglizard meant to say that when doing hexadecimal arithmetic by
hand numerals top out at F, which is equal to 15.  Leap said E instead
of F.
Subject: Re: Process Address Space
From: leapinglizard-ga on 19 Oct 2005 09:33 PDT
 
Yes, quite right. Thank you.

leapinglizard

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy