ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제 기본지식과 리눅스
    운영체제 2020. 10. 18. 18:48
    728x90

    OS 구성도

     

    OS User Interface

    GUI, Shell 등 다양한 형태로 제공

    역할

    • 명령어 해석

    • 커널에 명령어 전달 (실행)

    • 결과 출력

     

    시스템 콜

    주로 high level language (c, c++)로 작성되며, OS는 이를 사용자에게 제공하기 위해 API(Application Programming Interface)를 제공합니다.

     

    시스템 함수가 호출되면 Software interrupt 가 발생하고, 인터럽트 별로 어떻게 대응할지는 IDT(Interrupt Descriptor Table)에 저장되어 있습니다. system_call()의 경우에는 entry.S에 가서 사용자가 호출한 시스템 함수의 인덱스를 찾습니다. 이후 sys_call_table 이라는 시스템콜을 정리해둔 테이블에 해당 인덱스를 찾아가면 시스템 함수의 주소가 저장되어 있고, 이를 실행한 뒤 리턴해주도록 되어 있습니다.

     

    OS의 구조 유형

    • Simple structure

    • Monolithic : 하나의 코드에 몰아서 구현하는 방식

      • 장점 : 효율성과 속도의 상승

      • 단점 : 유지보수가 어려움

    • Layered : 커널이 너무 많은 일을 하다보니 일을 계층화
      각 계층은 바로 아래 계층에서 제공하는 기능(연산)과 서비스만 사용

      • 장점 : 구축과 디버깅이 단순함

      • 단점 : 각 계층의 기능을 명확히 정의하기 어려움, 효율성이 떨어짐. (하드웨어인 계층 0까지 내려가려면 무수히 많은 계층들을 통과해야하기 때문)

    • Microkernel : kernel 은 작게 만들고, 커널 위에 도와주는 모듈을 붙이는 방식

      • 장점 : 이식성, 확장성, 신뢰성이 좋고, 보안이 좋음

      • 단점 : 속도가 떨어짐
        Monolithic 은 커널이 모든 일을 처리했기에 IPC가 필요 없었지만 마이크로 커널은 크기를 줄이고 모듈간의 중재자 역할만을 하기에 IPC가 필요하게 됨

    • Module : 모듈화된 monolithic = 리눅스

      • 커널의 모듈을 동적으로 로딩하는 방식

      • Layered 방식과 마찬가지로 모듈간의 상호작용을 요구

      • 대신 Layered는 계층 level에 따라 명령어 처리 순서가 정해져있지만 모듈은 모두 동등함

    • Hybrid

      • 여러 구조를 섞어 사용하는 방식

      • 리눅스와 솔라리스의 커널 주소 공간의 경우 monolithic에 module 방식을 더해서 씀

    리눅스 시스템 구조

    리눅스는 Monolithic 과 Module 을 섞어 사용하는 하이브리드 구조

    '운영체제' 카테고리의 다른 글

    [OS] 가상메모리 주소공간과 MMU  (0) 2020.11.26
    [OS] OS 페이징 기법  (0) 2020.10.22
    [OS] 운영체제와 메모리  (0) 2020.10.22
    CPU 스케쥴링  (0) 2020.10.19
    운영체제의 프로세스  (0) 2020.10.19

    댓글

Designed by Tistory.