HOW OPERATING SYSTEM WORKS
Software
program that is needed to make addressing simpler, make input/output cleaner,
simplify job, file, task management and manage the overall resources of a
computer that’s called operating system.
Operating
system added efficiency to computing. Many stages of computing cycles were
still done manually such as mounting data media, scheduling jobs, monitoring
time use, controlling access to the single computer and managing resources.
This made job turnaround time long (often hours or days), inefficient and
costly. Modern operating systems have reduced typical turnaround time to
minutes and seconds, making computers more efficient and usable.
THE SYSTEM EXECUTIVE
An operating
system is the “orchestrator and conductor” of the hardware and software in a
computer system. For example, the operating system controls the input and
output peripherals and manages the loading of software programs into RAM.
Because the operating system is responsible for the access to and transfer of
applications data and system data among the components that make computer a
working system, it is sometime called the system executive.
The
operating system serves several purposes related to application programs. To
begin with, it establishes a command-processor interface enabling the user to
communicate with the computer. The interface varies from system to system.
On a
multiuser system, once the user has communicated the intention of running a
job, the operating system arranges for its execution through a scheduler. The
scheduler ensures that the files needed by the jobs are accessible and that the
resources such as memory and file needed by the computer are available. When
the scheduler has finished its work, another software component of the
operating system called the dispatcher gives the control of central processing
unit (CPU) to the job. The operating system
also acts as a resource allocator for the both hardware and software by
managing memory space, file storage space, use of the CPU and input/output
devices and by making choices about which requests for resources are satisfied
and in what order.
TIME SHARING
Batch
processing collected and ran all the jobs together that needed the same
resources such as FORTAN programs were batched so that the FORTAN compiler
could be loaded once and used repeatedly.
The need to
transfer the computer operator’s interactive role to the system itself led to
more sophisticated operating systems and interactive processing. Next came
multiuser systems and time sharing in which the CPU alternates between several
jobs while appearing to process them at the same time.
SCHEDULING ALGORITHMS
A scheduling
algorithms determines access to the CPU. One well-known scheduling algorithm is
first-in-first-go (FIFO), also called first-come-first-served
(FCFS).
Although such schemes seem fair they can also be inefficient. If a long job
precedes shorter ones on a queue (waiting line), the shorter jobs must wait
until the long job is finished.
Another
scheduling algorithm uses the shortest-job-first(SJF) priority scheme in which
the job with shortest time use of its current CPU burst time goes first on the
next scheduled burst time.
Scheduling algorithms
are classified as preemptive or non-preemptive. Non-preemptive algorithms do
not allow a job to be stopped once its CPU burst starts.
Preemptive
algorithms allow a job to be stopped either because it has used up an allocated
amount of time or because a high-priority job has arrived.
With
multiuser systems comes the necessity of protecting not only the integrity of
the system but also each user’s information from infringement by other users.
Protection of a computer system implies that the hardware and software that
control access to internal-resources information is available only in
designated users. Protection is the method or how the system is guarded. The
measure of protection called security, describes who has the right of access to
the protection.
SYSTEM TOOLS AND VIRTUAL MEMORY
Operating
systems offers tools to develop applications. These tools include the use of
text editor for writing software and the capability for loading machine into
memory code.
Let’s look
at these tools. Editors and debuggers make program development easier. Linkers
and loaders allow machine language to execute in the hardware, enabling a
program to run. Virtual memory combines the capacities of primary and secondary
storage devices, enabling you to write program without concern for the limits
of primary memory.
-EDITORS
A text
editor is a software utility program that allows you to create, add, delete and
change textual documents. This tool is supplied by the operating system to add
efficiency to the computer system. Text editors suited to programming have
features such as auto intending for pretty printing.
-DEBUGGERS
Most
operating system also support a debugger program to find logic errors in
executable code. The debugger offers tools like breakpoint to predefine a series
of temporary stop locations at chosen instructions. As each breakpoint is
reached in a program, the debugger temporarily stops the action while the
programmer queries the value of any variable being tracked. Debugger can also
single-step through a program, temporarily stopping after each instruction has
completely executed and displaying whatever
information you have requested. The way to avoid logical errors of
course, is to not make them in the first place. Careful algorithm design and
implementation are the best weapon for this.
-LANGUAGE TRANSLATOR
Computer is
an electronic device. The circuits inside any computer only works logically
when current is either present (1) or not (0). In others words we can say that
computer only understands language of zero’s and one’s (0,1) which is called
machine language, sometimes it may be called binary language.
Human’s
brain can understand decimal and characters whereas computers can only
understand machine language (0,1). If one say to that there are thirty-four
students in my class you quickly understand that there are 34 students in class
but if you type 34 in the column of how many students your class in computer then this process does
not works because computer can’t understand decimal or any other data type it
can only understand binary data type.
So, there’s
a need of software was occurred to convert human understandable language into
machine language and vice-versa. A translator is a
computer program that translates a program written in a given programming
language into
a functionally equivalent program in a different language.
All computer programs run on machine code that is executed
directly on computer architecture. Machine code is not easily read or
programmed directly by humans. Essentially, machine code is a long series of
bits (i.e. ones and zeroes). In order to program, humans write code in a
language that is then translated in to machine code. There are three basic
approaches to program translation.
* Assemblers
* Compilers
* Interpreters
* Assemblers
* Compilers
* Interpreters
Assemblers
Assembly languages are more easily translated in to machine code than high-level programs languages. Each assembly language statement directly corresponds to one or more machine instructions. Another way to think about this is that assembly language code is simply an abbreviated form of machine code. Thus, to transform a program from an assembly language to machine code all that must be done is that the instructions must be converted from their mnemonic abbreviations into their equivalent string of ones and zeroes. This transformation process is known as assembling and is accomplished by an assembler.Compilers
A compiler is a computer program that converts an entire program written in a high-level language (called source code) and translates it into an executable form (called object code).Interpreters
An interpreter is a computer program that takes source code and converts each line in succession. At each step it executes the high-level statement. In other words, it doesn't have to examine the entire program before it can begin executing code. Thus, programs that are interpreted lend themselves to interactive programming. However, programs that are interpreted will generally run much slower than programs that are compiled.LINKERS AND LOADERS
When source code is translated into object code, it is
probably not ready for immediate execution. It may need other machine code to
execute properly. This code can be information from input and output routines, system
library functions, external subprogram created by the user, and other system
need. All the parts of a source program are assembled by a software utility
program called linker. Linker organizes the various code modules and generated
and integrated machine language object called a load module. The load module is
what goes into the memory of the computer. The load module is put into memory
by another software utility program called a loader. Loader ensures that the
portion of the program that is put into memory fits into its allotted memory
space.
No comments:
Post a Comment