본문으로 바로가기

운영체제 작업수행방식 - 일괄처리/시분할/분산처리/병렬처리/실시간 시스템

 

0. 순차 처리 시스템 

~1940s

# 운영체제 개념 존재X ( ex. 천공카드 )

# 사용자가 기계어로 직접 프로그램 작성

# 컴퓨터에 필요한 모든 작업 프로그램에 포함됨

# 각각의 작업에 대한 준비 시간 소요

 

1. 일괄처리 시스템 (Batch processing system)

1950s~1960s

# 모든 시스템을 중앙에서 관리 및 운영 (전자계산소)

# 사용자의 요청작업을 일정 시간 모았다가 한번에 처리 -> 준비시간 감소

# 시스템 지향적 (System-oriented)

 

장점 단점
- 많은 사용자가 시스템 자원 공유
- 처리 효율 향상 (시스템 지향적)
- 생산성 저하 -> 같은 유형의 작업이 모일 때까지 대기 (개인적 관점에서는 비효율적)
- 긴 응답시간 (turnaround time) -> 제출에서 출력까지 약 6시간 소요

 

2.1 시분할 시스템 (Time-sharing system)

1960s~1970s

# 현대 대부분의 시스템이 해당

# 여러 사용자가 자원 동시사용 <- OS가 파일 시스템 및 가상 메모리 관리

  - 사용자는 각각 자신의 터미널을 통해 시스템에 접속 후 작업

# 사용자 지향적 (User-oriented) - 대화형 시스템, 단말기 사용

 

장점 단점
- 응답시간 단축 (약 5초) -> 사용자 지향적
- 생산성 향상 (프로세서 유휴시간 감소)
- 통신 비용 증가, 보안문제
- 개인 사용자 체감 속도 저하 (동시 사용자 폭증 시 시스템 부하 발생 가능성)

 

 

💡 혼자서 사용하면 어떨까?

2.2 Personal Computing

# 개인이 시스템 전체 독점

# CPU활용률 고려 X

(그냥 개인이 사용 안할땐 쉬게 놔둠, 사용성 우선)

# OS 단순 but 다양한 사용자 지원 기능 지원

 

장점 단점
- 빠른 응답시간 - 성능이 낮음

 

 

💡 성능을 향상시킬 수는 없을까? >> 시스템 하나에 CPU 여러개 붙이자

2.3 병렬 처리 시스템 (Parallel Processing System)

# 단일 시스템 내에서 동시에 둘 이상의 프로세서 사용

# 메모리 등 자원 공유 (Tightly-coupled system) >> 기능확장 제한 (공간과 시스템적으로..)

# 성능과 신뢰성 향상 (프로세서 하나가 고장나더라도 동작)

# 프로세서 간 관계 및 역할 관리 필요

 

 

 

💡 계속 기능을 확장시킬 수는 없을까? >> 컴퓨터를 여러대 붙이자

3.  분산처리 시스템 (Distributed processing system)

# 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system) >> 확장성↑

# 물리적으로는 분산, 통신망으로 연결

# 각각 운영체제 탑재

# 사용자는 분산 운영체제를 통해 하나의 프로그램, 자원처럼 사용 (은폐성 transparency)

# 각 구성요소 간 독립성을 유지하면서도 공동작업 가능

ex. Cluster system, client-server system, P2P 등

 

장점 단점
- 자원 공유를 통한 높은 성능
- 고신뢰성, 높은 확장성
- 구축 및 관리가 어려움

 

4.  실시간 시스템 (Real-time system)

# 작업 처리에 제한시간(deadline)을 갖는 시스템

# 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요

# Hard real-time task : 시간 제약을 지키지 못하는 경우 치명적,  ex. 발전소 제어, 무기 제어 등

# Soft real-time task : 사회적으로 치명적인 문제는 일으키지 않으나 사용에 불편 초리, ex. 동영상 재생 등

# Non real-time task


참고자료

HPC Lab. KOREATECH [OS} Lecture 2.

https://www.youtube.com/watch?v=hzXVQIlSSos 

 

반응형