운영체제 작업수행방식 - 일괄처리/시분할/분산처리/병렬처리/실시간 시스템
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
'ComputerScience > OS' 카테고리의 다른 글
프로세스의 상태 - 프로세스 관리 (Process Management) (0) | 2021.07.08 |
---|---|
컴퓨터 시스템 - 운영체제와 하드웨어 (0) | 2021.07.07 |