OS - 운영체제 개요

sunkeydokey·2022년 12월 9일
0

운영체제

목록 보기
1/9

HPC Lab. KOREATECH 채널 OS 강의를 듣고 정리

배우게 된 것

  • 운영체제의 개념과 역할
  • 운영체제의 구분
  • 운영체제의 구조
  • 운영체제의 기능

운영체제의 개념과 역할

운영체제란?

하드웨어를 효율적으로 관리하고 사용자 또는 응용 프로그램에 서비스를 제공하는 소프트웨어

운영체제의 역할

운영체제 구조

  • User Interface (편리성)
    - 과거에는 문자 기반의 CUI 형태
    - 현대에는 그림처럼 볼 수 있는 GUI 형태
    - 특정 목적만을 위한 기기에는 End-User가 편하게 사용할 수 있도록 EUCI의 형태
  • Resource management (효율성)
    - 하드웨어 리소스 (프로세서, 메모리, I/O 디바이스 등)
    - 소프트웨어 리소스 (파일, 응용 프로그램, 메시지, 신호 등)
  • Process & Thread management
  • System management (시스템 보호)

운영체제의 구분

운영체제는 동시 사용자의 수, 동시 실행 프로세스의 수, 작업 수행 방식 등에 따라 구분할 수 있다.

동시 사용자의 수

단일 사용자 (Single-User System)

  • 한 명의 사용자만 시스템을 사용
    - 사용자가 모든 시스템 자원을 독점
    - 자원관리와 시스템 보호가 간단
  • PC, Mobile Phone 등 개인용 장비에 사용

다중 사용자 (Multi-User System)

  • 동시에 여러 사용자들이 시스템을 사용
    - 각종 시스템 자원들에 대한 소유 권한의 관리 필요
    - 멀티 태스킹 기능이 필요
    - 운영체제의 기능과 구조가 복잡함
  • 서버, 클러스터 장비 등에 사용

동시 실행 프로세스의 수

단일 작업 (Single-Tasking System)

  • 시스템 내에 하나의 프로세스만 존재
    - 하나의 프로그램 실행을 마친 뒤에 다른 프로그램을 실행
  • 운영체제의 구조가 간단
  • ex) MS-DOS

다중 작업 (Multi-Tasking System)

  • 동시에 여러 프로세스를 수행할 수 있음
    - 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
  • 운영체제의 기능과 구조가 복잡함
  • ex) Unix/Linux, Windows 등

작업 수행 방식에 따른 구분 (운영체제의 발전)

순차 처리 (NO OS, ~ 1940s)

  • 운영체제라는 개념이 존재하지 않음
    - 사용자가 직접 기계어로 프로그램을 작성
  • 실행하는 작업 별로 순차적 처리
    - 각 작업에 대한 준비시간이 소요

Batch System (1950s ~ 1960s)
Batch System

  • 모든 시스템을 중항에서 관리, 운영
  • 사용자의 요청 작업을 일정 시간 혹은 일정 작업량만큼 모아두고 한번에 처리
  • 시스템 지향적
  • 장점
    - 많은 사용자가 시스템 자원을 공유
    - 효율성
  • 단점
    - 같은 유형의 작업들이 모이기를 기다려야 함 (생산성 문제)
    - 긴 응답시간

Time Sharing Systems (시분할 방식, 1960s ~ 1970s)
Time Sharing Systems

  • 여러 사용자가 자원을 동시에 사용
    - 운영체제가 파일 시스템과 가상 메모리를 관리
  • 사용자 지향적
    - 응답이 있는 대화형 시스템
    - 단말기 사용
  • 장점
    - 응답시간의 단축
    - 프로세서 유휴시간 감소 (생산성 향상)
  • 단점
    - 통신선, 보안 등으로 인한 통신 비용의 증가
    - 개인 사용자 체감속도 저하 (사용자 수 증가가 시스템 부하로 이어져 개인 사용자는 느려진다는 체감)

Personal Computing

  • 개인이 시스템 전체를 독점
  • CPU 활용률을 크게 고려하지 않음
  • 상대적으로 운영체제가 단순하지만 다양한 사용자 지원 기능을 가지고 있음
  • 장점
    - 빠른 응답시간
  • 단점
    - 낮은 성능

Parallel Processing System (병렬 처리 시스템)
Parallel Processing System

  • 단일 시스템 내에서 둘 이상의 프로세서 사용
    - 동시에 둘 이상의 프로세스 지원
  • 다수의 CPU가 메모리 등의 자원을 공유 (Tightly-coupled system)
  • 성능과 신뢰성의 향상 (CPU 하나가 고장나도 정상 동작이 가능)
  • 프로세서 간의 관계 및 역할의 관리가 필요

Distributed Processing System (분산 처리 시스템)
Distributed Processing Systems

  • 네트워크를 기반으로 구축된 병렬 처리 시스템(Loosely-coupled system)
    - 물리적으로 분산되어 통신망을 이용해 상호 연결
    - 각각 운영체제를 탑재한 다수의 범용 시스템으로 구성됨
    - 사용자는 분산 운영체제를 통해 하나의 프로그램, 자원처럼 사용할 수 있음 (은폐성)
    - 각 구성 요소들 간의 독립성을 유지, 공동작업 가능
  • 장점
    - 자원 공유를 통한 높은 성능
    - 높은 신뢰성과 확정성
  • 단점
    - 구축과 유지보수 등의 관리가 어려움

Real-Time System (실시간 시스템)

  • 작업 처리에 제한 시간을 갖는 시스템
    - 자원 활용의 효율보다 제한 시간 내에 서비스를 제공하는 것이 중요한 경우
  • 작업의 종류
    - Hard real-time task (발전소 제어, 무기 제어 등)
    - Soft real-time task (동영상 재생 등)
    • Non real-time task

운영체제의 구조

운영체제의 구조

구성

커널 (Kernel)

  • 운영체제의 핵심 부분 (메모리에 상주)
    - 하드웨어와 소프트웨어의 자원을 관리

유틸리티 (Utility)

  • 비상주 프로그램
  • UI 등 서비스 프로그램들

운영체제 구조의 구분

단일 구조

한 커널 내에 모든 모듈
단일 구조

  • 장점
    - 커널 내 모듈들이 직접 통신하여 자원의 관리와 사용이 효율적
  • 단점
    - 커널이 비대해져 디버그, 기능 추가 등의 유지보수가 어려움
    - 동일 메모리에 모든 기능이 있어 한 모듈의 문제가 전체 시스템에 영향을 끼침

계층 구조

모듈들을 계층별로 분리
계층 구조

  • 장점
    - 계층 간 검증 및 수정이 용이
    - 설계 및 구현이 단순해짐
  • 단점
    - 원하는 기능 수행을 위해 여러 계층을 거쳐야해 단일구조보다 성능이 저하됨

마이크로 커널 구조

커널의 크기를 최소화하여 필수 기능을 제외한 기능들을 사용자 영역에서 수행
마이크로 커널 구조

운영체제의 기능

  • 프로세스 관리
  • 프로세서 관리
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 디스크, 네트워크, 보안 등의 관리
profile
내일은 더 잘하기

0개의 댓글