Assignment: "Physical Memory Subsystem"
Operating Systems
Physical Memory Subsystem
You must have successfully completed the Week 1 assignment before moving on to any assignment from this point forward. If you have not installed your Linux virtual machine and successfully located the "terminal" - please do so at this time.
For this assignment you will take a tour of the Physical Memory Subsystem on your Linux Virtual Machine.
Your Task
Locate and utilize performance analysis tools to determine characteristics of Physical Memory and how it is utilized and managed by your version of Linux.
Start your Linux Partition and open the Terminal. Do not open any other applications at this time. Determine values for each of the following. Provide screenshots of command output.
• Total Physical Memory
• Used Memory
• Free memory
• Amount of memory used by buffers in the kernel
• Size of the page cache (Memory used for holding physical memory page tables)
• Amount of memory containing "dirty" pages
• Amount of memory being used for page tables
• 3 Processes using the most memory
o Process name
o Amount of memory used
o Amount of resident memory
o Amount used for shared memory
• Shared memory
o Number of shared Memory Segments
o Total size of all shared memory segments
Now open some applications and leave them open. i.e. Firefox, multiple office apps, and as many other applications as you can while still maintaining a Linux system that functions(even if slow).
• Now repeat all of the data gathering steps from above and record new values
• Document before and after values and answer the following questions in Summary
• Which values changed and why? Which values remained the same and why
• What is the page cache
• What are page tables
• What is resident memory
• What is shared memory and discuss the command used to view shared memory segement information
Submission Requirements
You will submit a Word or Libre Writer Document which contains results from the above analysis and responses. I do not have access to your system so you need to be sure to provide screenshots for anything I cannot possibly know. If you tell me your system has 10GB of memory, I need proof via screenshot of command output.
Please insert your screenshots into your word document with supporting documentation which meets all requirements. You will be penalized for any results which are not backed by proof.
Tools & Disclaimer
You can use whatever tools you like to analyze the memory on your system. A large portion of this class is exploring and researching solutions on your own! You will continue to operate as a systems administrator / analyst and thus you will be expected to figure out what you need to know on your own. You will not find exact solutions in your book which give you what you need to know to complete this assignment or future assignments. What you will find in your book is an in depth analysis of how an operating systems manages memory at a low level. This is imperative in understanding what the resulting data values mean from your research.
Having said that, I will provide you with a list of commands which you are free to use in this assignment:
• free
• vmstat
• top
• htop
• ipcs
• /proc/meminfo (this is a file, use "cat /proc/meminfo" to view)
For these and any other linux command, you should use the "man" page (short for manual) to understand the internals of the command. **This should quickly become your favorite command!
i.e. "man top"
NOTE: Yes it is OK and expected that you will be doing a lot of "Googling" on this assignment and in this class. Computer Scientists spend a huge portion of their time researching solutions online. The beauty of being an admin, analyst, engineer, or developer is that there really is no plagiarism issues to worry about, (not even in this class as a student). i.e. There are only right answers to this assignment, and if someones blog or paper helps you understand how to get memory statisitcs, then that is a good thing. Google is a welcome asset in your quest to learn as much as you can about Operating systems. So google on when you need to!!!
Note: Some commands need elevated priveleges to run. You can use the sudo command to run these:
i.e. sudo su -c dmidecode
*This runs the "dmidecode" command as root.
or you can switch the the root user shell and run them directly
sudo su -
(you will be asked for your password)
*Much of what you do in future assignment will require root access, so be familiar with switching to the root user prompt using "sudo su -"