OS란?

홍준식·2024년 2월 18일

OS는 프로세스, HW 리소스, 사용자 인터페이스를 관리하는 컴퓨터에서 항상 구동되는 소프트웨어이다.

Kernel

OS는 커널과 시스템 프로그램으로 구분된다.

커널은 영어로 핵심을 의미하고 운영체제의 컴퓨터 자원들을 관리하는 역할을 수행한다.
하지만 커널은 컴퓨터 자원들만을 관리하기에 사용자와 상호작용을 지원하지 않고 시스템 프로그램(shell)을 통해 시스템 콜을 호출함으로써 커널과 상호작용하여 사용자가 컴퓨터 자원에 접근할 수 있도록 한다.

커널은 다음과 같은 역할을 한다.

  • 메모리 관리
  • 프로세스 관리
  • 디바이스 드라이버
  • 시스템 콜

커널은 이렇게 컴퓨터의 자원을 관리하기 때문에 사용자가 해당 자원에 마음대로 접근하지 못하도록 User Mode와 Kernel Mode로 나누어 관리한다.

즉, 사용자는 자원에 접근하기 위해서는 시스템 콜을 호출하여 커널 모드로 전환하고 자원에 접근하게 된다.

Bootstrap Program

컴퓨터를 실행 시 최초로 실행되는 프로그램으로 디스크로부터 OS를 읽어들여 메모리에 올린다.

Interrupt

CPU와 I/O 디바이스가 소통하는 방법으로 I/O 디바이스가 트리거한다.

External Interrupt (Hardware Interrupt)

I/O 장치의 작업이 준비 및 종료되었음을 알리거나 타이머(timer interrupt)에 의해 발생한다.

Internal Interrupt (Software Interrupt)

CPU에서 발생하는 인터럽트로

  • Trap: 시스템 콜 호출
  • Fault: 사용자의 의도가 아닌 문제로 되돌아감 (zero division)
  • Abort: 복구할 수 없는 에러로 프로세스를 죽인다.

Interrupt 처리 과정

  1. 인터럽트 발생
  2. 프로세스 실행 중단 및 현재 상태 저장
  3. 인터럽트 처리: 해당 인터럽트에 대한 인터럽트 처리 루틴(ISR, Interrupt Service Routine) 수행
  4. 프로세스 상태 복구
  5. 작업 재개

0개의 댓글