Chapter2. 운영체제 개요

Date:     Updated:

카테고리:

태그:

유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.


🔧 운영체제의 역할

2-0

  • User Interface (편리성)
    • CUI (Character User Interface)
    • GUI (Graphical User Interface)
    • EUCI (End-User Comfortable Interface)
      • ex) MP3를 위한 UI
  • Resource Management (효율성)
    • CPU 놀리지 말자
    • HW resource (processor, memory, I/O devices …)
    • SW resource (application, file, signal …)
  • Process and Thread Management
  • System Management (시스템 보호)


🔧 운영체제의 구분

  • 동시 사용자 수
  • 동시 실행 프로세스 수
  • 작업 수행 방식


동시 사용자 수에 따른 구분

단일 사용자 (Single-User System)

  • 한 명의 사용자가 모든 시스템 자원 독점
  • 자원관리 및 시스템 보호 방식이 간단
  • 개인용 장비(PC, Mobile) 등에 사용
  • ex) Windows, android, macOS, …


다중 사용자 (Multi-User System)

  • 동시에 여러 사용자들이 시스템 사용
  • 각종 시스템 자원들에 대한 소유 권한 관리 필요
  • OS의 기능 및 구조가 복잡
  • 서버, 클러스터 장비 등에 사용
  • ex) Linux, Unix, Windows server, …


동시 실행 프로세스 수에 따른 구분

단일 작업 (Single-Tasking System)

  • 시스템 내에 하나의 작업(프로세스)만 수행
  • 하나의 프로그램 끝나면 다음 프로그램 실행
  • 완전 초창기 OS 구조


다중 작업 (Multi-Tasking System)

  • 동시에 여러 작업(프로세스) 수행 가능
  • 작업들 사이의 동시 수행, 동기화 등을 관리해야 함
  • ex) Unix/Linux, Windows, …


작업 수행 방식에 따른 구분

Time-Sharing Systems (시분할 시스템)


전체 시스템 구조 CPU 구조
2-4 2-2
  • 1960s ~ 1970s 방식
  • 여러 사용자가 자원을 동시에 사용
  • 각 사용자는 단말기(CRT terminal)를 통해 대화형 작업 처리 가능 (당시에는 획기적인 아이디어)
  • 장점 : 응답시간 단축 & 생산성 향상(프로세서 노는 시간 감소)
  • 단점 : 비용 증가 & 개인 사용자 체감 속도 저하


Personal Computing 등장

  • 개인이 시스템 전체 독점
  • CPU 활용률(utilization)은 더 이상 고려의 대상이 아님
  • OS가 상대적으로 단순함 (그래도 다양한 지원 기능 있음)


Parallel Processing Systems

2-5

  • 동시에 둘 이상의 프로세서 사용
  • 메모리 등의 자원 공유 (Tightly-coupled system)
  • 성능 향상 & 신뢰성 향상 (하나가 고장나도 정상 동작 가능)
  • 프로세서간 관계 및 역할 관리 필요


Distributed Processing Systems

전체 시스템 구조 서버 관리
2-8 2-7
  • 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)
    • 물리적인 분산, 통신망 이용한 상호 연결
    • 각 구성 요소들 사이의 독립성 유지, 공동작업 가능
    • ex) Cluster system, client-server system, P2P, …
  • 장점 : 자원 공유를 통한 높은 성능, 높은 신뢰성 & 확장성
  • 단점 : 구축 및 관리 어려움


Real-Time Systems

  • 작업 처리에 제한시간(deadline)을 갖는 시스템
  • 자원 관리의 효율성보다 시간 관리가 더 중요한 경우
    • 발전소 제어 & 무기 제어 …
    • 동영상 스트림 등


🔧 운영체제의 구조

  • 커널 (Kernel)
    • OS의 핵심 부분
    • 메모리 상주 (항상 켜져있는 프로그램)
    • 프로세서, 메모리 관리 등 가장 빈번하게 사옹되는 기능들 담당
  • 유틸리티 (Utility)
    • kernel 제외한 나머지 부분
    • 비상주 프로그램
    • UI등 서비스 프로그램


단일 구조

2-3

  • 장점
    • 커널 내 모듈간 직접 통신
    • 효율적 자원 관리 및 사용
  • 단점
    • 커널의 거대화
    • 오류 및 버그 수정, 추가 기능 구현 등 유지보수 어려움
    • 한 모듈에 문제가 생기면 전체 시스템에 영향


계층 구조

2-9

  • 장점
    • 모듈화
    • 설계 및 구현 단순화
    • 계층간 검증 및 수정 (유지보수) 용이
  • 단점
    • 단일구조 대비 성능 저하
    • 불필요한 계층을 거쳐야 할 수 있음


마이크로 커널 구조

2-10

  • 커널의 크기 최소화
  • 필수 기능만 포함
  • 사용자가 직접 관리하세요


🔧 운영체제의 기능

  • 프로세스 관리
  • 프로세서 관리
  • 메모리 관리
  • 파일 관리
  • 입출력 관리
  • 보조기억장치 및 기타 주변장치 관리


중요한 기능

  • 프로세스 관리
    • Process : 커널에 등록된 실행 돤위 (실행 중인 프로그램)
    • 프로세스간 통신 및 동기화(synchronization)
    • 교착상태(deadlock) 해결
    • 프로세스 정보 관리 - PCB (process control bloc)
  • 프로세서 관리
    • 프로세스 스케줄링(scheduling) : 프로세스 처리 순서 결정
    • 프로세스들에 프로세서 할당 (여러개의 프로세서 존재)
  • 메모리 관리
    • 프로세스에 대한 메모리 할당 및 회수
    • 각 프로세스에 할당된 메모리 접근 보호
    • 메모리 할당 방법(scheme) 관리


기타 기능

  • Networking
  • Security and Procection system
  • Command interpreter system
  • System call interface
    • 응용프로그램과 OS 사이의 인터페이스


맨 위로 이동하기

OS 카테고리 내 다른 글 보러가기

댓글 남기기