본문 바로가기
면접,CS/운영체제

[운영체제] OS Overview

by Cafe Mocha 2023. 3. 17.

운영체제의 역할

  • User Interface (편리성)
    • CUI
    • GUI
    • EUCI(End-User Comfortable Interface)
  • Resource management (효율성)
    • HW resource
    • SW resource
  • Process and Thread management
  • System Management (시스템 보호)

운영체제의 구분

  • 동시 사용자 수
    • single-user system
      • Windows, android,MS-DOS 등
    • Multi-user system
      • Unix, Linux 등
  • 동시 실행 프로세스 수
    • single-tasking system
      • 시스템 내에 하나의 작업(프로세스)만 존재
    • Multi-tasking system
      • 동시에 여러 작업(프로세스)의 수행 가능
        • 작업들 간 사이의 동시 수행, 동기화 등을 관리해야 함

작업 수행 방식

Batch processing System (일괄처리 시스템) / 1950s~1960s

  • 모든 시스템을 중앙(전자 계산소 등)에서 관리 및 운영
  • 사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한번에 처리
  • 시스템 지향적 (System-oriented)
  • 장점
    • 많은 사용자가 시스템 자원 공유
    • 처리 효율 향상
  • 단점
    • 생산성 저하 : 같은 유형의 작업들이 모이기를 기다려야 함
    • 긴 응답시간 : 약 6시간

Time-sharing System (시분할 시스템) / 1960s ~ 1970s

  • 여러 사용자가 자원을 동시에 사용
    • os가 파일 시스템 및 가상 메모리 관리
  • 사용자 지향적 (User-orented)
    • 대화형 시스템
    • 단말기 사용
  • 장점
    • 응답시간 단축
    • 생산성 향상
      • 프로세서 유휴 시간 감소
  • 단점
    • 통신 비용 증가
      • 통신선 비용, 보안 문제 등
    • 개인 사용자 체감 속도 저하
      • 동시 사용자 수 증가 → 시스템 부하 → 느려짐

Personal Computing

  • 개인이 시스템 전체 독점
  • CPU 활용률 (utilization)이 고려의 대상이 아님
  • OS가 상대적으로 단순함
    • 하지만, 다양한 사용자 지원 기능을 지원
  • 장점
    • 빠른 응답시간
  • 단점
    • 성능이 낮음

Parallel Processing System

  • 단일 시스템 내에서 둘 이상의 프로세서 사용
  • 메모리 등의 자원 공유
  • 사용 목적
    • 성능 향상
    • 신뢰성 향상
  • 프로세서간 관계 및 역할 관리 필요

Distributed processing System (분산처리 시스템)

  • 네트워크를 기반으로 구축된 병렬처리 시스템
    • 물리적인 분산, 통신망을 이용한 상호 연결
    • 각각 운영체제 탑재한 다수의 범용 시스템으로 구성
    • 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능
    • 각 구성 요소들 간의 독립성 유지, 공동작업 가능
    • Cluster system,Client-server system 등

💡 Cluster system?

클러스터 시스템은 여러 개의 독립적인 컴퓨터, 즉 노드가 하나의 시스템으로 함께 작동하여 높은 수준의 컴퓨팅 성능, 저장 용량 및/또는 신뢰성을 제공하는 컴퓨터 아키텍처 유형입니다.

클러스터 시스템에서 각 노드는 일반적으로 자체 처리 능력, 메모리 및 저장 장치를 가지고 있으며 로컬 영역 네트워크 (LAN) 또는 파이버 채널과 같은 고속 인터커넥트를 통해 다른 노드에 연결됩니다. 클러스터 시스템의 노드는 일반적으로 공통의 운영 체제와 소프트웨어 스택을 실행하며 병렬 처리 또는 분산 컴퓨팅 작업을 수행하기 위해 함께 작동합니다

 

  • 장점
    • 자원 공유를 통한 높은 성능
    • 고신뢰성, 높은 확장성
  • 단점
    • 구축 및 관리가 어려움

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

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

운영체제의 구조

커널 (kernel)

  • os의 핵심 부분 (메모리 상주)
  • 가장 빈번하게 사용되는 기능들 담당
    • 시스템 관리(processor, memory) 등
  • 동의어 : 핵, 관리자, 상주 프로그램, 제어 프로그램 등

유틸리티 (Utility)

  • 비상주 프로그램
  • UI등 서비스 프로그램
  • 커널을 제외한 것들을 의미

단일 구조

장점

  • 커널 내 모듈간 직접 통신
  • 효율적 자원 관리 및 사용

단점

  • 커널의 거대화
    • 오류 및 버그, 추가 기능 구현 등 유지보수가 어려움
    • 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향

계층 구조

마이크로 커널 구조

  • 커널의 크기 최소화
    • 필수 기능만 포함
    • 기타 기능은 사용자 영역에서 수행

운영체제의 기능

프로세스 관리

  • 프로세스
    • 커널에 등록된 실행 단위 (실행 중인 프로그램)
    • 사용자 요청/프로그램의 수행 주체
  • os의 프로세스 관리 기능
    • 생성/삭제, 상태관리
    • 자원 할당
    • 프로세스 간 통신 및 동기화
    • 교착상태 해결
  • 프로세스 정보 관리
    • PCB(Process Control Block)

프로세서 관리

  • 중앙 처리 장치 (cpu)
  • 프로세스 스케줄링
  • 프로세서 할당 관리

메모리 관리

  • 주기억장치
    • 작업을 위한 프로그램 및 데이터를 올려놓는 공간
  • Multi-user, Multi-tasking 시스템
    • 프로세스에 대한 메모리 할당 및 회수
    • 메모리 여유 공간 관리
    • 각 프로세스의 할당 메모리 영역 접근 보호
  • 메모리 할당 방법(scheme)
    • 전체 적재
      • 장점 : 구현이 간단
      • 단점 : 제한적 공간
    • 일부 적재 (가상메모리)
      • 프로그램 및 데이터의 일부만 적재
      • 장점 : 메모리의 효율적 활용
      • 단점 : 보조기억 장치 접근 필요

파일 관리

  • 파일 : 논리적 데이터 저장 단위
  • 사용자 및 시스템의 파일 관리
  • 디렉토리 구조 지원
  • 파일 관리 기능
    • 파일 및 디렉토리 생성/삭제
    • 파일 접근 및 조작
    • 파일을 물리적 저장 공간으로 사상(mapping)
    • 백업 등

입출력 관리

보조 기억장치 및 기타 주변장치 관리

'면접,CS > 운영체제' 카테고리의 다른 글

[운영체제] Process Management  (0) 2023.03.28
[운영체제] Computer System Overview  (0) 2023.03.15