Computer Science/운영체제

[운영체제] 01. Introduction to Operating System

lumana 2024. 6. 18. 16:03

운영체제 정의

  • 컴퓨터 시스템의 네 가지 구성 요소
    • 사용자 (Users)
    • 애플리케이션 (Applications) (워드 프로세서, 웹 브라우저, 게임, …)
    • 운영체제 (Operating System)
    • 하드웨어 (Hardware) (CPU, 메모리, I/O 장치)

운영체제 정의

  • 운영체제 (Operating System)
    • 애플리케이션과 컴퓨터 하드웨어 사이의 중개자(intermediary) 역할을 함.
    • 컴퓨터 하드웨어 자원을 관리.
    • 애플리케이션을 위한 일부 서비스를 제공.
  • 사용자 관점 (User View)
    • 운영체제가 애플리케이션을 실행.
    • 운영체제가 컴퓨터 시스템을 사용하기 편리하게 만듦.
  • 시스템 관점 (System View)
    • 운영체제는 자원 할당자 (Resource Allocator).
      • 하드웨어 자원: CPU, 메모리, I/O 장치.
      • 소프트웨어 자원: 파일, 소켓, 세마포어 등.
    • 운영체제는 제어 프로그램 (Control Program).
      • 애플리케이션 실행과 I/O 장치의 동작을 제어.
  • 운영체제의 정의
    • 모호함!
    • "운영체제를 주문할 때 벤더가 제공하는 모든 것"
      • 예: Microsoft Windows, Unix, Linux, Android, iOS 등.
    • 이 강의에서 사용하는 운영체제의 정의: "컴퓨터에서 항상 실행 중인 프로그램"
      • 커널 (Kernel)
      • 나머지는 시스템 프로그램 또는 애플리케이션 프로그램.

컴퓨터 시스템 동작

  • 컴퓨터 시스템 구성
    • 각 I/O 디바이스 컨트롤러(device controller)는 특정 device 유형을 담당.
    • 각 I/O 디바이스 컨트롤러는 로컬 버퍼 (Local Buffer)를 가짐.

  • 디스크 I/O 동작
    • 디스크 컨트롤러디바이스디바이스 컨트롤러의 로컬 버퍼 사이에서 데이터를 이동.
    • CPU메인 메모리디바이스 컨트롤러의 로컬 버퍼 사이에서 데이터를 이동.
    • CPU와 I/O 장치는 독립적으로 작업을 수행 가능.
    • 디바이스 컨트롤러는 작업이 완료되면 인터럽트(interrupt)를 통해 CPU에 알림.
  • 인터럽트 처리(interrupt handling)
    • 인터럽트 발생 시,
      • CPU는 현재 작업을 중단하고 인터럽트 서비스 루틴(interrupt service rountine, ISR)을 호출.

 

컴퓨터 시스템 동작

 

Storage Structure

  • 주 메모리 (Main Memory)
    • CPU가 직접 접근할 수 있는 저장 매체.
    • DRAM (Dynamic Random Access Memory)
      • 휘발성(volatile)
  • 보조 메모리 (Secondary Memory)
    • 대용량 비휘발성(nonvolatile) 저장 용량을 제공하는 저장 매체.
    • HDD (Hard Disk Drives)
    • NAND 플래시 메모리
    • SSD (Solid State Drives)

 

  • 저장 계층 구조

 

  • 다양한 저장 매체의 특성

캐싱 (Caching)

  • 프로그램 실행을 위해,
    • 명령어 또는 데이터는 HDD에서 CPU 레지스터로 로드되어야 함.
    • 캐싱 (Caching)
      • 데이터를 더 빠른 저장 매체에 저장하여, 동일한 데이터의 향후 요청에 대한 접근 속도를 향상시킴.
  • More about Caching
    • 시스템의 여러 레벨 또는 다양한 환경에서 캐싱이 수행됨.
      • CPU 캐시, 운영체제의 버퍼 캐시, 디스크 캐시 등.
      • 웹 캐시, 스트리밍 캐시 등.
    • 캐시를 먼저 확인하여 요청된 데이터가 있는지 확인.
      • 데이터가 있으면, 캐시에서 직접 사용.
      • 없으면, 데이터를 캐시에 복사하여 사용.
    • 일반적으로 캐시 크기는 제한적.
      • 교체 정책(replacement policy)이 필요.
      • 예: LRU, LFU, Clock 등.
  • 캐싱된 데이터는 신중하게 처리해야 함.
    • 하나의 데이터에 대해 여러 복사본이 존재할 수 있음. --> 데이터 불일치 발생 가능성.
  • 다중 프로세서(multiprocessor) 환경에서
    • 캐시 일관성 (Cache Coherency)
      • 다중 프로세서 환경에서 모든 CPU가 가장 최근의 값을 캐시에 가지고 있어야 함.

  • 분산 환경에서는 상황이 더 복잡함.

운영체제 구조

  • 멀티프로그래밍 (Multiprogramming)
    • 동시에 여러 프로그램을 메모리에 유지하고, CPU가 프로그램들 사이에 다중화(multiplexed) 되어 CPU utilization을 높인다.
      • 여러 개의 프로그램이 동시에 처리되는 것처럼 처리하는 방식을 말함
    • 단일 프로그램이 CPU 및 I/O 장치를 항상 바쁜 상태로 유지할 수 없습니다.
      • 프로그램 1개만으로 CPU Utilization을 높이지 못해서, CPU가 놀고 있다는 의미
    • CPU가 항상 실행할 프로그램을 갖도록 프로그램을 구성합니다.
    • 하나의 프로그램을 선택하여 스케줄링을 통해 실행합니다.
    • 하나의 프로그램이 I/O를 기다리는 동안, 다른 프로그램이 CPU를 사용.

  • Timesharing
    • Timesharing은 multiprogramming의 논리적 확장임.
    • UNIX가 좋은 예.
    • 사용자는 키보드나 마우스를 사용하여 프로그램에 명령을 내리고, 즉시 결과를 기다림.
      • 응답 시간(response time)은 짧아야 함 (일반적으로 1초 미만).
    • CPU는 프로그램을 자주 전환하여 각 프로그램과 상호작용할 수 있게 함.
      • 응답 시간(response time)을 최소화.

운영체제 동작

  • 운영체제는 이벤트 구동형 (Event Driven).
    • 프로그램, I/O 요청, 사용자가 없을 때,
      • 운영체제는 어떤 이벤트가 발생할 때까지 조용히 대기함.
  • Events
    • 하드웨어 인터럽트
      • 디스크 인터럽트, 키보드 인터럽트, 마우스 인터럽트 등.
    • Software trap (exceptions)
      • 0으로 나누기, 잘못된 메모리 접근, 시스템 호출 등.
    • 기타 오류
      • 무한 루프
  • Dual Mode
    • 사용자 모드 (User Mode)커널 모드 (Kernel Mode)
    • 특권 명령(Privileged instructions)은 커널 모드에서 실행 가능.
    • 모드 비트 (Mode Bit)는 하드웨어에 의해 제공됨 (프로그램 상태 워드, PSW).
      • 사용자 모드(1) 또는 커널 모드(0).
    • 예: System call은 모드를 Kernel Mode로 변경하고 반환 시 User Mode로 재설정.

 

프로세스 관리

  • 프로세스(process)란 실행 중인 프로그램(program in execution).
    • 프로그램은 수동적인(passive) entity, 프로세스는 능동적인(active) entity.
    • 시스템 내의 작업 단위.
  • 프로세스는 작업을 수행하기 위해 resource가 필요.
    • CPU, 메모리, I/O 장치, 파일 등.
  • 프로세스 관리 활동
    • CPU에서 프로세스 스케줄링.
    • 프로세스 생성 및 삭제.
    • 프로세스 동기화 메커니즘.
    • 프로세스 간 통신 메커니즘.
    • Deadlock 처리.

메모리 관리

  • 메모리 관리 활동
    • 현재 어느 부분의 메모리가 누구에 의해 사용 중인지 추적.
    • 어느 프로세스와 데이터를 메모리로 이동할지 결정.
    • 필요한 경우 메모리 공간 할당 및 해제.
  • 가상 메모리 시스템(Virtual memory system)
    • 다양한 형태의 데이터 저장소(DRAM 및 디스크)를 가상화하여 하나의 메모리, "가상" 메모리처럼 설계할 수 있게 함.

저장소 관리

  • 운영체제는 information storage의 일관된 논리적 뷰를 제공.
    • 파일 (File)
      • 논리적 저장 단위.
      • 파일은 일반적으로 디렉토리로 구성됨.
    • 파일 시스템 (File System)
      • 데이터를 저장, 검색 및 업데이트하는 수단이자, 장치의 사용 가능한 공간을 관리.
  • 파일 시스템 활동
    • 파일 및 디렉토리 생성 및 삭제.
    • 파일 및 디렉토리 조작을 위한 원시 기능 지원.
    • 파일을 보조 저장소(secondary storage)에 매핑.

저장소 관리 (Storage Management)

  • 대용량 저장소 관리
    • 일반적으로 디스크 (Disks)가 데이터를 저장하는 데 사용됨.
    • 컴퓨터 동작 속도는 전체적으로 디스크 서브시스템 및 알고리즘에 의존.
  • 디스크 저장소 활동
    • 여유 공간 관리
    • 저장소 할당
    • 디스크 스케줄링

I/O 서브시스템 (I/O Subsystem)

  • 운영체제의 목적 중 하나는
    • 사용자로부터 하드웨어 장치의 특이성(peculiarities)을 숨기는 것.
  • I/O 서브시스템은 다음으로 구성됨
    • 일반 장치 드라이버 인터페이스
    • 특정 하드웨어 장치를 위한 드라이버 (Drivers)
    • I/O의 메모리 관리 포함:
      • 버퍼링 (Buffering)
      • 캐싱 (Caching)
      • 스풀링 (Spooling)

특수 목적 시스템 (Special Purpose System)

  • 실시간 시스템 (Real Time System)
    • 예: 미사일 제어 시스템, 의료 장비 시스템.
    • 엄격한 응답 시간 요구 사항
      • "데드라인 (Deadline)"
    • 실시간 시스템은 하드 또는 소프트일 수 있음.
      • 미사일 제어 vs. MP3 플레이어.
  • 멀티미디어 시스템 (Multimedia Systems)
    • 예: MP3 플레이어, DVD 플레이어, 화상 회의
    • 소프트 실시간 요구 사항.
  • 모바일 시스템 (Mobile Systems)
    • 예: 휴대폰
    • 낮은 하드웨어 성능
      • 느린 프로세서, 제한된 메모리, 작은 디스플레이 화면, 제한된 전력.

가상 머신 (Virtual Machines)

  • 가상 머신 (Virtual Machines)
    • 하나의 컴퓨터가 여러 개의 다른 수행환경(OS)를 가지는 것
    • 하나의 컴퓨터를 여러 다른 실행 환경으로 추상화.
    • 각각의 별도 실행 환경이 자신의 컴퓨터를 사용하는 것처럼 환상(illusion)을 만듦.
    • 하드웨어와 커널을 모두 하드웨어로 취급.

  • 가상 머신의 특징
    • 시스템 resource의 완전한 보호를 제공.
    • resource의 직접적인 공유가 없음.
    • 운영체제 개발이 편리함.
    • 다른 운영체제에서 애플리케이션 테스트가 편리함.
      • 예: Linux, FreeBSD, Windows 10에서 테스트해야 하는 애플리케이션인 경우?

 

  • Vmware 아키텍처 (Vmware Architecture) 
    • 호스트 운영체제: Linux
    • 게스트 운영체제: FreeBSD, Windows NT, Windows 10
    • 각 애플리케이션은 가상 CPU, 가상 메모리, 가상 장치를 가짐.
    • 가상화 계층이 이들을 관리.

오픈 소스 운영체제 (Open-Source Operating Systems)

  • 운영체제는 소스 코드 형식으로 제공되며, binary closed-source가 아님.
  • copy protection 및 Digital Rights Management (DRM) 운동에 대한 반작용.
  • Free Software Foundation (FSF)에서 시작됨. FSF는 "카피레프트 (Copyleft)" GNU Public License (GPL)를 가짐.
  • GNU/Linux와 BSD UNIX (Mac OS X의 코어 포함) 등 다양한 운영체제가 있음.