[Autogenerated] let's begin by examining the general
responsibilities of the memory manager.
The memory manager is part of the Windows Executive,
in fact,
that's the biggest manager there is as part of the
executive bigger than the process manager,
the Our manager and so on.
There's a lot of code within the memory manager.
One of its primary responsibilities is to provide the various tables
needed for mapping virtual addresses to physical addresses.
The actual translation is being done by the processor and we will see
how that is being performed later on in this course,
but the memory manager responsibilities to prepare those tables up
front so the translation has a chance of succeeding.
It also manages a bunch of page files.
Could be one could be more,
could be even zero page files which are used to store data so that it's
possible to use more memory than you physically have.
And we'll dig into page files as well later on in this course.
And generally speaking,
any memory related API or services exposed by the Memory Manager for system
components and for using mode applications using various APIs many of which
will discuss also later on in this course now,
anything related to memory has to be managed using these chunks called pages.
There's no way to manage every single bite because if you want
to manage every single bite on the system,
the management aspects themselves,
the actual data structure for the management are going to
be much bigger than that single bite.
And so there's some kind of compromise has to happen
between managing large chunks and small chunks and those
chunks are referred to as pages.
There are two page sizes supported by default.
The first one is the normal sometimes referred to as a small page size.
As you can see on the left.
All Windows supported architectures use four
kilobytes as the size of a normal page.
And if I say page from now on, unless I explicitly say otherwise,
I mean a normal or a small page which is also the default,
there's also a second size known as a large page.
As you can see here on the left in the table,
it's two megabytes on all Windows supported architectures except for Arm,
which uses four megabytes will understand later on why large
pages are important and we also understand why the sizes are
slightly different for arm based Windows.
Now there is in fact a third page size refer to as a huge page,
which is the one gigabyte sized page that is
supported on newer Windows platforms, Windows stand several 2016 and later.
And of course also require support from the processors and recent intel.
MD processors support that as well.
And again,
once we discussed large pages that make more sense as to why
huge pages could be even a greater benefit.
So everything is always managing in terms of pages,
the page could be committed or not,
could be protected in a certain way or protected in a different way.
Everything as far as the memory manager and the process
story is concerned is all about pages.