[Autogenerated] now it's time to take a deeper look into system memory usage.
When I say system I mean the Colonel and anything that resides in
kernel space such as Colonel device drivers.
So obviously just like normal processes they need to use memory.
However, some things are unique to the kernel,
for example, some code is non pay.
It's always in physical memory can never be paged out.
For example,
the call for interrupt service routines must be non payable because otherwise,
if it happens to be paged out,
you'll get the blue screen because the article of the processor is
higher than two when running interrupt service routines.
So this kind of code can run at any RQ without any restrictions,
we don't have to worry about anything because that code can never be paged out.
On the other hand, we also have normal code.
Page double code which is just like user mode code that can only run safely at
RKO which is less than two in most cases are cheol is zero in the in those cases
Archaea one is kind of special used for something called special can a PCs which
are beyond the scope of this course.
And so if you have some piece of code that has to run to article two or higher,
it must be non payable.
There's also the file system cache which is used to
cache information from files,
I'm going to put that aside and not discuss that in detail
discourse and then we have the data pools.
Now in the kernel there are two main pools of memory
used by drivers and the kernel itself.
One of them is the non page pool and the non page pool is a
memory pool which by definition can be accessed at any are
actually because it is never never paged out.
So obviously this is a very popular memory pool.
If you want to have more powerful memory in the kernel,
you allocate staff from the non page pool.
However, obviously it is more costly,
so you want to minimize using that as much as possible if
you are good citizens within the kernel.
The page pool is like normal memory can be paged out if needed,
nothing special about that memory and again,
drivers and the kernel can use that memory but they know that
they must use that anarchy is less than two.
Otherwise you risk a blue screen.
So these are different kinds of memory used by kernel and the kernel drivers.
And essentially there are two things we have non
payable memory and page double memory.
Non payable is always accessible in any hierarchical.
Page memory is only safely accessible article which is lower than two.
In most cases, simply zero.
With user models only payable stuff,
there's nothing which is non payable in the same sense as it is in the kernel