OS

[쉽게 배우는 운영체제] 1. 운영체제 개요

noahkim_ 2023. 12. 26. 20:38

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다

 

1. 소개

프로그래밍의 도입

  • 초기 컴퓨터는 설계된 대로만 사용할 수 있었습니다.
    • 사용자의 개입이나 프로그래밍 구현이 부족했습니다.
  • 프로그래밍을 통해원하는 프로그램을 추가하고 실행할 수 있게 되었습니다.

 

기능

기능 설명
자원 관리
- 프로그램이 사용하는 자원을 관리
- 자원 종류: 메모리, CPU 시간, 디스크 공간, 네트워크 대역폭 등
사용자 인터페이스 제공
- 사용자가 시스템과 상호작용할 수 있도록 지원
- 프로그램이 데이터를 처리하고 사용자에게 전달하는 방식
- GUI, CLI 등 다양한 인터페이스 제공
동시성 관리
- 병렬 처리를 통해 여러 작업을 동시에 실행할 수 있도록 지원
- 동시 실행에 필요한 자원 및 스케줄링 관리

 

2. 역사

발전 과정 특징
ENIAC
- 세계 최초의 전자 디지털 범용 컴퓨터
- 대규모 데이터 처리 (회계, 급여 계산, 통계 분석 등)
- 약 18,000개의 진공관 사용
- 거대한 크기 (30톤)
일괄작업 시스템
- 사용자와의 상호작용 부재
- 작업을 스케줄링하여 실행
- 프로그램과 데이터를 한 번에 입력 후 자동 실행
대화형 시스템
- 사용자와 컴퓨터 간의 양방향 커뮤니케이션 (키보드, 모니터 사용)
- 실시간 처리 가능
- 프로그램 실행 중 사용자 입력 및 중간 결과값 표시 가능
시분할 시스템
- 다중 프로그래밍: 하나의 CPU를 여러 프로세스가 공유
- CPU 시간을 짧은 단위로 나누어 여러 작업에 할당
- 자원의 효율적 사용, CPU 대기시간 감소
다중 사용자 시스템 (유닉스)
- 여러 사용자가 동일 시스템을 동시에 사용 가능
- 각 사용자는 고유한 계정을 가짐
- 여러 사용자에 의한 자원 공유 허용
분산 시스템
- 여러 개의 개별 컴퓨터(노드)가 네트워크를 통해 협력하여 작업 수행
- 분리된 컴퓨터들이 논리적으로 하나의 통합된 시스템처럼 작동
클라이언트-서버 시스템
- 작업 요청자(클라이언트)와 응답자(서버)로 나뉜 이중 구조
- 서버가 클라이언트의 요청을 처리하는 방식
P2P 시스템 - 서버 없이 클라이언트끼리 직접 연결
- 서버 과부하 문제 해결 목적
클라우드 컴퓨팅
- 인터넷을 통해 서버, 스토리지 등의 컴퓨팅 서비스 제공
- 유연한 자원 할당 및 확장 가능

 

3. 역할

역할 설명
안정성 (자원 보호)
- 사용자가 직접 자원에 접근하지 못하도록 제한
- 자원을 보호하고 관리하여 시스템의 안정성 유지
- 문제가 발생하면 이전 상태로 복구 (결함 포용)
효율성 (자원 관리)
- 스케줄링: 자원을 어떤 프로그램에 어떤 순서로 할당할지 결정
- 독점 방지: 특정 프로그램이 자원을 독점하는 것을 막아 공정한 자원 할당 유지
확장성 (하드웨어 인터페이스)
- Plug & Play 지원: 하드웨어 종류와 관계없이 연결 후 바로 사용 가능
- 다양한 하드웨어 자원의 추가 및 제거가 용이 (단, 드라이버 필요)
편의성 (사용자 인터페이스)
- 사용자가 시스템과 쉽게 상호작용할 수 있도록 인터페이스 제공 (GUI, CLI 등)

 

4. 구조

커널

  • 사용자와 시스템의 인터페이스 역할을 담당합니다.
  • 운영체제의 핵심이 되는 프로그램 입니다.

 

기능
  • 프로세스 관리, 메모리 관리, 저장장치 관리 등

 

시스템 호출
  • 커널이 자신을 보호하기 위해 만든 인터페이스 입니다.
  • 커널이 제공하는 서비스를 시스템 호출로 제한함으로써 컴퓨터 자원을 보호합니다.

 

디바이스 드라이버

  • 커널과 하드웨어의 인터페이스 입니다.
  • 하드웨어의 특징이 반영된 프로그램으로 커널이 실행될 때 같이 실행됩니다.
  • 이를 통해 커널이 하드웨어를 제어할 수 있습니다.

 

 

출처