Professional Documents
Culture Documents
End User
TYPES OF SOFTWARE
1) System software: it is designed to run the computer’s hardware and application
programs. It is the interface between the hardware and user applications. It is
designed by the software manufacturers i.e. OS
PROCESSOR MANAGEMENT
- It decides how to allocate the CPU
- It keeps track of the status of each process i.e. Whether the CPU is executing a
process or waiting to READ or WRITE command
- It sets up the necessary registers and tables for a process
- When the job is finished, it reclaims the processor
N.B. A process is defined as an instance of execution of a program
A process is a dynamic entity, a program is a static entity
A traffic controller handles the processes transitions from one state of execution to another
MEMORY MANAGEMENT
- It is in charge of the main memory (RAM)
- It checks the validity of each request for memory space (checks if it’s a legal request)
- It allocates portion of the memory that isn’t already in use
- In multiuser environment, it sets up a table to keep track of who is using which
sections of the memory
- When the time comes to reclaim the memory, it deallocates the memory
- PRIMARY ROLE: To protect the space of the main memory by the OS itself. (it can’t
allow nay part of it to be altered)
DEVICE MANAGEMENT
- It monitors every device, channel, and control unit
- It chooses the most efficient way to allocate all the system’s hardware resources i.e.
printers, ports, disk drives etc.
- It allocates the system’s devices based on a scheduling policy chosen by the system’s
designers.
- It deallocates devices when the operation is complete, making the devices available
for the next process or job
FILE MANAGEMENT
- It keeps track of every file in the system i.e. data files, program files, compilers, apps,
etc.
- It enforces restrictions on who has access to which files using predetermined access
policies
- It controls what users are allowed to do with files once they access them
- It creates and deletes files to organize directories
- It supports primitives for manipulating files and directories
- It maps files onto secondary storage
- It backs up files on stable storage media
N.B.
1. It is a resource management
2. Interface/ virtual machine is an application that emulates the functionality of a
computer system
N.B.
1. If computer is switched off completely and then turned on then it is cold booting.
If computer is restarted, then it is warm booting.
2. Operating System helps in implementing user interface.
3. Operating System allows users to share data among themselves.
4. Operating System prevents users from interfering with one another.
5. Operating System handles network communication.
MODULE 3- TYPES OF OPERATING SYSTEMS
TYPES OF OPERATING SYSTEMS
1) Batch Processing Operating System
2) Timesharing Operating System
3) Real Time Operating System
4) Networked Operating System
5) Distributed Operating System
BATCH OPERATING SYSTEM
- Implemented in the early 1950’s
- Users submit jobs to a central place where these jobs are collected into a batch and
subsequently placed on an input queue
- Users submit jobs on a regular schedule i.e. daily, monthly, etc.
- The response time is the turnaround time
- Jobs with similar needs are batched together and run as a group to speed up the
processing
- A compiler can be loaded once to process all the jobs in a row that are stored in
queues
- The jobs are executed automatically
- The commands are written in JCL (Job Control Language) i.e. command for marking a
job at the beginning and at the end, loading and executing programs.
- Batch jobs are executed one at a time
- There is no interaction between the user and the computer while the program is
being run
- There is an operator which takes similar jobs having the same requirement and
group them into batches. It is the responsibility of the operator to sort jobs with
similar needs.
-
-
N.B.
A) Turnaround time is the time from submission of the job until execution is completed and
the results are ready for return to the person who submitted the job.
B) Each piece of work for a batch processing is system is called a job. A job constitutes the
set of program instructions corresponding to a particular computation task. i.e. program and
data
BENEFITS OF BATCH PROCESSING
1. It allows sharing of computer resources among many users or programs
2. It shifts the time of job processing to when the computing resources are less busy.
Idle time is less
3. Multiple users can share the batch systems
4. It is easy to manage large work repeatedly
Multi-
programmed Timesharing
Batch systems
Systems Maximizes Minimizes
processor use response time
N.B.
1. The task can be from a single user or a different user
2. The time each task gets to execute is called QUANTUM; after this time interval, the OS
switches over to the next task
N.B.
1. The time interval required to process and respond to inputs is called RESPONSE TIME.
2. In real time operating systems, the response time is so small that it controls the
environment. (less than timesharing systems)
HARD REAL-TIME SYSTEMS
This OS is meant for applications where the time constraints are very strict and even the
shortest possible delay is not acceptable. Such systems include systems that are built for
saving lives i.e. airbags, automatic parachutes.
N.B.
1. Virtual memory is rarely found in this system.
2. Secondary storage is limited or missing (the data is stored in ROM).
SOFT REAL-TIME SYSTEMS
This OS is for applications where the time constraint is less strict. A critical real-time tasks
gets priority over other tasks and retains priority until it completes.
N.B.
1. They have limited utility than hard real-time systems
2. Examples of this system include Multimedia, Virtual reality, Advanced scientific projects
i.e. planetary rovers
ADVANTAGES OF REAL-TIME OPERATING SYSTEMS
1. Maximum consumption: maximum utilization of devices and system i.e. more output
from all the resources
2. Task shifting: The time assigned for shifting tasks in these systems are very less
3. Focus on application: focuses on running applications and less importance to
applications which are in the queue
4. RTOS in the embedded system: Since the size of programs are small, RTOS can also
be used in embedded systems like in transport and others
5. Error free
6. Memory allocation: memory allocation is best managed in RTOS
DISADVANTAGES OF DISTRIBUTED OS
1) They are difficult to implement
2) Requires complicated algorithm
3) Failure of the main network will stop the entire communication
4) These types of systems are not readily available as they are very expensive
USABILITY ROBUSTNESS
INTERACTIVITY EXTENSIBILITY
PORTABILITY
SCALABILITY
USABILITY
PORTABILITY
ROBUSTNESS
INTERACTIVITY
SECURITY
EFFICIENCY:
EXTENSIBILITY
SCALABILITY
- A scalable OS is able to use resources as they are added
- It can easily adjust its degree of multiprogramming
- Scalability is an important attribute of multiprocessor systems
- Scalability is the ability of a system to accommodate an increasing number of
elements or objects, to process growing volumes of work.
- Network OS is more scalable than Distributed OS
- Scalability issues arise from application code, hardware resources, and database
limitations
USABILITY
- A usable OS is one that has the potential to serve a significant user base.
- Usability relates to the effectiveness, efficiency and satisfaction with which users
achieve goals using computer systems
WHAT MAKES A USABLE OS?
- Easy to Learn
- Has an interface that works as users expect
- Has environments that are pleasant to look at and interact with.
- Efficient
- Controllable
- Human Friendly
- Error Tolerant
- Error Clarity
- Error Magnitude.
PORTABILITY
- A portable OS is designed such that it can operate on many hardware configurations
- Porting is the task of doing any work necessary to make the computer program run
in the new environment
- C programming language is portable because it is a hardware or platform
independent
- Linux is portable because it has already been ported to various systems; it can be
used in an operating systems other than the one in which it was created without
requiring major rework
ROBUSTNESS
- This is the ability of a computer system to cope with errors during execution and
cope with erroneous input.
- A robust OS is fault tolerant and reliable
- Areas of Computer Science that are encompassed by robustness are: robust machine
learning and robust security network.
N.B. Fault tolerance is the ability of OS to handle software and hardware error; the
system will not fail due to isolated application or hardware errors and if it if it fails it
does so by minimizing loss of work and preventing damage to the system hardware
INTERACTIVITY
- This allows applications to respond quickly to user actions and events
- Interactivity refers to the ability of users to interact with a computer system
- Examples of interactive OS’s are: Mac and Windows OS’s
Human-Computer Interaction (HCI)
HCI studies requires the evaluation of obtained observations while the user performs
certain tasks and habits of the user together.
These data are used in the development process of interactive systems.
HCI has four main components namely:
- The user
- The task
- The tools/ interface
- The context
AN OS DOES THE FOLLOWING ACTIVITIES RELATED TO INTERACTIVITY –
- Provides the user an interface to interact with the system.
- Manages input devices to take inputs from the user.
SECURITY
- A secure OS prevents user and software from assessing services and resources
without authorization
- The process of ensuring OS availability, confidentiality, integrity is known as
operating system security.
- OS security refers to the processes or measures taken to protect the operating
system from dangers, including viruses, worms, malware, and remote hacker
intrusions.
- A major security problem for operating system is Authentication problem.
EFFICIENCY:
- An efficient OS achieves high throughput and low average turnaround time
- Efficiency is the ratio of useful work to resources (processor and storage) expended
- An OS is efficient when all processes are optimized
FACTORS THAT MEASURE EFFICIENCY OF AN OS
-System performance metrics are the factors that measure the efficiency of an OS.
Examples are:
- Available memory
- Average bytes read/write
- Average read/write time
- Disk read/write per second
- Network utilization
- Pages input per second
- Processor queue length
- Processor usage
N.B. Throughput measures the amount of work a processor can complete within a
certain time period.
EXTENSIBILITY
- An extensibility OS will adapt well to new technologies and provide
capabilities to extend the OS to perform tasks beyond its original design.
- Extensibility is the ability of the software system to allow and accept the
significant extension of its capabilities without major rewriting of code or
changes in its basic architecture.
- An extensible language user can create new notations, new data structures,
new operations.
-
N.B. Scalability means a system is able to accommodate growth i.e. the system grows.
Extensibility means able to easily add something to the system.
OS/390
- OS/390 is the IBM OS
- It is a renamed version of MVS (Multiple Virtual Storage)
- It comes with Unix and programming interfaces
- It can be used as both MVS system and Unix system simultaneously
- It runs older applications such as COBOL and FORTRAN
- The design objectives of MVS are to provide performance, reliability, availability and
capability for the large system environment.
- MVS attempt to recover programming errors; It has many functional recovery
routines that gains control in the event of an OS failure.
N.B.
COBOL: Common Business-Oriented Language
FORTRAN: Formula Translation
UNIX
- It is a multiuser, timesharing OS
- It is used on wide variety of computers
- It was developed in the early 1970’s (November 3rd, 1971) at Bell’s laboratory by Ken
Thompson and Dennis Ritchie
- It was the first OS to be written in a High level language (C language)
- It was the first open source/ system that could be improved by anyone
- Unix supported on systems supplied by Sun Microsystems is called Solaris
- Unix supported on Systems supplied by DEC is called Ultrix
- Unix supported on systems supplied by HP is called HP-Unix.
N.B.
- The normal practice was to use assembly language for writing OS due to which OS
were system dependent. They were usable only in the system for which they were
developed
- Open source software facilitates enhancements to software products by permitting
anyone in the developer community to test, debug and enhance applications.
- Examples of an open source are Linux, Free BSD, Open BSD (Berkeley Software
Distribution).
MICROSOFT WINDOWS
- It was developed in Microsoft to overcome the limitation of its own MS-DOS
VERSIONS OF MICROSOFT WINDOWS
- Windows 95
- Windows 98
- Windows 2000
- Windows Vista
- Windows XP
- Windows 7
- Windows 8
- Windows 10
- Windows 11
MACINTOSH (MAC)
- It was introduced in 1984 by Apple computer
- It was the first wildly sold PC with a GUI (Graphical User Interface)
- It was designed to provide users with a natural and user friendly computers
interface.
- It was the first OS to use the mouse, use of icons to represent objects, click and drag
actions.
- Mac OS proved to be relatively easy to learn and use because of GUI that use
graphical symbols to facilitate user interaction with programs.
- In Macintosh computers, the GUI was embedded in the OS
- OS Xerox’s Palo Alto Research Centre (PARC) developed the mouse and GUI.
MS-DOS
- It is a single user OS for IBM
- It was introduced in 1981
- It was the most popular OS for personal computers in the 1980’s.
Limitation of MS-DOS
- It was a single user OS that did not support multitasking.
- It did not have any protection features to protect two or more programs stored in
memory from one another.
- It had a command line interface that some people found difficult to use and hard to
learn.
-
LINUX
- It is an open source OS.
- It has both GUI and text based user interface.
- It is multitasking OS
- Linux could be installed on a computer system along with another OS e.g. windows
N.B.
- You can choose which OS to run at booting time.
- Linux boot manager/ Linux loader helps with booting.
- While running Microsoft windows, you can start Linux straight from MS-DOS
command prompt using LOADIN command.
ADVANTAGES OF LINUX OS
- it is cheap and free
- It can be copied and distributed without restrictions
- It is simple because many of the Unix features and tools are supported on Linux.
MODULE 5- TERMINOLOGIES USED IN OS AND HARDWARE CONCEPTS
TERMINOLOGIES USED IN OS
1. Register: is a high speed memory located on a processor that holds data for
immediate use by the processor.
2. Time slicing: for every workstation, there is only one microprocessor running. Each
task is given time slice of the microprocessor cycles when the time slice is up, the
task is suspended and the microprocessor executes the next task.
3. Device Driver: is a software through which kernel interacts with hardware devices.
4. Client: is a process that requests a service from another process (a server). The
machine on which the client process run is called Clients.
5. Server: is a process that provides services to other processes called clients. The
machine on which these processes run is also called a Server.
6. Fault Tolerance: is the operating system ability to handle software or hardware
errors.
7. Shell: is an application (Typically GUI or text based) that enables a user to interact
with an OS.
8. Response Time: is the interval from the time of submission of a job to the system for
processing to the time the first response to the job is produced by a system.
9. Single User System: is a system that is intended to serve one person at a time. It
runs windows as the OS.
10. Multiuser System: is a system that is intended to serve many users at a time. It is
connected to the LAN that is the number of computer called Workstations are
connected to a central computer so that the central computer is shared by all
workstation.
11. Process: is a unit of program in execution. It is a separately executable unit of code
that executes independently and competes for system resources with other
processes.
MULTIPROGRAMMING
- Multiprogramming is the ability of an operating system to execute more than one
program on a single processor machine.
- In a multiprogramming system, there are one or more programs loaded in the main
memory which are ready to execute.
- Only one program at a time gets the CPU for executing its instructions (Single
processor)
- Multiprogrammed systems provide an environment in which the various system
resources (CPU, memory, peripheral devices) are utilized effectively
- It stores multiple programs in the memory at once to execute them concurrently.
- There is at most one process running on the system, while others are waiting for
their turn (in the queue)
- MAIN PURPOSE: To maximize the use of the CPU
- The CPU is never idle (as long as there is at least one job to be executed)
- There is no user interaction with the system during execution of tasks
MULTIPROCESSING
- Multiprocessing is the ability of an operating system to execute more than one
process simultaneously on a multiprocessor machine.
- The computer uses more than one CPU at a time in this system
- If one processor fails, other processors are allowed to take over a function previously
performed by that processor
MULTITASKING
- Multitasking is the logical extension of multiprogramming.
- The main difference between multitasking and multiprogramming is that in
multitasking, the switching of jobs occurs so frequently and quickly that the users
can interact which each program while it’s running.
- Multitasking is the concurrent execution of multiple jobs (tasks given by user) in a
single user system.
- Multitasking is the ability of an operating system to execute more than one task
simultaneously on a single processor machine.
- Actually, the CPU switches from one task to the next so quickly that it appears as if
all the tasks are executing at the same time.
- No two tasks on a single processor machine can be executed at the same time (in
actual sense)
- More than one task/ program/ job/ process can reside into the same CPU at one
point of time
MULTITHREADING
- Multithreading is the ability of an operating system to execute different parts of a
program called threads at the same time.
- Threads are the light weight processes which are independent parts of a process or
program
- In multithreading systems, more than one thread is executed parallel on a single
CPU.
- It is a technique that incorporates multiple threads of execution within a process to
perform parallel activities possibly simultaneously.
COMPARISM BETWEEN MULTIPROGRAMMING, MULTIPROCESSING, AND
MULTITASKING
MAJOR DIFFERENCE BETWEEN MULTIPROGRAMMING AND MULTITASKING
MULTIPROGRAMMING MULTITASKING
There is no user interaction There’s full user interaction
during execution during execution
HARDWARE CONCEPTS
- Hardware is the mechanical device that makes up the computer.
- It consists of interconnected electronic devices that can be used to control
computer’s operation, input, and output.
- Computer hardware includes the physical parts of a computer, such as
Central Processing Unit (CPU), Monitor, Mouse, keyboard, computer data
storage, Graphics card, Sound card, Speakers and Motherboard.
-
HARDWARE COMPONENTS
1. Mainboard (Motherboard, main circuit board, system board, baseboard, planar
board, logic board): is the main Printed Circuit Board (PCB) in general-purpose
computers and other expandable systems. It serves as the backbone for
communication between hardware components, allowing them to communicate via
the electrical connections on the board (Printed Circuit Board).
N.B.
Printed Circuit Boards (PCB) is a hardware component that provides electrical
connection between devices at various locations on the board.
FIXED PARITION
- To create partition within the main memory, one partition is for each job
- Once the system is in operation, the partition sizes remain static.
- As each job terminates, the status of its memory partition is changed from busy to
free so incoming jobs can be assigned to the partition
Partition Partition Job Wasted
size size Space
1 8k 1k 7k
2 32k 9k 23k
3 32k 9k 23k