본문 바로가기
Computer Science/Operating System

컴퓨터 구조와 프로그램 실행

by Gofo 2021. 4. 3.

Computer System Elements

컴퓨터는 다음과 같이 구성되어 있다.

  • Processor(CPU)
    • system operation을 control한다.
  • Main memory
    • 휘발성 저장소로, real memory, primary memory라고도 한다.
    • data와 program을 저장한다.
  • I/O module
    • computer와 external environment 사이에 데이터를 옮긴다.
    • 하드디스크, 디스플레이, 키모드, 마우스 등이 있다.
  • System bus
    • 프로세서, 메인 메모리, I/O module 사이에 통신을 가능하게 한다.

Computer Organization

 


Von Neumann Model

컴퓨터의 발전

초기의 컴퓨터는 프로그램이 메모리 안에 내장되어있지 않았다.

 

  • ENIAC
    • 최초의 general electronic computer
    • CPU에서 instruction을 처리하는데 초점을 두었다.
    • 메모리에 대한 개념이 없었다.
    • Hard-wired program : 프로그램은 dial과 switch의 setting으로 동작하였다.
  • EDVAC
    • 메모리의 개념이 등장하였다.
    • 메모리에 프로그램을 올려놓고 그것을 실행시킴으로써 프로그램이 동작한다.
  • John Von Neumann
    • stored program concept에 대한 report을 작성하였다.
    • 이 reprot에서 제시한 기본 구조를 von neumann machine(model)이라 한다.

 

Von Neumann Model

Processing unit, memory, control unit이 어떻게 interfacing하고 작업을 처리하는지가 중요하다.

우리가 지금 사용하고 있는 컴퓨터 모델로 보면 processing unit과 control unit을 CPU로 볼 수 있다.

 

  • Processign Unit
    • ALU
      • Arithmetic and Logic Unit
      • special-purpose(multiply, suare root 등)을 가진 functoinal unit과 다른 많은 functional unit을 가진다.
      • LC-3(소형 컴퓨터)는 ADD, AND, NOT을 수행할 수 있다.
    • TEMP = register
      • 작은 임시 기억장소이다.
      • operand(3+6에서 3이나 6)와 result을 저장하는데 사용된다.
      • LC-3(소형 컴퓨터)는 16-bits wide의 register 8개를 가진다.(R0, R1, ... , R7)
  • Control Unit
    • IR
      • Instruction Register
      • 현재 실행 중인 instruction을 담고 있다.
    • PC
      • Program Counter
      • 다음에 실행할 instruction의 address을 담고 있다.

Von nemann model

 

Memory

메모리는 address 부분과 content의 부분으로 구성되어있다.

  • address : 메모리의 위치를 나타내기 위한 unique identifier(주소)
  • content : location에 저장되는 내용

 

메모리로 부터 수행되는 기본적인 operation은 2가지가 있다.

  • LOAD : memory location에 저장되어있는 값을 읽는다.
  • STORE : 특정한 값을 memory location에 저장한다.

 

Processing unit이 메모리로부터 data을 읽고/쓸 때 특별한 레지스터를 이용한다.

  • MAR
    • Memory Address Register
    • 읽고 쓸 데이터의 위치를 담는다.
  • MDR
    • Memory Data Register
    • 읽은 데이터나 쓸 데이터를 담는다.

 

만약 address A로부터 값을 LOAD 한다면,

  1. address A를 MAR에 저장한다.
  2. 메모리에 "read" signal을 보낸다.
  3. MDR에 저장된 값을 읽는다.

Address A에 value X을 STORE 한다면,

  1. data X을 MDR 저장한다.
  2. address A을 MAR에 저장한다.
  3. 메모리에 "write" signal을 보낸다.

 


Program Execution

본 노이만 모델에서 컴퓨터는 instruction을 수행하는 기계이다.

 

CPU는 machine instruction만 이해하고 실행할 수 있다.

따라서 우리는 machine instruction을 통해 CPU에게 명령할 수 있다.

 

각 instruction은 0과 1로 이루어져있고, load, store, add, sub, mul 등의 physical operation을 수행할 수 있다.

Programming이란 machine instruction을 순서대로 조합해서 만드는 것이고, 이 결과를 program이라 한다.

 

Insturction Processing

Fetch-Decode-Execute의 단계를 거쳐 수행된다.

  • Fetch : 메모리로부터 instruction을 가져오는 과정이다.
  • Decode : 가져온 instruction을 해독한다.
  • Execute : 해독한 instruction을 수행한다.

Instructon Processing

 

Assembly Programming

컴퓨터의 isntruction은 binary(0, 1)로 이루어져있다.

이는 사람이 인지하기 힘들기 때문에 assembly instruction을 이용해서 programming을 한다.

 

각 assembly instruction은 binary machine instruction으로 1:1 대응된다.

컴파일을 통해 high-level language assembly code → machine language로 변환 된다.

assembly language → machine language

 

Programming I/O device

각 I/O device는 controller(interface)을 가지고 있다.

 

CPU는 I/O controller을 이용해서 통신한다.

CPU가 보기에 I/O controller는 메모리와 유사하다.

 

I/O controller는 4개의 레지스터을 가지고 있다.

  • Control register : commands을 write한다.
  • Status register : device의 internal state을 read한다.
  • Input register : data을 fetch한다.(가져온다.)
  • Output register : data을 write한다.

 

'Computer Science > Operating System' 카테고리의 다른 글

Process, PCB(Process Control Block)  (0) 2021.06.16
User Mode, Kernel Mode  (0) 2021.06.16
Interrupt, I/O Device  (0) 2021.04.05
Fundamental Concepts of OS  (0) 2021.03.24
History of Computers and OS  (0) 2021.03.18

댓글