✅ 운영체제 (OS, Operating System)
- 시스템 자원을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 사용자와 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어
- 대표적인 운영체제로는 Windows, Mac, UNIX, LINUX가 있다.
✅ 운영체제의 목적
(1) 처리 능력 향상
처리 능력 = 일정 시간 내에 시스템이 처리하는 일의 양
(2) 반환 시간 단축
반환 시간 = 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸리는 시간
(3) 사용 가능도 향상
사용 가능도 = 시스템 자원을 사용할 필요가 있을 때 즉시 사용 가능한 정도
(4) 신뢰도 향상
신뢰도 = 시스템이 주어진 문제를 정확하게 해결하는 정도
✅ 운영체제의 역할
자료 출처: https://electricalfundablog.com/operating-system-os-functions-types-resource-management/
❗ 응용 프로그램이 요청하는 시스템 자원을 효율적으로 분배하고 관리한다!
시스템 자원 (System Resource)이란?
- 컴퓨터 하드웨어와 같은 개념으로, CPU, 메모리, 입출력 장치, 저장 매체 등 시스템에서 사용할 수 있는 자원을 의미한다. 시스템 자원은 스스로 메모리 확보, 저장 위치, 저장 방법 등을 직접 결정할 수 없기 때문에 반드시 운영체제가 필요하다.
응용 프로그램 (Application)이란?
- 운영체제를 제외한 나머지 소프트웨어로, 엑셀, 파워포인트, 엑세스 등 사용자가 평소에 사용하는 프로그램을 의미한다.
(※ 소프트웨어 = 운영체제 + 응용 프로그램)
▶ 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고 분배
▶ 운영체제는 응용 프로그램이 요청하는 CPU 시간을 제공
▶ 운영체제는 응용 프로그램이 요청하는 입출력 장치 사용 여부를 허가 및 제어
∴ 운영체제에서 실행되는 모든 프로그램은 운영체제에 종속적일 수 밖에 없다.
✅ 운영체제의 구조
커널 (Kernel)?
- 운영체제는 규모가 매우 큰 프로그램이므로, 운영체제의 모든 부분을 메모리에 올려놓는 것은 메모리의 측면으로 봤을 때 굉장히 비효율적이다. 따라서, 운영체제는 필요한 부분만을 메모리에 올려서 사용하게 되는데, 이 때 메모리에 상주하는 운영체제의 핵심 부분을 커널이라고 한다.
- 커널은 메모리에 상주하는 부분이므로, 운영체제의 핵심 부분이라고 볼 수 있기 때문에, 주로 '운영체제 = 커널'이라고 말한다.
시스템 콜 (System Call)?
- 사용자는 운영체제의 기능을 담당하는 커널에 직접 접근할 수가 없다. 따라서, 사용자와 커널 사이에 인터페이스 역할이 필요한데, 시스템 콜이 바로 이 역할을 하게 된다.
- 사용자가 커널 영역을 사용할 수 있게, 즉 응용프로그램이 시스템 자원에 직접 접근하여 필요한 기능을 사용할 수 있게 해주는 함수를 의미한다.
- 하지만 보통은 응용프로그램은 시스템 콜을 직접 사용하지 않고, 해당 시스템 콜을 사용하여 만든 언어 별 라이브러리 API를 통해 커널에 접근할 수 있다.
API (Application Programming Interface)
- 운영체제가 응용 프로그램을 위해 제공하는 함수의 집합
- 사용자가 마우스 클릭을 인식시키기 위해서 마우스 버튼이 눌리는 순간부터 컴퓨터 내부의 모든 동작들을 모두 관여하여 프로그래밍하는 것은 너무 비효율적이기 때문에, 기본적이고 최소한의 기능들을 함수로 제공하여, 사용자가 함수를 호출해서 사용할 수 있도록 도와주는 역할
쉘 (Shell)
- 운영체제가 사용자를 위해 제공하는 인터페이스
- 사용자가 운영체제의 기능을 조작할 수 있도록 인터페이스를 제공하는 일종의 응용 프로그램
- CLI 환경과 GUI 환경 두 종류로 분류됨
문서 최종 수정일: 2021년 4월 15일