Virtual memory and address translation
This video introduces the main problems related to the use of the main memory in our computer machines.
The main principle behind virtual memory is the so-called indirection principle. This video introduces this principle in general, and it shows how it can be exploited for enconding a suitable mapping between virtual and physical memory.
After having watched these first two videos, you may wonder what is the difference in the implementations of virtual memory and CPU caches. In fact, in both cases, there is a flow of data that we need to manage and optimize (from different points of view) for improving the performances of our computers. The following video also introduces the fundamental concept of page tables, which basically allow us to translate virtual addresses (with which our programs need to deal) to the actual physical addresses inside the real memory.
Can we share data among different processes? Have all processes the same access rights over the data in the virtual pages? What happens in more details when we have a page hit, or a page fault? How may memory accesses we need to perform in these two situations (page hit or fault)? The following video gives an answer to these questions.
The translation procedure from virtual to physical addresses is presented to Rennes1 students in a videoconference with the teacher.
The slides can be downloaded from this link: virtual memory slides. Some main concepts are summarized at the beginning of the following document: virtual memory and address translation. The same document contains some exercises on the topic: you can check the corrections here.