WINDOWS ARCHIECTURE: FURTHER ASPECTS Aims To enable students
to: ·
understand memory
management ·
share memory between
processes ·
describe DLLs Understand memory managementAs discussed
previously, each process within the Windows environment operates within its own
environment, protected from other by the operating system. To achieve this each
application requires its own, private area of memory to work in. Under Windows NT
every process is given 4GB of memory in which to operate. It is very unusual to
find a machine with such an amount of physical memory, consequently the
operating system has to provide “virtual memory” so that the process believes
it has access to 4GB of memory although in reality it may be much less. The virtual memory
used by the process is divided into equal blocks known as pages. Areas of
memory that have not been used recently are copied to a temporary paging file
on disk, when next required the page is reloaded from disk. The virtual memory
manager is responsible for managing this process, mapping physical memory
locations onto the virtual ones used by each process. By tracking these pages
the virtual memory manager can ensure that no process can access the memory
used by another, thus protecting processes from each other. Besides offering
program security, virtual memory also makes program development easier.
Previous version of Windows and DOS made use of a technique termed segmentation
to allow programs to access more than 640K of memory, the details of this
process are beyond the scope of this lecture but suffice to say it is
convoluted and error prone. These techniques are no longer required, newer
versions of Windows have introduced a “flat” memory model enabling access to
4GB of memory - more than enough for current applications! Share memory between processesSo far emphasis has
been placed on the memory protection offered to processes by Windows.
Unfortunately applications that can not share information with each other are
likely to be pretty useless, ways need to be found in order to pass data
between separate address spaces. Several methods exist to do this, but all are
based on a technique called file mapping. File mapping allows a
process to treat a disk file as if it were a block of memory. If two or more
processes map the same disk file into their memory address space simultaneously
a way of sharing data has been established. The section of memory representing
the file can be used to pass information while the rest of the processes memory
is protected from interference from other applications. Establishing a file
mapping can be tricky so several other inter-process communication mechanisms
exist, although they all eventually rely on memory mapped files. For example
pipes allow processes to send messages to each other through a structure
resembling a queue. Messages are placed on one end by application A and read
from the other by application B. Describe DLLsDLL stands for
Dynamic Link Library. A DLL is a collection of useful routines packaged into a
single file that may be loaded by executables to extend their functionality. By
loading a DLL the executable has access to all the functions it implements. Although
the same DLL may be loaded by several applications simultaneously, they all
have their own private copy held within their address space. To minimise memory
overhead the operating system will ensure that the static portions of a DLL
(its code and constant variables) are represented by a shared file with only
its working memory being unique to each application loading it. |
|
||
|
|||
|
Last updated: 11th July 2006. copyright © 2006 Greystoke Systems Ltd. Web address: http://www.gsys.biz/Documents/Services/Tuition/CityAndGuilds/FurtherWork/WindowsArchitectureFurtherAspects.htm |