Professional Documents
Culture Documents
Operating Systems Overview
Operating Systems Overview
The Operating System acts as a mediator and an extension between the Application Program’s
commands and the Hardware. The OS manages the resources needed by the application and throws the
application commands to the respective hardware that will be used.
• A simple flow would be:
o The End-user asks for the retrieval of a file.
o The Apps/Programs asks the Operating System for resources and sends the procedure
(process) to the respective hardware.
• The operating system manages the given/needed resource and gets the procedure (process) and
throws it to the processor in order to process it. The processor returns the processed output to the
OS. The OS returns the output to the App and directly to the End-User. We can say that the End-user
can communicate indirectly to the hardware.
• Controlled access to files – For file access, the OS must reflect a detailed understanding of
not only the nature of the I/O device (disk drive, tape drive), but also the structure of the data
contained in the files on the storage medium. In the case of a system with multiple users, the
OS may provide protection mechanisms to control access to the files.
• System Access – For shared or public systems, the OS controls access to the system as a
whole and to specific system resources. The access function must provide protection of
resources and data from unauthorized users and must resolve conflicts for resource contention.
• Error Detection and Response – Interrupts (an atomic system process capable of halting the
system to let that process finish first before all other process). The OS must provide a response
that clears the error condition with the least impact on running applications.
• Accounting – Performance Monitoring. A good OS will collect usage statistics for various
resources and monitor performance parameters such as response time. On any system, this
information is useful in anticipating the need for future enhancements and in tuning the system
to improve performance.
Dynamics of OS
• Serial Processing
o Scheduling
o Setup time
• Simple Batch Systems
• Multiprogrammed Batch Systems
o Multitasking
• Time Sharing Systems
o Batch processing
o Time slicing
Serial Processing
• Before there was no OS to handle such processes, usually the programmer interacted directly with the
computer hardware with the series of toggle switch as the controllers, card readers (punch cards as
inputs), display lights as the indicators, and printer as an output, respectively. If an error halted the
process, there would be light indicators in the field. In the other hand, if the program proceeds to
completion, the output will appear on the printer.
• Basically Serial Processing is FIFO (First-In First-Out). The computer basically waits for an instruction
from a user. Once the instruction is input, it will be processed and other instructions will just have to
wait for its turn. After the first instruction is finished, the computer will shift to the next instruction to be
processed.
• Although Serial Processing poses two problems:
• Scheduling: The user has to force stop the processing time if the allotted time in scheduling is
finished.
• Setup time: Before, it takes time to prepare materials for a series of commands and
instructions.
OS Design Considerations
In order to make a better OS, it must have the following:
• Complexity – from the term complexity, there is no such thing as a simple OS nowadays. Complexity
refers to a bundled-up together services and kernels.
• Efficiency & Concurrency - Avoidance of Deadlocks. There are multiple users and multiple I/O devices
all active at once.
• Security from intruders – users who want to interfere with system operation or do things that they are
forbidden from doing such as stealing another user’s files.
• Intended for specific people / generality – Such OS has its own functions and uses.
o Example: Windows is designed for many applications just like Web browsing and streaming HD
videos. Android is used in mobile phones and tablets.
• Portability & Flexibility – OS that can handle multiple hardware platforms.
• Backwards compatible & compatibility of new hardware. – lesser restrictions on obsolete hardware
and constantly updated for new hardware in the market.
UNIX Systems
• UNIX Systems is developed at Bell Labs in 1970 partly written in Assembly Language and then later on
converted into C Language. It was first called UNICS, (UNiplexed Information and Computing Service)
then later changed into UNIX.
• The very first successful operational UNIX OS is in a minicomputer called PDP-7 lead by Ken
Thompson. It was a very powerful minicomputer back then capable of 256KB memory allocation.
LINUX Systems
• Linux OS is developed by Linus Torvalds which is a variant of UNIX that is Open-Source under the
license GNU Public License.
• Many talented programmers have contributed to the current version, resulting in a technically
impressive product.
• Linux is highly modular and easily configured. This makes it easy to tweak optimal performance from a
variety of hardware platforms.
Microsoft Windows
• Microsoft initially used the name Windows in 1985, for an operating environment extension to the
primitive MS-DOS operating system.
• This Windows/MS-DOS combination was ultimately replaced by a new version of Windows, known as
Windows NT, first released in 1993.
• The core of Windows NT, consisting of the Kernel and the Executive, was designed for 32-bit machines
and included a number of object-oriented features.
• The latest version of Windows (Windows 10) supports threading and SMP (Symmetric Multiprocessing)
that leads to executing multiple
threads and flexible sharing of
data and resources.
References:
Stallings, W. (2015). Operating systems: Internals and design principles, 8th edition. USA:
Pearson Education, Inc.
Tanenbaum, A. and Bos, H. (2015). Modern operating systems. USA: Pearson Education, Inc.
McHoes, A. and Flynn, I. (2014). Understanding operating systems, 7th edition. USA: Cengage
Learning.