Daily News Online
   

Tuesday, 12 July 2011

Home

 | SHARE MARKET  | EXCHANGE RATE  | TRADING  | OTHER PUBLICATIONS   | ARCHIVES | 

dailynews
 ONLINE


OTHER PUBLICATIONS


OTHER LINKS

Marriage Proposals
Classified
Government Gazette

Road to Modern Operating Systems

Over the years, there has been a gradual evolution of the structure and capabilities of the operating systems. In recent years many new design elements have been introduced into both new and new releases of the existing operating systems.

Modern operating systems respond to new developments in hardware like multi-processor systems and increased processor speeds, high-speed network attachments and increased memory. In the software application arena, multimedia applications, Internet and web access and client-server computing have greatly influenced new designs of operating systems.

The rate of change in demand on operating systems require not just modifications and enhancements to existing architecture but new ways of organizing the OS. Consequently much of the work fit into the following categories:

* Microkernel architecture

* Multithreading

* Symmetric multiprocessing

* Distributed operating systems

* Object Oriented Design

Microkernel architecture

Microkernel architecture assigns only a few essential functions to the kernel. It is like the operational manager of a company where he takes care of almost everything; forwards only critical issues to the CEO. Among the functionalities forwarded to the kernel by the microkernel, address spaces, inter-process communication (IPC) and basic scheduling are highlighted. Other operating system services are provided by processes, sometimes called servers that run in the user mode and are treated like any other application by the microkernel.

This approach decouples kernel and server development. Servers may be customized to specific application or environment requirements. Microkernel approach simplifies implementation, provides flexibility and it is well suited to a distributed environment. In a nutshell, a microkernel interacts with local and remote server processes in the same way, facilitating construction of distributed systems.

Multithreading

Multithreading is a technique in which a process, executing an application, is divided into threads that can run concurrently. Multithreading is useful for applications that perform a number of independent tasks that do not need to be serialized.

An example is a database server that listens for and processes numerous client requests. With multiple threads running within the same process, switching back and forth among threads consumes less processor overhead. Threads are also useful for structuring processes that are part of the OS kernel.

When we talk about multithreading we can make the following distinction:

Thread: Thread is a dispatchable unit of work which includes a processor context (which includes the program counters and stack pointer) as well as its own data area for a stack (to enable subroutine branching). (A stack is an implementation to store data to serve the principle of first in - last out) A thread executes sequentially and is interruptible so that the processor can turn to another thread.

Process: A collection of one or more threads and associated system resources (such as memory containing code and data, open files and devices). This can be compared to the concept of program execution. By breaking a single application into multiple threads, the programmer is eligible to control the modularity of the application and timing of the application related activities.

Symmetric multiprocessing

One of the easiest and cheapest ways to improve hardware performance is to put more than one CPU on board. This can be done by either making the different CPUs take on different jobs (asymmetric multi-processing) or by making them all run in parallel, doing the same job (symmetric multi-processing).

Asymmetric multi-processing effectively requires specialized knowledge about the tasks the computer should do, which is unavailable in a general purpose operating system such as Linux. On the other hand, symmetric multi-processing is relatively easy to implement.

By relatively easy, means that not that it’s really easy. In a symmetric multi-processing environment, the CPUs share the same memory, and as a result code running in one CPU can affect the memory used by another. You can no longer be certain that a variable you have set to a certain value in the previous line still has that value; the other CPU might have played with it while you were not looking. Obviously, it’s impossible to program like this.

In the case of process programming this normally is not an issue, because a process will normally only run on one CPU at a time. The kernel, on the other hand, could be called by different processes running on different CPUs. A symmetric multiprocessor can be defined as a standalone computer system with the following characteristics:

1. Multiple processors.

2. These processors share the same main memory and I-O facilities, interconnected by a communications bus or other internal connection scheme.

3. All processors can perform the same functions (hence the term symmetric comes)

Distributed operating systems

A distributed operating system is the logical aggregation of operating system software over a collection of independent, networked, communicating and spatially disseminated computational nodes. Each individual system node holds a discrete software subset of the global aggregate operating system. Each node-level software subset is a composition of two distinct provisioners of services.

1. A ubiquitous minimal kernel, or microkernel, situated directly above each node’s hardware. The microkernel provides only the necessary mechanisms for a node’s functionality.

2. Higher-level collection of system management components, providing all necessary policies for a node’s individual and collaborative activities. This collection of management components exists immediately above the microkernel, and below any user applications or APIs that might reside at higher levels.

Object Oriented Design (OOD)

Object-Oriented Design is the process of planning a system of interacting objects (an object can be regarded as a blue print of a real world entity) for the purpose of solving a software problem. It is one approach to software design. So, another innovation in OS design is the use of this principle. OOD leads discipline to the process of adding modular extensions to even a small kernel. At the OS level, an object based structure enables programmers to customize an OS without disrupting system integrity.

Object-oriented concepts

The five basic concepts of object-oriented design are the implementation level features that are built into the programming language. These features are often referred to by these common names:

* Object or Class: A tight coupling or association of data structures with the methods or functions that act on the data. This is called a class, or object (an object is created based on a class). Each object serves a separate function. It is defined by its properties, what it is and what it can do. An object can be part of a class, which is a set of objects that are similar.

* Information hiding (Encapsulation): The ability to protect some components of the object from external entities. This is realized by language keywords to enable a variable to be declared as private or protected to the owning class.

* Inheritance: The ability for a class to extend or override functionality of another class. The so-called subclass has a whole section that is derived (inherited) from the superclass and then it has its own set of functions and data.

* Interface: The ability to defer the implementation of a method. The ability to define the functions or methods signatures without implementing them.

* Polymorphism: The ability to replace an object with its subobjects. The ability of an object-variable to contain, not only that object, but also all of its subobjects.

Caption: In recent years many new design elements have been introduced into both new and new releases of the existing operating systems

EMAIL |   PRINTABLE VIEW | FEEDBACK

LANKAPUVATH - National News Agency of Sri Lanka
www.army.lk
Telecommunications Regulatory Commission of Sri Lanka (TRCSL)
www.news.lk
www.defence.lk
Donate Now | defence.lk
www.apiwenuwenapi.co.uk

| News | Editorial | Business | Features | Political | Security | Sport | World | Letters | Obituaries |

Produced by Lake House Copyright © 2011 The Associated Newspapers of Ceylon Ltd.

Comments and suggestions to : Web Editor