운영체제 정리

Yu-gyoung
5 min readJun 25, 2020

본 글은 Youtube ‘HPC Lab. KOREATECH’의 "[Course] Operating System (CPA310)-운영체제 강의" 의 ppt 내용을 요약한 정리본 입니다.

강의 Instructor: Duksu Kim

(1) 운영체제 구분 — 작업 수행 방식

  1. Personal Computing

개인이 시스템 전체 독점, CPU 활용률(utilization)이 고려의 대상이 아님, OS가 상대적으로 단순함. 하지만, 다양한 사용자 지원 기능 지원

장점: 빠른 응답시간

단점: 성능이 낮음

2. Parallel Processing System

  • 단일 시스템 내에서 둘 이상의 프로세서 사용
  • 메모리 등의 자원 공유(Tightly-coupled system)
  • 사용 목적: 성능 향상, 신뢰성 향상(하나가 고장나도 정상 동작 가능)

3. Distributed Processing Systems

  • 네트워크를 기반으로 구축된 병렬처리 시스템(Loosely-coupled system)
  • 물리적인 분산, 통신망 이용한 상호 연결
  • 각각 운영체제 탑재한 다수의 범용 시스템으로 구성
  • 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능(은폐성, transparency)
  • 각 구성 요소들간의 독립성유지, 공동작업 가능
  • Cluster system(ex. super computer), client-server system, P2P 등

장점: 자원 공유를 통한 높은 성능, 고 신뢰성, 높은 확정성

단점: 구축 및 관리가 어려움

4. Real-time Systems

  • 작업 처리에 제한 시간(deadline)을 갖는 시스템
  • 작업(task)의 종류:

Hard real-time task(ex. 발전소 제어, 무기 제어 등), Soft real-time task(ex. 동영상 재생), Non real-time task

(2) 운영체제의 구조

  1. Kernel
  • OS 의 핵심 부분(메모리 상주): 가장 빈번하게 사용되는 기능들 담당

2. Utility

  • 비상주 프로그램
  • UI등 서비스 프로그램

(( HW -Kernel-System calls-Utilities-applications ))

운영체제의 구조:

  1. 단일구조: 커널 내 모듈간 직접 통신, 커널의 거대화
  2. 계층 구조: 모듈화, 설계 및 구현의 단순화, 단일구조 대비 성능 저하

3. 마이크로 커널 구조: 커널의 크기 최소화(필수 기능만 포함), 기타 기능은 사용자 영역에서 수행

(3) 운영체제의 기능

  • Process 관리:

커널에 등록된 실행 단위(실행 중인 프로그램)

사용자 요청/프로그램의 수행 주체(entity)

  • Processor(CPU)관리
  • Memory 관리
  • File 관리
  • 입출력(I/O)관리
  • 보조 기억 장치 및 기타 주변장치 관리 등

(4) Process Management

  1. Job VS Process

Job: 실행 할 프로그램 + 데이터, 컴퓨터 시스템에 실행 요청 전의 상태

Process: 실행을 위해 커널에 등록된 작업, 시스템 성능 향상을 위해 커널에 의해 관리 됨, 실행 중인 프로그램, 각종 자원들을 할당 받을 수 있음.

커널은 프로세스에게 Resource를 할당/반납.

2. Process Control Block(PCB)

OS가 프로세스 관리에 필요한 정보 저장, 각 프로세스들에 대한 상태정보 저장

프로세스 생성 시, 커널에 생성 됨

관리하는 정보: PID, 스케쥴링 정보, 프로세스 상태, 메모리 관리 정보(Page table, segment table), 입출력 상태 정보, 문맥저장 영역, 계정 정보

  • PCB는 OS별로 서로 다름. PCB 참조 및 갱신 속도는 OS의 성능을 결정 짓는 중요한 요소 중 하나.

3. Process States

  • Created State: Job을 커널에 등록, PCB 할당 및 프로세스 생성, 가용 메모리 공간 체크 및 프로세스 상태 전이
  • Ready State: 프로세서 외에 다른 모든 자원을 할당 받은 상태, 즉시 실행 가능 상태, Processor(CPU) 기다리다가 할당받으면 → running state
  • Running State: 프로세서와 필요한 자원을 모두 할당 받은 상태, Preemption( →ready state), Block/sleep( →asleep state, I/O 등 자원 할당 요청)
  • Blocked/Asleep State: 프로세서 외에 다른 자원을 기다리는 상태, 자원 할당은 system call에 의해 이루어 짐. ( → ready state)
  • Suspended State: 메모리를 할당 받지 못한(빼앗긴) 상태, 커널 또는 사용자에 의해 발생, swap-out, swap-in, memory image를 swap device에 보관.
  • Terminated/Zombie State: 프로세스 수행이 끝난 상태, 모든 자원 반납 후, 커널 내에 일부 PCB 정보만 남아 있는 상태

4. 프로세스 관리르 위한 자료구조

Ready Queue, I/O Queue, Device Queue

(5) Interrupt

예상치 못한, 외부에서 발생한 이벤트

프로세스 중단 (커널 개입) --> 인터럽트 처리 --> 1. Interrupt handling 2, Interrupt Service

인터럽트를 처리하는 프로세스를 커널에 넣어줘

6. Context Switching

커널의 개입으로 이루어져, PCB

Context: 프로세스와 관련된 정보들의 집합

불필요한 Context switching을 줄이는 것: thread 사용

(6) Thread Management

  1. Thread

프로세스는 자원을 할당받고 자원을 제어함.

Resource 제어 = Thread, 제어는 여러개 있을 수 있음.

같은 프로세스의 Thread들은 동일한 주소 공간 공유

Light Weight Process(LWP)

프로세서(CPU) 활용의 기본 단위

Thread가 여러개면 동시에 여러개의 CPU를 사용할 수 있음

제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유

전통적 프로세스 = 단일 스레드 프로세스

2. Thread의 장점

  • Responsiveness
  • Resource sharing
  • Economy
  • multi-processor 활용

--

--