Scheduler is the most critical system of an Operating System. In order to optimize the utilization of processors, several scheduling algorithms are used. When the system has various processes to execute, it must have a capability to make decisions about which process to run at the given time slot. This strategy should keep in view the concepts of maximizing throughput, minimizing latency and also avoiding the process starvation etc. Many scheduling algorithms are widely used nowadays.
Scheduling is the core concept in OS design. In multiprogramming, the processes that are loaded in the main memory strive for the resources i.e. processor time. During the execution of one process, other processes wait for any event to occur or for an I/O operation to be performed. Scheduling regulates the execution of these processes i.e. which process will run and which process will wait. The objectives that must be fulfilled by the scheduling algorithm include effective utilization of the processor time, throughput and turnaround, response time and fairness. OS can be categorically divided into three different types of scheduling i.e. long term scheduling, short term scheduling and medium term scheduling.
Latest multi user systems can run a hundreds of applications concurrently, yet these systems provide some isolation between users. However, absence of isolation may lead some users towards poor performance or intentional or unintentional DoS (Denial of Service). In recent computational clusters, these problems are easily prevented by using the concept of jobs and job schedulers. This postpones the job until resources are available and schedule it after the availability of all the possible resources.
An operating system may be the best known software that we run on our personal computers, it’s what takes proper care of virtually everything on the computer, while nearly all computer systems we have seen are actually one ‘type’ of operating-system carrying out exactly the same functions. OS could be branched into a number of different types too. Inside the broad group, you will find many types of OS which are mainly categorized based on the kinds of computer systems they control and also the kind of programs they support.
Depending upon the nature of domain, OS can be divided into some of the following types.
1. Real Time OS:
A Real Time Operating System (Usually known as RTOS) is specifically designed for serving the real time application requests. The major characteristic of a real time OS is its consistency level that it takes to accept and finish any task of the associated applications.
2. Embedded OS:
The Embedded systems are resource limited systems and commonly response time is an extremely significant requirement. As the most important parts of real-time embedded OS, scheduling algorithms are presented to improve the real-time of the embedded systems. The most existing real-time scheduling algorithms are based on the processes with little consideration about the resources in the systems.
3. Network OS:
The network operating system (NOS) is the software that is installed on a server and allows the server to manage data, groups, users, applications, security, and many other networking tasks. The network OS is designed to allow shared file and printer access among multiple computers in a network, typically a local area network (LAN), private network or to other networks.
4. Mobile OS:
A mobile operating system (mobile OS) is designed to control a smartphone, tablet, PDA, or other mobile device. Modern mobile OS combine the features of a personal computer OS with touch screen, cellular, Bluetooth, WiFi, GPS mobile navigation, camera, video camera speech recognition, voice recorder, music player, Near field communication and personal digital assistant (PDA), and many other features.
In 2006, Windows Phone, Android, Bada and iOS were not yet developed and just 64 million smartphones were then sold. Today, nearly 10 times as many smartphones are already sold and the best mobile OS has been promoted as “smartphones” by the market share which includes BlackBerry, Android, Symbian, Apple, iOS, Meego, Bada, and Windows Phone.
5. Distributed OS:
A distributed operating system is the logical aggregation of OS software over a collection of independent networked, connected, communicating, and physically distinct computational nodes. The management components collection and micro-kernel operates together. They provide a support for the system’s aim of integrating numerous resources and processing functionality into an effective and established system.
In this article, a review study of different operating system was performed. The ease of techniques that are used supports the statement that the scheduling algorithms provide user friendly, highly flexible and most optimal solution to any ordinary problem related to job sequencing. This work can be extended by considering, reviewing and evaluating the dynamic scheduling algorithms and job sequencing problems in the particular domain.