본문 바로가기
Programing/OS

[OS] Layered Operating System (OS 6 계층)

by 꾸압 2022. 12. 11.

 

<설명>

  - 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로 구성.

이미지 출처 : Tutorial Point

 

 

  [더 직관적인 이해를 위한 구조 img]

이미지 출처 : Scaler

 


 

[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

댓글