0. 운영체제 Overview

김민우·2022년 5월 2일
1

운영체제

목록 보기
1/14
post-custom-banner

- 운영체제(OS)란?

시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어

- 운영체제의 역할

  1. User Interface (편리성)
    • CUI (Character user interface)
    • GUI (Graphical User interface)
    • EUCI (End-User Comfortalbe Interface)
  2. Resource management (효율성)
    • HW resource (processor, memory, I/O devices, Etc.)
    • SW resource (file, application, massage, signal, Etc.)
  3. Process and Thread management
  4. System management (시스템 보호)

- 컴퓨터 시스템의 구성


- 운영체제의 구분

  1. 동시 사용자 수에 따라,

    • Single-user system : 한 명의 사용자만 시스템 사용 가능
      - 한 명의 사용자가 모든 시스템 자원 독점
      • 개인용 장비(PC, mobile) 등에 사용
      • 자원관리 및 시스템 보호 방식이 간단

    • Multi-user system : 동시에 여러 사용자들이 시스템 사용
      - 각종 시스템 자원들에 대한 소유 권한 관리가 필요
      • 서버, 클러스터(cluster) 장비 등에 사용
      • 기본적으로 Multi-tasking 기능 필요
      • OS의 기능 및 구조가 복잡
  2. 동시 실행 프로세스 수에 따라,

    • Single-tasking system : 시스템 내에 하나의 작업(프로세스) 존재)
      - 운영체제의 구조가 간단
      • ex) MS-DOS

    • Multi-tasking system : 동시에 여러 작업(프로세스)의 수행 가능
      - 운영체제의 기능 및 구조가 복잡
      • ex) Unix/Linux, Windows 등
  3. 작업 수행 방식 (사용자가 느끼는 사용 환경)에 따라,

    • Batch processing system (일괄처리 시스템)
      - 모든 시스템을 중앙에서 관리 및 운영 (시스템 지향적)

      • 사용자의 요청 작업을 일정 시간 모아 두었다가 한 번에 처리
      • 많은 사용자가 시스템 자원을 공유하여 처리 효율을 향상시키지만,
      • 같은 유형의 작업들이 모이기를 기다려야 하므로 생산성이 저하되고,
      • 약 6시간이라는 긴 응답시간이 있다.

    • Time-sharing system (시분할 시스템)
      - 여러 사용자가 지원을 동시에 사용 (사용자 지향적)

      • OS가 파일 시스템 및 가상 메모리 관리
      • 대화형 시스템, 단말기 사용
      • 짧은 응답시간(약 5초)과 프로세서의 유휴 시간을 감소시켜 생산성을 향상시키지만,
      • 통신 비용이 증가하고, 개인 사용자 체감 속도가 저하
        - 동시 사용자 수 상승 > 시스템 부하 > 느려짐

    • Distributed processing system (분산처리 시스템)
      - 네트워크 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)

      • 물리적인 분산, 통신망을 이용한 상호 연결
      • 각각 운영체제를 탑재한 다수의 범용 시스템으로 구성
      • 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능 (은폐성, transparency)
      • 자원 공유를 통한 높은 성능과, 높은 신뢰성, 높은 확장성을 보장하지만, 구축 및 관리가 어렵다.
      • ex) 클러스터 시스템, 클라이언트 시스템, P2P 등

    • Real-time system (실시간 시스템)
      - 작업 처리에 제한 시간(deaeline)을 갖는 시스템
      - 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요
      - 작업의 종류

      • Hard real-time task
        • 시간 제약을 지키지 못하는 경우 시스템에 치명적 영향 (발전소 제어, 무기 제어 등)
      • Soft real-time task : 동영상 재생 등
      • Non real-time task
    • 그 외, Personal Computing(개인용 컴퓨터, 현재 방식), Parallel Processing System 등이 존재

- 프로그램 vs. 프로세스

1. 프로그램
- 코드와 데이터가 합쳐진 것으로, 디스크 상에 목적파일(*.o) 이나 주소공간에 세그먼트로 존재할 수 있음
- 항상 어떤 프로세스의 컨텍스트 내에서 돌아감

2. 프로세스
- 실행 중에 있는 프로그램
- 프로그램 카운터, 스택, 상태 등을 포함하는 PCB (프로세스 제어 블록) 를 통해 운영 체제 활동을 처리


- 운영체제의 구조

  • 커널(Kernel)
    - OS의 핵심 부분 (메모리 상주)

    • 가장 빈번하게 사용되는 기능들 담당
    • 시스템 관리(processor, memory...)
    • 동의어 : 핵(neuclues), 관리자 프로그램 (supervisor), 상주 프로그램 (resident program), 제어 프로그램 (control program) 등
  • 유틸리티
    - 비상주 프로그램
    - UI등 서비스 프로그램

- 운영체제의 또다른 구조

  1. 단일 구조

    • 장점:
      - 커널 내 모듈간 직접 통신 -> 효율적 자원 관리 및 사용
    • 단점:
      - 커널의 최대화
      • 오류 및 버그, 추가 기능 구현 등 유지보수가 어려움
      • 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향 (ex. 악성 코드 등)
  2. 계층 구조

    • 장점:
      - 모듈화 -> 계층간 검증 및 수정 용의
      - 설계 및 구현의 단순화
    • 단점:
      - 단일구조 대비 성능 저하
      - 원하는 기능 수행을 위해 여러 계층을 거쳐야 함
  3. 마이크로 커널 구조

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

- 운영체제의 기능

- 프로세스 관리

  • 프로세스 (Process)
    - 커널에 등록된 실행 단위 (실행 중인 프로그램)
    - 사용자 요청/프로그램의 수행 주체(entity)

  • OS의 프로세스 관리 기능
    - 생성/식제, 상태 관리
    - 자원 할당
    - 프로세스 간 통신 및 동기화(synchronization)
    - 교착상태(deadlock) 해결

  • 프로세스 정보 관리
    - PCB (Process Control Block)

- 프로세서 관리

  • 중앙 처리 장치 (CPU)
    - 프로그램을 실행하는 핵심 자원

  • 프로세스 스케줄링(Scheculing)
    - 시스템 내의 프로세스 처리 순서 결정

  • 프로세서 할당 관리
    - 프로세스들에 대한 프로세서 할당
    • 한 번에 하나의 프로세스만 사용 가능

- 메모리 관리

  • 주기억장치
    - 작업을 위한 프로그램 및 데이터를 올려 놓는 공간

  • Multi-user, Multi-tasking 시스템
    - 프로세스에 대한 메모리 할당 및 회수
    • 메모리 여유 공간 관리
    • 각 프로세스의 할당 메모리 영역 접근 보호

  • 메모리 할당 방법 (scheme)
    - 전체 적재
    -> 장점 : 구현이 간단 / 단점 : 제한적 공간
    - 일부 적재 (Virtual memory concept)
    -> 프로그램 및 데이터의 일부만 적재
    -> 장점 : 메모리의 효율적 활용 / 단점 : 보조기억 장치 접근 필요

- 파일 관리

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

- 입출력 관리

  • 입출력(I/O) 과정
    - OS를 반드시 거쳐야 함

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

  • Disk, Networking, Security and Protection system 등

- 컴퓨터 하드웨어

  • 프로세서 (Processor)
    - CPU
    - 그래픽카드 (GPU)
    - 응용 전용 처리장치 등

  • 메모리 (Memory)
    - 주 기억장치
    - 보조 기억장치 등

  • 주변장치
    - 키보드/마우스, 모니터, 프린터, 네트워크 모뎀 등

프로세서 : 컴퓨터의 두뇌(중앙처리장치)

  • 연산 수행
  • 컴퓨터 모든 장치의 동작 제어

레지스터 (Register)

- 프로세서 내부에 있는 메모리
- 프로세서가 사용할 데이터 저장
- 컴퓨터에서 가장 빠른 메모리

레지스터의 종류

  1. 용도에 따른 분류
    • 전용 레지스터, 범용 레지스터
  2. 사용자가 정보 변경 가능 여부에 따른 분류
    • 사용자가 정보 변경 가능 여부에 따른 분류
  3. 저장하는 정보의 종류에 따른 분류
    • 데이터 레지스터, 주소 레지스터, 상태 레지스터

* 사용자 가시 레지스터

* 사용자 불가시 레지스터


메모리 (Memory)

  • 데이터를 저장하는 장치 (기억장치)
    - 프로그램(OS, 사용자, SW 등), 사용자 데이터 등

메모리의 종류

  1. 주기억장치(Main memory)
    • 프로세서가 수행할 프로그램과 데이터 저장
    • DRAM을 주로 사용 -> 용량이 크고 가격이 저렴
    • 디스크 입출력 병목현상(I/O bottleneck) 1 해소
  1. 캐시 (Cache)
    • 프로세서 내부에 있는 메모리 (L1, L2 캐시 등)
      - 속도가 빠르고, 가격이 비쌈
    • 메인 메모리의 입출력 병목현상 해소

  2. 보조기억 장치 (Auxiliary / Secondary memory, storage)
    • 프로그램과 데이터를 저장
    • 프로세서가 직접 전근할 수 없음 (주변장치)
      - 주기억장치를 거쳐서 접근
      • (프로그램/데이터>주기억장치)인 경우 : 가상 메모리
    • 용량이 크고 가격이 저렴

캐시의 동작

  • 일반적으로 HW적으로 관리 됨
  1. 캐시 히트(Cache hit) : 필요한 데이터 블록이 캐시에 존재
  2. 캐시 미스(Cache miss) : 필요한 데이터 블록이 없는 경우

지역성 (Locality)

  1. 공간적 지역성 (Spatial locality)
    -> 참조한 주소와 인접한 주소를 참조하는 특성
  2. 시간적 지역성 (Temporal locality)
    -> 한 번 참조한 주소를 곧 다시 참조하는 특성
  • 지역성은 캐시 적중률(cache hit ratio)과 밀접
    - 알고리즘 성능 향상을 위한 중요한 요소 중 하나

- 시스템 버스

  • 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로
    - 데이터 버스의 종류
    1. 데이터 버스
      • 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송
        데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라고 함
    2. 주소 버스
      • 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송
        주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정
    3. 제어 버스
      • 프로세서가 시스템의 구성 요소를 제어하는 데 사용
        제어 신호로 연산장치의 연상 종류와 메인 메모리의 읽기나 쓰기 동작을 결정




1. 병목현상 : 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상

profile
Pay it forward.
post-custom-banner

0개의 댓글