Reputation: 4521
I have been thinking about how the whole information(data
) is passed while executing any program or query.
The below diagram I used expand my assumption:
sectors
, and sectors
are divided into blocks
. Blocks
are divided into pages
, and pages
are contain in a page table
and sequence id
. cache
for faster access.cache
then program goes to check Main Memory
and if page fault occurs, then it goes into disk storage.Virtual Memory
is used as a address mapping from RAM
to Disk Storage
.Do you think I am missing anything here? Is my assumption correct regarding how memory management works? Will appreciate any helpful comments. Thank you
Upvotes: 0
Views: 480
Reputation: 21647
I think you are mixing too many things up together.
All data are stored in a disk storage.
In most disk based operating systems, all user data (and sometimes kernel data) is stored on disk (somewhere) and mapped to memory.
The whole platter of the disk is divided into many sectors, and sectors are divided into blocks. Blocks are divided into pages, and pages are contain in a page table and sequence id.
No.
Most disks these days use logical I/O so that the software only sees blocks, not tracks, sectors, and platters (as in ye olde days).
Blocks exist only on disk. Pages only exist in memory. Blocks are divided into pages.
The most frequently used data are stored in cache for faster access.
There are two common caches. I cannot tell which you are referring to. One is the CPU cache (hardware) and the other is software caches maintained by the operating system.
If data is not found in cache then program goes to check Main Memory and if page fault occurs, then it goes into disk storage.
No.
This sounds like you are referring to the CPU cache. Page faults are triggered when reading the page table.
Virtual Memory is used as a address mapping from RAM to Disk Storage.
Logical memory mapping is used to map logical pages to physical page frames. Virtual memory is used to map logical pages to disk storage.
Upvotes: 1