Software
# Topic covered
* Systems software
* Application software
* Operating System(OS)
* Types of OS
* Multithreading vs Multitasking
Software is a set of programs (sequence of instructions) that allows the users to perform a well-defined function
or some specified task
# Types of software
* Systems software
* Application software
Systems software
- System software is also known as
low-level software
- It is designed to manage system resources
- It
operates and controls
the computer system and provides a platformto run application software
- Types of System Software
- Operating System
- Windows, Linux, Mac Os…
- Device Drivers
- Drivers for Keyboard, Mouse, Printer …
- Firmware Software
- BIOS (Basic Input/Output System) chip.
- UEFI (Unified Extended Firmware Interface) chips.
- File management utilities, disk operating system (or DOS) etc..
- Operating System
Application software
- Application software are
end-user computer programs
- Developed to performs
specific task for the user
- Example:
- Database Software
- Oracal, SQLite
- Multimedia Software
- Web Browsers etc..
- Database Software
Operating System(OS)
- An OS is an system software that provides an
interface between user and hardware
- An OS is a piece of software that
manages all the resources of a computer system,both hardware and software
- And
provides an environment
in which the user can execute his/her programs in a convenient and efficient mannerby hiding underlying complexity
of the hardware and acting as a resource manager.
Function of OS
Resource Allocation
Resource Management
- Memory, Process, Files management
- I/O Device, CPU management etc…
- Details
- Access to the computer hardware.
- Interface between the user and the computer hardware
Abstraction
: Hides underlying complexity of the hardware- Programs isolation and protection.
What if there is no OS?
Bulky
and complex app. (Hardware interaction code must be in app’s code base)Resource exploitation
by 1 App.- No memory protection.
OS goals
- For End Users
- Primary:
Convienience
- Secondary:
Efficiency
- Primary:
- Efficiency
- Maximum CPU utilization
- Less process starvation
- Higher priority job execution
Types of OS
- Single process OS [MS DOS, 1981]
Batch-processing OS [ATLAS, late 1950s – early 1960s]
- A set of
similar jobs
are made as batch and are stored in the main memory for execution. - A job gets assigned to the CPU, only when the execution of the previous job completes.
- In I/O operation: CPU remails idle
Multi-programming OS [THE, early 1960s]
- Multiprogramming
increases CPU utilization
by keeping multiple jobs in the memory - So that the CPU always has one to execute in case some job gets
busy with I/O
- Multi programming works on the concept of
context switching
- Single CPU
- Context switching
- Pros
- CPU idle time reduced
- Cons
Process starvation
- If current job is too long, as switch happens when current process goes to wait state.
Multi-tasking OS [CTSS, early 1960s]
- Multitasking is a
logical extension of multiprogramming
Multiprogramming + Premption = Multitasking
- Premption is based on
time sharing
alongside the concept of context switching
- Single CPU
- Context switching and time sharing used
- Pros
Process starvation is low
- Increases responsiveness.
Multi-processing OS [Windows]
- Multi-processing OS used
more than 1 CPU
in a single computer
- Multiple CPU
- Parallel processing
Distributed OS
- OS manages many bunches of resources, >=1 CPUs, >=1 memory, >=1 GPUs, etc
- Loosely connected autonomous, interconnected computer nodes.
- collection of independent, networked, communicating, and physically separate computational nodes.
Real time OS
- Real time error free,
computations within tight-time boundaries
- Air Traffic control system, ROBOTS etc
Multithreading vs Multitasking
Program
- A Program is an executable file which contains a certain
set of instructions
written to complete the specific job or operation on your computer
Process
Program under execution
. Resides in Computer’s primary memory (RAM)
Thread
- A process’s tasks can be divided into
independent path of execution
called thread - A thread shares resources with other threads of the same process: the code section, the data section, files and signals.
- E.g.
- Multiple tabs in a browser,
- Text editor (When you are typing in an editor, spell-checking, formatting of text and saving the text are done concurrently by multiple threads.)
Multi-threading
- Multithreading is a system in which many
threads are created from a process
through which the computer power is increased. - Used to achieve parallelism there thread are executed parallely
- If CPU == 1
- Parallelism will fail(No benifits)
- If CPU > 1
- Parallelism is possible
Difference
- Multi-tasking
- Concept of
more than 1 processes
being context switched Separate resource
s allocated to each process
- Concept of
- Multi-threading
- Concept of
more than 1 thread
. Threads are context switched Resources are shared
among threads
- Concept of