2. Operating system architecture : A BCA Notes


 Operating system architecture

(i) System Call

System Calls provide an interface between the process and the operating system. System calls allows user-level processes to request some services from the operating system it will enter in the Kernel mode, where it has access to privileged instruction, and can perform the desired service on the critical nature of operations that the OS itself does them every time they are needed. For example, for I/O a process involves a system call telling the OS to read or write particular area and this request is satisfied by the OS.

(ii) System Program

System program provide basic functioning to user\so that \they do not need to write their own environment for program development (editors , compilers) and program execution (shells). In some sense, they are bundles of useful system calls.

Operating system architecture

Operating system architecture deals with methodology of operating system design. The various famous operating system architecture are monolithic, micro and hybrid kernels, exokernels, module virtual machines etc.

(a) Monolithic design approach

Many  commercial system do not have well define structure such OS started as small simple and limited systems and then grown beyond their original score. E.g. M.s-dos was originally designed and implement by a few people who have no idea that it could become so popular. It was written to provide the most functionality in the list space so it was divided into layer and modulus carefully. The interface and level of functionality are not well separated.
    For instance application program are able to access basic I/O routine to write directly to the display and drive, such freedom causing entire system crash when the user program fail. It was also limited by the hardware of its era because the Intel 8088, for which it was written no dual mode and no hardware protections, The designer of ms-dos has no choice, but to ;leave the base hardware accessible.

(b). Layer design approach 

With the proper hardware support OS can be broken into peace that are smaller and more appropriate and those allowed by the original MS-dos. The OS can be then written much greater control over the computer and application that makes the use of the computer. Designers have more freedom in changing inner working of the system. Under  the top down approach the overall functionality and feature are determine and separated into components information hiding is also important because its leave program free to implement low level routines.
    Assistance can make modular in many ways, one method is layer approach in which the OS is the bottom layer (layer O) is the the hardware and highest layer (layer N) is the user interface.

Operating system architecture

Disadvantages of layer design approach

The major difficulty with the layer approach involves defining the various layer because layers can be a lower level, carefully planning is necessary other difficulty was layer implementation  tend to be less efficient than other types. A final problem was banking store driver, because the drivers may be needed to wait for I/O and the CPU can be rescheduled during this time.

(c). Micro Kernel design approach

This design approach the OS by removing or no essential components from the kernel and implementation then as a system and user level programs the result is smaller kernel. There is little difference regarding which services should be implemented in user space, typically it provide minimum process and memory management in addition to communication facility between the client program and the various services that are also running in user space. Communication is provided by massage passing. it was also easy to extend the passing. It was also easy to extend the OS. Many new services were added to use space and consequently do not require modification of the kernel security and liability like fail of service was not affecting reset of the OS process. It was easier to port the OS to the new architecture.
    Unfortunately micro kernel has suffer from performance decrease due to increased in system functions overhead of user space to kernel space communication.

(d). Exokernel design approach

Exokernel ary timmy. since functionality are limited to ensuring protection and multiplexing of resources which are vastly simpler than conventional microkernel implementation of massage passing and monolithic kernel implementation of obstruction.
    Implemented applications are called library OS, They may request specific memory address disk block, etc. The kernel only ensure that they require resource is free and the application is allowed to access it. This low level hardware access allows the programmer to implement custom abstraction and can omit unnecessary ones, most commonly to improve a program performance to chose what level of abstraction the want i.e. high or low.
    Exokernel can be seen as application of the end-to-end principle to OS in that they do not an application program, to layer its abstraction on top of other abstraction that will design requirements in mind.
    Disadvantage is that, the exokernal technology is still not thoroughly researched. Moreover the added flexibility for user space program also means to theoretically possible to provide library OS taht has enable mac OS, windows and Linux application to run simultaneously on the same system that could also mean different look different feel for each of them. In addition different library OS may hav bearing level of capability and enter operability with each other.
    It can be difficult to design exokernel interface the designer must develop educate and appropriate to low level hardware and delicately balance the power and enough protection. The ease of creation and misxing of library could leave to maintenance and system administrative information that could be use that an kernel can be lost if the related abstraction are implement in library rather than kernel.

(e). Module design approach 

The best current methodology for OS design involves using objects oriented  programming techniques to create a modular kernel here the kernel has a set of care components and dynamics links in additional services either during boot time or during run time. Such strategy users dynamically loaded the modules and are common in modern implementation many of the OS has been structured organized around a core kernel with 7 types of loadable kernel modules.
  1. Scheduling classes.
  2. File systems.
  3. Loadable system calls.
  4. Executable formats.
  5. String formats.
  6. Miscellaneous.
  7. Device and bust driver.
 Such a design allows the kernel provide co-services and also allow certain feature to be implemented dynamically. The overall result resumption a layered system in that each kernel section has defined, protected interfaces, but it is  more flexible than the layered system. Furthermore the approach is like the micro kernel approach in that is like the micro kernel approach in that primary modules has only the core function and knowledge of how to load and communicate with other module, but it is more efficient modules does not meet to unbox massage passing in others to communicate.

(f). Virtual machine design approach

The layered approach of OS is taken to its logical conclusion in the concept of virtual machines the fundamental idea behind the virtual machine is to abstract the hardware of a single computer into several different execution environments and there by evolution that each separate execution environment is running its own private computer. By using the CPU scheduling and virtual memory techniques, an OS can create he illusion that a processor has its own processor with its own virtual memory. Normally a process has additional features, such as system calls and the file system, which are not provided by the hardware. The virtual machine approach does not provide any such additional functionality but rather then interface. That is identical to the underlying bare hardware. Each process is provided with the virtual copy of the underlying computer.

(1.) Hardware virtual machine

The original meaning of virtual machine,sometimes called the hardware virtual machine is that of a number of discreet identical execution environment on signal computer, each of which runs a different OS or provide execution " send boxes" which provide a greater level of isolation between processes then is achieved when running multiple processes on the same instance of an OS one use is to provide multiple user the illusion of having an entire computer, one that is there private machine, isolated from other users, or on a  single physical machine. Another advantage is that booting and restoring a virtual machine can be much faster than with a physical machine, since it may be possible to skip tasks such as hardware initialization.
    Such software is now often referred to which the term virtualisation and virtual server. The host software which provides this capability is often referred as an virtual machine monitor or hypevisor.
    Software virtualisation can be done in three major ways that is immolation paravirtualisation and native or full virtualization.

(i.) Emulation :- Full system simulation or full virtualization with dynamic recompilation that is virtual machines simulates the complete hardware.

(ii.) Para virtualization :- The virtual machine does not stimulate hardware but instead offers a special API (Active  Program Interface) that requires OS modification 

(iii.) Native/full Virtualization :- The virtual machine only piously simulate enough hardware to allow an unmodified OS to be run in isolation, but the guest OS must be designed for  the same type of CPU. The term native virtualization also somelines used to designate that hardware assistance to the virtualization technology is used.

(2.) Application Virtual Machine 

Another meaning of virtual machine is a piece of computer software that isolates the application begin used by the user from computer because version of the virtual machine are written for the various computer platforms, any application written for the virtual machines can be operated on any of the platforms, instead of having to produce separate versions of an application for each computer and OS.
    The application run on the computer using an interpreter or just in time compilation. One of the best example of this JVM ( Java Virtual Machine).

(3.) Virtual Environment 

 A virtual environment also referred as virtual private server, is another kind of virtual machine. Infact it is an virtualized environment for running user-level programs that is not the OS kernel and drivers, but the applications. Virtual environments are created using the software implementing OS-level virtualization approach.

(4.) Machine Aggregation 

A less common use of the term is to referred to a computer cluster consisting many computer that have been aggregated together as a large and more powerful virtual machine. In this case the software allows a single environments to be created spanning multiple computers so that the end user appears to be using only one computer rather than several.
    PVM (parallel virtual Machine) and MPI (message passing interface) are two common software packages that permit a heterogenous collection of network to be used as a single and large parallel computers thus large computation software can be solved more cost effectively by using the aggregate power and memory of many computers then with a traditional super computer.

(5.) Mechanism and policies

The policy means what is to be done and the mechanism specifies how it is to be done. For instance the timer is set for a particular user is a policy decision. The separation of mechanism and policy is important to provide flexibility to the system if the interface between mechanism and policy is well defined, the change of policy may affect only a few perimeter. on other hand if the interface between these too is vague or not well defined, it gives a programmer to choose using his/her own implementation. Also the understanding implementation may be changed for the more efficient one without much trouble if the mechanism and policy are well defined. Specifically separating these two provides flexibility in the variety of vague.

1.) The some mechanism can be used to implement a variety of policies, So changing the policy might nor require the development of new mechanism, but just a change in parameters for that mechanism, form a library of mechanism.

2.) The mechanism can be changed that is to increase its efficiency of to move to a new platform, without changing the overall policy.

Assignment 

1. Differentiate between hardware virtual machine and software virtual machine.
2. What are the techniques to realise virtual machine concepts?
3. Describe OS-level virtualisation. 

No comments:

Post a Comment