ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [운영체제] OS의 구조(2)
    개발/OS 2022. 2. 21. 01:55

    이번에는 지난번에 적은 OS의 구조에서 더 나아가서 각 OS들이 어떤 구조를 갖고있는지 알아보자

     

    OS의 구현

    당연하게도 OS도 언어로 만들어진다.

    초기에는 어셈블리와 같은 언어로 만들었다. 

    그 이후엔 Algol, PL/1 과 같은 언어로 만들어졌다고 한다. 

    현재는 여러가지 언어를 황룔해서 만드는데, Lowest level은 C를 메인으로 하고,

    C++, PERL, Python 과 같은 언어들을 사용해 시스템 프로그래밍을 한다.

    하이레벨 언어들은 다른 기기로의 전환이 쉬우나 느리다는 단점이 있다.

    Emulation은 non-native 기기에서 작동할 수 있다.

     

    Kernel

    커널은 하드웨어인터페이스와 시스템 콜 인터페이스 사이에 위치하며 기능들을 제공한다.

    하드웨어 자원을 적절하게 분배해주며, 시스템콜, 메모리 관리, 프로세스 관리 등을 모두 처리해주는 부분.

     

    Monolithic Structure

    하나의 커널에서 OS의 모든 기능이 이루어지는 OS의 커널 설계 방식이다.

    거의 대부분의 기능이 단일 메모리에서 이루어지므로 계속 유저모드와 소통해야하는 마이크로 커널 보다 성능이 좋다.

    UNIX와 Linux가 모놀리식 구조를 사용하여 설계되었다.

    모놀리식 커널

     

    Microkernel System Structure

    반면 마이크로 커널은 이름과 같이 프로세스 관리나 메모리 관리 등과 같은 필수적인 기능만 커널에 담고, 

    나머지 기능들은 유저 모드에서 관리하게 한다. 

    모놀리식 구조보다 느릴 수 있으나, 기능이 모두 분리되어 개발이 용이하고, 안정성이 높다.

     

    Hybrid System

    사실 요즘의 대부분의 OS는 한 가지 방법만 사용하지 않는다.

    성능의 향상을 위해 모놀리식 기반의 커널에 더해 각각의 subsystem을 위한 마이크로 커널을 사용하는 방식을 채택한다.

     

    OS의 Booting

    OS에 전원이 들어오면 fixed-memory에 있던 것이 시작된다.

    커널의 ROM과 EEPROM에 저장되어있던 bootstrap loader나 BIOS같은 작은 코드들이 메모리로 이동하고 실행된다.

    최근에는 BIOS대신 UEFI를 사용한다.

    '개발 > OS' 카테고리의 다른 글

    [운영체제] 스레드  (0) 2022.04.12
    [운영체제] 프로세스  (0) 2022.04.11
    [운영체제] OS의 구조  (0) 2022.02.18
    [운영체제] 운영체제란?  (0) 2022.02.17

    댓글

Designed by Tistory.