
운영체제(OS, Operating System)는 컴퓨터 시스템의 핵심 소프트웨어로, 주요 운영체제로는 Windows, UNIX 계열의 Linux, 그리고 MacOS 등이 있습니다.

운영체제는 다양한 장치에서 사용되며, 데스크톱에서는 Windows, Linux, MacOS 등이 있으며, 모바일 장치에서는 iOS와 Android가 널리 사용됩니다.
운영체제는 사용자와 응용 프로그램이 하드웨어를 사용할 수 있도록 중간 역할을 합니다.
커널(Kernel)이 하드웨어에 직접 접근하는 역할을 수행하며, 커널에 여러 추가 기능이 결합된 상태가 OS입니다.
운영체제는 크게 커널(kernel), 시스템 라이브러리, 하드웨어 추상화 계층으로 구성됩니다.
하드웨어와 직접 상호작용하며, 시스템 라이브러리는 프로그램이 OS 기능을 쉽게 호출할 수 있도록 도와줍니다.운영체제는 사용자가 운영체제의 기능과 서비스를 조작할 수 있도록 쉘(Shell)이라는 프로그램을 통해 인터페이스를 제공합니다.
키보드로 명령어를 입력해 조작하고, GUI에서는 마우스를 사용하여 그래픽 요소를 통해 조작합니다.bash 쉘은 CLI 쉘의 한 예입니다.bash 외에도 Windows의 PowerShell, macOS의 zsh 등이 있으며, 다양한 운영체제에서 CLI 쉘을 제공합니다.CLI는
명령어를 통해 정확한 제어가 가능해 개발자나 고급 사용자에게 유용하며, GUI는 직관적인 조작이 가능해 일반 사용자에게 적합합니다.
운영체제는 응용 프로그램이 시스템의 기능을 사용할 수 있도록 시스템 콜(System Call)이라는 인터페이스를 제공합니다.
응용 프로그램이 하드웨어 리소스에 접근하거나 운영체제 기능을 활용할 수 있습니다.응용 프로그램이 커널 모드로 전환하여 하드웨어에 접근하거나, 자원 할당 등의 작업을 수행할 수 있습니다.프로그래밍 언어별로 제공되는 API는 응용 프로그램이 운영체제의 기능을 쉽게 사용할 수 있게 합니다.
응용 프로그램이 운영체제의 기능을 간편하게 사용할 수 있도록 제공되는 인터페이스로, 내부적으로 시스템 콜을 호출하여 커널과 상호작용하게 됩니다.시스템 콜을 호출하여 필요한 기능을 수행하는데, API는 주로 함수나 라이브러리 형태로 제공됩니다.대표적인 API 라이브러리로는 C언어의
POSIX, 윈도우즈의WinAPI등이 있습니다.
운영체제는 컴퓨터 하드웨어 자원인 CPU, 메모리, 입출력 장치, 저장 매체 등을 관리합니다.
하드웨어 자원을 효율적으로 분배하고 제어합니다.선점형 스케줄링(예: Round Robin)과 비선점형 스케줄링(예: FCFS, SJF) 등이 있으며, 운영체제는 이를 통해 각 프로그램에 공정하게 CPU 시간을 할당합니다.페이징, 세그멘테이션 등의 방법을 통해 이루어지며, 이로써 메모리 공간을 효율적으로 분배하고 보호할 수 있습니다.운영체제는 사용자와 컴퓨터 간의 원활한 소통을 위해 인터페이스를 제공하며, 사용자가 컴퓨터 시스템을 효율적으로 사용할 수 있도록 돕습니다.
운영체제는 응용 프로그램을 관리하고 실행하며, 프로그램 간 권한을 조정하여 프로그램이 시스템을 효율적으로 사용할 수 있도록 합니다.
프로그램이 시스템 리소스를 과도하게 사용하는 경우, 운영체제는 이를 조정하여 시스템 전체의 안정성을 유지합니다.우선 순위를 조정하거나 작업을 일시 중단해 다른 프로그램이 리소스를 활용할 수 있도록 합니다.운영체제는 프로그램을 프로세스로 관리하며, 여러 작업을 동시에 실행할 수 있게 도와줍니다. 또한, 프로세스 내에서 여러 스레드를 생성하여 다중 작업을 처리할 수 있습니다.
컴퓨터 시스템에서는 커널 모드와 사용자 모드라는 두 가지 실행 모드가 존재합니다.
응용 프로그램이 사용하는 모드로, 시스템에 대한 접근이 제한됩니다. 운영체제가 시스템 리소스에 접근할 수 있는 모드로, 시스템 콜을 통해 커널 모드로 전환하여 필요한 작업을 수행합니다.
응용 프로그램이 하드웨어 접근이 필요할 때, 운영체제는 시스템 콜을 통해 사용자 모드에서 커널 모드로 전환하여 해당 작업을 수행합니다. 작업이 완료되면 다시 사용자 모드로 복귀하여 보안을 유지합니다.
운영체제는 CPU 보호 링 구조를 통해 시스템의 안전성을 보장합니다.
응용 프로그램이 임의로 시스템을 손상시키지 못하도록 합니다.
CPU 보호 링은 0부터 3까지의 레벨이 있으며, 링 0에서 운영체제가 작동하고 링 3에서는 응용 프로그램이 작동하여 권한에 따라 접근 수준을 나눕니다.
운영체제는 응용 프로그램을 관리하고 실행하며, 응용 프로그램 간의 권한을 조정합니다.
또한, 응용 프로그램이 과도하게 CPU를 점유하려고 할 경우 이를 조정하여 시스템의 안정성을 유지합니다.
요약
- 운영체제는 컴퓨터의 하드웨어와 사용자 간의 중간 역할을 하며, 자원 관리, 사용자 인터페이스 제공, 프로그램 제어 등을 통해 시스템을 효율적으로 운영합니다.
- 커널과 시스템 콜, API를 통해 응용 프로그램이 하드웨어를 사용할 수 있도록 돕고, 사용자 모드와 커널 모드의 보호 구조를 통해 시스템의 안정성과 보안을 유지합니다.
- 운영체제의 이러한 역할 덕분에 우리는 다양한 프로그램을 안전하고 효율적으로 사용할 수 있습니다.
다음 포스팅에서는 운영체제가 프로그램을 관리하는 방식인 Process와 Scheduling에 대해서 자세히 다루어보도록 하겠습니다.