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 controlsthe 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 environmentin which the user can execute his/her programs in a convenient and efficient mannerby hiding underlying complexityof the hardware and acting as a resource manager.
Function of OS
Resource AllocationResource 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?
Bulkyand complex app. (Hardware interaction code must be in app’s code base)Resource exploitationby 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 jobsare 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 utilizationby 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 sharingalongside 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 CPUin 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 instructionswritten 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 executioncalled 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 processthrough 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 processesbeing context switched Separate resources allocated to each process
- Concept of
- Multi-threading
- Concept of
more than 1 thread. Threads are context switched Resources are sharedamong threads
- Concept of