Multithreading Operating Systems, Master1 in Computer Science, University of Rennes 1.
This week our aim is to introduce the virtual memory in our computer system. Please revise the videos we watched during the previous weeks before starting watching these new ones. The following links will bring you to the previous versions of this page: week1, week2, week3, week4.
We'll watch videos extracted from a lecture given by Prof. Gaetano Borriello, at University of Washington, USA. The first 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 is going to give an answer to these questions.
We'll start this week with the second Java assignment. This is the text of the assignment, and the Java class to be completed can be downloaded here: TextGraphics.java. This assignment will not be evaluated, but you'll still have a 2-week time to finalize it (let's say this will be our "current assignment" from the day of publication, until next October 20th, 2020). Even if not directly evaluated, this assignment is important to understand part of the course content.
Additional teaching resourses (for other courses) include:
The full list of courses that I'm giving during the current academic year can be found on my cv.