OS는 프로세스, HW 리소스, 사용자 인터페이스를 관리하는 컴퓨터에서 항상 구동되는 소프트웨어이다.
OS는 커널과 시스템 프로그램으로 구분된다.
커널은 영어로 핵심을 의미하고 운영체제의 컴퓨터 자원들을 관리하는 역할을 수행한다.
하지만 커널은 컴퓨터 자원들만을 관리하기에 사용자와 상호작용을 지원하지 않고 시스템 프로그램(shell)을 통해 시스템 콜을 호출함으로써 커널과 상호작용하여 사용자가 컴퓨터 자원에 접근할 수 있도록 한다.
커널은 다음과 같은 역할을 한다.
커널은 이렇게 컴퓨터의 자원을 관리하기 때문에 사용자가 해당 자원에 마음대로 접근하지 못하도록 User Mode와 Kernel Mode로 나누어 관리한다.
즉, 사용자는 자원에 접근하기 위해서는 시스템 콜을 호출하여 커널 모드로 전환하고 자원에 접근하게 된다.
컴퓨터를 실행 시 최초로 실행되는 프로그램으로 디스크로부터 OS를 읽어들여 메모리에 올린다.
CPU와 I/O 디바이스가 소통하는 방법으로 I/O 디바이스가 트리거한다.
I/O 장치의 작업이 준비 및 종료되었음을 알리거나 타이머(timer interrupt)에 의해 발생한다.
CPU에서 발생하는 인터럽트로