Types of OS
Types of OS
most primitive
requires the program, (Era Johri) data, and
appropriate system commands to be submitted
together in the form of a job
allow little or no interaction between users and
executing programs
has a greater potential for resource utilization than
simple serial processing in computer systems
serving multiple users
Due to turnaround delays and offline debugging,
batch is not very convenient for program
development
Adv:
o Programs that do not require interaction and
Multiprocessor OS
In general, the multiprocessing or multiprocessor operating systems manage the operation
of computer systems that incorporate multiple processors.
Multiprocessor operating systems are multitasking operating systems by definition because
they support simultaneous execution of multiple tasks (processes) on different processors.
Depending on implementation, multitasking may or may not be allowed on individual
processors.
Except for management and scheduling of multiple processors, multiprocessor operating
systems provide the usual complement of other system services that may qualify them as
time- sharing, real-time, or a combination operating system.
Multithreading
Multithreading allows different parts of a single program to run concurrently.
The programmer must carefully design the program in such a way that all the threads can
run at the same time without interfering with each other.
Time-sharing system
Time-sharing is a popular representative of multi-programmed, multi-user systems.
In addition to general program-development environments, many large computer-aided
design and text-processing systems belong to this category.
One of the primary objectives of multi-user systems in general, and time-sharing in
particular, is good terminal response time.
Giving the illusion to each user of having a machine to oneself, time-sharing systems often
attempt to provide equitable sharing of common (Johri E) resources.
For example, when the system is loaded, users with more demanding processing
requirements are made to wait longer.
This philosophy is reflected in the choice of scheduling algorithm. Most time- sharing
systems use time-slicing scheduling.
In this approach, programs are executed with rotating priority that increases during waiting
and drops after the service is granted.
In order to prevent programs from monopolizing the processor, a program executing longer
than the system-defined time slice is interrupted by the Operating System and placed at the
end of the queue of waiting programs.
This mode of operation generally provides quick response time to interactive programs.
Memory management in time-sharing systems provides for isolation and protection of co-
resident programs.
Some forms of controlled sharing are sometimes provided to conserve memory and possibly
to exchange data between programs. Being executed on behalf of different users, programs
in time-sharing systems generally do not have much need to communicate with each other.
As in most multi-user environments, (Era J) allocation and de-allocation of devices must be
done in a manner that preserves system integrity and provides for good performance.
Real-time systems
Real time systems are used in time critical environments where data must be processed
extremely quickly because the output influences immediate decisions.
Real time systems are used for space flights, airport traffic control, industrial processes,
sophisticated medical equipments, telephone switching etc.
A real time system must be 100 percent responsive in time.
Response time is measured in fractions of seconds. In real time systems the correctness of
the computations not only depends upon the logical correctness of the computation but also
upon the time at which the results is produced.
If the timing constraints of the system are not met, system failure is said to have occurred.
Real-time operating systems are used in environments where a large number of events,
mostly external to the computer system, must be accepted and processed in a short time or
within certain deadlines.
A primary objective of real-time systems is to provide quick event-response times, and thus
meet the scheduling deadlines. User convenience and resource utilization are of secondary
concern to real-time system designers.
It is not uncommon for a real-time system to be expected to process bursts of thousands of
interrupts per second without missing a single event.
Such requirements usually cannot be met by multi-programming alone, and real-time
operating systems usually rely on some specific policies and techniques for doing their job.
The Multitasking operation is accomplished by scheduling processes for execution
independently of each other. Each process is assigned a certain level of priority that
corresponds to the relative importance of the event that it services.
The processor is normally allocated to the highest-priority process among those that are
ready to execute.
Higher-priority processes usually preempt execution of the lower-priority processes.
This form of scheduling, called priority-based preemptive scheduling, is used by a majority of
real-time systems.
Unlike, say, time-sharing, the process population in real-time systems is fairly static, and
there is comparatively little moving of programs between primary and secondary storage.
On the other hand, processes in real-time systems tend to cooperate closely, thus
necessitating support for both separation and sharing of memory.
Time-critical device management is one of the main characteristics of real-time systems.
In addition to providing sophisticated forms of interrupt management and I/O buffering,
real-time operating systems often provide system calls to allow user processes to connect
themselves to interrupt vectors and to service events directly.
Some embedded real-time systems, such as an onboard automotive controller, may not
have any secondary storage.
The primary objective of file (Prof Johri E) management in real-time systems is usually speed
of access, rather then efficient utilization of secondary storage.
Parallel OS
Distributed OS