참고 : [Course] Operating System (CPA310) - 운영체제 강의


[ 운영체제 2강. 운영체제의 역할 ]

OS의 역할 (개략)

  • HW를 효율적으로 관리하여, 사용자&응용 프로그램에 서비스를 원활히 제공하는 역할


1. 운영 체제의 역할

  1. User Interface ( 편리성 )
    • CUI ( Character UI )
    • GUI ( Graphical UI )
    • EUCI ( End-User Comfortable UI)


  1. Resource Management ( 효율성 )
    • HW resource ( 프로세서, 메모리, 입출력 장치 등 )
    • SW resource ( 파일, 애플리케이션 등 )


  1. Process & Thread Management
    • 프로세스 : 실행 주체


  1. System Management ( 시스템 보호 )


2. 컴퓨터 시스템의 구성

figure2

OS는 2개의 층으로 구성

  • 1) Kernel ( 핵심 )
  • 2) System Call Interface
    • 사용자가 직접적으로 Kernel에 접근하면 문제 발생할 수도!
    • 이를 직접적으로 조작하지 않도록, 간접적으로 요청하는 통로라고 생각하면 됨!


3. 운영체제의 구분

세 가지로 구분 가능하다.

  1. 동시 사용자 수
    • Single vs Multi user system
      • Single :
        • 한 명의 사용자만 시스템 사용 가능
        • 개인용 장비 등에 사용 ( Windows 7/10, android, MS-DOS 등 )
      • Multi :
        • 동시에 여러 사용자가 시스템 사용 가능 ( 소유 권한 관리 필요 )
        • 서버, 클러스터(cluster) 장비 등에 사용 ( Unix, Linux, Windows server 등 )
  2. 동시 실행 프로세스 수
    • Single vs Multi tasking system
      • Single :
        • 시스템 내에 “하나의 프로세스(작업)”만 존재
        • 운영체제 구조 간단 ( ex. MS-DOS )
      • Multi
        • 동시에 “여러 프로세스(작업)” 수행 가능 ( 작업들 사이의 동시 수행/동기화 관리해야 )
        • 운영체제 구조 복잡 ( ex. Unix/Linux, Windows )
  3. 작업 수행 방식
    1. Batch Processing system ( 일괄 처리 시스템 )
    2. Time-sharing system ( 시분할 시스템 )
    3. Distributed Processing system ( 분산 처리 시스템 )
    4. Real-time system ( 실시간 시스템 )


작업 수행 방식

1) 순차 처리

  • 운영 체제 개념 자체 X

  • 사용자가 기계어로 직접 프로그램 작성

  • 실행하는 작업 별 순차 처리

    ( 각각의 작업에 대한 준비 시간이 소요 )


2) Batch Systems

  • 모든 시스템을 중앙에서 관리/운영
  • 요청이 들어오는 작업을 모았다가 한번에 처리!

figure2

  • 시스템 지향적
  • 장점 : 많은 사용자가 시스템 자원 공유 가능 & 처리 효율 향상
  • 단점 : 생산성 저하 ( 같은 유형 작업 모여야 ) & 긴 응답 시간


3) Time Sharing Systems

  • 여러 사용자가 자원을 “동시”에 사용

    • A가 끝날 때 까지, B가 기다릴 필요 없어!

    • 시간을 서로 나눠서 사용한다

  • OS가 파일 시스템 & 가상 메모리 관리

  • 사용자 지향적

    • 대화형 시스템
    • 단말기 사용하여 접속

figure2


figure2

  • 장점 : 응답 시간 단축 & 생산성 향상
  • 단점 : 통신 비용 증가, 보안 문제 발생, 개인 사용자 체감 속도 저하
    • 동사 사용자 UP -> 부하 UP -> 느려짐


4) Personal Computing

  • 개인이 시스템 전체 독점
  • CPU 활용률은 더 이상 고려 X ( 100%다 내가 쓸 수 있으니까 )
  • 상대적으로 단순한 OS ( 혼자 쓰니가, 상대적으로 관리할 것 X )
  • 장점 : 빠른 응답 시간
  • 단점 : 낮은 성능


5) Parallel Processing System

  • 단일 시스템 내에, 둘 이상의 프로세서 사용

  • 여러 개의 CPU들을 여러 자원들이 공유함

    ( = Tightly-coupled system )

  • 효과/목적

    • 성능 UP
    • 신뢰성 UP ( 일부 CPU가 고장나도 OK )
  • 프로세서 간 관계&역할 관리 필요함

figure2


6) Distributed Processing System

  • 네트워크를 기반으로, 여러 컴퓨터를 묶은 병렬 처리 시스템

    ( = Loosely-coupled system )

  • 물리적으로는 분산 ( 통신을 통해서 연결됨 )

  • 분산 운영체제

    ( 각 컴퓨터를 node라고 하고, 각 컴퓨터는 각각의 OS를 가짐. 이는 분산 운영체제를 통해 관리됨 )

  • 각 구성 요소들 간 독립성 보장

  • ex) Cluster System, Client-server System


figure2

  • 장점 : 자원 공유를 통한 성능 UP, 신뢰성 UP, 확장성 UP
  • 단점 : 구축/관리 hard


7) Real-time System

  • 작업 처리에 제한시간을 갖는 시스템
    • 적시성이 자원 효율성보다 중요!
  • 작업의 종류
    • hard real-time task : 안지키면 치명적 ( ex. 원자력 발전소 )
    • soft real-time task : 안지켜도 치명적이진 x ( ex. 동영상 스트리밍 )
    • Non real-time task