<설명>
- OS가 왜 Layer(계층 형태) 로 이뤄졌는가?
==> Layer를 통해 System 에 대한 Create, Maintain, Update 가 더 쉬워짐.
==> 하나의 Layer Specification(사양)이 바뀌어도 다른 Layer에 영향이 없음.
==> 반대로 하나의 구조로만 동작하는 OS 가 Monilithic Structure
- (Tutorial Point 피셜) 각 Layer는 인접한 위&아래 Layer 하고만 Interact(상호작용) 함
- (GeeksforGeeks & Scaler 피셜) N 개의 Layer가 있을 때 각 Layer 는 하위의 Layer에 Access가 가능하지만, 상위를 Layer로 Access 불가함 (n-1 층에서 n-2로 상호작용은 가능한데, n-1에서 n으로 불가).
==> Interact 와 Access 가 다른 개념임을 생각하자.
- 각 Layer는 자신의 Below(하단) 계층에 의존함.
- 특정 Layer에서 기술 장애가 발생하거나 작동하지 않으면, 그 Layer에서만 Error.
==> 다른 Layer 에 영향을 주지 않음.
==> 구조 상 Debugging 하기 간단하고 쉬움.
- 각 Layer에 Data 변경 및 전달을 수행 시, System 에 Overhead를 야기함.
- 최하단 Layer는 Hardware를 처리하고, 최상위 Layer는 User Program(e.g. Application) 을 다룸.
<장점>
1) Modularity
==> 각 Layer는 설계된 용도로만 작업 수행을 하는 제한이 있음.
2) Easy Debugging
3) Easy Update
==> 제한이 Layer 각자에게만 있으니 Update 하기 쉽고, 다른 Layer에 영향을 안 줌.
4) No direct access to hardware
==> Process 를 통해 Layer 하나씩을 거쳐야만 Hardware에 접근 가능.
5) Abstraction
==> Layer 각자만의 Function이 있음.
<단점>
1) Complex and Careful Implementation
==> 특정 Layer 가 하위 Layer 의 Service에 Access 할 때 Layer 전반이 원활하게 Execute 하려면, Layer 의 Placement(배치) 및 Arrangement(배열)이 정확하게 이뤄져야 함.
2) Slower execution
==> 구조 상 특정 Layer 와 떨어져 있는 Layer는 직접 Access가 안 되므로, Layer 간 요청 Process 가 생성됨.
==> 이로 인해 Execution 에 시간이 걸림. Response Time 증가.
<각 Layer 기능>
- 아래 이미지를 보면 총 6 Layer로 구성.
[더 직관적인 이해를 위한 구조 img]
[Hardware, 1계층]
- System Hardware 와 상호작용.
- 프린터, 마우스, 키보드 등의 모든 Computer 주변 장치를 Coordinate(조정).
- Layer 0 혹은 Layer 1이라고도 함.
[CPU Scheduling, 2계층]
- CPU 에 대한 Process의 Scheduling을 처리 .
- CPU Scheduling 의 과정
==> Process를 Handle(처리)하는 수 많은 Scheduling Queue 가 있음.
==> User 가 System에 Process 요청
==> Process가 System에 들어가면, 바로 Job queue로 넣음.
==> 메인 메모리에서 Execute 준비가 된 Process 는 Ready Queue에 보관.
==> Process가 Ready Queue 에서 하나씩 할당 및 Disk로 이동해 Execute 됨.
[Memory Management, 3계층]
- Disk 에서 Primary Memory 및 Secondary Memory 에 이르는 Memory 와 Process 관리를 담당
- Execution을 위해 Disk 에서 기본 Memory로 이동했다가 다시 돌아오는, Process의 Movement(이동) 및 Memory 를 다룸.
[Process Management, 4계층]
- Process 관리를 책임 짐.
- Processor를 한 번에 하나의 Process 에 지정.
- Process Scheduling 에 쓰이는 대표 Algorithm
==> FCFS : First Come First Served
==> SJF : Shortest Job First
==> Priority Scheduling
==> Round-Robin Scheduling
[I/O Buffer, 5계층]
- User 에게 System 과 상호작용하는 수단을 제공. 모든 I/O를 Buffer 에 저장.
- I/O Device 의 Buffer를 처리하고, 제대로 작동하는지 확인.
[User Programs, 6계층]
- User Interface 계층
- OS에서 동작하는 수 많은 User Program 및 Application 을 다룸. (e.g. 워드 프로세스, 게임, 브라우저 등)
<참조 1> https://www.tutorialspoint.com/layered-operating-system
<참조 2> https://www.scaler.com/topics/layered-structure-of-operating-system/
<참조 3> https://www.geeksforgeeks.org/layered-operating-system/
<참조 4>
'Programing > OS' 카테고리의 다른 글
[OS] OS 동작 원리 (2) | 2022.12.16 |
---|---|
[OS] CPU vs GPU 차이 (0) | 2022.08.15 |
[OS] Data Propagation (0) | 2022.08.11 |
[OS] Cache Hit Ratio (0) | 2022.08.10 |
댓글