Memory Management Flashcards
What is the main difference between physical and virtual memory?
Physical memory is stored on a storage medium, like DRAM, SRAM, an HDD, or an SSD. Virtual Memory is an abstraction of memory for the purpose of simple software design.
TRUE/FALSE: Virtual memory is abstracted, but its address space is still mapped directly to hardware, and is limited to that amount of space.
FALSE: Virtual memory has a large address space that might not really exist in physical memory.
What is the difference between symmetric and asymmetric memory access?
Symmetric access allows for equal and full access to all memory by all processor units and cores. Asymmetric access partitions memory into regions to allow for faster local access.
What is the difference between synchronous and asynchronous I/O?
Synchronous I/O processes wait for the completion of any I/O requests to continue its process. Asynchronous I/O processes send the info of the I/O request back through asynchronous means such as callbacks or polling.
TRUE/FALSE: Writing a block of data to a file on the disc is an example of a “burst” pattern, not a “random” pattern.
TRUE.
TRUE/FALSE: Accessing many different variables throughout a complex algorithm is an example of a “random” pattern, not a burst pattern.
TRUE.
TRUE/FALSE: Uploading a file to a server is an example of a “random” pattern, not a “burst” pattern.
FALSE: It’s an example of a burst pattern.
TRUE/FALSE: Retrieving all files on the disc starting with the letter ‘A’ is an example of a “burst” pattern, not a “random” pattern.
FALSE: It’s an example of a random pattern.
TRUE/FALSE: Loading and storage is byte-oriented.
TRUE, also word-oriented.
Describe Endianness.
The storage of data, specifically if the most- or least- (or median-, rarely) significant byte.
What is cache coherency?
The maintenance of caches in a multi-core system to make sure processors can access the correct data despite multiple caches.
TRUE/FALSE: Read and write access is byte-oriented.
FALSE: Read/write access is Block-oriented. Blocks typically have 4096 bytes each.
TRUE/FALSE: Read/write access is efficient for small memory updates and reads, but less efficient for large-scale updates and reads.
FALSE: Since Read/Write access is block-oriented, it is less efficient for small reads and writes.
What direction is the stack and heap read from in processes?
Inwards. The stack and heap grow until they overlap (hopefully never).
TRUE/FALSE: There are parts of memory the user isn’t allowed to access without Macros or Inline Assembly.
TRUE, the kernel.