본문 바로가기

운영체제 (Operating Systems)

[OS] 2주 1차 : Introduction

- Operating System

  • 공통적으로 합의된 Definition은 없음
  • 컴퓨터 상에서 항상 실행되는 software
  • Hardware와 유저 사이에서 실행되는 프로그램 (kernel)
  • 전원이 켜질 때부터 bootstrap program에 의해서 실행되는 프로그램
  • Kernel : 메모리에 상주하는 운영체제의 일부분
  • Bootstrap program
    • 전원을 공급했을 때 처음으로 실행되는 프로그램
    • OS를 메모리에 Loading 해주는 역할

 

- History of Operating System (types -> issues)

  • Single job at a time -> No kernel
  • Batch system -> Resource (CPU, IO devices) utilization (Spooling)
  • Multi-Programming system -> Resource (memory, CPU) utilization
  • Time sharing system -> accessibility
  • Network operating system -> communication and sharing
  • Distributed operating system -> communication and sharing
  • Cloud system -> platform, infrastructure
  • Real-time operating system -> automation
  • Spooling system
    • Single job at a time system은 IO devices와 CPU가 동시에 작동하지 못함 (Uni-programming)
    • Spooling system은 주변 장치들이 동시에 작동
    • Disk로부터 입력과 출력, 입출력과 CPU의 프로세스 수행이 독립되어 있으므로 동시에 여러 개의 작업이 가능
  • Multiprogramming system
  • Time sharing system
    • CPU time slot을 여러 개의 프로그램이 공유
    • 사용자와 Interaction
    • 다중 프로그래밍과 비슷하게 동시에 여러 프로그램을 실행하지만 Time sharing system은 여러 사용자가 동시에 컴퓨터를 공유한다는 점이 다름

 

- Hypervisor and Virtual Machine

  • Hypervisor : Supervisor의 변형된 모습, 소프트웨어로 프로그램 실행 환경 제공, Hypervisor 위에서 Virtual machine이 실행 (e.g. Java virtual machine)
  • Host machine : Hypervisor가 실행되는 Machine (Native (HW) 혹은 Hosted (HW + host)
  • Virtual machine
    • Guest machine 이라고도 부름
    • Process 분리 기능 제공
    • OS가 Host OS 와 달라도 됨

 

- Cloud Computing

  • Combination of software and hardware
  • 통신망을 통해서 Computing resource를 제공
  • Cloud services
      • SaaS : Software as a Service
      • PaaS : Platform as a Service
      • IaaS : Infrastructure as a Service
      • STaaS : Storage as a Service
  • Cloud platform
    • AWS (Amazon Web Service)
    • Azure (Microsoft)
    • Google Cloud Platform (Google)

 

- Organization of Computer

  • 명령어의 실행 : Fetch -> Decode -> Execute -> Fetch -> Decode …
  • Computer system architecture
    • Single-processor system
    • Multi-processor system
    • Clustered system
      • 여러 대의 컴퓨터가 하나의 Storage area network를 공동으로 사용
  • Symmetric vs Asymmetric Multiprocessing
    • Symmetric : 모든 프로세서가 모든 작업을 한 OS 안에서 처리
    • Asymmetric : CPU마다 기능과 Task가 다름
  • Storage
    • Main memory : CPU는 Main memory에서만 Instruction을 로드, 임시 저장 장치 (Volatile)
    • Secondary storage : 영구 저장 장치 (Nonvolatile, e.g. SSD)
    • Cache memory : 임시로 빠르게 접근할 수 있는 메모리
  • I/O device controller/driver
    • Device controller : HW (Board & card)
    • Device driver : SW (program)
    • I/O data transfer

 

- Input/Output Operation

  • Polling
    • I/O system이 끝났는지 CPU가 체크하는 것
  • Interrupt-driven
    • I/O 명령의 대기열이 끝나면 CPU에게 신호를 주는 것
    • 프로그램이 Polling보다 복잡하지만 CPU가 기다리지 않아도 되므로 CPU의 활용도가 증가
  • DMA (Direct Memory Access)
      • CPU의 사이클을 Steal해서 메모리와 직접 데이터를 주고받음
      • CPU가 I/O controller에 관여하지 않으므로 CPU의 활용도가 증가, 즉 I/O 속도 증가

 

'운영체제 (Operating Systems)' 카테고리의 다른 글

[OS] 2주 2차 : Introduction  (0) 2022.03.10