OS

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

noahkim_ 2023. 12. 26. 20:38

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

 

1. 소개

프로그래밍의 도입

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

 

자원관리 및 사용자 인터페이스 제공

  • 이때, 프로그램이 사용하는 자원을 관리하고 사용자 인터페이스를 제공합니다.

 

동시성 관리

  • 하드웨어의 발전으로 병렬 처리가 가능해지면서, 여러 작업을 동시에 실행할 수 있게 되었습니다.
  • 병렬 실행에 필요한 동시성 관리의 역할을 합니다.

 

2. 역사

ENIAC

  • 세계 최초의 전자 디지털 범용 컴퓨터

 

진공관 컴퓨터
  • 약 18,000개의 진공관을 사용하였습니다.
  • 30톤의 무게가 나가는 거대한 크기

 

하드와이어링 방식
  • 전선에 잭을 꼽아 회로를 구성하였습니다.
  • 프로그래밍을 위해 기계 자체를 물리적으로 재구성하여 수행했습니다.

 

주변장치 X
  • 전자식 누산기와 진공관으로 데이터 저장을 수행하였습니다.

 

일괄작업 시스템

사용자와의 상호작용 부재
  • 사용자의 개입 없이 작업을 스케줄링 할 수 있음을 의미합니다.
  • 작업에 필요한 프로그램과 데이터를 동시에 입력해야 실행됩니다.

 

대규모 데이터 처리
  • 회계, 급여 계산, 통계 분석 등의 작업에서 사용됩니다.

 

대화형 시스템

양방향 커뮤니케이션
  • 사용자와 컴퓨터 간의 양방향 커뮤니케이션을 기반으로 하는 컴퓨터 처리 방식입니다.
  • 입력값에 따라 작업의 흐름을 바꾸는 것도 가능해졌습니다.
  • 키보드와 모니터를 사용합니다.

 

실시간 처리
  • 사용자의 입력에 실시간으로 응답합니다.
  • 프로그램 실행 중간에 사용자 입력 및 중간 결과값을 보여줄 수 있게 되었습니다.

 

시분할 시스템

다중 프로그래밍
  • 하나의 CPU를 여러 작업이 공유하여 사용하도록 합니다.
  • 여러 프로그램을 동시에 실행할 수 있게 합니다.

 

CPU 시간 분할
  • CPU 시간을 짧은 단위로 나누어 여러 작업에 할당하는 방식으로 다중 프로그래밍을 수행합니다.
  • 여러 작업간에 컴퓨터 자원을 분할하여 사용합니다.

 

자원의 효율적 사용
  • CPU의 대기시간이 줄어드는 효과를 가져오므로 효율적인 자원 사용이 가능합니다.

 

다중 사용자 시스템(유닉스)

자원 공유
  • 여러 사용자에 의한 동시 접근을 허용하는 시스템입니다.

 

사용자 계정
  • 각 사용자는 고유한 계정을 가지며, 이를 통해 시스템에 로그인합니다.

 

분산 시스템

  • 여러 개의 개별 컴퓨팅 노드에서 컴퓨팅 리소스를 활용하는 컴퓨터 프로그램의 모음 입니다.
  • 네트워크상에 분산되어 있는 여러 컴퓨터로 작업을 처리합니다.

 

클라이언트-서버 시스템

  • 작업 요청자와 응답자 형태의 이중 구조로 나뉘어진 시스템입니다.

 

P2P 시스템

  • 서버를 거치지 않고 클라이언트끼리 직접 연결하는 시스템입니다.
  • 서버 과부하 문제 해결을 위해 생긴 시스템입니다.

 

클라우드 컴퓨팅

  • 인터넷을 통해 서버, 스토리지 등의 컴퓨팅 서비스를 제공하는 것입니다.

 

3. 역할

효율성 (자원 관리)

효율적인 자원 사용
  • 시스템의 모든 자원을 관리합니다.
  • 자원이 프로그램에 효율적으로 할당되도록 하는 것이 목적입니다.

 

스케줄링
  • 어떤 프로그램에 자원을 어떤 순서로 할당할 지 결정하는 프로세스 입니다.
  • 각 프로그램에 자원을 공평하게 분배하도록 스케줄링 합니다.

 

독점 방지
  • 특정 프로그램이 특정 자원을 독점하는 것을 방지합니다.
  • 이를 통해 시스템이 안정적으로 유지되고, 모든 프로그램이 공정하게 자원을 사용할 수 있도록 합니다.

 

안정성 (자원 보호)

자원 접근 제한
  • 사용자가 직접 자원에 접근하는 것을 막습니다.
  • 자원을 보호하고 관리하기 위함입니다.

 

결함 포용
  • 문제가 발생했을 때 이전으로 복구합니다.

 

확장성 (하드웨어 인터페이스)

Plug & Play
  • 하드웨어의 종류와 상관없이 꽂으면 바로 실행할 수 있습니다.
  • 다양한 하드웨어 자원을 추가하거나 제거하기 편리합니다.
  • 단, 드라이버가 설치되어 있어야 합니다.

 

편의성 (사용자 인터페이스)

 

4. 구조

커널

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

 

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

 

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

 

디바이스 드라이버

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

 

 

출처

'OS' 카테고리의 다른 글

[쉽게 배우는 운영체제] 2. 컴퓨터의 구조와 성능 향상  (0) 2024.01.11