컴퓨터 시스템의 구조

이태곤·2023년 8월 30일
0

Operating System

목록 보기
2/13
post-thumbnail

1. CPU

  • 인터럽트에 의해 메모리에있는 명령어들을 수행하는 역할을 하며, 산술논리연산장치(ALU), 제어장치(CU), 레지스터로 구성되어있다.

  • 과정

    1. 제어장치에 의해서 메모리에 있는 데이터가 레지스터로 전달
    2. ALU는 레지스터에 있는 값들을 연산
    3. 연산결과를 메모리로 전달
  • 제어장치(Control Unit): 명령어를 읽고 해석하며, 데이터 처리를 위한 실행 순서를 결정한다.

  • 산술논리연산장치(ALU): 제어장치로부터 해석 된 명령을 받아 산술연산 및 논리연산을 진행한다.

  • 레지스터(Register): CPU 안에 있는 매우 빠른 임시기억장치로, CPU와 직접 연결되어있어 메모리보다 수십 배에서 수백 배까지 빠르다.
    CPU 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터에 데이터, 중간 결과 및 주요 변수를 저장하는 데 사용된다.

  • 인터럽트(Interupt): CPU가 하던 작업을 잠시 중단시키고, 우선순위가 높은 다른 작업을 수행하고 다시 원래의 작업으로 복귀하도록 하는 신호
    → CPU가 프로그램을 실행하고 있을 때, I/O Device 또는 다른 예외상황이 발생하여 처리가 필요할 경우에 CPU에 알려서 처리하는 기술

    1. divided by zero 등 오류로 인한 인터럽트
    2. 키보드, 마우스 등 I/O 디바이스의 입출력으로 인한 인터럽트
    3. 프로세스 오류 등으로 발생하는 인터럽트
  • 인터럽트 종류

    1. 하드웨어 인터럽트 / 외부 인터럽트: 하드 디스크 작업이 완료되거나 키보드 입력과 같은 하드웨어 이벤트가 발생하면 하드웨어 인터럽트가 발생
    2. 소프트웨어 인터럽트 / 내부 인터럽트 / 트랩: 프로세스의 오류 처리, 시스템 콜 호출, 예외 처리 및 다른 소프트웨어 이벤트로 인해 소프트웨어 인터럽트가 발생
      → 하드웨어 인터럽트보다 우선순위가 높다.
  • 인터럽트 과정: 인터럽트 발생 → 인터럽트 핸들러함수들이 모여있는 인터럽트 벡터로 점프 후 해당 인터럽트에 대한 핸들러함수 실행 → 수행 이후 다시 순차적으로 명령어 실행

  • 인터럽트 발생이유: 입출력 연산 <<< CPU 명령 수행속도 → 빠른 CPU와 상대적으로 느린 I/O 장치 간의 속도 차이를 극복하여 CPU 효율 극대화

    • 실생활 예시: 사용자가 인쇄 기능을 사용하면 CPU는 프린터에게 문서 인쇄를 지시 → 프린터는 작업을 수행 → 프린터는 CPU만큼 처리 속도가 빠르지 않음 → CPU는 프린터가 작업을 마칠 때까지 기다리게 됨(효율↓) → 만약 인터럽트가 발생하면 CPU는 프린터가 하는 작업을 끝내기 전에 다른 작업을 하고 올 수 있다.

2. DMA 컨트롤러

  • I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
    • 메모리에 접근할 수 있는 장치는 CPU밖에 없다.
    • CPU에만 너무 많은 인터럽트 요청이 들어오면 부하가 걸릴 수 있기 때문에, DMA 컨트롤러를 통해서 CPU 부하를 막을 수 있다.
    • 자원 예약 및 스케쥴링을 통해 CPU와 DMA 컨트롤러가 하나의 같은 작업에 대해서 동시에 처리 하는 것을 방지할 수 있다.

3. 메모리 (Memory)

  • 데이터의 상태나 명령어 등을 기록하는 장치이며, RAM(Random Access Memory)을 일컫는다.
    • CPU는 계산, 메모리는 기억
    • Random access: 데이터를 직접적으로 접근할 수 있는 특성
    • 메모리의 크기가 클수록 많은 일을 동시에 할 수 있다.

4. 타이머 (Timer)

  • 몇 초 안에는 작업이 끝나야 한다는 것을 알리는 시간 제한 역할을 담당하며, 시간이 많이 걸리는 프로그램, 무한루프 등을 방지하기 위해서 사용한다.

5. I/O 디바이스 컨트롤러 (Device Controller)

  • 컴퓨터와 연결된 I/O 디바이스(예: 하드 디스크, 프린터)를 제어하고 데이터 전송을 조정하는 역할, 해당 I/O 디바이스들의 작은 CPU
    • 로컬 버퍼: 각 디바이스에서 데이터를 임시적으로 저장하는 데 사용되는 작은 메모리

0개의 댓글