티스토리 뷰
System Structure
[ Kernel Mode and System Call ]
· Kernel Mode
: 운영 체제 커널이 실행되는 모드로, 모든 시스템 리소스와 접근에 대한 권한을 갖게 된다.
: Kernel Mode는 Hardware Interrupt와 System Call을 통해 접근할 수 있다.
· 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의 핵심 기능인 Scheduling과 Memory 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에 수행.
: insmod와 rmmod라는 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)
'컴퓨터 공학 이론 > 오퍼레이팅 시스템' 카테고리의 다른 글
[오퍼레이팅 시스템] Memory Management Strategies (0) | 2023.06.06 |
---|---|
[오퍼레이팅 시스템] Deadlock (0) | 2023.06.05 |
[오퍼레이팅 시스템] Scheduling (0) | 2023.04.18 |
[오퍼레이팅 시스템] Thread (0) | 2023.04.18 |
[오퍼레이팅 시스템] Process (0) | 2023.04.18 |