티스토리 뷰

System Structure

 

[ Kernel Mode and System Call ]

  · Kernel Mode

    : 운영 체제 커널이 실행되는 모드로, 모든 시스템 리소스와 접근에 대한 권한을 갖게 된다.

    : Kernel Mode는 Hardware InterruptSystem Call을 통해 접근할 수 있다.

Mode Switch

  · System Call

    : OS의 Kernel이 제공하는 서비스에 대해 User Mode에서 Kernel에 접근하기 위한 인터페이스.

    : 일반적으로 라이브러리로 호출 가능하다.

    : 보통 POSIX(Portable Operating System Interface) API를 이용한다.

      → 이는 운영 체제마다 다른 Kernel의 명령어를 일괄되도록 하여 이식성을 향상시킨다.

      → Table 형태로 되어 있는 System Call Interface를 표준화한다.

 

[ OS Design and Implementation ]

  : OS는 사용자가 어떻게 사용하는지에 구애받지 않고, 모든 응용을 적절하게 대응할 수 있어야 한다. 

 

  · User goals

    : 편안한 이용, 쉬운 학습, 응용성, 안전성, 신속성.

  · System goals

    : 쉬운 디자인, 구현, 유지, 유연성, 응용성, 에러 자율성, 효율성.

 

[ OS Structure ]

  · Simple Structure

    : Dual-Mode가 존재하지 않음. → 보안성에 큰 이슈

    : 옛날의 MS-DOS.

    : 현재는 사용하지 않음.

 

  · Layered Approach

    : OS 계층화.

    : 상위 계층에서 하위 계층으로만 호출이 가능.

    : 각 레이어를 별도로 구현.

    : Module 구조와 병행해서 자주 사용됨. → Linux의 구조 형태

 

  · Micorokernel

    : 대부분의 기능을 User Level로 보내 최소한의 Kernel 기능만 구현.

    : OS의 핵심 기능인 SchedulingMemory Allocation만 수행.

    : 일반적으로 VM을 사용하지 않음.

    : File System과 Device Driver가 User Level에 존재.

    : Folder Phone에서 많이 사용하던 방식.

    : 코드 분석이 쉽고 확장이 쉬우며 안정적이지만, User-Level의 Task 수가 많아져 Mode Switch에 따른 Overhead 증가.

    : Module 구조와 병행해서 자주 사용됨.

 

  · Monolithic Kernel

    : 모든 기능이 Kernel에 한번에 다 들어간 방식.

    : Microkernel과 대비되는 방식.  

    : 옛날의 Windows 구현 방식.

 

  · Module

    : 각각의 Module을 Kernel이 실행될 때 동적으로 추가·삭제 해주는 형태로 기능.

    : Execution-Time에 수행.

    : insmodrmmod라는 Privilieged Instruction을 이용하여 Module을 추가하고 삭제한다.

 

[ System Boot ]

  · Booting : Kernel을 로드함으로써 시스템을 시작하는 절차를 말한다.

  · Bootstrap Loader : PC를 시작함에 있어 OS의 실행을 위해 처음으로 메모리에 로드되는 프로그램.

  · Booting Approach

    - Single Step Approach

      : 시스템 생성을 위한 부팅 전체 과정이 하나의 프로그램으로 구성된다.

      : Kernel의 크기가 작고, 보안이 강하다는 장점이 있다.

      : 시스템 생성 시 매번 전체 시스템을 다시 생성해야 해서 오랜 시간이 소요되고, 오류 수정이 어렵다는 단점이 있다.

      : 현재는 거의 사용되지 않는다.

 

      1) H/W Initialization : Kernel을 불러오기 위해 H/W를 초기화.

      2) Kernel Loading : Kernel을 불러온다.

      3) Kernel Execution : Bootstrap Loader가 Kernel로 제어권을 넘기고, Kernel 실행.

 

    - Two Step Approach

      : Bootstrap Loader를 두 단계로 나누어 실행하는 방법.

      : 초기화와 로드 단계를 분리함으로써 각각 독립적으로 실행하므로 초기화 중에 발생한 오류를 빠르게 검출.

      : 분리를 통해 유연성이 높아져 시스템의 유지 보수가 더욱 쉬워진다.

      : Bootblock을 RAM에 올리고, 여기서 Second Step이 독립적으로 실행되도록 한다.

 

      1) First Step : 하드웨어 판매업체가 만든 Firmware를 실행해 하드웨어 초기화와 검사를 하고, Boot Loader를 로드.

      2) Second Step : Boot Loader를 실행하여 Kernel을 로드하고, Kernel 실행 단계로 넘어간다. (= Single Step)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함