Introduction
Virtual memory is a section of a hard disk that is used when there is not enough physically installed memory. Programs are stored therein form of pages and only those parts that are necessary for their execution are loaded into the computer’s RAM. In this paper, we will consider two tutorials on the virtual memory subject: from the websites Studytonight and Tutorials Point. Those sources will help answer questions about the way virtual memory extends space available to applications and about the drawbacks of a page fault when a virtual memory page is not resident.
Main body
When comparing two tutorials, a researcher can see that they both give good and clear explanations about the mechanisms of virtual memory usage. Both sites provide useful schemes that picture the most important principles of transferring the data to virtual memory from a standard RAM and the other way around. The tutorials give a good explanation of the term “demand page” which is a fundamental idea that makes these processes possible. The basic principle of demand paging is that the pages are not loaded all simultaneously when a process is swapped in. as it is swapped in “only on demand, not in advance” (Tutorials Point, para.13). The guide from the website Tutorials Point gives a wider look at the demand paging term and provides its advantages and disadvantages. The positive points here are the extension of the memory, its more efficient use, and limitless opportunities for multiprogramming. Although, there is an important disadvantage: the number of interrupts is bigger than with simple techniques of page management.
The explanation of the demand paging term leads to the concept of a page fault. It is a phrase that characterizes an invalid memory reference that occurs as a result of a program addressing a page that is not available in the main memory as it was swapped out before. Here, the tutorial from Studytonight gives more detailed instruction on the steps that are required to be taken when encountering a page fault. This guide also mentions the term “Pure Demand Paging” (Studytonight, para.19) that is used to call a situation when no page is loaded into the memory initially, the processor loads pages only on demand by generating page faults.
In the last part of the tutorials, both guides explain algorithms of page replacement, the techniques that are used by an Operating System to determine the pages needed to be swapped out when they need to be allocated. The Tutorials Point provides 6 different algorithms that could be used to replace pages, some of which are more recommended than others. Studytonight does not mention all those methods but gives a detailed video about LRU (Least Recently Used) page replacement.
The tutorial from Studytonight also clarifies the technical term of trashing. It is a process that spends more time paging than executing, meaning that the process frequently swaps pages in and out to keep the program working. Sometimes it has to swap out the pages that will soon be required. The article shows the dependence of multiprogramming and CPU utilization and settles that to prevent trashing processes required frames must be provided.
Conclusion
In conclusion, it can be noted that both chosen tutorials have their advantages. Some of the important points are missing in one guide and present in the other one. Besides, each of the two articles gives more detailed information about different sections, thus, it is better to study a few sources to gain more knowledge about such a unique subject as virtual memory that is a very important idea for software engineering. It serves two principal purposes: extending physical memory usage with disks and having memory protection, by translating each virtual address to a physical one. This is the reason that makes knowing everything about this technology essential.
References
Tutorials Point. (n.d.) Operating System – Virtual Memory. 2020. Web.
Studytonight. (n.d.) What is Virtual Memory? 2020, Web.