운영체제 역사

라마·2023년 7월 2일

운영체제

목록 보기
1/32

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.

고정 프로그래밍 시대 ( Fixed Program Computer )

하나의 기능을 만들기 위해 게이트들을 조작해서 기능을 만들었습니다.

이 당시 새로운 기능을 만든다는 것은, 기계를 새로 만드는 작업과 가까웠기 때문에, 너무나도 어려웠습니다.

그래서 이러한 단점을 보완하고자 나온 것이 일괄 작업 시스템 ( 내장 프로그래밍 방식 ) 이 등장하였습니다.

일괄 작업 시스템 ( Batch - Processing System )

내장 프로그래밍 방식 ( Stored Program Computer )

→ 전문 연산장치 ( CPU ) 와 로직 저장 장치 ( 메모리 ) 가 분리된 상태로 실행되었습니다. ( 하드웨어와 소프트웨어의 분리 )

→ 운영체제의 역할을 해주는 무언가가 처음 등장한 시점이 바로 이때 입니다.

하지만, 한번에 하나씩의 작업밖에 처리하지 못하다보니, 중간 과정을 확인하기 어렵고 시간이 오래 걸린다는 단점이 존재했습니다.

대화형 시스템 ( Interactive System )

모니터와 키보드가 등장하면서, 프로그램이 진행되는 도중에 사용자로부터 입력을 받을 수 있게 되었습니다.

즉, 입력값에 따라 작업의 흐름을 바꾸는 것이 가능해졌습니다. ( 중간 결과물을 보며 프로그래밍하는 것이 가능해짐 )

그러면.. 이제 하나의 장치에서 처리되어야 하는 작업이 여러개가 되어야하는데, 이를 보완하고자 다중 프로그래밍이 등장하였습니다.

다중 프로그래밍

다중 프로그래밍은, 하나의 CPU 로 여러 작업을 동시에 실행하는 기술입니다.

각 작업당 CPU 사용시간을 분할하여 여러 작업이 동시에 실행되는 것 처럼 보이게 합니다.

☝ CPU 대기시간 감소 → CPU 활용률 증가 → 처리율 증가

이를 제어하기 위해 운영체제가 하는 일을 생각해보자면..

어떤 작업들을 언제 처리할지? → 프로세스 관리

한정된 메모리 공간에 어떤 작업들을 올릴지? → 메모리 관리

작업들은 어디에 보관할지? → 파일 시스템 관리

잘 실행되고 있는지? → 기타 관리

정도로 생각해볼 수 있습니다.

네트워크 기반 시스템

이후 네트워크가 등장함에 따라, 자원이 장치 내부에서 밖까지 연결되었습니다. ( 컴퓨터끼리 연결, 컴퓨터 그 자체를 자원으로 보는 관점 )

이런 부분들을 고려하여, 운영체제의 기능 확장이 필요하다고 볼 수 있습니다.

네트워크 지원을 위한 장치 및 프로토콜들의 지원, 리소스 제어

→ 네트워크 관리

사용자 이슈 → 보안 관리

누가 나의 시스템을 사용중인지 → 사용자 관리 등 기타

기타 시스템

P2P ( Peer - To - Perr ) 시스템

특정 서버에 집중되는 과부하를 막고자, 서버를 거치지 않고 사용자와 사용자를 직접 연결하는 시스템입니다.

사용자를 직접 연결하다보니, 동기화 문제와, 협의 문제점이 존재합니다. ( Synchronization, Consensus )

가상화 시스템 ( Virtualization )

컴퓨터 자체를 추상화하여, 컴퓨터 위에서 컴퓨터를 소프트웨어로 돌리는 시스템 입니다.

모바일 운영체제

휴대용 장치에서 실행되도록 만들어진 운영체제 입니다.

이동하며 장치를 쓰다 보니, 네트워크와 전성비가 운영체제의 주된 관심사라고 볼 수 있습니다.

임베디드 운영체제

특수한 목적을 가진 컴퓨터에서 장치들을 제어하고 작동시키는 것을 중요시하는 운영체제 입니다.

실시간 운영체제 ( RTOS )

데드라인 시간 이내에 처리되도록 보장하는 것을 목표로 하는 운영체제 입니다.

마지막으로..

사실 이러한 분류에 엄밀한 정의는 없지만..

결국 어떤 부분이 필요해! → 그 부분을 보완하기 위해 이런게 등장했다~ 라는 흐름을 살펴볼 수 있었습니다.

0개의 댓글