꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

운영체제 구조 (1)

gold_dragon 2021. 4. 13. 21:04

1. 응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계

도서관에 비유하면 운영체제는 도서관, 응용 프로그램은 시민, 컴퓨터 하드웨어는 책이 됩니다. 이때 운영체제의 역할을 보자면, 시민이 도서관에서 원하는 책을 요청합니다. 그러면 도서관은 적절한 책을 찾아서 시민에게 빌려줍니다. 대출 기한이 다 되면, 도서관이 해당 책을 회수합니다.

 

운영체제는 응용 프로그램이 요청하는 메모리를 허가하고 분배합니다. 그리고 응용 프로그램이 요청하는 CPU 시간을 제공하고, IO Devices 사용을 허가하거나 제어합니다.

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

위키백과 참조

3. 사용자 인터페이스

운영체제는 사용자 인터페이스를 제공합니다. 그 인터페이스를 쉘(shell)이라 합니다. 쉘도 하나의 응용 프로그램입니다. 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램입니다. 쉘은 터미널 환경(CLI)과 GUI로 구분됩니다.

4. 응용 프로그램을 위한 인터페이스

응용 프로그램 안에 프로그램 안의 언어를 통해서 API를 통해서 인터페이스를 제공해줍니다. 각 운영체제를 사용할 수 있는 함수들이 있습니다. 예로 C언어에서 open()을 들 수 있습니다. 많은 종류의 API를 묶어 라이브러리(library) 형태로 제공합니다.

그리고 운영체제는 시스템 콜을 제공합니다. 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공합니다. 보통 API는 시스템 콜을 호출하는 형태로 만들어 집니다.

5. 운영체제를 만드는 순서

운영체제를 개발합니다. (kernel) 그 다음 시스템 콜을 개발합니다. 다음에는 shell을 만들어야 됩니다. 이 shell을 c 언어로 만들겠다 하면 C API를 만들어야 됩니다. 그래야 shell 프로그램을 사용할 수 있습니다. 그런 후에 응용 프로그램을 개발합니다.

6. 운영체제와 시스템 콜

표준적인 시스템 콜을 정의하는 문서들이 있습니다. 유명한 것으로 POSIX API가 있습니다. 시스템 콜에 대한 기본적인 정의를 제공하고 있습니다. 그리고 window API가 있습니다.

 

시스템 콜을 다시 정리하자면, 운영체제 기능을 호출하는 함수입니다. API는 각 언어별 운영체제 기능 호출 인터페이스 함수입니다.

7. 정리

운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리합니다.

사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공합니다.

응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공합니다.

'운영체제 (OS)' 카테고리의 다른 글

프로세스 스케쥴링 (2)  (0) 2021.04.14
프로세스 스케쥴링 (1)  (0) 2021.04.14
운영체제 구조 (2)  (0) 2021.04.13
운영체제와 응용 프로그램  (0) 2021.04.12
운영체제 역할  (0) 2021.04.12