0% found this document useful (0 votes)
128 views

Cpe 312 Operating Systems Lessons

The document provides an introduction to operating systems, covering several key topics: 1) It describes the structure and functions of operating systems, including coordinating hardware, applications, and user interactions. 2) Several fundamental concepts are explained, such as synchronization, processors, virtual memory, and I/O subsystems. 3) Common operating systems are listed, including versions of Windows, MacOS, Linux, and others.

Uploaded by

keny amigable
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
128 views

Cpe 312 Operating Systems Lessons

The document provides an introduction to operating systems, covering several key topics: 1) It describes the structure and functions of operating systems, including coordinating hardware, applications, and user interactions. 2) Several fundamental concepts are explained, such as synchronization, processors, virtual memory, and I/O subsystems. 3) Common operating systems are listed, including versions of Windows, MacOS, Linux, and others.

Uploaded by

keny amigable
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Operating Systems Page 3 of 14

Introduction to Operating Systems

IV. LESSON PROPER

Based on the preliminary activities, what did you notice about it?
________________________________________________________
CONGRATULATIONS!
You may now proceed to the lesson.

Some of What You Will Learn

▪ OPERATING SYSTEM STRUCTURE

➢ Internal structure of operating systems can differ. Structures of operating systems tend to
differ depending on the arrangement of files, how hardware and applications are installed
and controlled and how the user interacts with the system.

▪ SYNCHRONIZATION

➢ Synchronization is the coordination of events to operate a system in unison. Systems


operating with all their parts in synchrony are said to be synchronous or in sync.

▪ PROCESSOR

➢ Processor is the logic circuitry that responds to and processes the basic instructions that
drive a computer.

▪ VIRTUAL MEMORY

➢ Virtual memory is a memory management technique that is implemented using both


hardware and software. It maps memory addresses used by a program, called virtual
addresses, into physical addresses in computer memory.

▪ I/O SUBSYSTEMS

➢ The primary concerns of I/O subsystem architecture include the coordination of central
processor and I/O subsystem activities, the mapping of external I/O processing
requirements into the basic functionality of the I/O subsystem, and the management of
concurrent processing activities within the I/O subsystem itself.
Operating Systems Page 4 of 14
Introduction to Operating Systems

▪ STORAGE SYSTEMS

➢ Storage is frequently used to mean the devices and data connected to the computer
through input/output operations.

Fundamental Operating System Issues

The fundamental issues/questions in this course ▪ Concurrency: how to control parallel


are: activities?

▪ Structure: how is an operating system ▪ Performance: how to make efficient use


organized? of resources, reduce OS overhead?

▪ Sharing: how are resources shared ▪ Scale and growth: how to handle
among users? increased demand?

▪ Naming: how are resources named (by ▪ Compatibility: can we ever do anything
users and programs)? new?

▪ Protection: how are users/programs ▪ Distribution: how to coordinate remote


protected from each other? operations?

▪ Security: how can information access/flow ▪ Accountability: how to charge for/restrict


be restricted? use of resources?

▪ Communication: how to exchange data?

▪ Reliability and fault tolerance: how to And the principles in this course are the
mask failures? methods/approaches/solutions to these issues.

▪ Extensibility: how to add new features?

Why Should We Study Operating System?

▪ OS is a key part of a computer system

▪ OS is complex

▪ To understand how computer works under the hood

▪ To learn how to manage complexity through appropriate abstractions


Operating Systems Page 5 of 14
Introduction to Operating Systems

▪ To learn about basic principles in computer system design

▪ To learn about concurrency

▪ To understand interaction between the hardware and applications

▪ Increasing need for specialized operating systems

▪ Lots of jargon: sound smart (or super-nerdy).

▪ Because OS are everywhere!

APPLICATION OF OPERATING SYSTEM


Operating Systems Page 6 of 14
Introduction to Operating Systems

What Is An Operating System?

Between the hardware and the application software lies the operating system.
The OPERATING SYSTEM is a program that conducts the communication
between the various pieces of hardware like the video card, sound card,
printer, the motherboard and the applications.

The OPERATING SYSTEM is the software layer between user applications


and the hardware. The OS is “all the code that you didn’t have to write” to
implement your application.

Operating System Metaphors

▪ SERVICE PROVIDER ▪ CARETAKER

➢ The OS provides a standard set of ➢ The OS monitors and recovers


facilities/services that enable from exceptional conditions
programs to be simple and ▪ COP/SECURITY GUARD
portable
➢ The OS mediates access to
▪ EXECUTIVE/BUREAUCRAT/BIG resources, granting or denying
BROTHER requests to use resources
➢ The OS controls access to shared ▪ MANAGER
resources, and allocates
➢ of physical resources such as
resources for the greater good
CPU, memory, disks, networks,
displays, cameras, etc.
Operating Systems Page 7 of 14
Introduction to Operating Systems

What Operating System Can Do?

▪ THE OS ABSTRACTS/CONTROLS/MEDIATES ACCESS TO HARDWARE RESOURCES.

➢ Computation

➢ Volatile storage and persistent storage

➢ Communication

➢ Input/output devices

▪ THE OS DEFINES A SET OF LOGICAL RESOURCES (OBJECTS) AND A SET OF WELL-


DEFINED OPERATIONS ON THOSE OBJECTS (INTERFACES).

➢ Physical resources

➢ Logical resources

▪ THE OS DEFINES A LOGICAL, WELL-DEFINED ENVIRONMENT.

➢ Virtual machine (each program thinks it owns the computer)

▪ FOR USERS AND PROGRAMS TO SAFELY COEXIST, COOPERATE, SHARE RESOURCES.

➢ Concurrent execution of multiple programs

➢ Communication among multiple programs

➢ Shared implementations of common facilities

➢ Mechanisms and policies to manage/share/protect resources

Common Operating Systems

The winner in the PC market was MS-DOS, Microsoft's DISK OPERATING


SYSTEM, and its twin at IBM, PC-DOS, also written by Microsoft.

Windows 95 and Windows 98 are actual operating systems on their own. The previous versions of
Windows use DOS as the operating system and adding a graphical user interface which
will do multitasking. But with Windows 95 Microsoft released an operating system that can
take advantage of the 32-bit processors.
Operating Systems Page 8 of 14
Introduction to Operating Systems

Windows Me (Windows Millennium Edition) is an upgrade of Windows 98, release date


Sept. 14, 2000.

Windows NT (the NT apparently came from New Technology) is an


operating system for client-server type networks. The latest version of NT has a user
interface that is practically identical to Windows 95.

Windows 2000 is an upgrade of Windows NT rather than of Windows 98.

Windows XP is an upgrade to Windows 2000. It comes in two versions


- Home and Professional. The Professional version contains all the features of the Home
version plus more business features, like networking and security features.

Windows Vista (November 2006)

Prior to its announcement on July 22, 2005, Windows Vista was known by its
codename "Longhorn". Development was completed on November 8, 2006, and
over the following three months, it was released in stages to computer hardware and software
manufacturers, business customers and retail channels. On January 30, 2007, it was released worldwide
and was made available for purchase and download from Microsoft's website.

Windows CE is for small devices like palmtop and handheld computers. Lite versions of a
number of major applications are available to run on these devices.

Windows 7 (October, 2009)

Windows 7 made its official debut to the public on October 22, 2009 as the latest in
the 25-year-old line of Microsoft Windows operating systems and as the successor to
Windows Vista (which itself had followed Windows XP). Windows 7 was released in conjunction with
Windows Server 2008 R2, Windows 7's server counterpart.

Windows 8 (October 25, 2012)

Windows 8 is a completely redesigned operating system that's been developed from the
ground up with touchscreen use in mind as well as near-instant-on capabilities that
enable a Windows 8 PC to load and start up in a matter of seconds rather than in minutes. Windows 8 will
replace the more traditional
Operating Systems Page 9 of 14
Introduction to Operating Systems

Windows 10 (July 15, 2015)

Windows 10 is a series of personal computer operating systems


produced by Microsoft as part of its Windows NT family of operating
systems. It is the successor to Windows 8.1, and was released to
manufacturing on July 15, 2015, and to retail on July 29, 2015. Windows 10 receives new builds on an
ongoing basis, which are available at no additional cost to users.

The Apple Macintosh is a multitasking operating system that was the first graphical interface
to achieve commercial success. The Mac was an immediate success in the areas of graphics
production, and still commands the lion's share of that market. Apple made a major marketing
error when they decided to keep their hardware and software under tight control rather than
licensing others to produce compatible devices and programs.

Mac OS is a series of graphical operating systems developed and marketed by Apple


Inc. since 2001. It is the primary operating system for Apple's Mac family of computers.

OS/2 is IBM's 32-bit operating system. This is a popular system for businesses with complex
computer systems from IBM.

Linux is an open-source program created by Linus Torvalds at the University of Finland,


starting in 1991. Open source means that the underlying computer code is freely available
to everyone. Programmers can work directly with the code and add features. They can sell
their customized version of Linux, as long as the source code is still open to others.

UNIX is an operating system developed by Bell Labs to handle complex scientific applications. University
networks are likely to use UNIX, as are Internet Service Providers. X-Windows is a
graphical interface for UNIX that some think is even easier to work with than Windows 98.
Operating Systems Page 10 of 14
Introduction to Operating Systems

Objectives of Operating Systems

▪ TO HIDE DETAILS OF HARDWARE BY CREATING ABSTRACTION

An ABSTRACTION is software that hides lower level details and provides a set of higher-level
functions. An operating system transforms the physical world of devices, instructions, memory, and
time into virtual world that is the result of abstractions built by the operating system.

THERE ARE SEVERAL REASONS FOR ABSTRACTION.

1. The code needed to control peripheral devices is not standardized.

2. The operating system introduces new functions as it abstracts the hardware.

3. The operating system transforms the computer hardware into multiple virtual
computers, each belonging to a different program. Each program that is running is
called a process.

4. The operating system can enforce security through abstraction.

▪ TO ALLOCATE RESOURCES TO PROCESSES (MANAGE RESOURCES)


An operating system controls how processes (the active agents) may access resources (passive
entities).

▪ PROVIDE A PLEASANT AND EFFECTIVE USER INTERFACE


The user interacts with the operating systems through the user interface and usually interested in
the “look and feel” of the operating system.

Operating System Point of View

One can view Operating Systems from two points of views: RESOURCE MANAGER and EXTENDED
MACHINES. From RESOURCE MANAGER POINT OF VIEW, Operating Systems manage the different
parts of the system efficiently and from EXTENDED MACHINES POINT OF VIEW, Operating Systems
provide a virtual machine to users that are more convenient to use.
Operating Systems Page 3 of 11
Introduction to System Software and Application Software

IV. LESSON PROPER

Based on the preliminary activities, what did you notice about it?
________________________________________________________
CONGRATULATIONS!
You may now proceed to the lesson.

DEFINITION:

SOFTWARE is defined as a program or set of instruction that tells the computer what
to do. Computer software can be divided into two main classes: application software
and system software.

APPLICATION SOFTWARE consists of


the programs for performing tasks
particular to the machine’s utilization.
Application software is generally what
we think of when someone speaks of
computer programs. This software is
designed to solve a particular problem
for users.

On the other hand, SYSTEM SOFTWARE is more transparent and less noticed by the typical computer
user. This software provides a general programming environment in which programmers can create
specific applications to suit their needs. This environment provides new functions that are not available at
the hardware level and performs tasks related to executing the application program.
Operating Systems Page 4 of 11
Introduction to System Software and Application Software

Two Classes of Software

1. SYSTEM SOFTWARE – these programs are used to manipulate the basic operations of a
computer system. The user does not need to know the exact details of
how these tasks are performed. The system software takes care of
these exact details.

System software is a type of computer program that is designed to run a computer’s hardware and
application programs. System software acts as an interface between the hardware of the computer
and the application software that users need to run on the computer.

Other EXAMPLES OF SYSTEM SOFTWARE and what each does are:

▪ BIOS (basic input/output system) gets the computer system started after you turn it on and
manages the data flow between the operating system and attached devices.

▪ BOOT PROGRAM loads the operating system into the computer’s main memory or
random-access memory (RAM).

▪ ASSEMBLER takes basic computer instructions and converts them into a pattern of bits
that the computer’s processor can use to perform its basic operations.

▪ DEVICE DRIVER controls a particular type of device that is attached to your computer.
The driver program converts the more general input/output instructions of the operating
system to messages that the device type can understand.

▪ SYSTEM UTILITIES

▪ DEVELOPMENT TOOLS

Some of the BENEFITS OF SYSTEM SOFTWARE are:

▪ They hide the “ugly” details of computer operations from the user. It creates a virtual
machine interface where the user does not need to know how the computer works on the
hardware level.
Operating Systems Page 5 of 11
Introduction to System Software and Application Software

▪ Computer programmer can write programs without knowing the details on how the
computer hardware works. It makes programming easier since programmers do not
need to know about how to control the hardware.

▪ System software such as an operating system controls the execution of programs.


Several programs can be executed at the same time, thus increasing CPU productivity and
efficiency.

HOW SYSTEM SOFTWARE SUPPORTS APPLICATION SOFTWARE

Since system software controls the operation


Computer User
of computer hardware, they are obviously
Computer user instructs the machined dependent. System software
application program to print a
document.
programmers should have a strong knowledge
Application Software of the architecture of the computer hardware
(MS Word)

Application software makes a


they are using.
request to the system software

t the
System Software
(OS, Device Drivers) System software supports all application
The system Software controls the programs. For example, a user using an
printer as the document is printed
application program such as Microsoft Word
clicks on the save icon to tell Word to save a
Hardware
(Computer, Printer)
document. In this process, Word does not
communicate with the printer, but rather request the operating system to print the document.

2. APPLICATION SOFTWARE – these programs are used to


accomplish specialized tasks for computer users. These tasks are
related to professional and personal needs of the user such as
creating documents, sending e-mail, editing photographs, playing
games, browsing the Web, drawing, creating database, etc.
Operating Systems Page 6 of 11
Introduction to System Software and Application Software

SOFTWARE THAT FALLS INTO THE CATEGORY OF APPLICATION PROGRAMS INCLUDES:

a. DOCUMENT PRODUCTION SOFTWARE – these are programs that are used to compare,
edit, print, and electronically publish documents.

b. SPREADSHEET SOFTWARE – these are programs that are used to create and
manipulate spreadsheets electronically for analysis, planning, and modeling.

c. PRESENTATION SOFTWARE – these are programs that are used to create and display
information in the form of slide shows.

d. DATABASE MANAGEMENT SOFTWARE – these are programs that are used to store,
modify, and retrieve information from a database in an organized and structured manner.
Operating Systems Page 7 of 11
Introduction to System Software and Application Software

e. BUSINESS SOFTWARE – these are programs that can provide users with tools for
business management.

a. MULTIMEDIA SOFTWARE – these are programs that can manipulate picture, sound, and
video.

b. ENTERTAINMENT SOFTWARE
Operating Systems Page 3 of 13
Introduction to System Programming

IV. LESSON PROPER

Based on the preliminary activities, what did you notice about it?
________________________________________________________
CONGRATULATIONS!
You may now proceed to the lesson.

Definition:

SYSTEM PROGRAMMING is simply the act of developing system software.

A system programming language usually refers to a programming


language used for system programming; such languages are designed for
writing system software, which usually requires different development
approaches when compared with application software.

Types of Programming Languages

1. MACHINE LANGUAGE – is the natural or primitive language that the computer actually
understands. It is a low-level language which consists of 0’s and 1’s and the only language a
machine understands.

2. ASSEMBLY LANGUAGE – uses abbreviations or mnemonics in place in binary patterns.


Mnemonics are easier to remember, thus make programming easier.

ASSEMBLER – is a special translator program that


translates assembly language mnemonics into machine
language instructions.
Operating Systems Page 4 of 13
Introduction to System Programming

3. HIGH-LEVEL PROGRAMMING LANGUAGE – is any programming language that enables


development of a program in much simpler programming context and is generally independent of
the computer’s hardware architecture. It is easy to use because it uses English-like commands.

COMPILER – is a special translator


program that converts high-level language
instructions into machine language.

ADVANTAGES OF HIGH-LEVEL LANGUAGES OVER ASSEMBLY LANGUAGE:

▪ High-level programming languages are easier to learn and use.

▪ Most high-level programming has pre-defined functions and subroutines, thus make programming
easier.

▪ High-level programming languages in general, are not machine-dependent.

ADVANTAGES OF ASSEMBLY LANGUAGE OVER HIGH-LEVEL LANGUAGES:

▪ The assembly language program executable code is compact. A compact or short code would
mean that the program can execute faster.

▪ Assembly language is not constrained with certain programming conventions nor rigid coding
restrictions.

▪ Assembly language has instructions that allow programmers more direct control over memory
access.
Operating Systems Page 5 of 13
Introduction to System Programming

Types of System Programs

1. LANGUAGE TRANSLATORS – these system programs that convert a high-level language


program or assembly language program into machine language.

TWO TYPES OF LANGUAGE TRANSLATORS:

a. ASSEMBLER – a language translator that convert a program written in assembly


language into an executable file containing machine language instructions.

b. COMPILER – a language translator that convert a program written in high-level


language into an executable file containing machine language instructions.

Some compilers first produce files that contain instructions in an intermediate language, which
can then be recompiled to machine language instructions.

2. INTERPRETERS – these system programs convert a high-level language program into machine
language. Unlike compilers, interpreters read one instruction from the source code, convert it to
machine language, and then execute it before proceeding to the next instruction. It also does not
generate an executable file.

Each instruction must be translated each time they are read. As a result, interpreted programs run
much slower than compilers.
Operating Systems Page 6 of 13
Introduction to System Programming

3. LINKERS AND LOADERS

LINKER – is a system software that combines or links the object modules together with the
libraries which then form a single executable program called executable file.

In computing, a linker or link editor is a computer program that takes one or more object files
generated by a compiler and combines them into a single executable file, library file, or another
object file.

Each program is first converted to an object file or object module (which contains machine
language instructions) and then combined with other programs using a linker.

THE LINKING PROCESS

linker combines all


object file together
with the library
routines to form the
final executable file

compiler converts program


written in a high-level
programming language into
an object

In high level languages, some built in header files or libraries are stored. These libraries are
predefined and these contain basic functions which are essential for executing the program. These
functions are linked to the libraries by a program called linker. If linker does not find a library of a
function then it informs to compiler and then compiler generates an error. The compiler
Operating Systems Page 7 of 13
Introduction to System Programming

automatically invokes the linker as the last step in compiling a program. Not built in libraries, it also
links the user defined functions to the user defined libraries. Usually a longer program is divided
into smaller subprograms called modules. And these modules must be combined to execute the
program. The process of combining the modules is done by the linker.

LOADER is a program that loads machine codes of a program into the system memory.

In computing, a loader is the part of an operating system that is responsible for loading programs. It
is one of the essential stages in the process of starting a program. Because it places programs into
memory and prepares them for execution. Loading a program involves reading the contents of
executable file into memory. Once loading is complete, the operating system starts the program by
passing control to the loaded program code. All operating systems that support program loading
have loaders. In many operating systems the loader is permanently resident in memory.

LOADER is the one responsible for bringing the load module to the main memory for execution.
Its main function is to perform address binding.

ADDRESS BINDING – is the process of assigning or mapping symbolic references to actual memory
locations. Address binding allocates a physical memory location to a logical pointer by associating a
physical address to a logical address, which is also known as a virtual address. Address binding is part of
computer memory management and it is performed by the operating system on behalf of the applications
that need access to memory.

Address binding relates to how the code of a program is stored in memory. Programs are written in
human-readable text, following a series of rules set up by the structural requirements of the programming
language, and using keywords that are interpreted into actions by the computer’s Central Processing Unit.
The point at which the executable version of a program is created dictates when address binding occurs.
Operating Systems Page 8 of 13
Introduction to System Programming

Symbolic variables are used to represent data in a program. Any name that represents the data it will
store.

Variables are assigned specific locations


in the main memory when the program is
compiled and loaded into the main
memory for execution. Each main
memory location has a unique numeric
address.

The memory locations to be assigned for


symbolic variables depend on the
available free memory space when the
program is loaded. The actual main
memory location is called PHYSICAL
ADDRESS or ABSOLUTE ADDRESS.

Three Techniques in Placing the Load Module in Main Memory:

1. ABSOLUTE LOADING

In ABSOLUTE LOADING, the load module has actual memory addresses assigned instead of
symbolic variables. The actual addresses may have been determined before or during compile
time. The load module is placed into main memory without performing address binding.

2. RELOCATABLE LOADING

In RELOCATABLE LOADING, address binding is performed right before the load module is
loaded and the address assignment is based on the available main memory location at that time.
The address that will be generated is referred to as RELATIVE ADDRESS. The relative address is
based on a reference point or base address.
Operating Systems Page 9 of 13
Introduction to System Programming

3. DYNAMIC RUN-TIME LOADING

In DYNAMIC RUN-TIME LOADING, the absolute address is not generated when loaded, but only
when it is needed by the CPU. It places the load module in main memory but does not convert the
relative addresses to absolute addresses. Relocating a program becomes possible even though it
is executing.
Operating Systems Page 3 of 15
Operating System Fundamentals

IV. LESSON PROPER

Based on the preliminary activities, what did you notice about it?
________________________________________________________
CONGRATULATIONS!
You may now proceed to the lesson.

Definition:

OPERATING SYSTEM – is a system software that allows users or the application programs they are using
to interact with the computer hardware in an easy and convenient manner.

Major Functions of An Operating System:

1. It creates a virtual machine interface between the user/ application program and the
hardware. This is called Hardware Abstraction or Resource Abstraction wherein users and
application programs are isolated from the details of the hardware resources.

2. It acts as the computer’s resource manager or resource allocator.

3 Important Resources Managed by the OS:

a. CPU. The operating system makes sure that the CPU is shared efficiently and is kept
busy at all times.

b. MAIN MEMORY. The operating system must be able to allocate the limited memory
locations to all processes for the CPU execution.

c. I/O DEVICES.

3. It functions as the program launcher.

Three Main Goals of The Operating System:

1. The operating system should make the computer easy and convenient to use.

2. The operating system should manage the resources of the computer system to make them more
Operating Systems Page 4 of 15
Operating System Fundamentals

efficient.

3. The operating system should execute


and control programs.

All the functions of the operating system must be


executed effectively in the background.

Parts of An Operating System:

1. SHELL – often called command interpreter, is the part of the operating system that serves as the
interface between users and the kernel. Users enter command via the shell in order to use the
service of the kernel.

2. KERNEL - is the heart and soul of the operating system. It directly controls the computer hardware
and performs the services of the operating system.

The kernel hides the hardware details from the user and application programs. The services
offered by the kernel must be used in order to access hardware resources. The kernel makes
appropriate system calls or requests to communicate with the hardware resources. An operating
system’s kernel always resides in the main
memory for immediate access to its services.

Two General Types of Shells:

1. COMMAND-LINE INTERFACE (CLI) –


requires users to type the commands at a prompt. It requires knowledge of commands and proper
instruction formulation.

2. GRAPHICAL USER INTERFACE (GUI) – requires users to


enter commands by either using drop-down menus or by
clicking on icons using a mouse pointer.
Operating Systems Page 5 of 15
Operating System Fundamentals

Starting An Operating System

The operating system must be executed when the computer is turned on. You turn on the
power supply to your computer. A bootstrap program stored in the computer’s read-only
memory (ROM) is executed upon power on. This sends electricity to the motherboard on a
wire called the ‘Voltage Good‘ line. If the power supply is good, then the BIOS (Basic
Input/Output System) chip takes over. At this stage the computer ‘s CPU is operating in Real Mode (or real
address mode), which means that it is only capable of using approximately 1 MB of memory built into the
motherboard. RAM will be initialized later using device drivers from the operating system.

The BIOS chip contains basic instructions for starting up the rest of the computer system. The first thing
that it will do is a Power-On Self-Test (POST), which will check to make sure all your hardware is working
properly. If the hardware is all working, BIOS will then look for a small sector at the very beginning of your
primary hard disk called the Master Boot Record (MBR). The MBR contains a list, or map, of all of the
partitions on your computer ‘s hard disk (or disks).

After the MBR is found the Bootstrap Loader follows basic instructions for starting up the rest of the
computer, including the operating system. If multiple operating systems are installed, the user will be given
a choice of which operating system to use. Another program called boot block loader locates the
operating system and loads it in the main memory. At this point, the operating system takes charge of the
computer system.

Key Services Provided by An Operating System:

1. PROGRAM EXECUTION

The purpose of a computer system is to allow the user to


execute programs. So, the operating systems provide an
environment where the user can conveniently run programs.

2. FILE SYSTEM MANAGEMENT

Access to files in secondary storage is provided by the


Operating Systems Page 6 of 15
Operating System Fundamentals

operating system. It also prevents unauthorized access to file unless the user has been given the
right to do so.

3. SYSTEM ACCESS

The operating system prevents unauthorized access to the computer system. This is usually
done by implementing a log-in mechanism such as user account and the corresponding password.
Access privileges, can also be modified depending on user type. In this way, improper and
malicious use of resources can be prevented.

4. ACCESS TO I/O DEVICES – is provided by the


operating system, particularly the input and output
operations. A running program may require I/O,
which may involve a file or an I/O device. For specific
devices, special functions may be desired. For
efficiency and protection, users usually cannot
control I/O devices directly. Therefore, the operating
system must provide a means to do I/O.

5. ERROR HANDLING

The operating system needs to be detecting and correcting errors constantly. Errors may occur

▪ in the CPU and memory hardware,

▪ in I/O devices, and

▪ in the user program.

The operating system detects hardware- and software- oriented errors within the computer system
and also takes proper actions to resolve them. When an error is encountered, the operating
system may:

a. Retry the operation that caused the error.

b. Terminate the program that caused the error.

c. Report the error to the user and let the user take the necessary remedial action.
Operating Systems Page 7 of 15
Operating System Fundamentals

6. COMMUNICATION

The operating system is responsible for facilitating


communication among processes. Communications may be
implemented via shared memory, in which two or more
processes read and write to a shared section of memory, or message passing, in which packets
of information in predefined formats are moved between processes by the operating system.

Core Components of An Operating System:

The kernel contains the core services of the operating system. These are:

1. PROCESS MANAGER (process scheduler or CPU scheduler)

➢ It is responsible for determining which among programs will execute first and determine
runtime duration if there are several programs running in a CPU.

➢ It is also responsible for program termination, inter-process communication, process


synchronization, and deadlock handling.

➢ It is responsible for creating new processes in the system and managing the most
fundamental resources associated with a process. These services are all provided via
messages.

2. MEMORY MANAGER

➢ It handles memory allocation and monitor which memory areas are in use and which are
free or available.

➢ It also provides protection mechanisms to ensure that memory locations assigned to a


process will not be taken by other processes.

➢ It implements virtual memory, provides a core set of services.

3. FILE MANAGER (file browser)

➢ It organizes the files stored in the secondary storage and presented for easy access by the
file manager. Folders and files may be displayed in a hierarchical tree based on their
directory structure. Some file managers contain features inspired by web browsers,
including forward and back navigational buttons.
Operating Systems Page 8 of 15
Operating System Fundamentals

➢ It is a computer program that provides a user interface to manage files and folders. The
most common operations performed on files or groups of files include creating, opening,
renaming, moving or copying, deleting and searching for files, as well as modifying file
attributes, properties and file permissions.

4. I/O MANAGER (device manager)

➢ It manages the different input-output devices of the computer system. It grants user
requests to use the I/O devices and resolves conflict issues when two or more programs
access a device at the same time.

Types of Computer Systems and Their Operating Systems

1. PERSONAL COMPUTER SYSTEMS

A Personal Computer (PC) is a small, relatively


inexpensive computer designed for an individual
user.

2. MULTIPROCESSOR SYSTEMS

Computer systems which contain two or more


CPUs are called MULTIPROCESSOR SYSTEM.
Most personal computers are uniprocessor
systems, which contain only one CPU.

Multiprocessor Operating System refers to the


use of two or more central processing units (CPU) within a single computer system. These multiple
CPUs are in a close communication sharing the computer bus, memory and other peripheral
devices. These systems are referred as tightly coupled systems.
Operating Systems Page 9 of 15
Operating System Fundamentals

Two Kinds of Multiprocessor Systems:

a. SYMMETRIC MULTIPROCESSOR (SMP)

These are also called SHARED MEMORY


MULTIPROCESSORS operating under a
single operating system with two or more
homogeneous processors. This system
has identical processors sharing a common
main memory. Only one operating system is used and each processor runs the same
operating system. An SMP operating system can assign any task to a processor. LOAD
BALANCING is used to distribute load evenly over the processors.

b. ASYMMETRIC MULTIPROCESSOR (AMP)

These are also called DISTRIBUTED


MEMORY MULTIPROCESSORS
operating under different
(heterogeneous) operating systems with
two or more processors. In this
multiprocessor system, each processor
has its own memory.

In an AMP system, specific tasks are assigned to each processor. For this reason, each
processor may have its own unique software or only a part of the operating system will be
executed.

3. NETWORKED SYSTEM

In a NETWORKED SYSTEM, the


users are aware of the existence of multiple computers and can log in to remote machines and
copy files from one machine to another. Each machine runs its own local operating system and has
its own local user (or users). Networked system allows the sharing of resources and actual
Operating Systems Page 10 of 15
Operating System Fundamentals

communication among computers connected in a network. It also provides protection from


unauthorized access so that resources are secured. There are also advanced network operating
systems that can execute processes on a different computer within the network.

4. DISTRIBUTED SYSTEM

DISTRIBUTED SYSTEM is a collection of physically


separate, possibly heterogeneous, computer systems
that are networked to provide users with access to the
various resources that the system maintains. In
Distributed Systems, the entire network of computers is perceived by a user as one big and
powerful computing machine. Resources such as files and hardware may be assigned to different
machines

The Goals of Distributed Operating System Are:

a. Transparency – it must ensure that users have a convenient and uniform way of using all
resources within the system.

b. Parallelism – it must be able to perform parallel computing, wherein a process is divided


and each part executed in different machines.

c. Reliability – it must also have fault detection and recovery mechanisms so that if one
computer fails to function, it will not affect the whole system.

5. REAL-TIME SYSTEM

REAL-TIME SYSTEM is used when rigid time


requirements have been placed on the operation of a
processor or the flow of data and it has well-defined,
fixed time constraints. Processing must be done within
the defined constraints, or the system will fail. In
these systems fast response time is compulsory and is expected to react to input data instantly.
Operating Systems Page 11 of 15
Operating System Fundamentals

6. HANDHELD SYSTEMS – have slower processors and smaller memory


compared to PCs. In this system, mobility is of prime importance so the
device is battery powered. Handheld operating systems have fewer
features and capabilities because of its limited memory and processor
power.

HANDHELD POS

Mobile computing refers to computing on handheld smartphones


and tablet computers. These devices share the distinguishing
physical features of being portable and lightweight. Historically,
compared with desktop and laptop computers, mobile systems gave
up screen size, memory capacity, and overall functionality in return
for handheld mobile access to services such as e-mail and web
browsing.

Two operating systems currently dominate mobile computing: Apple iOS and Google Android.
iOS was designed to run on Apple iPhone and iPad mobile devices. Android powers smartphones
and tablet computers available from many manufacturers.

Other examples of handheld operating systems for PDAs are PalmSource’s Palm OS and
Microsoft’s Windows Mobile.
Operating Systems Page 3 of 14
History of Operating System

IV. LESSON PROPER

Based on the preliminary activities, what did you notice about it?
________________________________________________________
CONGRATULATIONS!
You may now proceed to the lesson.

FIRST GENERATION 1945-1955 - SERIAL PROCESSING - VACUUM TUBES AND PLUGBOARDS

After Babbage’s unsuccessful efforts, little progress was made in constructing digital
computers until World War II. Around the mid-1940s, Howard Aiken at Harvard, John von
Neumann at the Institute for Advanced Study in Princeton, J. Presper Eckert and William
Mauchley at the University of Pennsylvania, and Konrad Zuse in Germany, among others, all
succeeded in building calculating engines. The first ones used mechanical relays but were
very slow, with cycle times measured in seconds. Relays were later replaced by vacuum
tubes.

Mainframe computers were used in the late 1940s and early 1950s. These computers were massive,
enormous, filling up entire rooms with tens of thousands of vacuum tubes, expensive, slow, and very
primitive. Mainframes were locked away in specially air-conditioned computer rooms, with staffs of
professional operators to run them. Only big corporations or major government agencies or universities
could afford the multimillion-dollar price tag.

In addition:

1. These computers have no operating systems, so these computers were “bare” machines.
Computer users should be well-versed with computer hardware since they communicate directly
with it.
Operating Systems Page 4 of 14
History of Operating System

All programming was done in


absolute machine language, often by
wiring up plugboards to control the
machine’s basic functions.
Programming languages were
unknown (even assembly language
was unknown). Operating systems
were unheard of. The usual mode of operation was for the programmer to sign up for a block of
time on the signup sheet on the wall, then come down to the machine room, insert his or her
plugboard into the computer, and spend the next few hours hoping that none of the 20,000 or so
vacuum tubes would burn out during the run.

2. These computers can only be used by one person at a time. Each programmer is assigned a
time schedule to use the machine. Each program is processed one after another, hence referred
to as SERIAL PROCESSING.

3. There were no keyboards during this time so user


commands are entered by using toggle switches.
The user uses switches to give commands to
computer by turning it on or off (which corresponds to
binary 1 or 0). The computer communicates with the
user in binary using display lights. The user will then
interpret the meaning of the output.

4. High-level programming languages were developed and


entered into the computer by using punched cards. Punch
cards are thin cardboards with little square holes that represent
information. These square holes represent binary characters or
numbers. A keypunch, which looks like a typewriter, is used to
puncture holes in the punched cards. By the early 1950s, the routine had improved somewhat with
Operating Systems Page 5 of 14
History of Operating System

the introduction of punched cards. It was now possible to write programs on cards and read them
in instead of using plugboards; otherwise, the procedure was the same.

Programmers first write their programs on coding sheets then use a


keypunch to encode their programs in punched cards. One card
contains one line of instruction or data.

After a program is encoded, the punch cards will be taken to the computer room according to the
assigned schedule. A device called punched card reader is used to read the punch cards,
generate the electronic form of the program, and load it into the main memory for compilation. The
punch card reader is connected to the computer.

5. There were no fixed or hard disks.

The punch cards should be reloaded again every time a program needs to be executed. The
compilers, assemblers, linkers, loaders, etc. stored in punched cards or magnetic tapes should be
loaded as well.

SECOND GENERATION 1955-1965 - BATCH SYSTEM - TRANSISTORS

The introduction of the transistor in the mid-1950s changed the picture radically.
Computers became reliable enough that they could be manufactured and sold to paying
customers with the expectation that they would continue to function long enough to get
some useful work done. For the first time, there was a clear separation between designers, builders,
operators, programmers, and maintenance personnel.

Given the high cost of the equipment, it is not surprising that people quickly looked for ways to reduce the
wasted time. The solution generally adopted was the batch system. Batch processing started in the mid-
1950s wherein similar jobs were grouped and processed together as a batch. Instead of using the
computer one programmer at a time, a computer operator may be assigned to get all their punched cards.
The operator will load the compiler and then compile their programs as a group. The results are set-up
Operating Systems Page 6 of 14
History of Operating System

time was reduced (since the compiler is setup only once) and CPU utilization is increased.

In batch processing, punched card decks are stacked on top of another and were separated by control
cards. Control cards contain information or instructions on how the job following it should be performed by
the computer. These cards are placed in the punched card reader.

The idea behind it was to collect a tray full of jobs in the input room and then read them onto a magnetic
tape using a small relatively) inexpensive computer, such as the IBM 1401, which was very good at reading
cards, copying tapes, and printing output, but not at all good at numerical calculations. Other, much more
expensive machines, such as the IBM 7094, were used for the real computing. This situation is shown in
the figure below.

Large second-generation computers


were used mostly for scientific and
engineering calculations, such as
solving the partial differential
equations that often occur in physics
and engineering. They were largely programmed in FORTRAN and assembly language. Typical operating
systems were FMS (the Fortran Monitor System) and IBSYS, IBM’s operating system for the 7094.

THIRD GENERATION – MULTIPROGRAMMING SYSTEM - INTEGRATED CIRCUITS

Developing and maintaining two completely different product lines was an expensive
proposition for the manufacturers. In addition, many new computer customers initially
needed a small machine but later outgrew it and wanted a bigger machine that would
run all their old programs, but faster. IBM attempted to solve both of these problems at a single stroke by
introducing the SYSTEM/360.

The SYSTEM/360 was the first major computer line to use (small-scale) Integrated Circuits (ICs), thus
providing a major price/performance advantage over the second-generation machines, which were built up
Operating Systems Page 7 of 14
History of Operating System

from individual transistors. It was an immediate


success, and the idea of a family of compatible
computers was soon adopted by all the other major
manufacturers.

Multiprogramming

Serial and batch processing only have one program


executed at any one time. Every time a program
performs an I/O operation, the CPU is idle. The CPU has to wait for the completion of I/O operation before
proceeding with program execution. Another factor that increased CPU idle time is generally, all I/O
devices are slow.

One possible solution is to let the CPU execute the


second program while waiting for the completion of an
I/O operation of the first program. The same process
happens when the second program requests for its I/O
operation. The first program will get the CPU back after
the completion of the I/O operation. In this way, as long
as there are programs for execution, the CPU will not be idle. This concurrent execution of two or more
programs by a CPU is called multiprogramming. Using this method, the CPU is kept busy at all times.
The figure below illustrates a multiprogramming scheme. Multiprogramming is the capacity of a computer
to executing several programs concurrently on the same processor by having one of the programs using
the processor while others are performing input or output.

FOURTH GENERATION 1980-Present - TIME-SHARING SYSTEM - MICROPROCESSORS

The price of computer peripherals decreases in the late 1960s. Video display terminals
which can be connected to mainframes and/or minicomputers were easily purchased.

On-Line Processing became possible wherein users can now directly compile and
execute their programs in the computer.
Operating Systems Page 8 of 14
History of Operating System

MULTITASKING

In some circumstances, if multiprogramming is used, there might be cases wherein the CPU might be busy
executing a certain program, neglecting the needs of other users. As a solution to this problem, Time-
Sharing or Multitasking Operating System was developed. The CPU is assigned to a user or process for a
time period (also called Time Slice or Time Quantum) by the operating system. This time period is usually
in the range of a few milliseconds. After a user consumes its time slice, the CPU is assigned to another
user or process and so on. This happens very fast that the users feel like they each have their own
computer instead of sharing a single CPU. However, the entire computer system will slow down as the
number of users increase.

FOURTH GENERATION OPERATING SYSTEM

With the development of LSI (Large Scale Integration) circuits, chips containing thousands of transistors on
a square centimeter of silicon, the age of the personal computer dawned.

In 1974, when Intel came out with the 8080, the first general-purpose 8-
bit CPU, it wanted an operating system for the 8080. In part to be able to
test it, Intel asked one of its consultants, Gary Kildall, to write one. Kildall
and a friend first built a controller for the newly-released Shugart
Associates 8-inch floppy disk and hooked the floppy disk up to the 8080,
thus producing the first microcomputer with a disk. Kildall then wrote a
disk-based operating system called CP/M (Control Program for Microcomputers) for it. Since Intel did
not think that disk-based microcomputers had much of a future, when Kildall asked for the rights to CP/M,
Intel granted his request. Kildall then formed a company, Digital Research, to further develop and sell
CP/M.

In 1977, Digital Research rewrote CP/M to make it suitable for running


on the many microcomputers using the 8080, Zilog Z80, and other CPU
chips. Many application programs were written to run on CP/M, allowing
it to completely dominate the world of microcomputing for about 5 years.
Operating Systems Page 9 of 14
History of Operating System

In the early 1980s, IBM designed the IBM PC and looked around for software to run on it. People from IBM
contacted Bill Gates to license his BASIC interpreter. They also asked him if he knew of an operating
system to run on the PC. Gates suggested that IBM contact Digital Research, then the world’s dominant
operating systems company. Making what was surely the worst business decision in recorded history,
Kildall refused to meet with IBM, sending a subordinate instead. To make matters worse, his lawyer even
refused to sign IBM’s nondisclosure agreement covering the not-yet-announced PC. Consequently, IBM
went back to Gates asking if he could provide them with an operating system.

When IBM came back, Gates realized that a local computer


manufacturer, Seattle Computer Products, had a suitable operating
system, DOS (Disk Operating System). He approached them and
asked to buy it (allegedly for $50,000), which they readily accepted.
Gates then offered IBM a DOS/BASIC package, which IBM accepted.
IBM wanted certain modifications, so Gates hired the person who
wrote DOS, Tim Paterson, as an employee of Gates’ fledgling
company, Microsoft, to make them. The revised system was renamed
MS-DOS (MicroSoft Disk Operating System) and quickly came to dominate the IBM PC market. A key
factor here was Gates’ (in retrospect, extremely wise) decision to sell MS-DOS to computer companies for
bundling with their hardware, compared to Kildall’s attempt to sell CP/M to end users one at a time (at least
initially).

CP/M, MS-DOS, and other operating systems for early microcomputers were all based on users typing in
commands from the keyboard. That eventually changed due to research done by Doug Engelbart at
Stanford Research Institute in the 1960s. Engelbart invented the GUI (Graphical User Interface),
pronounced ‘‘gooey,’’ complete with windows, icons, menus, and mouse. These ideas were adopted by
researchers at Xerox PARC and incorporated into machines they built.
Operating Systems Page 10 of 14
History of Operating System

One day, Steve Jobs, who co-invented the Apple computer in his garage, visited
PARC, saw a GUI, and instantly realized its potential value, something Xerox
management famously did. Steve Jobs then embarked on building an Apple with a
GUI. This project led to the LISA, which was too expensive and failed
commercially. Steve Jobs’ second attempt, the Apple Macintosh, was a huge
success, not only because it was much cheaper than the Lisa, but also because it
was user friendly.

When Microsoft decided to build a successor to MS-DOS, it was strongly


influenced by the success of the Macintosh. It produced a GUI-based system
called Windows, which originally ran on top of MS-DOS. For about 10 years,
from 1985 to 1995, Windows was just a graphical environment on top of MS-
DOS. However, starting in 1995 a freestanding version of Windows, Windows 95,
was released that incorporated many operating system features into it, using the
underlying MS-DOS system only for booting and running old MS-DOS programs.
In 1998, a slightly modified version of this system, called Windows 98 was
released.

Another Microsoft operating system is Windows NT (NT stands for New


Technology), which is compatible with Windows 95 at a certain level, but a
complete rewrite from scratch internally. It is a full 32-bit system. The lead designer
for Windows NT was David Cutler, who was also one of the designers of the VAX
VMS operating system, so some ideas from VMS are present in NT. Only with
Windows NT 4.0 did it finally catch on in a big way, especially on corporate net-
works. Version 5 of Windows NT was renamed Windows 2000 in early 1999. It was
intended to be the successor to both Windows 98 and Windows NT 4.0. That did not
quite work out either, so Microsoft came out with yet another version of Windows 98
called Windows Me (Millennium edition).

You might also like