본문 바로가기
대학공부/운영체제

Chapter 1. Introduction

by 진진리 2023. 10. 22.
728x90
  • 운영체제(Operating System): user와 computer hardware의 중재자.
    • 역할: Resource allocator, Controll program
    • 목적: user program 수행, user problem을 쉽게 해결, computer system을 사용하기 편리하게, computer hw를 효율적으로 사용
    • computer system = Hardware + OS + Application programs + users

 

  • kernel - 항상 실행 중인 프로그램으로 운영체제의 핵심이 됨
  • system programs - kernel이 아니면서 os와 관련된 프로그램
  • application programs - os와 관련이 없는 프로그램
  • Bootstrap program : 전원을 켤 때 혹은 리부트할 때 로드됨
    • 주로 ROM 또는 EEPROM(firmware)에 저장되어 있음
    • 시스템 초기화, os kernel을 로드하고 실행 시작.

 

  • Computer - System Operation (Interrupt)
    • I/O devices와 CPU는 동시에 실행할 수 있음(독립적)
    • 각 device는 local buffer를 가짐
    • CPU는 main memory와 local buffer 사이에서 data를 움직임
    • Device controller는 interrupt를 발생시킴으로서 CPU에서 자신의 operation이 끝났음을 알림
    • CPU가 interrepted -> 자신이 하던 것을 멈추고, execution을 fixed location으로 전송 후 해당 ISR(iterrupted service routine) 주소에서 시작함
    • Interrupt가 serviced -> CPU는 저장된 주소를 PC에 로드하고 중단된 계산을 재개
    • trap과 exception은 error 또는 user request에 의해 발생된 software-generated interrupt임

 

 

  • Storage Structure
    • Main memory: CPU가 바로 접근 가능한 큰 스토리지
    • Secondary storage: 휘발되지 않는 스토리지를 제공하는 메인 메모리의 확장
    • Hard disks: 자기 기록 재료로 덮인 단단한 금속 또는 유리 플래터 (sectors로 나뉘는 tracks로 이루어짐)
    • Solid-state disks(SSD): 하드 디스크보다는 빠르고 휘발되지 않음

위로 갈수록 capacity 감소, access time 빨라짐

 

  • I/O Structure
    • 컴퓨터는 CPUs와 multiple device controllers로 구성
    • device controller는 some local buffer storae와 특수 목적 레지스터의 set을 가짐
    • OS는 각 device controller에 대한 device driver를 가짐
    • I/O methods - Synchronous / Asynchronous
      1. Synchronous: I/O가 시작되면 오직 끝났을 때 control이 user program으로 리턴
      2. Asynchronous : I/O가 시작되면 끝나는 것을 기자리지 않고 control이 user program으로 리턴

 

  • Computer-System Architecture
    1. Single-Processor Systems: general-purpose instruction set을 실행할 수 있는 주 CPU가 있음
    2. Multiprocessor Systems
      • Parallel systems(=tightly coupled system): 단일 서버 내 여러 개의 코어
      • Distributed systems(=loosely couple system): 독립적 서버들이 네트워크로 연결
      • 장점: Increased Throughput, Economy of scale, Increased reliability (fault tolerance)
      • Asymmetric multiprocessing: master가 slave에 작업 부여
      • Symmetric multiprocessing (SMP): 모든 프로세서가 peers

 

  • A Dual-Core design
    • UMA(Uniform memory access): 메모리 엑세스 시간이 균일
    • NUMA: 메모리 엑세스 시간이 메모리 위치에 따라 달라짐
    • 각 코어마다 local memory(cache)를 가짐
    • 필요에 따라 remote memory 소자에 접근
  • Clustered Systems: 독립된 코어들이 네트워크를 통해 연결되는 시스템
    • SAN(storage-area network)를 통해 스토리지 공유
    • high-availbility를 제공
      1. Asymmetric clustering: hot-stanby mode의 하나의 머신을 가짐
      2. Symmetric clustering: 서로를 감시하면서 어플리케이션을 실행하는 여러 노드를 가짐
    • HPC(high-performance computing)을 위한 clusters: application이 parallelization을 사용도록 작성되어야함
    • 충돌을 피하기 위해 DLM(distributed lock manager)을 사용

 

  • Operating-System Structure
    • Multiprogramming: 메인 메모리 내 여러 개의 프로세스를 교대로 수행하여 자원 낭비 최소화
    • (vs multiprocessing: 여러 프로세서가 parallel processing 가능)
      • CPU는 항상 하나만 실행
      • Degree of multiprogramming: 메인 메모리에 상주하는 프로그램의 수
      • Job scheduling을 통해 실행될 프로그램이 선택됨
      • Time sharing(multitasking): 매우 빈번하게 CPU가 job을 switch
      • 메모리에서 실행 중인 프로그램을 process라고 함
      • 프로세스가 메모리에 맞지 않으면 프로그램을 swapping
      • Virtual memory가 메모리에 맞지 않는 프로그램의 실행을 허용하게 함

 

  • Operating-System Operations
    • software error 혹은 request로 인해 exception이나 trap이 발생
    • Dual-mode operation이 OS가 스스로와 다른 시스템 구성요소를 지키도록 도와줌
      • User modekernel mode
      • 하드웨어에 의해 제공되는 Mode bit으로 두 영역의 control을 변경
      • kernel mode에서만 수행될 수 있는 instructions (privileged)을 수행하기 위해 system call 발생시킴
      • Transition User -> Kernel Mode: 프로세스 자원 독점 혹은 무한루프를 방지하기 위한 타이머 등의 시스템 콜

 

  • 운영체제의 기능
    1. Process Management: 프로세스 생성/삭제/중지/재개/동기화/소통/교착상태 해결 등을 위한 매커니즘 제공
      • Single-threaded process는 다음 명령어 위치를 가리키는 PC 하나를 가짐
      • Multi-threaded process는 스레드 당 하나의 PC를 가짐
    2. Memory Management: 메모리 사용 현황 추적, 메모리에 옮길 프로세스와 데이터 결정, 메모리 영역 할당 및 할당 해제
      • CPU utilization과 사용자에 대한 컴퓨터 응답 속도에 영향
    3. Storage Management (= file-system management): 파일과 디렉토리 생성 및 삭제, 보조 저장소에 파일 매핑, 파일 백업
    4. Mass-Storage Management: 빈공간 관리, 스토리지 할당, Disk scheduling
    5. Caching: faster storage로 일시적 정보 복사를 통해 빠른 접근이 가능하게 함
      • 데이터의 이동: hard disk -> m/m -> cache -> hardware register
      • Multiprocessor 환경은 cache coherency를 제공해야 함
    6. Protection and Security
      • Protection: 프로세스나 사용자 자원에 대한 access control
      • Security: 내외부의 공격에 대한 시스템의 방어

 

  • Distributed Systems: 시스템이 유지하는 다양한 자원에 대한 접근을 제공하도록 network되어 있는 물리적으로 떨어져 있는 컴퓨터 시스템의 모음
    • LAN, WAN, MAN, PAN

 

  • Computing Environments - Virtualization

 

  • Computing Environments - Cloud Computing
    • Public cloud: 인터넷을 통해 모든 사람이 이용 가능
    • Private cloud: 회사 내에서 운영 및 사용
    • Hybrid cloud