Skip to main content

System Structure

Article No: 5


Simple structure

Many commercial systems do not have a well defined structure. Frequently such operating system started as small, simple and limited systems, and then grew beyond their original scope. MS-DOS is an example of such a system. It was originally designed and implemented by a few people who had no idea that it would become so popular. It was written to provide the most functionality in the least space (because of limited hardware on which it ran), so it was not divided into modules (parts).



FIGURE 1.3 Simple structure

UNIX was the other system that was initially limited by hardware functionality. It consists of two separable parts: the kernel and the system programs. The kernel is further separated into series of interface and device drivers which were added and expanded over the years as UNIX evolved. The kernel provides the file system, CPU scheduling, memory management and other operating system functions through system calls.

Layered approach

The modularization of a system can be done in many ways. One method is the layered approach, in which operating system is broken up into a numbered layers (or levels), each built on top of lower layers. The bottom layer (layer 0) is the hardware; the highest layer (layer N) is the user interface.




FIGURE 1.4 Layered approach

Each layer is implemented with only those operations provided by lower level layers. A layer does not need to know how these operations do. Hence, each layer hides the existence of certain data structure, operations and hardware from higher-level layers.

Advantages

1.      Modularity. The layers are selected such that each layer uses the functions and services provided by its immediate lower layer.
2.      Effect. If there is an error in any layer than it will not affect to any other layer.
3.      Easily debug.

Disadvantages

1.      If the layer is not defined clearly than it may create problem because every layer is dependent on other, and it will create problem to all layers above it.
2.      If parameters are passed than there are more chances of loss of information.
3.      It is time consuming, because if any request is send than it will have to pass through every layer.


Microkernel

As the UNIX operating system expanded, the kernel becomes large and difficult to manage. In mid 1980’s an operating system called Mach that modularizes the kernel using the microkernel approach. This method structures the operating system by removing all unimportant components from the kernel, and implementing them as system-and-user level programs. The only services provided by the kernel in this model are low-level device management, a limited amount of low-level process management, and some memory management. All other operating system services, such as file management, additional process and memory management activities, and security are implemented as user-level server process. The result is a smaller kernel. Microkernel typically provide minimal process and memory management, in addition to a communication facility.



FIGURE 1.5 Micro kernel

The main function of the microkernel is to provide a communication facility between the client program and the various services that are also running in user space. Communication is provided by message passing. The client program and the service never interact directly. With the help of microkernel, client program and the services are interacted.

The Mach kernel maps UNIX system calls into messages to the appropriate user-level services. The apple Mac OSX server operating system is based on the Mach kernel.

Advantages

1.      Extendibility. All new services are added to user space and consequently do not require modification of the kernel. When the kernel does have to be modified, the changes tend to be fewer, because microkernel is a smaller kernel.
2.      Security. User modes can communicate each other with the help of kernel only, otherwise they can’t communicate.
3.      Reliable. It is more reliable because if a service fails, the rest of the operating system remains untouched.
4.      Portable. It can be easily transfered from one process to another.
5.      Time saving. If any request is sent than it won’t pass to every layer.


Resources Used:

1. Operating System (By: William Stailings)
2. Operating System Concepts (By: Galvin)

Compiled By: Chaudhary Amit V.

Comments

Popular posts from this blog

Characteristics of a Good Programming Language

Till now there are many high level languages which are very popular, and there are others, which could not become so popular in-spite of being very powerful. There might be many reasons for the success of a language, but one obvious reason is the characteristics of the language. Several characteristics believed to be important with respect to making a programming language good are briefly discussed below. Simplicity A good programming language must be simple and easy to learn and use. For example, BASIC is liked by many programmers only because of its simplicity. Thus, a good programming language should provide a programmer with a clear, simple and unified set of concepts which can be easily grasped. It is also easy to develop and implement a compiler or an interpreter for a programming language that is simple. However, the power needed for the language should not be sacrificed for simplicity. The overall simplicity of a programming language strongly affects the readability of the pr...

Angular 4 and Firebase Authentication: Setup

If you have come to this article, it means you are keen to learn new technology and that too Firebase. I love Firebase because it provides all basic but important features of any web application. Take for example, authentication, which is cumbersome and risky if not implemented with utmost care. And when we have the integration of Angular and Firebase, it becomes a lot easier for a developer to build such crucial modules in less time with minimal efforts. In this article we will create a simple Angular application using Firebase. I am going ahead with the understanding that you know the benefits of Firebase and have little knowledge about it. There are plenty of posts out on the web if you are behind. Step 1: Install Angular CLI (if not installed). npm install -g angular-cli Step 2: Create new Angular 4 project. By default now angular CLI will create Angular 4 project so you need not fret. ng new firebase-authentication Step 3: Check whether the ne...

Switch-case, simple calculator . . .

11.      Write a program to perform some mathematic functions with the help of “switch-case” statement. #include<stdio.h> #include<conio.h> void main() { int a,b,ans; char c; clrscr(); printf("\ Enter a and b:"); scanf("%d%d",&a,&b); printf("\n Enter operator:"); fflush(stdin); scanf("%c",&c); switch(c) { case'+':ans=a+b;       break; case'-':ans=a-b;       break; case'*':ans=a*b;       break; case'/':ans=a/b;       break; } printf("\n ans %d",ans); getch(); } 12.      Print the Fibonacci series #include<stdio.h> #include<conio.h> void main() { int a=1,b=1,s=3,c,ch; clrscr(); printf("how many steps="); scanf("%d",&ch); printf("%5d%5d",a,b); for(s=3;s<=ch;s++) {       c=a+b;       printf("%5d",c);       a=b;    ...