OS_Chapter_2.8

ssonjh·2021년 4월 7일
0

OS

목록 보기
11/17

👀 Operating System Structure

  • General-purpose OS is very large program
  • Various ways to structure ones
    • Monolithic structure
    -> Simple structure(MS-DOS), More complex(UNIX)
    • Layered structure
    • Microkernel – Mach
    • Modular kernel

Summary

  • 일반적인 OS는 아주 큰 프로그램이다.
  • 다양한 방법의 OS 구조
    • 단일 구조
    -> 단순 구조(MS-DOS), 더 복잡한 구조(UNIX)
    • 레이어 구조
    • 마이크로커널 ex) Mach
    • 커널의 모듈화

📕 Monolithic Structure – Original UNIX

  • limited by hardware functionality, the original UNIX
    operating system had limited structuring.
  • The UNIX OS consists of two separable parts

1. Systems programs
2. The kernel

  • Consists of everything below the system-call interface and above the physical
    hardware
  • Provides the file system, CPU scheduling, memory management, and other operating-system functions;
    a large number of functions for one level

Summary

  • 초기의 UNIX는 제한된 구조를 가지고 있었다. (hardware 기능문제)
  • UNIX는 2개의 부분으로 나뉘어진다.
    1. Systems programs
    2. The kernel
    • 아래에 system-call interface, 위에 physical hardware으로 구성된다.
    • file system, CPU scheduling, memory management 등 여러 OS 기능을 제공한다.
    • 이 많은 기능들을 kernel 한 계층에서 모두 담당하고 있다.

UNIX System Structure

LINUX System Structure

  • Monolithic plus modular design

📙 Layered structure

  • The operating system is divided into a number of layers (levels), each built on top of lower layers.
    The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.
  • With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers

Advantage

simplicity of construction and debugging

Summary

  • OS는 몇개의 계층으로 나뉘어져 있다.
    제일 아래층(0층)은 하드웨어이고, 가장 높은 층(N층)은 UI이다.
  • 모듈화를 통해 각 계층은 하위 계층의 기능(작업) 및 서비스만 사용하도록 선택된다.

Advantage

구현과 디버깅이 간단하다.

📒 Microkernels

  • Make the kernel as light as possible
  • moves as much from the kernel into “user” space
  • ex) Mach OS

Advantage

  • Easier to extend a microkernel
  • Easier to port the operating system to new architectures
  • More reliable (less code is running in kernel mode)
  • More secure

Disadvantage

  • Performance overhead of user space to kernel space communication

Summary

  • kernel을 최대한 가볍게 만든다.
  • 가장 핵심적인 OS 기능만을 (kernel mode에서 동작하는) kernel에 담고 그 외 나머지는 user space로 넘긴다.

Advantage

  • microkernel을 확장하기 편하다.
  • OS를 다른 구조에 적용시키기 편하다.
  • 신뢰도가 높다. (kernel mode에서 더 적은 코드가 돌아가니까)
  • 보안이 높다.

Disadvantage

  • user space에서 kernelspace로의 communication에 overhead가 생길 수 있다.

overhead
오버헤드(overhead)는 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.

Microkernel System Structure

📗 Modular kernel

  • Many modern operating systems implement loadable kernel
    modules(LKM)
  • The kernel has a set of core components and dynamically links to additional services either during boot time or during run time.

• Uses object-oriented approach
• Each core component is separate
• Each talks to the others over known interfaces
• Each is loadable as needed within the kernel

  • Overall, similar to layers but with more flexible

Summary

  • 현대의 많은 OS들은 load 가능한 kernel module(LKM)을 구현한다
  • kernel은 핵심 요소들을 가지고 있으며 부팅 시간이나 실행 시간 중에 추가 서비스에 동적으로 link된다.

• 객체 지향 접근 방식을 사용한다.
• 각 핵심구성 요소들은 분리되어 있다.
• 각자가 알려진 interface를 통해 다른 사람과 대화한다.
• kernel 내에서 필요에 따라 각각 load 가능

  • 전반적으로 layer와 비슷하지만, 조금 더 유연하게 사용할 수 있다.

Modular kernel & Layered structure

  • The Modular kernel approach is similar to the Layered
    approach
    • The modular kernel approach requires subsystems to interact with each other through carefully constructed interfaces

  • However, the Modular kernel approach differ from the
    Layered approach
    • The layered kernel imposes a strict ordering of subsystems such that
    subsystems at the lower layers are not allowed to invoke operations
    corresponding to the upper-layer subsystems.
    • There are no such restrictions in the modular-kernel approach,
    wherein modules are free to invoke each other without any
    constraints.

Summary

Modular kernel과 Layered structure의 공통점

  • Modular kernel은 Layered structure과 접근성이 비슷하다.
  • Modular kernel의 접근 방식은 세심하게 구성된 interface를 통해 하위 시스템들이 서로 상호작용할 것을 요구한다.

Modular kernel과 Layered structure의 차이점

  • Layered structure는 하위 계층의 하위 시스템이 상위 계층의 하위 시스템에 해당하는 작업을 호출할 수 없도록 하기 위해 하위 시스템에 대해 엄격한 순서를 부과한다.
  • Modular kernel는 그러한 제한 없이 서로를 자유롭게 호출할 수 있다.

dictionary
Monolithic : 단일
port : 적용하다
approach : 접근

0개의 댓글