출처 : https://www.youtube.com/watch?v=hzXVQIlSSos&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=3
맨 처음 컴퓨터가 등장했을 때에는 운영체제라는 개념 자체가 존재하지 않았다.
그로인해, 사용자가 기계어로 직접 프로그램을 작성하고, 하드웨어 관리를 직접 관리해야 했다. 또한, 실행하는 작업을 순차적으로 처리하여야 하기 때문에 각 작업에 대한 준비 시간(오버 헤드)가 컸다.
각각의 작업에 대한 준비 시간을 줄이기 위해 등장한 것이 Batch System(일괄처리 시스템)이다.
예를 들어 작업에 종류가 C언어 파일, JAVA파일, Python 파일들이 있다고 했을 때, C언어 파일이 100개가 모이면 한번에 작업하고 그 다음에 Java 파일이 100개가 모이면 Java 파일들을 처리하는 방식으로 진행해서 준비 시간을 줄이는 방식이다.
일괄처리 시스템(Batch System)
batch system은 시스템 지향적이다. 즉, 처리해야 하는 파일들을 모아놨다가 준비하는 시간을 한 번만 가지고 많은 양의 파일들을 처리할 수 있다.
- 장점
- 많은 사용자가 시스템 자원을 공유한다
- 처리 효율이 향상된다.
- 단점
- 생산성 저하
- 같은 유형의 작업들이 모이기를 기다려야 한다. 언제 모여서 결과를 받을 수 있을지 모름
- 긴 응답시간
- 작업 제출에서 결과 출력까지의 시간
- 생산성 저하
Batch system의 긴 응답시간을 해결하기 위해 등장한 것이 시분할 시스템(Time sharing system)이다.
Time sharing system은 특정 사용 시간동안 번갈아가며 처리하는 시스템이다. 여러 사용자가 자원을 동시에 사용하기 때문에 어떤 것이 내 파일인지를 알아야하고 가상 메모리라는 개념이 등장했다.
완벽한 결과는 나오지 않지만 일정 시간이 지나면 반응이 있다.
단말기를 사용해서 시스템에 접속을 하기 시작 (단말기는 계산은 하지 않고 화면을 띄어주고 입력을 전달해주는 역할)
- 장점
- 응답 시간(response time) 단축 (시간을 분할해서 처리하기 때문에 완벽한 결과는 아니지만 반응은 빠르게 얻을 수 있음)
- 생산성 향상
- 프로세서 유휴 시간 감소
- 단점
- 통신 비용 증가
- 통신선 비용, 보안 문제 등
- 개인 사용자 체감 속도 저하
- 동시 사용자 수 증가 -> 시스템 부하 증가 -> 느려짐 (개인의 관점)
- 통신 비용 증가
그래서 여러 명이 같이 쓰지 말고 나 혼자 썻으면 좋겠다라는 생각으로 인해 Personal Computing이 등장했다.
- 개인이 시스템 전체를 독점해서 사용하는 시스템
- CPU 활용률이 고려의 대상이 아님 (기존에는 컴퓨터가 매우 비싼 장비였기 때문에 여러 명이서 같이 썻다. 그래서 프로세서 활용률을 쉬지 않고 100% 다써야했는데, 개인용 컴퓨터가 등장하면서 CPU를 100% 활용하고 있지 않아도 내가 불편함을 느끼지 않으면 Good)
- OS가 상대적으로 단순함 (여러 명을 관리 안해도 되니까) -> 대신 사용자의 편리성을 높이기 위한 다양한 기능들을 지원
- 장점
- 빠른 응답시간
- 단점
- 성능이 낮음
낮은 성능을 보완하기 위해 하나의 시스템에 여러 개의 프로세서를 사용하자라는 생각으로 병렬 처리 시스템(Parallel Processing system)이 등장했다.
메모리 등의 자원 공유(Tightly-coupled system) : CPU는 여러개인데 기억 장치나 주변 장치는 공유해서 사용하는 시스템
많은 프로세서를 사용해서 성능을 높이고 신뢰성을 높일 수 있다.
프로세서의 개수가 여러 개이기 때문에 이 프로세서간의 관계 및 역할을 관리해줘야 한다.
하지만 tightly-coupled 시스템은 공간적, 시스템적 제약으로 인해 프로세서의 갯수를 늘리는 것이 한정적이라는 한계가 있다.
그래서 하나의 PC에 여러 개의 프로세서를 붙이지 말고, 여러 개의 컴퓨터들을 네트워크로 붙이자라는 개념이 등장했다. 이것이 분산 처리 시스템(Distributed Processing system)이다.
분산 처리 시스템
- 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)
- 물리적인 분산, 통신망을 이용한 상호 연결된 형태로 새로 붙이기가 쉽다는 장점이 있다.
- 각각의 운영체제를 가진 노드들을 묶어서 관리해주는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용이 가능하다.
- 각 구성 요소들간의 독립성 유지 및 공동 작업 가능
- Cluster system, client-server system, P2P 등이 있다.
- 장점
- 자원 공유를 통한 높은 성능
- 고신뢰성, 높은 확장성
- 단점
- 구축 및 관리가 어려움
실시간 시스템(Real-time system)
- 작업 처리에 제한 시간을 갖는 시스템
- 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요
real-time system은 2가지 종류가 있다.
- Hard real-time task
- 시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향을 미침
- ex) 발전소 제어, 무기 제어 등
- Soft real-time task
- 동영상 재생 등
'Study > 운영체제' 카테고리의 다른 글
3. 프로세스 관리 (2) (0) | 2023.11.03 |
---|---|
운영체제 3. 프로세스 관리 (1) (0) | 2023.11.02 |
2. 운영체제 개요 (3) (0) | 2023.11.02 |
2. 운영체제 개요 (1) (0) | 2023.10.31 |
1. 컴퓨터 시스템 개요 (0) | 2023.10.31 |