Computer Science

[Computer Science] 컴퓨터 아키텍쳐와 운영체제 / Computer Architecture & OS

HongCorin 2022. 11. 22. 21:03
반응형

1. 개념

  • Computer Architecture(컴퓨터 아키텍쳐)
    : 컴퓨터의 여러 구성 요소를 배치하는 방법

  • OS(Operating system, 운영체제)
    : 프로그램들의 실행을 제어하기 위한 감독 프로그램

 

 

2. 기본 컴퓨터 구조

  • 폰 노이만(von Neumann) 구조
    - 메모리에서 동시에 명령어와 데이터를 가져올 수 없다.(데이터 버스와 주소 버스가 하나이다.)

폰 노이만 구조, 출처-위키백과

  • 하버드(Havard) 구조
    - 동시에 명령어와 데이터를 가져올 수 있다.

하버드 구조, 출처-위키백과

 

 

3. 프로세서 코어

이전에 CPU 라고 부르던 것을 요즘은 "프로세서 코어(Processor Core)" 라고 부른다.
이런 코어가 여럿 들어가는 "멀티코어 프로세서(Multicore Processor) 가 이제는 일반적으로 쓰인다.

 

 

 

4. 마이크로프로세서 & 마이크로컴퓨터

  • 마이크로프로세서(micro-processor)
    • 메모리와 I/O가 프로세서 코어와 같은 패키지에 들어 있지 않은 프로세서
    • 큰 시스템에 들어가는 부품으로 주로 쓰임
  • 마이크로컴퓨터(micro-computer) / 마이크로컨트롤러(micro-controller)
    • 모든 요소를 한 칩 안에 패키징한 것
    • 가전제품이나 장난감에 주로 쓰이는 단일 칩으로 된 작은 컴퓨터

 

 

5. 프로시저 / 서브루틴 / 함수(Procedure / SubRoutine / Function)

  • 코드의 반복을 피하기 위해 코드를 재사용하는 주요 수단
  • 함수를 호출하는 부분에서 함수를 실행하고 다시 원래 자리로 돌아올 방법이 필요
    => 프로그램 카운터(program counter) 값

함수 호출 흐름

 

6. 스택(Stack)

  • Last In First Out 구조 - 나중에 들어온 것이 먼저 나간다
  • 함수가 자신이 전달받은 반환 주소를 나중에 사용하기 위해 스택에 저장할 수 있다.
  • 지역 변수 값도 스택에 저장한다.
  • 스택 프레임(Stack Frame) : 함수가 호출될 때마다 스택에 저장되는 데이터 모음

 

 

7. 인터럽트(Interrupt)

  • 실행 중인 프로그램을 잠깐 중단시켜서 주의를 기울여야 하는 외부의 요소에 대응할 수 있도록 만든 시스템
  • 인터럽트 시스템 작동 방식
    1. CPU가 주의를 기울여야 하는 주변장치가 인터럽트 요청(interrupt request) 생성
    2. 프로세서는 현재 실행 중인 명령어를 끝까지 실행 후, 현재 실행 중인 프로그램을 잠시 중단시키고
      인터럽트 핸들러(interrupt handler = 함수)라는 전혀 다른 프로그램을 실행한다.
    3. 인터럽트 핸들러가 필요한 작업을 마치면 원래 실행 중이던 프로그램이 중단된 위치부터 다시 실행을 계속한다.
  • 고려 요소
    • Interrupt 에 대한 응답 시간
      : Interrupt 처리를 정해진 시간 안에 끝내야 한다.
    • Interrupt 를 service 후 다시 돌아오기 위한 현재 상태(state) 저장 방법
      : 스택(stack)에 서비스 후 돌아올 프로그램 위치 저장
  • 인터럽트 핸들러 주소를 저장하기로 약속한 메모리 주소가 존재해서 컴퓨터가 이를 찾는다.
  • 이 주소에는 여러 인터럽트 벡터(interrupt vector) 가 들어 있고, 각 인터럽트 벡터는 CPU가 지원하는 각 인터럽트 핸들러 주소를 지정한다.

 

 

 

<출처>

- 위키백과

- 한 권으로 읽는 컴퓨터 구조와 프로그래밍 . 조너선 스타인하트