[02] 운영체제( OS )의 역사
History of Operating System
- 단계 0 : 하드웨어는 매우 비용이 많이 드는 실험입니다. 운영 체제가 존재하지 않습니다
-- 대개 단일 시스템으로 사용되었으며, 사용자가 직접 명령을 입력하여 작동함
- 단계 1 : 하드웨는 비싸고 노동력은 저렴했습니다.
-- 배치 처리 시스템 : 여러 사용자 컴퓨터를 사용할 수 있고, 운영체제는 이러한 사용들의 작업을 조율하고 자원을 관리하기 위한 방법을 제공
-- 프로그램 로드, 실행, 결과 인쇄, 덤프, 반복
:덤프 : 컴퓨터 프로그램에서 시스템에서 발생한 예외 상황 또는 오류를 추적하기 위해 해당 상황에서의 데이터나 메모리 상태 등을 파일 형태로 기록하는 것을 말함
: 프로그램 로드 : 사용자가 작업을 예약하는 작업자에게 프로그램(카드 또는 테이프)을 제공합니다
: 상주 모니터가 자동으로 사용자 작업을 로드, 실행, 덤프합니다
: 메모리 관리(재배치) 및 보호 필요
: 하드웨어를 더 효율적으로 사용하지만 디버깅이 더 어렵습니다(덤프에서)
-- overlapped CPU & 느린 I/O 연산
: CPU 속도에 비해 매우 느린 고속 테이프 드라이브와 같은 I/O 장치를 말함
: 데이터 전송 과정에서 CPU 는 자주 대기 상태에 놓여 두 장치 간의 버퍼링을 도입
: spool : 컴퓨터에서 데이터를 임시 저장하고 나중에 처리하는 방식으로 비교적 느린 디스크와 빠른 CPU 간의 속도 차이를 극복하고 다른 작업을 방해하지 않고 여러 작업을 동시에 처리할 수 있도록 함. 데이터를 잠시 디스크에 저장해 놓고 CPU는 일을 하고 디스크에서 데이터를 가져다 쓰는 것을 의미
-- 멀티프로그램 배치 시스템
: 여러 개의 작업을 한꺼번에 처리할 수 있는 운영 체제 시스템으로 하드웨의 자원을 효율적으로 사용 가능
: 작업이 일어나는 순서에 따라 실행되지 않고 작업들이 큐에 쌓여 CPU 할당을 기다리고 우선순위에 따라 작업이 실행됨
- 단계 2 : 하드웨어는 전보다 저렴해지고 노동력은 비싸졌습니다.
-- Interactive time sharing
: 멀티프로그래밍의 한 형태로 여러 사용자가 동시에 컴퓨터를 사용할 수 있는 시스템
: CPU 시간을 작은 단위로 쪼개어 사용자에게 할당하고 각 사용자는 프로그램 실행 중에 입출력을 요청하고 응답을 받아 사용자는 자신의 작업을 빠르게 수행하고 시스템 전체의 사용률도 향상 ( UNIX )
- 단계 3 : 하드웨어는 매우 저렴해지고 노동력은 비싸다
-- personal computing
: 개인용 컴퓨터의 대중화로 일반적인 가정에서도 컴퓨터를 사용해 대규모의 중앙 집중식 컴퓨팅과는 대조적으로 개인의 사용과 통제 하에 있음
: 기존의 복잡하고 다양한 기능을 가진 os는 개발 및 유지보수 비용이 매우 크고 환경에 맞지 않은 불필요한 기능들은 오히려 성능 저하와 보안 위협으로 이어져 운영체제 단순화의 중요성이 나타남. 가상화 운영체제는 하드웨어 리소스를 가상화하여 여러 개의 가상 머신을 동시에 실행할 수 있으므로, 하나의 물리적 서버를 최대한 활용할 수 있어 물리적 하드웨어의 사용률을 높일 수 있어서 비용을 절감할 수 있음
Modern Recent Developments
- 병렬 운영 체제
-- 다중 코어 프로세서 및 멀티 프로세스와 같은 다중 프로세싱 기술 향상으로 병렬 처리를 효과적으로 수행 가능
-- 스레드, 프로세스 및 태스크와 같은 다양한 동시성 추상화를 제공하고 개발자는 추상화를 통해 병렬 처리 애플리케이션을 쉽게 적성 & 디버그 가능
-- 클라우드 서버에서 가상화 및 컨테이너화와 같은 기술을 사용하여 서버 자원을 최적화
- 분산 운영 체제
-- 여러 대의 컴퓨터가 네트워크로 연결되어 하나의 시스템처럼 작동하도록 설계된 운영체제
-- 여러 대의 컴퓨터를 하나의 클러스터로 묶어서 사용자가 하나의 대형 컴퓨터를 사용하는 것처럼 보이며 주요 목표는 분산 시스템의 자원을 효율적으로 활용하고, 확장성과 가용성을 높이며 데이터 무결성과 보안을 보장하는 것
-- 분산 파일 시스템, 분산 데이터베이스, 분산 처리 등의 기술을 이요하여 자원 공유와 협력 작업 수행에 용이
-- 하나의 시스템에 장애가 발생해도 전체 시스템이 멈추지 않도록 고가용성 기술을 적용
- 실시간 운영 체제
-- 하드웨어 제어, 데이터 수집 밎 제어, 제어 시스템 및 실시간 응용 프로그램에서 사용
-- 정해진 시간 내에 명령을 수행하고 응답을 반환하는 것이 중요