최근 운영체제의 발전

하드웨어의 발전

  • 멀티프로세서의 출현
  • 크게 향상된 CPU 속도
  • 고속 네트워크 장비
  • 메모리 종류의 다양화 및 용량 증가

운영체제의 발전

운영체제의 경우 하드웨어와 인터넷, 멀티미디어, 클라이언트/서버 컴퓨팅 등 다양하게 발전해가면서 요구사항이 급변해감에 따라 운영체제를 새롭게 구성할 필요성이 대두되었다.

마이크로커널 구조

  • 최근까지 대부분의 운영체제는 단일체 커널(monolithic kernel) 로 특정지어짐
  • 하나를 고칠 때 다시 전체를 컴파일 해야 하는 전통적인 운영체제
  • 단일체 커널의 경우 하나의 프로세스 형태로 구현되고 커널 내의 모든 요소들은 같은 주소 공간을 공유한다.
  • 하지만 마이크로커널 구조(microkernel architecture) 는 주소공간, 프로세스 간 통신(IPC), 기본적 스케줄링을 포함한 소수의 핵심 기능만을 커널에 포함시키고, 그 밖의 운영체제 서비스들은 서버라 불리는 프로세스에 의해 제공
    • 이 프로세스들은 사용자 모드에서 수행되며 마이크로 커널에 의해 일반 응용과 동일하게 취급됨
    • 구현이 간단하고 융통성이 있으며 분산 환경에 적합하다.
  • 본질적으로 마이크로 커널은 지역(local)과 원격(remote) 서버 프로세스를 구분하지 않고 동일한 방식으로 상호작용하기 때문에 분산시스템 구축을 용이하게 한다.

멀티 쓰레딩(Multithreading)

  • 응용을 실행하는 프로세스를 동시에 수행될 수 있는 쓰레드들로 분할하는 기법

쓰레드(thread) 작업의 디스패치 단위. 처리기 문맥과 고유 데이터 영역으로서의 스택(서브루틴 분기 지원)을 포함 순차적으로 수행되며 처리기가 다른 쓰레드로 문맥 교환이 이루어질 수 있도록 인터럽트 당할 수 있음

프로세스(process) 하나 이상의 쓰레드와 관련 시스템 자원들로 구성.

  • 상호 독립적인 많은 태스크를 수행하는 응용에 유용

대칭형 멀티프로세싱(SMP: Symmetric multiprocessing)

  • 컴퓨터의 하드웨어 구조를 일컫는 용어지만 해당 구조를 활용하는 운영체제의 행동 양식을 의미하기도 함 SMP용 운영체제는 어떤 처리기에서도 실행될 수 있도록 할 수 있다.
  • SMP는 단일처리기 구조에 비해 아래와 같은 잠재적 장점을 가짐

성능(Performance)

  • 위 사진만 봐도 컴퓨터가 수행할 작업의 일부가 병렬로 처리되면서 하나 이상의 프로세스들이 각각 다른 처리기 상에서 동시에 수행될 수 있음

가용성(Availability)

  • 처리기에 문제가 생기더라도 시스템 전체가 중지되지 않음
    • 모든 처리기들이 동일한 기능을 각각 수행하기 때문

점진적 확장(Incremental growth)

  • 사용자는 성능 향상을 위해 필요할 때마다 처리기를 추가 설치할 수 있음

크기 조절(Scaling)

  • 벤더들은 시스템을 구성하는 처리기 수에 따라 다양한 제품을 공급할 수 있다.

이처럼 대칭형 멀티프로세싱을 사용함으로써 이와 같은 잠재적 장점을 가질 수 있는데, 이를 위해서는 운영체제가 이를 활용하기 위한 도구와 기능을 제공해야 함

  • SMP는 멀티 쓰레딩과 함께 다루어지기도 하지만 독립적인 개념임을 유의해야 함.
  • SMP 시스템의 경우 쓰레드화 되지 않은 프로세스에서도 병렬 수행이 가능하기 때문에 유용하며, 멀티쓰레딩과 함께 상호보완적으로 작동하여 효과적

분산 운영체제(disputed operating system)

  • 독립된 처리기들의 클러스터(cluster), 즉 멀티컴퓨터 시스템에 대해 단일 시스템 이미지를 제공할 때 다루어야 할 대상은 컴퓨터 개체들의 집합으로, 이들은 각자의 주기억장치와 보조기억장치, 그 외 입출력 모듈 등을 가지고 있음
  • 분산 운영체제는 사용자에게 단일 주기억장치 공간과 단일 보조기억장치 공간을 사용하는 것처럼 느끼게 해 줄 뿐만 아니라, 분산파일 시스템과 같은 통합 접근 기능을 제공
  • 이를 통해 여러 CPU에서 서비스하는 작업을 처리한다.

객체지향 설계(object-oriented design)

  • 작은 커널을 모듈 단위로 확장해 가는 과정에 대해 규칙을 제공
  • 운영 체제 수준에서 객체 기반 구조는 시스템의 무결성을 해치지 않으면서 운영체제를 프로그래머의 생각대로 구성할 수 있게 해주어 분산 운영체제 및 분산 도구의 개발을 용이하게 함.