일반 응용프로그램의 경우 시스템의 자원이나 하드웨어를 직접적으로 컨트롤 할 수 없으며, 이를 위해선 시스템 콜을 사용해야 한다. 각 시스템 골에는 번호가 할당되고 시스템콜 인터페이스는 이러한 번호에 따라 인덱스되는 테이블을 유지한다.

시스템 콜의 유형

open() 시스템 콜을 호출했을때, 운영체제에 의해 처리되는 과정

Untitled

  1. 사용자 프로그램이 시스템 콜을 하게 되면 운영체제는 자신의 커널 영역에 정의된 시스템 콜 처리 코드를 수행한다.
  2. CPU가 컨트롤 레지스터를 세팅해 디스크 컨트롤러에게 데이터를 읽어오라고 명령한다.
  3. 디스크 컨트롤러는 디스크로부터 데이터를 읽어와서 자신의 로컬 버퍼에 저장한다.
  4. 작업이 완료되면 디스크 컨트롤러가 CPU에게 인터럽트를 발생시켜 입출력 작업이 완료되었음을 통지한다.

커널모드 vs 사용자 모드