운영체제 구조

ss0510s·2023년 9월 21일
0

CS

목록 보기
3/3

운영체제 구조

운영체제는 컴퓨터 시스템의 하드웨어, 소프트웨어적인 자원들을 효율적으로 운영 및 관리함으로써 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 하는 시스템 소프트웨어입니다.
운영체제의 목적은 자원관리, 자원 보호, 인터페이스 제공 등이 있습니다.
운영체제는 크게 인터페이스와 커널 부분으로 나눌 수 있고, 다음과 같이 드라이버, 커널, 시스템콜, 인터페이스 구조로 되어있습니다.

인터페이스

  • 인터페이스는 사용자의 명령을 컴퓨터(커널)에게 전달하고 결과를 사용자에게 알려주는 소통의 역할을 합니다.
  • 대표적인 종류
    • GUI(Graphical User Interface) : 단순 명령어 창이 아닌 아이콘을 마우스로 클릭하는 단순한 동작으로 컴퓨터와 상호작용이 가능합니다.
    • CLI(Command Line Interface) : 그래픽이 아닌 명령어로 처리하는 인터페이스입니다.

커널

💡 컴퓨터와 전원을 켜면 운영체제는 소프트웨어로서 켜짐과 동시에 메모리에 올라가야 하지만, 규모가 큰 운영체제는 모두 메모리에 올라가면 한정된 메모리 공간의 낭비가 심할 것입니다. 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 넣고, 그렇지 않은 부분은 필요할 때만 메모리에 올려서 사용합니다. 이때 항상 메모리에 올라가 있는 운영체제의 핵심 부분을 커널이라고 합니다.
  • 전반적인 프로세스를 뜻합니다. 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아 놓은 것으로, 운영체제의 성능을 좌우합니다.
  • 컴퓨터의 물리적 자원(하드웨어)와 추상화 자원을 관리하는 것

핵심역할

  1. 프로세스 관리 : 프로세스에 CPU를 배분하고, 작업에 필요한 제반 환경을 제공합니다.
    • 하나의 CPU는 하나의 프로세스만 실행할 수 있으므로, 프로세스를 조금씩 번갈아 가며 실행합니다.
    • 운영체제는 다양한 프로세스들을 관리하고 실행할 수 있어야 합니다.
  2. 메모리 관리: 프로세스에 작업 공간을 배치하고, 실제 메모리보다 큰 가상공간을 제공합니다.
  3. 파일 시스템 관리: 데이터를 저장하고 접근할 수 있는 인터페이스를 제공합니다.
  4. 입출력 관리 : 필요한 입력과 출력서비스를 제공합니다.
    • 입출력 장치가 CPU에 하드웨어 인터럽트 요청 신호를 보내면 CPU는 커널 영역에 있는 인터럽트 서비스 루틴을 실행하여 입출력 작업을 수행합니다.
  5. 프로세스 간 통신관리 : 공동작업을 위한 각 프로세스 간 통신 환경을 지원합니다.

커널 구조

단일형 구조 커널(모놀리식 커널)

  • 초창기 운영체제 구조로, 커널의 핵심 기능 모듈들이 구분 없이 하나로 구성되어 있습니다.

  • 장점
    • 모듈이 거의 분리되지 않았기 때문에 모듈간 통신 비용이 줄어들고, 속도가 빠릅니다.
  • 단점
    • 한 모듈에 장애가 생기면 전체에 영향을 끼치고, 수정이 어려워 이식성이 떨어집니다.
  • 대표적인 운영체제: MS-DOS, VMS
  • 유닉스, 리눅스도 단일형 구조 커널을 기반으로 합니다.

계층형 구조 커널

  • 비슷한 기능을 가진 모듈들을 하나로 묶어서 하나의 계층을 만들고, 계층 간의 통신을 통해 운영체제를 구현하는 방식입니다.
  • 개선된 단일형 구조
  • 장점
    • 오류 발생 시 해당 계층만 수정하면 되므로, 단일형에 비해 버그나 오류를 쉽게 처리할 수 있고, 디버깅이 쉽습니다.
  • 단점
    • 하나의 계층에 문제가 생기면 상하 계층도 동작하지 못할 수 있습니다
    • 운영체제가 커지고 복잡해지면 많은 계층들이 발생하게 되어 커널의 크기가 커지고 하드웨어의 용량도 늘어나게 됩니다.

마이크로 구조 커널

  • 프로세스 관리, 메모리 관리 등 가장 기본적인 기능만 제공하고, 나머지 부분은 사용자 영역에 구현하여 커널의 크기를 줄인 구조입니다.
  • 기존의 모놀리식 커널이 갖고 있는 시스템 서비스들은 마이크로 커널 위에서 개별적인 서버 형태로 존재하고, 서버를 추가하는 방식으로 기능을 확장할 수 있습니다.

  • 장점
    • 각 모듈은 독립적으로 작동하기 때문에, 하나의 모듈이 실패하더라도 전체 운영체제가 멈추지 않습니다.
    • 많은 컴퓨터에 이식하기 쉽습니다.
    • 커널이 가벼워 CPU 용량이 적은 시스템에 적용이 가능합니다.
  • 단점
    • 모듈이 독립적으로 존재하여 모듈 간 통신(IPC)이 빈번하게 이루어져 성능이 저하될 수 있습니다.
  • 대표적인 운영체제: Window NT, Mac OS(8.6 까지)

Hybrid 구조

  • 모놀리식과 마이크로커널 구조의 장단점을 결합한 구조로, 운영체제의 핵심 부분은 마이크로 커널로 작성하고 다른 부분은 모놀리식 커널로 작성하여 최적화된 성능을 보장하는 구조입니다.
  • 장점
    • 마이크로 커널에서 필요한 최소한의 서비스 만을 제공하고, 나머지 기능은 모놀리식 커널에서 제공하므로 성능과 안정성을 모두 총족시킬 수 있습니다.
    • 유연하게 조합할 수 있어 시스템 구성 요소의 변경에 대한 대응이 쉽습니다. → 확장성, 유연성
  • 단점
    • 시스템의 구현이 복잡하여 많은 작업이 필요합니다.
    • 마이크로 커널의 안정성을 유지하기 위해 시스템의 일부 기능을 모놀리식 커널로 이전해야 할 수도 있습니다.
  • 대표적인 운영체제: Windows NT, Mac OS X, React OS

** Windows NT는 초기 Micro Kernel 구조로 개발되었으나 파일 시스템, 네트워킹 등 을 커널 모드에서 실행되도록 하는 방식은 모놀리식 방식을 닮아있어 현재 하이브리드 커널로 불립니다.

시스템콜(시스템호출)

  • 운영체제가 커널에 접근하기 위한 인터페이스이며, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용합니다.
  • 커널은 사용자나 응용프로그램으로 부터 컴퓨터 자원을 보호하기 위해 자원에 직접 접근하는 것을 차단합니다.
  • 이중 모드
    • 유저모드 → 커널 모드: 프로세스는 유저모드에서 실행 되다가 특별한 요청이 필요할때 시스템콜을 이용해서 커널에 요청을 합니다.
    • 커널모드 → 유저모드: 시스템콜의 요청을 받은 커널이 그 요청에 대한 일을 하고 결과값을 시스템콜의 리턴 값으로 전해줍니다.
    • 커널 모드는 운영체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드로서, 이 모드에서는 모든 종류의 명령을 다 실행할 수 있습니다.
    • 유저 모드에서는 일반 사용자 프로그램이 실행 되며, 제한적인 명령만을 수행할 수 있습니다.
    • 반드시 kernel에 관련된 것은 커널모드로 전환한 후에야, 해당 작업을 수행할 권한이 생깁니다.

업로드중..

드라이버

  • 하드웨어를 제어하기 위한 소프트웨어로, 커널과 하드웨어의 인터페이스를 담당합니다.
  • 컴퓨터 하드웨어의 종류는 다양하지만, 운영체제가 각 하드웨어에 맞는 인터페이스를 개발 하기는 어려우므로  하드웨어 제작자가 만든 소프트웨어를 받아서 설치하여 하드웨어를 사용할 수 있게 합니다. 이 소프트웨어를 디바이스 드라이버라고 합니다.
profile
개발자가 되기 위해 성장하는 중입니다.

0개의 댓글