Memory design and virtual memory

In the class of SWE 514 Computer Systems, I am studying low-level concepts about cpu and memory design. Although I am totally abstracted from them in daily programming life, I think If you are a software developer it is good to catch at least a glimpse of how memory management works, regardless you write low-level or high-level programs. In many respect, management burdens are being carried out by operation systems; however, sometimes having knowledge about these may help you in terms of performance or security issues. I am not going to explain what the memory management is here; instead, I will share some useful resources.

The article titled "Principles of virtual memory" by Carl Burch and Hendrix College seems to me that it covers most of sides of virtual memory concept very concisely. After reading it, you will understand why virtual memory exists and which parts of it are actually crucial.

In the following youtube playlist, virtual memory concept is discussed as why we need it and what parts it consists of. You can find general information about paging, page frames, address translation, translation lookaside buffer(TLB), caches, replacement methods by watching the list from the first video to the 14th one.


This article published by University of Maryland covers the conceptual outlines of virtual memory and other related things. There are also other lecture notes about cpu and memory design.



Others:
https://www.youtube.com/watch?v=WxYiXDSyiZ0
https://www.youtube.com/watch?v=0aHuj2BNsk0
https://www.youtube.com/watch?v=DlDBqHuvAUw 

Comments

Popular posts from this blog

Migrating from PHP to Python

Memory organization and cache management

(DRAFT) Scaling a django project using celery and elasticsearch