본문 바로가기
CS/Operating System

1-2. 운영체제와 컴퓨터 : 컴퓨터의 요소

by pizzz 2023. 1. 19.

컴퓨터의 요소

컴퓨터는 CPU, DMA컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져있음

출처 : [면접을 위한 CS전공지식 노트]

 

CPU란?

CPU(Central Processing Unit), 즉 중앙처리장치는 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요기능을 관할 하는 장치

산술논리연산장치, 제어장치, 레지스터로 구성

인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석하여 실행

 

출처 : [면접을 위한 CS전공지식 노트]

관리자 역할을 하는 운영체제의 커널이 프로그램을 메모리(RAM)에 올려 프로세스로 만들면 일꾼역할인 CPU가 처리

 

  • 메모리
    • 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치
    • 보통 RAM(Random Access Memory)을 일컬어 메모리라고 함
    • CPU는 계산을 담당, 메모리는 기억을 담당
    • (CPU는 일꾼, 메모리는 작업장, 작업장의 크기가 곧 메모리의 크기, 메모리가 클수록 많은 일을 동시에 할 수 있음)

 

CPU 구성요소

  • 제어장치
    • 제어장치(CU, Control Unit)는 프로세스 조작을 지시하는 CPU의 한 부품
    • 입출력장치 간 통신 제어, 명령어 읽고 해석하며 데이터 처리를 위한 순서를 결정
  • 레지스터
    • CPU안에 있는 매우 빠른 임시기억장치 
    • CPU와 직접 연결되어 있으므로 연산속도가 메모리보다 수십 배에서 수백 배까지 빠름
    • CPU는 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터를 거쳐 데이터 전달
  • 산술논리연산장치
    • 산술논리연산장치(ALU, Arithmetic Logic Unit)는 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산하는 디지털 회로

 

CPU 연산처리 과정

출처 : [면접을 위한 CS전공지식 노트]

 

  1. 제어장치가 메모리에 계산할 값 로드, 또한 레지스터에도 로드
  2. 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령
  3. 제어장치가 계산된 값을 다시 '레지스터에서 메모리로' 계산한 값을 저장

 

인터럽트란?

어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것

키보드, 마우스 등 I/O 디바이스로 인한 인터럽트, 산술연산에서의 인터럽트, 프로세스 오류 등으로 발생

 

인터럽트가 발생하면

- 현재 수행중인 프로그램을 잠깐 멈추고 상태 레지스터와 프로그램 카운터를 저장하여 인터럽트 발생 순간의 CPU상태를 보존 (다시 원래작업으로 돌아와야 하기 때문)

- 인터럽트 핸들러 함수(인터럽트 핸들링하는 함수)가 모여있는 인터럽트 벡터(모든 서비스 루틴의 주소를 저장하고 있는 자료구조)로 가서 인터럽트 핸들러 함수가 실행됨

- 인터럽트는 인터럽트 간 우선순위에 따라 실행됨 

 

인터럽트 종류

하드웨어 인터럽트

CPU외부의 디스크 컨트롤러나 주변장치로부터 요구되는 것으로 운영체제의 처리를 요하는 상황을 알리기 위해 전기적인 신호를 사용해 구현됨

 

하드웨어 인터럽트 발생 예시

1. 기계검사 인터럽트 : 프로그램을 실행하는 도중 갑작스런 정전이나 컴퓨터 자체 내에서 기계적인 문제가 발생한 경우

2. 외부 인터럽트 : 오퍼레이터나 타이머에 의해 의도적으로 프로그램이 중단된 경우

3. 입출력 인터럽트 : 입출력의 종료나 입출력의 오류에 의해 CPU의 기능이 요청되는 경우

4. 프로그램검사 인터럽트 : 프로그램 실행 중 보호된 기억공간 내에 접근하거나 불법적인 명령 수행과 같은 프로그램의 문제가 발생한 경우

 

소프트웨어 인터럽트

외부가 아닌 CPU 내부에서 자신이 실행한 명령이나 CPU의 명령 실행에 관련된 모듈이 변화하는 경우 발생

트랩(trap) 또는 예외라고도 하며 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발생

 

소프트웨어 인터럽트 발생 예시

1. 존재하지 않는 메모리 주소에 접근

2. 나눗셈에서 0으로 나누고자 하는 경우

 

 

메모리

메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치

CPU는 계산 담당이라면 메모리는 기억 담당

- 레지스터 : 임시기억장치로 CPU안에 있는 작은 메모리

- RAM : 주기억장치

- HDD, SDD : 보조 기억장치

 

DMA 컨트롤러

I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치

CPU에만 너무 많은 인터럽트 요청이 들어오기 때문에 CPU의 일을 부담하여 CPU 부하를 막아주는 보조 일꾼 역할

하나의 작업을 CPU와 DMA컨트롤러가 동시에 하는 것을 방지 

 

타이머

몇 초 안에 작업이 끝나야한다는 것을 정하고 특정 프로그램에 시간 제한을 거는 역할

 

디바이스 컨트롤

컴퓨터와 연결되어 있는 I/O 디바이스들의 작은 CPU를 말함

 

로컬버퍼

 

디바이스 컨트롤러에 있는 장치로부터 들어오고 나가는 데이터를 임시로 저장하기 위한 작은 메모리

 

 

 

 

 

참고 https://huistorage.tistory.com/111