분산시스템 개념과 디자인 — Operating System Support

원서 SUMMARY: Distributed Systems Concepts and Design 5th Edition (5)

SoniaComp
3 min readMar 8, 2021
1. Operating System Layer
- Encapsulation
- Protection
- Concurrent Processing
- Communication
- Scheduling
- Process Manager
- Thread Manager
- Commuication Manager
- Memory Manager
- Supervisor
2. Protection3. Processes and Threads
- Kernels and protection
4. Communication and Invocation
- Communication primitives
- Protocols and openness
5. Operating System architecture
- Monolithic kernels and microkernels
- Comparison
- Some hybrid approaches
6. Virtualization at the operating system model
- System virtualization

[ OS ]

  • OS facilitates the encapsulation and protection of resources inside servers
  • supports the mechanisms required to access these resources, including communication and scheduling.

[ System Kernel ]

  • the advantages and disadvantages of splitting functionality between protection domains ( splitting functionality between kernel- and user-level code )
  • The trade-offs between kernel-level facilities and user-level facilities are discussed, including the tension between efficiency and robustness.

1. The operating system layer

Kernels and server processes
→ components that manage resources
→ an interface to the resources

  • Encapsulation: provide a useful service interface to their resources
  • Protection: Resources require protection from illegitimate accesses
  • Concurrent processing: share resources and access them concurrently.
    → Resource managers are responsible for achieving concurrency transparency.

[ an invocation mechanism: a means of accessing an encapsulated resource ]

  • Communication: Operation parameters and results have to be passed to and from resource managers, over a network or within a computer.
  • Scheduling: When an operation is invoked, its processing must be scheduled within the kernel or server.
horizontal divisions in the figure denote dependencies

[ The kernel supplies much of this functionality ↑ ]

  • Process manager: Creation of and operations upon processes. A process is a unit of resource management, including an address space and one or more threads.
  • Thread manager: Thread creation, synchronization and scheduling. Threads are schedulable activities attached to processes.
  • Communication manager: Communication between threads attached to different processes on the same computer. Some kernels also support communication between threads in remote processes.
  • Memory manager: Management of physical and virtual memory
    → for efficient data copying and sharing
  • Supervisor: Dispatching of interrupts, system call traps and other exceptions, control of memory management unit and hardware caches, processor and floating-point unit register manipulations.

2. Protection

  • Benign code that contains a bug or that has unanticipated behavior
    → cause part of the rest of the system to behave incorrectly.

3. Processes and threads

Kernels

  • Protection: it can control the memory management unit and set the processor registers so that no other code may access the machine’s physical resources except in acceptable ways.

4. Communication and Invocation

invocation[ a remote method invocation, remote procedure call or event notification ] → purpose to bring about an operation on a resource in a different address space.

Communication primitives

  • What communication primitives does it supply?
  • Which protocols does it support and how open is the communication implementation?

Protocols and openness

  • What steps are taken to make communication as efficient as possible?
  • What support is provided for high-latency and disconnected operation?
  1. Invocation performance
    - Invocation Costs
    - Invocation over the network
    - Memory sharing
    - Choice of Protocol
    - Invocation within a computer
    - Discussion of LRPC
  2. Asynchronous operation
    - Making invocations concurrently
    - Asynchronous invocations
    - Persistent asynchronous invocations

5. Operating System architecture

  • run only that system software at each computer that is necessary for it to carry out its particular role in the system architecture.
  • any particular service to be changed independently of other facilities.
  • the same service to be provided, when this is required to suit different users or applications.
  • introduce new services without harming the integrity of existing ones.

Monolithic kernels and microkernels

Comparison

Some hybrid approaches

6. Virtualization at the operating system model

System virtualization

--

--

SoniaComp

Data Engineer interested in Data Infrastructure Powering Fintech Innovation (https://www.linkedin.com/in/sonia-comp/)