※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.
하나의 기능을 만들기 위해 게이트들을 조작해서 기능을 만들었습니다.
이 당시 새로운 기능을 만든다는 것은, 기계를 새로 만드는 작업과 가까웠기 때문에, 너무나도 어려웠습니다.
그래서 이러한 단점을 보완하고자 나온 것이 일괄 작업 시스템 ( 내장 프로그래밍 방식 ) 이 등장하였습니다.
내장 프로그래밍 방식 ( Stored Program Computer )
→ 전문 연산장치 ( CPU ) 와 로직 저장 장치 ( 메모리 ) 가 분리된 상태로 실행되었습니다. ( 하드웨어와 소프트웨어의 분리 )
→ 운영체제의 역할을 해주는 무언가가 처음 등장한 시점이 바로 이때 입니다.
하지만, 한번에 하나씩의 작업밖에 처리하지 못하다보니, 중간 과정을 확인하기 어렵고 시간이 오래 걸린다는 단점이 존재했습니다.
모니터와 키보드가 등장하면서, 프로그램이 진행되는 도중에 사용자로부터 입력을 받을 수 있게 되었습니다.
즉, 입력값에 따라 작업의 흐름을 바꾸는 것이 가능해졌습니다. ( 중간 결과물을 보며 프로그래밍하는 것이 가능해짐 )
그러면.. 이제 하나의 장치에서 처리되어야 하는 작업이 여러개가 되어야하는데, 이를 보완하고자 다중 프로그래밍이 등장하였습니다.
다중 프로그래밍은, 하나의 CPU 로 여러 작업을 동시에 실행하는 기술입니다.
각 작업당 CPU 사용시간을 분할하여 여러 작업이 동시에 실행되는 것 처럼 보이게 합니다.
☝ CPU 대기시간 감소 → CPU 활용률 증가 → 처리율 증가이를 제어하기 위해 운영체제가 하는 일을 생각해보자면..
어떤 작업들을 언제 처리할지? → 프로세스 관리
한정된 메모리 공간에 어떤 작업들을 올릴지? → 메모리 관리
작업들은 어디에 보관할지? → 파일 시스템 관리
잘 실행되고 있는지? → 기타 관리
정도로 생각해볼 수 있습니다.
이후 네트워크가 등장함에 따라, 자원이 장치 내부에서 밖까지 연결되었습니다. ( 컴퓨터끼리 연결, 컴퓨터 그 자체를 자원으로 보는 관점 )
이런 부분들을 고려하여, 운영체제의 기능 확장이 필요하다고 볼 수 있습니다.
네트워크 지원을 위한 장치 및 프로토콜들의 지원, 리소스 제어
→ 네트워크 관리
사용자 이슈 → 보안 관리
누가 나의 시스템을 사용중인지 → 사용자 관리 등 기타
특정 서버에 집중되는 과부하를 막고자, 서버를 거치지 않고 사용자와 사용자를 직접 연결하는 시스템입니다.
사용자를 직접 연결하다보니, 동기화 문제와, 협의 문제점이 존재합니다. ( Synchronization, Consensus )
컴퓨터 자체를 추상화하여, 컴퓨터 위에서 컴퓨터를 소프트웨어로 돌리는 시스템 입니다.
휴대용 장치에서 실행되도록 만들어진 운영체제 입니다.
이동하며 장치를 쓰다 보니, 네트워크와 전성비가 운영체제의 주된 관심사라고 볼 수 있습니다.
특수한 목적을 가진 컴퓨터에서 장치들을 제어하고 작동시키는 것을 중요시하는 운영체제 입니다.
데드라인 시간 이내에 처리되도록 보장하는 것을 목표로 하는 운영체제 입니다.
사실 이러한 분류에 엄밀한 정의는 없지만..
결국 어떤 부분이 필요해! → 그 부분을 보완하기 위해 이런게 등장했다~ 라는 흐름을 살펴볼 수 있었습니다.