하드웨어 수행 과정

SIHA·2026년 1월 3일

CS복습_OS

목록 보기
2/7

하드웨어 수행 과정과 인터럽트

운영체제에서 프로그램이 실행될 때 CPU 연산과 I/O 연산은 어떻게 처리되고,
왜 시스템 콜과 인터럽트가 필요한지를 하드웨어 관점에서 정리한다.

CPU 연산과 I/O 연산

CPU 연산

  • 데이터 처리와 계산을 담당
  • 매우 빠르게 실행됨
  • 주로 메모리에 저장된 데이터를 대상으로 연산 수행

I/O 연산

  • 데이터 입출력을 담당 (파일 읽기/쓰기, 화면 출력, 키보드 입력 등)
  • 상대적으로 속도가 느림
  • 디스크, 키보드, 네트워크 카드 같은 입출력 장치와 연관됨

CPU가 느린 I/O 작업을 직접 기다리면 비효율이 발생하므로,
운영체제는 이를 효율적으로 처리하기 위한 메커니즘을 제공한다.

사용자 모드와 커널 모드

사용자 모드 (User Mode)

  • 일반 애플리케이션이 실행되는 모드
  • 제한된 권한만 가짐
  • 하드웨어 및 시스템 자원에 직접 접근 불가
  • 오류가 발생해도 운영체제 전체에는 영향을 주지 않음

커널 모드 (Kernel Mode)

  • 운영체제가 실행되는 모드
  • 모든 시스템 자원에 접근 가능
  • 메모리 관리, 장치 제어 등 핵심 기능 수행

입출력 장치 제어는 커널 모드에서만 가능하다.

시스템 콜 (System Call)

보안이 필요한 명령은 커널 모드에서만 실행할 수 있다.
사용자 프로그램은 이러한 작업을 직접 수행할 수 없기 때문에
운영체제에게 대신 요청해야 하며, 이를 시스템 콜이라고 한다.

시스템 콜이 호출되면 CPU는 사용자 모드에서 커널 모드로 전환된다.

인터럽트 (Interrupt)

인터럽트는 CPU가 현재 실행 중인 작업을 잠시 중단하고
우선 처리해야 할 이벤트를 처리하도록 하는 메커니즘이다.
처리 완료 후 CPU는 다시 원래 작업으로 복귀한다.

인터럽트 라인

  • 주변 장치가 CPU에게 인터럽트 발생을 알리기 위한 하드웨어 신호 전달 경로
  • 운영체제 개념보다는 하드웨어 관점의 표현에 가깝다

CPU 제어권

CPU 제어권은 CPU가 현재 어떤 작업을 실행할지 결정하고 수행하는 권한을 의미한다.
운영체제는 스케줄러를 통해 여러 프로세스 간 CPU 제어권을 관리한다.

동기식 입출력과 비동기식 입출력

동기식 입출력

  • 입출력 작업이 끝날 때까지 다음 명령을 실행하지 않음
  • 입출력 요청 후 CPU 제어권을 다른 프로세스에게 넘김

비동기식 입출력

  • 입출력 요청 이후에도 프로그램이 계속 실행됨
  • 시스템 콜 호출 후 다시 CPU 제어권을 얻어 다음 명령 수행

프로그램 수행 과정

1. 프로그램 실행

  • 디스크에 있던 프로그램 A가 메모리에 적재됨
  • CPU는 사용자 모드에서 프로그램 A의 명령을 실행

2. 입출력 요청

  • 프로그램 A는 입출력 장치에 직접 접근할 수 없음
  • 시스템 콜을 통해 운영체제에게 입출력 요청
  • CPU는 커널 모드로 전환됨

3. 운영체제의 입출력 처리

  • 운영체제는 입출력 컨트롤러에게 작업을 지시
  • 입출력 작업 동안 프로세스 A는 대기 상태
  • CPU 제어권은 다른 프로세스에게 넘어감

4. 입출력 완료

  • 입출력 컨트롤러가 하드웨어 인터럽트를 발생
  • CPU는 현재 실행 중이던 프로세스를 잠시 중단
  • 운영체제가 인터럽트 핸들러를 실행

5. 프로그램 재개

  • 입출력 결과가 커널을 통해 프로세스 A에 전달됨
  • 스케줄러에 의해 다시 CPU 제어권을 얻으면
  • 프로그램 A는 중단된 지점부터 실행을 이어감

정리

  • CPU 연산과 I/O 연산의 속도 차이로 인해 인터럽트가 필요하다.
  • 사용자 프로그램은 시스템 콜을 통해서만 커널 기능을 요청할 수 있다.
  • 인터럽트는 CPU가 효율적으로 여러 작업을 처리하도록 돕는 핵심 메커니즘이다.
profile
뭐라도 해보자

0개의 댓글