1752745 Members
4763 Online
108789 Solutions
New Discussion юеВ

Re: Modified page list

 
SOLVED
Go to solution
Morcos
Super Advisor

Modified page list

Hi all,
Modified page list what is exactly why used by the system,and is it system work set ?

if we need to allocate system resources dynamically to different instances of the OS, what should we use?

what do we mean by host-based volume shadowing and when should we use it?

11 REPLIES 11
Kris Clippeleyr
Honored Contributor

Re: Modified page list

Hi,

The modified page list is actually a page cache where pages that have been modified reside prior to being written to disk (the page file). It is part of the memory management mechanism of VMS.

Could you clarify your 2nd question? What do you mean by "different instances of the OS"?

HBVS is a technique where two (or three) disks are combined to 1 logical volume as to ensure data integrity. VMS makes sure that the disks are exact copies of one another.

Kris (aka Qkcl)

I'm gonna hit the highway like a battering ram on a silver-black phantom bike...
Ian Miller.
Honored Contributor

Re: Modified page list

the host based shadowing manual can be found
http://h71000.www7.hp.com/doc/732FINAL/aa-pvxmj-te/aa-pvxmj-te.HTML

the performance management manual contains information on the modified page list etc
http://h71000.www7.hp.com/doc/73final/6491/6491pro.html
____________________
Purely Personal Opinion
Morcos
Super Advisor

Re: Modified page list

Hi,
Thanks for reading my question and answering me.First I've read in the performance about modified-page list, but it's not clear. I know that I have free page list, modified-page list and a swapper but the problem is that i'm still not able to figure the relation and why we have modified page list , and if it's a system work set or process work set?
and thx in advance,
Regards
Jan van den Ende
Honored Contributor
Solution

Re: Modified page list

Ziad,

let me give it a try.

(I will be as simplistic as I can make it, so please, guru's, do not trip immediately over the simplifications!)

The basic concept:

A node has a certain, limited, amount of physical memory.
A number of processes are running, each with a certain amount of virtual memory at their disposal.
The amount that a process might be able to address is its Address Space (divided in Process Space and System Space).
Process space is 'private', system space is also available to other processes, be they system service, or Job logical name table, anything that is shared or sharable with anything other than the process itself).

At any time a certain amount of that address space is allowed to be present in physical memory, directly addressable by the process.
This is called the Working Set.

Somehow, a connection has to be made between a process's memory, and the actual physical location. This is done by having the link between virtual and physical address in a special table (on Alpha: a cascade of tables).

(Stepping past all fine-tuning details now.)

If a process expands its used process space beyond its working set, it first has to 'give up' other pages from the working set. The 'least-recently-used' pages get released first, because the more recent a page was accessed, the more chance it will be needed again soon.
Physically, of course, these pages stay where they are, but they are no longer pointed to from the Working Set.

Of course the OS will have to keep track of those pages, because THOSE are the pages that are now available to be overwritten for other use.

But: just MAYBE, the process WILL need a just-released page again! Now we can get that page from disk again, but if we still know where it is in memory, that would make it thousands of times faster to retrieve it!
So, that is what is done.

Now to your question:
if a page has to be released, there are two possibilities:
the page containes information that has once been gotten from disk, and its only use has been reading the info. So, the info at this page can simply be retrieved from disk again if necessary.
Upon release, the pointer to this page is move from the working set to the end of the free list.
(Any needed pages are taken from the head of the list, so the page is kept in memory as long as possible. It more or less functions as a cache).
If, however, the page HAS been modified, then there is a good chance that it will be needed again, WITH the modifications. And THAT is available nowhere else! So, it has to be saved. That is what the Pagefile is for.
But the same argument of speed reading from memory vs from disk as for the free list applies double here: not only may we have to READ again, we must also WRITE it first.
And if we need to give up pages because we want to address other pages, we certainly do not want to wait for that write to the pagefile!
That is what the Modified Page List is used for: any page that leaves the working set of a process and has been modified, goes to the Modified Page List. If needed again, it can be retrieved from there.
The modified Page List has a certain size, with certain tresholds. If it grows too big, the SWAPPER system function (on Vax: the SWAPPER process) kicks in, and writes a big chunk of the Modified page List to the Pagefile, and moves the pages to the free list.
Now, if you need such page again, it might still be on the MPL. Great, just 'page in; again (by only changing a pointer in some tables).Maybe it has already be written to the pagefile? It might still be on the Free list! Then, once again, update some pointers, but now also deallocate that page in the Pagefile.
And if it is no longer there, then an actual read IO from the Pagefile is needed.

So, what is the Modified Page List?
Basically, just a cache for pages that some process has modified, might need again, but can not hold in its own working set because of size limitations.

-- if these cocepts are quite clear, and you want to 'dive in' some more detail, then things like WorkingSet Adjustment, Image- Activation and -Rundown, Shared pages, Installed Images, process creation and deletion, those all modify these activities somewhat, but basically they are all different reasons to perform these same activities.

And of course, this text is only trying to globally describe the mechanisms. Any exactness will have to be taken from the above-quoted manuals. This is just intended to give the background idea!

Hope this helps.

Proost.

Have one on me.

Jan



Don't rust yours pelled jacker to fine doll missed aches.
Antoniov.
Honored Contributor

Re: Modified page list

Jan,

I will be as simplistic as I can make it, so please, guru's, do not trip immediately over the simplifications!

If you will be complete as guru (you are that!) you can full write a book :-)

Ziad,
look at this link (that's the Ian's referred documentation) http://h71000.www7.hp.com/doc/73final/6491/6491pro_002.html#memory_chap

Antonio Vigliotti
Antonio Maria Vigliotti
simon_164
Super Advisor

Re: Modified page list

jan van den ende,
if it were for me i'd give you 1000 points on the reply. Thank you very much because now i understood the real concept about it.
Why HP doesn't have such books to explain such things about VMS. it's like it is hidden. Even if you read the whole mngmt 1, mngmt 2, performance ... You won't find the described idea.
Robert Gezelter
Honored Contributor

Re: Modified page list

Simon,

The Internals and Data Structures series, published by Digital Press, has much of the detail on the internals of the OS.

- Bob Gezelter, http://www.rlgsc.com
Kris Clippeleyr
Honored Contributor

Re: Modified page list

Simon,


Why HP doesn't have such books to explain such things about VMS. it's like it is hidden. Even if you read the whole mngmt 1, mngmt 2, performance ... You won't find the described idea.

But there are...
Digital Press (Butterworth-Heinemann) may still have the book "OpenVMS Performance Management" by Joginder Sethi (ISBN 1-5558-126-9)in their catalogue. Try to get hold of a copy. It does explain the concepts of virtual memory management by VMS quite clearly.
Also a very good book is the "OpenVMS Internals & Data Structures" by Ruth Goldenberg (not for the faint of heart though).

Regards,

Kris (aka Qkcl)
I'm gonna hit the highway like a battering ram on a silver-black phantom bike...
Jan van den Ende
Honored Contributor

Re: Modified page list

Simon,


Why HP doesn't have such books to explain such things about VMS. it's like it is hidden. Even if you read the whole mngmt 1, mngmt 2, performance ... You won't find the described idea.


I was surprised by that, but on some quick searching I have to agree with you!

Way back when, 1982, when I was sent to my first VMS trainings (at Digital, in those days), quite some time was spent on this topic alone!
Maybe because it was much more important then, because memory was REALLY expensive, (my then employer once bought 16 Megabyte at a bargain -- only 500 000 US$ ), and efficient use of it therefore very important. That made understanding these things as important for programmers as for SystemManagers.

I do not know if the current course documents still handle it the same way, and I do not know how I can get them ( take the course again, I guess :-) )

Since then I picked up some (much too little) of Internals, and the books of Ruth Goldenberg are very detailed, and whenever I have a specific need, I dive into them.

I am afraid though, that those go too deep to present an overview, or to study first concepts.

Maybe one of the other know of some fundamentals documentation?

Proost.

Have one on me.

Jan
Don't rust yours pelled jacker to fine doll missed aches.