본문 바로가기
컴퓨터공학기초 개념/운영체제

4. 운영체제, 응용 프로그램, 컴퓨터 하드웨어의 관계

by devraphy 2021. 3. 26.

1. 운영체제, 응용 프로그램, 컴퓨터 하드웨어의 관계

운영체제, 응용프로그램, 컴퓨터 하드웨어를 도서관에 비유해보자.

  • 운영체제 = 도서관
  • 응용 프로그램 = 시민
  • 하드웨어 = 책 

그렇다면 운영체제의 역할은 다음과 같다. 

  • 시민은 도서관에서 원하는 책(자원)을 요청한다.
  • 도서관은 요청된 책을 시민에게 빌려준다
  • 대여기간이 다 되면, 도서관이 해당 책을 회수한다. 

이 비유는 실제 운영체제, 응용프로그램, 컴퓨터 하드웨어의 관계를 잘 표현한다. 

  • OS는 Application이 요청하는 메모리를 허가 및 분배한다.
  • OS는 Application이 요청하는 CPU 시간(하드웨어)을 제공한다.
  • Application 실행이 완료 및 종료되면, OS는 대여된 메모리와 하드웨어를 회수한다.

2. 쉘(shell)이란? 

운영체제의 역할 중 하나는 사용자에게 Interface를 제공하는 것이다.

이 인터페이스를 실제로 제공하는 기술 또는 응용프로그램을 Shell 이라고 한다. 

 

  • 사용자가 OS 기능과 서비스를 조작할 수 있는 사용자 인터페이스(UI)를 제공하는 응용 프로그램
  • Shell은 CLI와 GUI로 구분된다.

 


3. API(Application Programming Interface)

  • OS는 응용 프로그램을 위한 인터페이스 또한 제공한다.
  • 어떤 응용프로그램이 실행되기 위해서는 해당 프로그램이 OS에게 프로그램 실행 명령을 전달해야 한다.
  • 즉, OS가 응용프로그램에게 제공하는 인터페이스는 실행명령(코드)이다.
  • OS와 응용프로그램 서로 다른 두개의 프로그램이 소통할 수 있는 이 코드(인터페이스)를 API라고 한다.

 

API 는 코드이며, 이는 함수(메소드)의 형태로 구현된다. 

보통은 API(함수)의 종류가 많기 때문에, 비슷한 종류의 API를 묶은 라이브러리(library) 형태로 제공한다. 

 

이렇게 전달되는 라이브러리는 응용 프로그램이 운영체제에게 전달하는 요청서 또는 신청서라고 생각하면 된다. 

 


4. 시스템 콜(System Call)

  • 시스템 콜 또는 시스템 호출 인터페이스 
  • 운영체제 기능을 호출하는 함수 
  • 운영체제가 운영체제의 각 기능을 사용할 수 있도록 시스템 콜이라는 명령어를 제공한다. 
  • API 내부에는 시스템 콜을 호출하는 형태로 만들어 진다. 

 

a) 만약 운영체제를 만든다면? 

  • 운영체제 개발 = 커널을 개발한다.
    - 커널: 핵심 OS 기능을 가진 SW
  • 시스템 콜을 개발한다 
  • API 개발 (대부분 C언어로 만든다. 다른 언어를 선택해도 된다.) 
  • Shell 프로그램 개발 

b) 시스템 콜의 예시 

  • POSIX API (UNIX 계열) 
  • Windows API

5. 정리

  • OS는 컴퓨터 하드웨어와 응용프로그램을 관리한다.
  • 사용자 인터페이스를 제공하기 위해 OS에서 shell 프로그램을 제공한다.
  • 응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템콜을 제공한다.  

댓글