✅ 1. 운영체제란 무엇인가?
(1) 컴퓨터 시스템의 구성

- 컴퓨터 시스템은 사용자, 응용 소프트웨어, 시스템 소프트웨어, 하드웨어로 나뉜다.
- 그중 운영체제는 대표적인 시스템 소프트웨어이다.
- 시스템 소프트웨어: 하드웨어를 제어하고, 응용 프로그램이 실행될 수 있는 환경을 제공해주는 소프트웨어이다.
- 쉽게말해, 사용자가 직접 명령을 내리기보다는 컴퓨터 내부에서 자동으로 돌아가는 경우가 많으며, 대표적으로는 컴파일러, 운영체제 등이 있다.
(2) 운영체제의 역할
[ 컴퓨터 시스템의 자원 관리 ]
- 하드웨어, 소프트웨어, 데이터 자원을 관리를 해줌.
- 예시: 저장장치에서 데이터 읽어오기, 키보드나 마우스 제어, 프로그램 동시 실행 시 CPU와 메모리를 효율적으로 관리
- 사용자를 위해서 컴퓨터 시스템을 효율적으로 운영하는 목적이 있음.
[ 사용자 지원 ]
- 사용자가 내린 명령을 해석하여 실행하게 함
- 사용자와 하드웨어 사이의 매개체 역할
- 사용자에게 편의성을 제공하는 목적
- ** 사용자 지원에 대한 목적이 결국에는 컴퓨터 시스템의 자원 관리를 통해서 이뤄지게 됨. **
(3) 컴퓨터 시스템과 운영체제 - 운영체제가 없는 컴퓨터 시스템

- 운영체제가 없던 초기의 컴퓨터 시스템: 응용 프로그램이 직접 컴퓨터 시스템의 자원을 제어했었음.
- 즉, 사용자가 응용 소프트웨어 프로그램을 만들고자 하면, 하드웨어에 대한 지식을 알고있어야 개발이 가능했었음.
- 결론: 응용 프로그램에 대한 개발에 대한 난이도가 매우 높았음.
- 하나의 하드웨어 여러 사용자 공유: 응용 프로그램 여러개가 하나의 하드웨어에서 동작하게 되면, 하드웨어 내부의 CPU나 메모리 등의 자원에 대한 충돌이 일어날 수 있어서 응용 프로그램간의 호환성을 고려해야 된다는 어려움이 있음.
(4) 컴퓨터 시스템과 운영체제 - 운영체제가 있는 컴퓨터 시스템

- 하드웨어와 응용 프로그램 사이에 운영체제가 위치함.
- 운영체제가 컴퓨터 시스템의 자원을 제어
- 컴퓨터 시스템이 안정적이고 효율적으로 동작할 수 있게 됨.
- 또한, 시스템 콜을 통해 응용 프로그램을 쉽게 만들 수 있게 됨.
(5) 커널 모드 & 사용자 모드

(6) 커널(kernel)

- 커널(kernel): 커널 모드에서 동작하는 운영체제의 핵심 요소이다.
- 쉽게말해, 하드웨어(CPU, 메모리, 디스크 등)를 직접 제어하고 관리하는 실제 코드 집합이자 운영체제의 핵심 프로그램이다.
- ** 또한, 커널은 하드웨어 제어 및 관리 코드를 시스템 콜 함수로써 표준 인터페이스를 제공을 해주고 있다. **
- 커널은 일체형 커널 또는 마이크로커널로 만들어 질 수 있음.

- 일체형 커널은 운영체제의 모든 서비스가 커널 내에 포함이 되어서, 커널 = 운영체제인 경우이다.

- 운영체제의 가장 핵심적인 요소들만 커널로 보고, 나머지는 외부로 분리를 해놓은 마이크로 방식임.
[ 정리 ]
- 일체형 커널, 마이크로 커널 둘 다 결론은 운영체제의 핵심 기능을 담고 있음.
- 일체형 커널 방식은 운영체제의 핵심 기능뿐 아니라 모든 기능들을 다 커널에 담고 있는 개념임.
- 마이크로 커널 방식은 운영체제의 핵심 기능만 가지고 있고, 나머지 기능(파일 시스템, 장치 드라이버, 네트워크 스택, 가상 메모리 관리자 등)은 외부로 빼 커널에 포함된 IPC 를 통해서 통신을 하는 방식임.
- 마이크로 커널 방식은 IPC 통신으로 인해 오버헤드가 발생할 수 있다는 단점을 가지고 있음.
- 또한, 현재의 운영체제들은 일체형 커널 + 마이크로커널을 일부분 혼용하면서 사용하고 있음.
(7) 시스템 호출(system call)

- 커널 자체도 결국 C나 어셈블리어로 작성된 실행 가능한 코드의 집합임.
- 즉, 해당 코드 안에는 하드웨어를 제어하고 자원을 관리하는 복잡한 함수들이 구현이 되어있음.
- ** 결론은 해당 복잡한 함수들 중에서 운영체제의 하드웨어 제어나 접근을 하는 함수들을 운영체제 개발자가 API 로써 제공을 해주고 있으며, 해당 API 가 결국엔 시스템 콜로 볼 수 있음. **
- 해당 시스템 콜을 하게 되면 내부적으로는 커널 모드로 바뀌며, 운영체제의 커널 함수를 호출해서 실행 할 수 있게 됨.
✅ 2. 운영체제의 구성

- 컴퓨터 시스템의 자원의 성격에 따라 크게 4가지로 나뉨.
(1) 프로세스 관리자

- 프로세스의 생성 및 삭제
- CPU 할당을 위한 스케줄 결정(스케줄링)
- 프로세스의 상태를 관리하며 상태 전이 처리
(2) 메모리 관리자

- 메모리(주기억장치) 공간에 대한 요구의 유효성 확인
- 메모리 할당 및 회수
- 메모리 공간 보호: 프로세스들이 메모리 공간에 겹치게 되면 오류가 남 이런걸 잘 관리해줘야함.
(3) 장치 관리자

- 컴퓨터 시스템의 모든 장치 관리
- 시스템 장치의 할당, 작동, 반환
(4) 파일 관리자

- 컴퓨터 시스템의 모든 파일 관리
- 저장장치의 공간 관리
- 파일의 접근 제한 관리
- ** 기존의 파일 데이터가 사라지지 않게 접근 및 공간 관리를 잘해야함. **
✅ 3. 운영체제의 유형

- 운영체제는 대표적으로 일괄처리, 시분할, 실시간, 분산 4가지가 있음.
- 이 밖에도 다양한 종류의 운영체제가 존재는 함.
(1) 일괄처리 운영체제(Batch processing)

- 최초의 운영체제이며, 작업(프로그램)을 모아서 한 번에 순서대로 처리하는 방식이다.
- ** 해당 방식은 매우 간단하지만, 나중에 들어온 작업이 많은 시간을 기다릴 수 있다는 단점이 있음. **
(2) 시분할 운영체제(Time-sharing)


- 프로그램들이 특정 시간 만큼만 수행 하며, 비교적 공평하게 프로그램이 수행되는 운영체제 방식임.
- 동작 원리: CPU 시간을 아주 짧은 시간 단위로 나누어 여러 프로세스에 번갈아 할당함.
- 목적: 자원의 효율적 사용과 사용자의 응답 시간을 최소화하는게 목적임.
- 현대 범용 OS(Windows, macOS, Linux)의 근간이며, 공평성을 중시함.
(3) 실시간 운영체제(Real-time - RTOS)

- 동작 원리: 우선순위가 높은 작업이 들어오면 현재 작업을 즉시 중단하고 해당 작업을 처리함.
- ** 빠른것보단 일정한 시간 내에 끝내는 것을 훨씬 중요하게 여기는 방식임. ( 즉, 데드라인을 정해서 해결하는 방식 ) **
- 주로 임베디드 시스템, 군사 무기 제어, 항공기 항법 시스템에서 사용이 됨.
(4) 분산 운영체제


- 쉽게말해, 지리적으로 떨어져 있는 여러 개의 컴퓨터 시스템을 통신망으로 연결하여, 사용자가 하나의 거대한 컴퓨터를 사용하는 것처럼 느끼게 해주는 운영체제임.( 여러 컴퓨터 시스템을 통으로 관리하는 운영체제로 보면 됨. )
'방송통신대학교 > ⚙️운영체제' 카테고리의 다른 글
| [운영체제] 6강 - 교착상태(1) (0) | 2026.03.20 |
|---|---|
| [운영체제] 5강 - 병행 프로세스(2) (0) | 2026.03.18 |
| [운영체제] 4강 - 병행 프로세스(1) (0) | 2026.03.06 |
| [운영체제] 3강 - 프로세스 스케줄링 (0) | 2026.02.27 |
| [운영체제] 2강 - 프로세스와 쓰레드 (0) | 2026.02.19 |