Ha0.log 🍒 라는 블로그에서 글검색을 처음 하였다. 어떻게 제목부터 똑같은가? 혹시 이분도 최종무 교수님의 제자인가? 블로그를 보니 그것은 아닌 것 같다. 운영체제 수업이라는 것의 교수들의 공통된 바이블이나 큰 흐름이 있는가 보다.

# 멀티 프로세싱, 멀티 프로그래밍, 멀티 태스킹

# 멀티 프로세싱 (멀티 코어 시스템)

하나 이상의 프로세서가 서로 협력하여 일을 처리

image

  • 하나의 JOB -> 멀티 프로세서, 협력하여 JOB 처리
  • why?? 멀티 프로세싱의 장점 - 여러개의 단일 프로세싱보다 비용 절약
    1. 장치 공유 : 주변장치, 대용량 저장장치, 전원공급장치
    2. 신뢰성 : 한 프로세서의 고장 -> 시스템 정지 X, 속도만 느려짐

# 멀티 프로그래밍

하나의 프로세서(CPU) 에서 여러 프로그램을 교대로 사용

  • 초기 컴퓨터, CPU - IO(입출력) 간 속도차이 -> CPU 리소스 낭비 (유휴시간)
  • 프로세서(CPU)가 IO 를 기다리는 동안 다른 프로그램(프로세스)를 수행시킬 수 있도록 함

# 멀티 태스킹

  • 태스크(TASK)
    • 정해진 일을 수행하기 위한 명령어의 집합
    • 운영체제에서 처리하는 작업의 단위
    • process 보다 확장된 개념
  • 멀티 태스킹
    • Task 가 한 CPU 상에서, OS 스케줄링 에 따라 조금씩 번갈아 가며 수행되는 것
    • 빠른 속도로 Task 를 번갈아 가면서 처리하다보면 유저가 느끼기에 마치 동시에 처리 되는 것 같아 보이기 때문에 붙인 이름

# 멀티 태스킹의 스케줄링 방식

# 멀티 프로그래밍

# 시분할 방식 (time sharing)

# 실시간 시스템 방식 (Real-time)

# 멀티 태스킹의 종류

# 비선점형 멀티 태스킹 (non preemptive - 중간에 빼앗을 수 없는)

자원을 차지하고 있는 일이 CPU 연산이 필요없음을 나타내었을 때만 운영체제가 자원을 회수 가능

# 선점형 멀티태스킹 (preemptive)

운영체제의 타이머나, 트리거를 개입하여 강제로 CPU 사용을 빼앗아 올 수 있는 경우

  • 운영체제가 응답없는 프로세스를 강제로 죽일 수 있는 경우

# Reference