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 프로그램을 제공한다.
- 응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템콜을 제공한다.
'컴퓨터공학기초 개념 > 운영체제' 카테고리의 다른 글
6. 운영체제 핵심개념 - 프로세스 스케줄링 (0) | 2021.03.29 |
---|---|
5. 운영체제의 구조 (0) | 2021.03.26 |
3. 운영체제의 역사(1970년 ~ 2000년대) (0) | 2021.03.26 |
2. 운영체제의 역사(1950년 ~ 1960년대) (0) | 2021.03.19 |
1. 운영체제와 응용프로그램 (0) | 2021.03.19 |
댓글