This ever-increasing demand is not comparable to the capabilities of existing hardware. One way to overcome this is to develop software by creating a virtual system where several hardware or computers are connected in a network and managed by an operating system that manages all processes on each computer, allowing the process to run quickly. The operating system that manages this process is often referred to as a distributed operating system.
This distributed operating system is now becoming a trend, especially for research which sometimes requires a very fast CPU to perform very complex calculations.
1. Understanding Distributed Operating Systems
A distributed operating system is one implementation of a distributed system, where a collection of heterogeneous computers and processors are connected in a network. These collections of objects work together in a closed manner to perform a particular task or job. The main goal is to provide more results, especially in:
- File system
- Name space
- Processing time
- Security
- Access to all resources, such as processor, memory, secondary storage, and hardware.
2. Distributed OS vs. Network OS
A true distributed operating system is one that runs on multiple machines, that does not share memory, but appears to the user as a single computer. The user does not need to worry about the existence of hardware, such as processors. An example of such a system is Amoeba.
"Distributed OS is different from Network OS"
To be able to differentiate them, pay attention to the following characteristics of Network Operating Systems:
- Each computer has its own operating system
- Each personal computer has its own file system, where data is stored.
- The operating system of each computer can be different or heterogeneous.
- Users must consider the presence of other computers connected, and must access them, usually using remote login (telnet).
- File system can be used with NFS support
Examples of these systems are UNIX and LINUX Servers.
Interconnection Logic, img by: www.webstart.com
3. Benefits & Advantages of Distributed OS
Distributed operating systems have benefits in many systems and the wider computing world. These benefits include resource sharing, computing time, reliability, and communication (Silverschatz Galvin, 1998 p. 17).
4. Shared Resources
Although today's devices have fast capabilities in computing processes, or for example in accessing data, users still want the system to run faster. If the hardware is limited, the speed desired by the user can be overcome by combining the existing device with the DOS (Distributed Operating System) system.
5. Benefits of Computing
One of the advantages of this distributed operating system is that the computation runs in parallel. The computation process is divided into many points (nodes), which may be personal computers, individual processors, and possibly other processor devices. This distributed operating system works well in breaking down this computation and also well in retrieving the results of the computation from the cluster points to display the results.
6. Reliability
The unique feature of DOS is reliability. Based on the design and implementation of this system design, the loss of a node will not affect the integrity of the system. This is different from personal computers, if one of the hardware is damaged, the system will run unbalanced, even the system can not run or die.
In the distributed operating system, the way it works is actually similar to a personal computer, but the difference is that if a node dies, a halt process will occur on that node and the computing process can be diverted. This will make the DOS system always have high reliability.
7. Communication
Distributed operating systems usually run on a network, and usually serve network connections. This system is usually used by users for networking processes. Users can exchange data with each other, or communicate with each other between points either via LAN or WAN.
Implementation of Linux Based Distributed OS
8. Distributed OS Hardware
The distributed operating system, which will currently be discussed as a starting point is Amoeba, which is currently widely used as one of the implementations of the distributed operating system itself. This Amoeba system grew from the bottom until it finally grew into a distributed operating system.
Amoeba Operating System Design, img by: people.msoe.edu
Distributed operating systems generally require specific hardware. The main components in this system are: workstations, LAN, gateways, and processor pools, as illustrated in the figure above.
Workstations or personal computers execute processes that require user interaction such as text editors or window-based managers. Specialized servers have the function to perform specific tasks. These servers take over processes that require special I/O from the disk array. Gateways serve to take over the task of connecting to a WAN network.
The processor pool takes over all other processes. Each of these units usually consists of a processor, local memory, and a network connection. Each processor works on one process until the unused processors run out. Then the other processes are in a queue waiting for the other processes to finish. This is the advantage of a distributed operating system in terms of reliability. If one processing unit dies, then the allocated process must be restarted, but the integrity of the system will not be disturbed, if the detection process runs properly. This system design allows for 10 - to 100 processors.
The minimum hardware specifications that must be provided on each cluster are:
- File server: 16 MB RAM, 300MB HD, Ethernet card.
- Workstation: 8 MB RAM, monitor, keyboard, mouse
- Pool processor: 4 MB RAM, 3.5" floppy drive
9. Software Architecture
A true distributed operating system has a unique software architecture. This software architecture is characterized by objects in the relationship between clients and servers. The processes that occur on the client use remote procedures that call and send requests to the server to process the data or objects carried. Each object carried has characteristics called capabilities.
This capability is 128 bits in size. The first 48 bits indicate which service owns the object. The next 24 bits are the object number. The next 8 bits display the operations allowed on the object in question. And the last 48 bits are the "check field" which is a field that has been encrypted so that it cannot be modified by other processes.
Operations are completed by RPCs (remote procedure calls) made by the client inside a small, lightweight process. Processes of this type have their own address fields, and may have one or more relationships. These relationships when running have their own program counter and stack, but can share code and data between other relationships in the process. There are 3 types of system call bases that can be used in user-owned processes, namely do_operation, get_request, and send_reply.
The first part sends a message to the server, after which the process blocks until the server sends a reply. The server uses a second system call to indicate that it will accept messages on a specific port. The server also uses a third system call to send information back to the called process.
Built from primitive system commands, it becomes an interface for application programs. This is accomplished by a level of direction that allows the user to think of this structure as objects and operations on these objects.
Related to objects are classes. Classes can contain other classes and also hierarchies naturally. Inheritance creates object interfaces for implementing object manipulations such as deleting, reading, writing, and so on.
10. File Management
In this distributed operating system the file system is well mapped with an orientation to existing objects and their capabilities. This will seem abstract, especially for the user class. There are more extra levels in the mapping of existing files, starting from symbols, path name ordering, and their capabilities. Through this system local objects are no different from public objects.
In this system there is a kind of access level that is actually similar to UNIX. Each user and group has different access rights to each file or folder in the distributed operating system.
In the implementation of the Amoeba system, especially in the Netherlands, the access rights owned by users are limited to the rights to read files, write/create files, and delete files. With this, server security can be maintained.
The service to the existing directory is made very tight in terms of security. Even a kind of random code is made that will encode the file so that it is not easily read by anyone. The encryption code will be used again by the system to restore the file as it was to the user. This code will only be given to the owner of the file. So when the user accesses the file in question, the encryption code will be created by the system, so that the file owner can read it.
This directory service is also responsible for system backup. This will cause files to always be in a safe state, and more immune to disturbances that occur in the system, because this directory service stores a cache of files or directories that are on the system.
11. Process Management
In a true distributed operating system, each process resides in a virtual segment address. These processes can have more than one connection. These connections are allocated to processors until all processors are used up. The result of this process management is better utilization, where there is no need to switch if there is a heavy process, because one process is allocated to one processor. While for processes that do not get a place, they will enter the queue. These process connections use semaphores to indicate their activity (Tanenbaum p. 1).
Each process has its own control over its address space. Each process can add or remove segments from its virtual address space through mapping operations. Objects such as files contain capabilities, and the kernel is the one who reads them, and if the process is allowed, it can map or unmap segments to its virtual addresses.
To build a process, the process descriptor sends it to the kernel. This is known as sending a request to the process. A process descriptor can contain a host descriptor, process capabilities, capability handlers, and also a segment number.
The host descriptor contains what type this process is, and where it can run. It contains instruction lines, memory requirements, machine class, information, and so on. The kernel must have the same host descriptor to continue the process.
Process capabilities are a higher level than processes, governing what a process can do, or who it can only be done by. Capability managers are similar to this, but only work for abnormal processes.
The process address is encapsulated in an internal memory map. This map has an entry for each segment of addresses for a potential process. The entry contains the virtual address, segment length, segment mapping, and capabilities of the object that knows where the object was initialized.
There are also mapping links that describe other attributes, including defining the initial state of the link, processor status, program counter, stack pointer, stack base, register values, and the state of the calling system. This allows the descriptor to be used in the process.
Processes have two states, namely the process is running or stunned. Stunned occurs when the process still exists, but does not execute anything, or is in the process of being debugged. In this state, the kernel informs the communicator (another kernel) that there is a process in a stunned state. The other kernel tries to communicate with the process until the process is killed or the process is running again. Debugging and migration on this process are completed after stunning.
12. Distributed OS Types
There are various distributed operating systems that are currently circulating and widely used. The diversity of these systems is due to the increasing number of open source systems so that many build their own OS according to their respective needs, which is a development of existing open source OS.
Some examples of distributed operating systems include:
Open Source:
- Amoeba (Free University)
- Angel (City University of London)
- Chorus (Sun Microsystems)
- GLUnix (University of California, Berkeley)
- GUIDE
- Hurricane
- Mach (Carnegie Mellon University)
- Mach at OSF (OSF Research Institute)
- Maruti (University of Maryland) Group Members
- Masix (Blaise Pascal Institute MASI Laboratory)
- MOSIX (Hebrew University, Jerusalem, Israel)
- Plan 9 (Bell Labs Computing Science Research Center)
- Puma and relatives (Sandia National Laboratory)
Closed Source:
- E1
- Alpha Kernel (Carnegie Mellon University)
- QNX
- Spring Real-Time Project (University of Massachusetts, Amherst)
- Spring System (Sun)
- Sprite (University of California, Berkeley)
- Sting
- Sumo (Lancaster University)
- Tao Operating System (Tao Systems)
- Tigger (Trinity College Dublin)
- TUNES
Source
IlmuKomputer.Com || Author: Wahyu Wijanarko (wahyu.com)
Operating System Architecture Design
Substance
- DEFINITION OF OPERATING SYSTEM
- OBJECTIVES OF OPERATING SYSTEMS
- Properties of Operating Systems
- OPERATING SYSTEM COMPONENTS
- SUPERVISOR Or MANAGEMENT COMPONENT
- SUPPORTING COMPONENTS
- Basic Structure of Operating System
- Types of operating systems
- History of Operating System Development
1. Definition of Operating System
Definition according to the American National Student, an operating system is software that controls the execution of computer programs and is equipped with scheduling, error tracking, input-output control, accounting, compilation, storage, data management and relationship services.
2. Purpose of Operating System
Operating systems are intended to facilitate efficient use of computers. Operating systems optimally manage computer system resources.
3. Properties of Operating Systems
a. Usability (Ease of Use)
Easy to use, has a design to please the user (user friendly).
b. Generality
Having many benefits, the operating system is built to help and even make the user's work easier or facilitate what the user wants to do. The facilities offered by the operating system are marked by their general benefits. All program benefits must obtain data and produce data. The operating system is used in many ways.
c. Efficiency
Having a fast function, the OS makes the use of resources more optimal. The operating system is designed not only to serve a user, but also all users as a group. One of them is coordinating with users to share resources.
Computer system resources include:
- Main Storage
- One or more CPUs
- Input/output Device
- Channel / channel
- Secondary storage media
Whenever the CPU is waiting for a job or main storage is free, the OS collaborates with the user to maximize resource usage.
d. Visibility
It has many of the capabilities that users expect, so that they take maximum advantage of the operating system.
e. Flexibility
Customization of specifications to the interests of a job or environment. Examples for student, personal, business, or even professional classes.
f. Opacity (Transparency)
Have a usage permit, so that certain feature details cannot be known or used.
g. Security
Have data protection from unauthorized access
h. Integrity
Have protection for yourself and the user from anything that causes errors
i. Capability
Have limited capabilities.
j. Availability
Has many features, functions and time.
k. Reliability
Has a rare chance of failure.
l. Serviceability
Have the ability to repair yourself, recover or self troubleshoot.
m. Extensibility
Provides additional input and ease of modification.
4. Operating System Components
There are two main parts of an operating system, namely:
- Supervisor or management component
- Supporting Components
5. Supervisor or Management Component
This is part of the operating system function whose task is to control the entire data processing system environment.
The controlled functions include:
- Job Management, namely allocating resources that can be requested as priority to run programs (job scheduling).
- Task Management, namely supervision of resources that cannot be requested as priority for running a program.
- Data Processing, helps allocate storage down to the bottom level / files, and monitors all routines, all input output activities, including user interfaces, as well as space management, access methods or program flows, buffer management and error correction.
6. Supporting Components
This is part of the operating system function which is responsible for maintaining data/records, supporting additional programs and other input support.
7. Basic Structure of Operating System
a. Monolithic system
The operating system as a collection of procedures can be called by other procedures when necessary. UNIX example.
Weakness:
- Testing and eliminating errors are difficult because they cannot be separated and localized.
- Difficulty in providing security facilities.
- Not flexible because the computer does not actually implement all the services provided.
- A single programming error in one part of a kernel can bring down the entire system.
Superiority:
Services can be performed very quickly because they are in one address space.
b. Layered system
Operating systems are formed hierarchically based on layers where the lower layers provide services to the layers above them.
The layered structure is intended to reduce the complexity of operating system design and implementation. Each layer has a function and I/O interface between 2 adjacent layers that are well defined.
Examples: modified UNIX, venus, THE, OS/2.
Weakness:
SO functions must be assigned to each layer carefully.
Superiority:
- Having the advantage of modular design, each layer can be designed, coded and tested independently.
- The layered approach simplifies the design, specification and implementation of operating systems.
8. Types of Operating Systems
a. Batch Processing System
This is a type characterized by the fact that only one user program can be run by the computer and completed completely before the next program can be used.
b. Multi Programming System
This is a system that has the characteristic that more than one process can be run in the same computing system at the same time.
c. Time Sharing / Multi Tasking System
- Like multiprogramming only time is limited.
- A process uses the CPU for a certain amount of time, after which the CPU is used to work on other processes.
- The maximum time required to use the CPU is called Quantum Time.
d. Multi Processing Systems / Tightlycoupled Systems
It is a system that has more than one processor, so it is able to run one or more programs, using the bus, clock, memory, and other equipment together.
Multi Processing System is divided into 2:
- Symmetric multiprocessing, namely each processor has the same operating system.
- Asymmetric multiprocessing, namely a processor functions as a master processor (managing scheduling and allocating work for each processor) while another processor functions as a slave.
e. Distributed Systems / Loosely Coupled Systems
It is a collection of processors that do not share memory or clock.
Profit:
- Shared use of resources
- Computing speed
- Reliability, process failure factors can be reduced
- Communication, the transfer of data from one program to another.
f. Real-Time System
It is used if an operation requires precise timing from the processor or data flow and is often used as a controller for certain applications.
There are two forms of real time systems:
- Hard real time, which ensures critical tasks can be completed on time.
- Soft real time, which gives priority to critical tasks compared to other tasks until the critical task is completed.