Week #3 - Highyeena/Tech-Journal GitHub Wiki

Memory Management

Partitioning = sectioning out memory to allow for multitasking and multi-programming (handled by the OS)

  • Fixed Partitioning = physical memory is partitioned for processes to be assigned to (can be equal or variable sizes) (causes internal fragmentation)
    • Internal Fragmentation = when the process is smaller than the memory requested
  • Variable Partitioning = allows partition sizes to be changed after creation (fixes the problem of internal fragmentation)
  • Virtual Memory = gives the impression that it has an address space despite being fragmented in RAM. Helps efficiently use ram (handled by OS and CPU)
  • Paging = dividing physical memory into equal sized page frames. Large programs are only partially loaded into memory. If a program tries to access an unloaded part of the program, the OS finds the data in storage, uses an empty page frame and loads the data then lets the program resume.
  • Relocation = program not loaded into a fixed point in memory, may reside in other areas
  • Protection = protects against processes interfering with other processes. Memory references are checked at run time to ensure that they only reference memory allocated to it.
  • Sharing = allows protection mechanisms to be flexible if multiple processes are accessing the same memory.
  • Contiguous Organization = programs are organized into sequential modules, some modifiable and some non-modifiable
  • Non-contiguous Organization = memory is organized in various locations. Determined by need and available space.

Memory types

  • ROM (Read-only memory) = can store data even when there is no power going through it (cannot be switched out like RAM however) Two types of RAM = Dynamic RAM (DRAM) and Static RAM (SRAM) DRAM is slower than SRAM because DRAM has to be refreshed periodically to keep the data intact

  • DRAM = RAM sticks found on the motherboard

  • SRAM (also referred to as cache memory) = stored in the processor and holds the most frequently used data

  • Synchronous DRAM (SDRAM) = places new address into memory before the prior retrieval cycle completes. Synchronizes with the CPU clock for faster operation

  • DDR (double data rate) RAM = uses SDRAM and transmits data twice as fast by using both the rising and falling edge of the clock

  • DDR2, DDR3(L), DDR4(L) = faster versions of DDR that operate with less voltage than the previous model. DDR4L is the latest and best model so far. Newer models are not compatible with older models (DDR4 does not work with DDR3 or DDR2).

  • Heat Spreader = metal placed on the outside of the memory stick to divert heat away from the memory

Memory Features

(DIFFERENT MOTHERBOARDS SUPPORT DIFFERENT FEATURES)

  • Parity = method that checks data accuracy
  • Error Correcting Code (ECC) = uses a mathematical algorithm to verify data accuracy (can find and correct data errors)
  • Buffered Memory = Buffers data in the RAM by 1 clock tick to ensure data accuracy (slower than buffered memory)
  • Single-sided memory = A memory module that has one “bank” of memory, with 64 bits transferred out of the memory module to the CPU.
  • Double-sided memory = contains 2 banks of memory so you can have more banks without needing more slots
  • Dual-voltage memory = can operate at a lower voltage level so less heat is produced
  • Extreme-memory profile = allows the BIOS to configure voltage and timing (overclocking RAM)

Disk Caching

Virtual Memory(VM) uses the hard drive as RAM allowing for multiple large applications to run simultaneously VM is dynamic and increases/decreases as needed Paging File = block of hard drive space used as RAM (1 page = 4KBs)

Flash Memory = nonvolatile, solid-state memory (holds data even when powered off) Mobile devices use flash memory to store the OS USB flash drives = connect to a usb port and can store or send data from a computer