136 Information Technology for Management
system programs are loaded into primary storage as needed and are removed when they have
completed their tasks.
Types of Operating Systems
There are several basic types of operating systems, including single user, multi-programming
(concurrent), time sharing, multiprocessing, virtual storage, real time, and virtual machine
operating systems. A particular operating system may exhibit characteristics from one or more
of the various types.
• Single User Operating System. A single user operating system allows one program
to be executed at a time, and that program must finish executing completely before the
next can begin. This type of operating system is often found with old generation personal
computers, for example, Microsoft’s DOS (Disk Operating System) and also the older
version of Windows. The goal of this type of operating system is to ensure maximum ease
of use and minimum professional support.
• Multi-programming Operating System. This type of operating system permits
multiple programs to share a computer system’s resources at any given time through
concurrent use of a CPU. It allows a computer to do several things at the same time. The
multiprogramming creates logical parallelism. The concept of multi-programming is that
the operating system keeps several jobs in memory simultaneously. The operating system
selects a job from the job pool and starts executing a job, when that job needs to wait
for any i/o operations the CPU is switched to another
job. So the main idea here is that the CPU is never idle. The multiprogramming is the tech-
nique of running several programs
The Unix operating system is an example of a multi-
at a time using timesharing.
programming operating system.
• Time-Sharing Operating System. A time sharing
operating system allows multiple users to access a single computer system. The attention
of the CPU is shifted among users on a timed basis, which is controlled by the operating
system. As long as the computer system does not have
more users than the operating system can handle, it A time-sharing operating system
appears as if each user has uninterrupted access to uses CPU scheduling using time-
slice.
the CPU. However, if the number of users exceeds
the operating system’s capability, noticeable delays in
processing result.
The time sharing operating systems allocate specific periods of time, or time slices, for
the execution of instructions of a particular program. These time slices are usually only
a fraction of a second long and are controlled by the operating system through the use of
time slice interrupts generated by a hardware clock. The time sharing concept enables
each user’s program to receive processor time at regular intervals, thus preventing anyone
program from monopolising the CPU. When an event interrupt occurs (i.e., an input/output
request), the operating system may switch to another program before a full time slice is
used. This capability allows the CPU to be used more efficiently. Keeping track of the job
next in line for processing is one of the responsibilities of the operating system.
Computer Software 137
• Multi-tasking Operating System. The multitasking is the logical extension of multi-
programming. The concept of multi-tasking is quite similar to multi-programming but
difference is that the switching between jobs occurs so frequently that the users can
interact with each program while it is running. This The multi-tasking is simultane-
concept is also known as time-sharing systems. A ous execution of multiple tasks or
time-shared operating system uses CPU scheduling programs under the control of an
and multi-programming to provide each user with a interrupt-driven operating system.
small portion of time-shared system.
• Multi-threading. The multi-threading is similar to multitasking, but enables the
processing of multiple threads at one time, rather than multiple processes. Since threads
are smaller, more basic instructions than processes, multi-threading may occur within
processes. By incorporating multi-threading, programs can perform multiple operations
at once. For example, a multi-threaded operating system may run several background
tasks, such as logging file changes, indexing data, and managing windows at the same
time. The web browsers that support multi-threading can have multiple windows open
with JavaScript and Flash animations running simultaneously. If a program is fully multi-
threaded, the different processes should not affect each other at all, as long as the CPU has
enough power to handle them. Similar to multitasking,
The multithreading is a program-
multithreading also improves the stability of programs.
ming and execution model that
However, instead of keeping the computer from allows multiple threads to exist
crashing, multithreading may prevent a program from within the context of a single pro-
crashing. Since each thread is handled separately, if cess.
one thread has an error, it should not affect the rest of
the program.
• Multi-processing Operating System. A multi-processing operating system allows
the simultaneous execution of programs by a computer that has two or more CPUs.
Each CPU can be dedicated to one program, or each CPU can be dedicated to specific
functions and then used by all programs. Many computer systems such as mainframes
and supercomputers have more than one CPU. A more common form of multi-processing
involves the use of a single large main CPU that is The multi-processing is running of
connected to multiple channels. Each channel is a two or more programs simultane-
processing unit that handles input and output from the ously by a computer with more
main CPU and coordinates the work of slower input/ than one central processor.
output devices.
• Virtual-storage Operating System. A virtual-storage operating system allows the
use of a secondary storage device as an extension of primary storage. The virtual storage
was developed after some limitation was faced in multiprogramming operating systems of
insufficient primary storage to store an entire program. A virtual-storage operating system
can resolve this problem by rapidly accessing the part of the program residing in secondary
storage. The portions of a program can be swapped between a secondary storage device
and primary storage as needed, giving the illusion of having the maximum amount of
primary storage in the CPU available to each user. With a virtual storage operating system,
138 Information Technology for Management
the user need not worry about how much primary storage is available since the program
is segmented into pages. A page is a storage area of predetermined size that contains a
certain number of instructions. The pages are kept on secondary storage devices and are
swapped in and out of primary storage as needed.
• Virtual Machine (VM) Operating System. A virtual machine (VM) operating system
is a very powerful programme that can run several different operating systems at one time.
It allows several users of a computer system to operate as if each had the only terminal
attached to the computer. Thus, users feel as if each is on a dedicated system and has sole
use of the CPU and input and output devices.
After a VM operating system is loaded, the user chooses the operating system that is
compatible with the intended application. Other operating systems, such as the virtual-
storage operating system, appear as just another application program to the VM operating
system. Thus, the VM system gives users flexibility and allows them to choose an operating
system that best suits the needs of a particular application.
• Mobile Operating Systems. An operating system for mobile devices, it is the software
platform that helps in running a mobile application. It is meant for all kinds of mobile
devices like handheld computers, set top boxes, mobile telephones, smart phones, PDAs,
and factory floor equipment. The examples of mobile operating systems include embedded
Linux, Microsoft’s Windows CE, and Pocket PC, Windows Embedded NT 4.0, and Palm
OS.
PROGRAMMING LANGUAGES
So for we have talked about operating systems softwares that seek to optimise the utilisation of the
hardware and to meet the demands of users. The application softwares, by contrast, is primarily
concerned with accomplishing the tasks of end users. Of the hundreds of different programming
languages available, all fit into one of the four general categories: machine, assembly, high level,
and fourth generation languages.
Machine Language
The machine language is made up of 1s and 0s and is the only programming language that
the computer can understand. However, there is no single universal machine language. The
arrangement of 1s and 0s to represent similar instructions, data, and memory locations differs
among computers because of different hardware designs.
The machine language programs have the advantage of fast execution speeds and efficient use
of primary memory. However, writing machine language is a very tedious, difficult, and time-
consuming method of programming. As a low level language, it requires that the programmer
has detailed knowledge of how the computer works since every detail of an operation must be
specified. As you might imagine, it is easy to make an error but very difficult to remove it from
(debug) a machine language program.