이번 포스팅에서는 KCOW 운영체제 반효경 강의를 기반으로 운영체제 정의와 목적, 그리고 분류에 대해 알아보겠습니다.
(포스팅 제목이 [OS-반효경]이라면 위 강의를 기반으로 운영체제 과목을 정리한 포스팅입니다.)
운영체제(Operating System)

운영체제(Operating System)는 컴퓨터 하드웨어 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 프로그램입니다.
운영체제 목적
운영체제의 목적은 편의성과 효율성으로 다음과 같습니다.
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공: 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행합니다.
- 컴퓨터 시스템의 자원을 효율적으로 관리: 프로세서, 기억장치, 입출력 장치 등의 효율적 관리합니다.
운영체제 분류
운영체제는 동시 작업 가능 여부, 사용자 수, 처리 방식에 따라 분류됩니다.
동시 작업 가능 여부
-
단일 작업(Single Tasking): 한 번에 하나의 작업만 처리합니다. → 특수 목적을 가진 기계
ex) MS-DOS 프롬프트 상에서 한 명령 수행을 끝내기 전 다른 명령을 수행시킬 수 없음
-
다중 작업(Multi Tasking): 동시에 두 개 이상의 작업 처리합니다.
ex) UNIX, MS Windows 등 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
사용자 수
- 단일 사용자(Single User) → MS-DOS, MS Windows
- 다중 사용자(Multi User) → UNIX, NT server
처리 방식
-
일괄 처리(Batch Processing)
-
작업 요청의 일정량을 모아서 한꺼번에 처리합니다.
-
작업이 완전 종료될 때까지 기다려야 합니다.
ex) 초기 Punch Card 처리 시스템
-
-
시분할(Time Sharing) 처리
-
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용합니다.
-
일괄 처리 시스템에 비해 짧은 응답 시간을 가집니다.
-
Interactive 방식
ex) UNIX
-
-
실시간(Realtime OS) 처리 → 특수 목적을 가짐
-
정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS → 데드라인 있음
ex) 원자로/공장 제어, 미사일 제어, 반도체 장비
-
대부분의 현대 컴퓨터는 다중 작업, 다중 사용자, 시분할 처리 시스템을 사용 합니다.
Topics in Operating System
이렇게 운영체제의 정의와 목적, 그리고 분류에 대해 알아보았습니다. 앞으로 운영체제에서 주로 다룰 문제는 다음과 같습니다.

- CPU 스케줄링은 어떤 프로세스에게 CPU를 할당할 것인지 결정하는 문제입니다. 어떤 스케줄링 알고리즘을 사용하여 프로세스에 CPU 할당을 공정하고 효율적으로 분배할 지를 다룰 예정입니다.
- 메모리 관리는 한정된 메모리를 어떻게 효율적으로 나누어 사용할 것인지에 대한 문제입니다. 메모리 공간 낭비를 최소화하고, 각 프로세스가 다른 프로세스 메모리 영역을 침범하지 않도록 보호하는 등 메모리 할당과 관련하여 다룰 예정입니다.
- 파일 관리는 디스크와 같은 보조 기억장치에 파일을 어떻게 저장하고 조직할 것인지 결정하는 문제입니다. 파일 공간과 디렉터리 구조를 설계하여 사용자가 파일을 효율적으로 찾고 관리할 수 있도록 하고, 연속 할당·연결 리스트 할당·인덱스 할당 등 다양한 공간 할당 기법을 통해 내부·외부 단편화를 최소화하는 방법을 다룰 예정입니다.
- 프로세스 관리는 프로세스 생성·실행·대기·종료하는 전체 흐름을 파악하고, 여러 프로세스 간의 자원 배분과 동기화를 어떻게 할 것인지를 결정하는 문제입니다. 프로세스 제어 블록(PCB)에 저장된 상태 정보를 바탕으로 문맥 교환(Context Switch)을 수행하여 CPU를 할당하며, 프로세스 생명주기를 관리하는 방법을 다룰 예정입니다.
- 입출력 관리 등..