[운영체제]시스템의 발전 & 다양한 시스템
운영체제 #1 시스템의 발전
운영체제의 가장 중요한 것은 자원의 효율적인 활용이 가장 중요합니다.
운영 체제(運營 體制, 문화어: 조작 체계) 또는 오퍼레이팅 시스템(Operating System, 약칭:OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
- 일괄처리 시스템(Batch System) : 초기 컴퓨터의 동작 방식으로, 물리적 콘솔에서 수행하던 방식입니다. 초기의 운영체제는 즉시적으로 데이터를 처리할 수 있는 여건이 되지 못했습니다. 그 대안으로 일괄처리 시스템이 운영체제에 도입이 됐고, 그 동작은 __비슷한 것은 주기적으로 한 번에 묶어서 처리__하는 방식으로 동작합니다.
처리 속도를 향상시키기 위해 유사한 요구를 가지는 작업을 하나의 그룹으로 묶어서 수행하는 방식이기에 단점이 존재합니다.
단점 : 기계적인 입,출력 장치의 속도가 CPU와 같은 전자적인 장치의 속도보다 느리기 때문에 CPU가 쉬는 상태(idle)인 경우가 많습니다.
효율적이라면 CPU가 항상 일을 해야하지만 CPU가 idle상태에 있는 경우 비효율적이라고 할 수 있습니다. 예를 들어 게임을 할 때, 키를 하나 누를 때마다 바로 작동해야 하는데 10번을 눌러야 작동을 하는 안 좋은 점이 있습니다.
- 다중 프로그래밍 시스템(Multi-Programming System) : CPU가 수행할 작업을 항상 가지도록 하는 방식입니다. 일반적인 순서는 다음과 같습니다.
- HDD나 SSD에서 여러 개의 프로그램을 선택해서 RAM에 올린다.
- 메모리 내에 있는 작업 중 하나를 선택하여 차례대로 실행한다.
- 수행 중인 작업이 wait상태에 도달하면 CPU는 다른 작업으로 넘어가서 수행한다.
- 작업이 끝나면 현재의 작업을 끝내고 다시 첫 번째 작업으로 간다.
- 시분할 시스템(Time-Sharing System) : 다중 프로그래밍 시스템의 장점을 채택하여 확장한 시스템입니다. 프로그램이 수행이 되고 있을 때 아주 짧은 주기로 CPU를 각각의 프로그램에 할당해 주는 방법입니다. 위 시스템으로 유저는 프로그램이 수행되고 있는 동안에도 상호작용을 할 수 있게 됩니다. 아주 짧은 주기로 전환이 이루어지기 때문에 프로그램이 동시에 작동하고 있다고 느끼게 됩니다. 예를 들어 Linux, Window와 같은 운영체제에 여러 명의 유저가 동시에 한 대의 컴퓨터에 접속해서 서로 다른 처리를 하지만 유저 개인은 본인 자체의 컴퓨터를 컨트롤 하고 있다고 느끼게 됩니다.
용어
- 작업 스케줄링 : 보조기억장치(HDD, SSD)에 프로그램이 저장되어 있고 그 중 일부를 선택해서 메모리에 적재하는 전략입니다.
- CPU 스케줄링 : 메모리에 올라온 작업들 중에서 무엇부터 할 지 고르는 전략입니다.
- 일괄처리 시스템 : 상호작용이 필요 없는 큰 단위의 작업들을 수행할 때 사용합니다.
운영체제 #2 다양한 시스템
- 다중 처리 시스템(Multiprocessor System) : CPU는 거의 processor와 비슷한 의미입니다. CPU가 여러 개인 시스템을 의미하며, 각각의 CPU들이 아주 밀접하게 통신을 하는 구조를 가지고 있습니다.
- 대칭적 다중 처리 시스템 : 각 CPU가 하나의 운영체제에서 작동합니다. CPU들끼리 데이터를 효율적으로 공유하는 구조입니다. __CPU하나가 망가져도 전체의 CPU가 망가지지 않고 일부의 기능만 작동이 안 된다는 것이 장점__입니다.
- 비대칭적 다중 처리 시스템 : 각 처리기마다 특정한 작업이 정해져 있고, 하나의 주요 CPU가 시스템을 제어하며 다른 CPU들은 미리 정의된 작업과 명령을 수행합니다. (Master - Slave)
- 분산 처리 시스템(Distributed Processing System) : 네트워크를 이용하여 동시에 작업을 처리하는 시스템으로 각각의 CPU들은 메모리를 공유하지 않습니다. 적절한 자원 공유로 계산 속도가 증가하고 신뢰성이 증가합니다.
- 클라이언트 & 서버 시스템(Client - Server System) : 클라이언트가 서버로 작업 요청을 보내고 서버는 그 작업을 수행하여 클라이언트에게 응답을 보내는 시스템입니다. 웹 사이트와 유저의 관계가 대표적인 예입니다.
- P2P 시스템(Peer To Peer System) : 각 컴퓨터가 서버이자 클라이언트가 되는 시스템입니다. 토렌트(Torrent)가 그 예입니다.
- 클러스터 시스템(Clustered System) : 물리적으로 많은 CPU를 한 곳에 모아서 작업을 하는 시스템입니다. LAN(물리적으로 짧은 네트워크, 반대는 WAN)으로 서로 연결된 각각의 CPU는 다른 CPU와 상호작용하여 고속 처리 서비스를 지원합니다. 기상청과 구글검색 등이 예입니다.
- 실시간 시스템(Real-Time System) : CPU의 동작이나 작업이 즉시처리를 요구할 때 채택되는 시스템입니다. 무기와 의학 시스템에서 많이 쓰입니다.