[OS] Storage Structure

Daniel Seo·2021년 12월 21일
0

Operating System

목록 보기
2/2

Intro

The CPU can load instructions only from memory, so any programs must first be loaded into memory to run. General-purpose computers run most of their programs from rewritable memory, called main memory (also called random-access memory, or RAM). Main memory commonly is implemented in a semiconductor technology called dynamic random-access memory (DRAM).

Computers use other forms of memory as well. For example, the first program to run on computer power-on is a bootstrap program, which then loads the operating system. Since RAM is volatile -- loses its content when power is turned off or otherwise lost -- we cannot trust it to hold the bootstrap program. Instead, for this and some other purposes, the computer uses electrically erasable programmable read-only memory (EEPROM) and other forms of firmwar - storage that is infrequently written to and is nonvolatile.

A typical instruction - execution cycle, as executed on a system with a von Neumann architecture

  • First, fetches an instruction from memory and stores that instruction in the instruction register.
  • Then, instruction is decoded and may cause operands to be fetched from memory and stored in some internal register.
  • After the instruction on the operands has been executed, result may be stored back in memory.

Ideally, we want the programs and data to reside in main memory permanently. This arrangement usually is not possible on most systems for two reasons:

  1. Main memory is usually too small to store all needed programs and data permanently.

  2. Main memory, as mentioned, is volatile -- it loses its contents when power is turned off or otherwise lost.

Thus, most computer systems provide secondary storage as an extension of main memory. The mainn requirement for secondary storage is that it be able to gold large quantities of data permanently.

The most common secondary-storage devices are hard-disk drives (HDDs) and nonvolatile memory (NVM) devices, which provide storage for both programs and data.

profile
배움을 나누는 개발자입니다

0개의 댓글