운영체제_운영체제 개요_최근 운영체제로의 발전

미뇽·2024년 4월 8일
0

운영체제(강의)

목록 보기
4/43
post-thumbnail

최근 운영체제의 발전

하드웨어의 발전

새로운 하드웨어가 출시하고 발전해감에 따라 운영체제 또한 발전해간다. 하드웨어적 발전으로는

  • 멀티프로세서의 출현
  • 크게 향상된 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)

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

profile
문이과 통합형 인재(人災)

0개의 댓글