What is Software?
System Software
It is a set of programs that controls the operations of the computer and its devices.
Application Software
It is a set of programs that performs specific tasks for users.
3 Types of Programs:
User/Application Programs
System Programs
Driver Programs
Architecture of Computer System
Computer system can be divided into four components:
What is an Operating System?
2 Related Goals OF OS:
Convenience
Efficiency
OS Functions and Purposes:
Resource Manager
Service Provider
Virtual Machine
Areas of Operating System Responsibility:
Process Management
Process Related Services
Memory Management
Memory Related Services
I/O Device Management
I/O Device Related Services
File System Management
File System Related Services
Security
Security Related Services
Networking
Networking Related Services
User Interfaces
Techniques of Organizing Operating Systems:
Monolithic Designs
Layered Designs
Microkernels Design
Virtual Machine Designs
History of the Operating System
Pre-Batch Systems
Simple Batch Systems
Multi-Programmed Batch Systems
Time-Sharing Systems (Multitasking System)
Personal Computer Systems
Parallel Systems (Multiprocessor Systems)
Distributed Systems
Real-Time Systems
- It is a programs used to direct the operation of a computer, as well as documentation giving instructions on how to use them.
- It is a set of instructions or programs for controlling the computer.
System Software
It is a set of programs that controls the operations of the computer and its devices.
Application Software
It is a set of programs that performs specific tasks for users.
3 Types of Programs:
User/Application Programs
- Programs used by the users to perform a specific task.
System Programs
- An interface between user and computer.
Driver Programs
- Communicate with I/O devices with computer.
Architecture of Computer System
Computer system can be divided into four components:
- Users
- Application Program
- Operating System
- Hardware
What is an Operating System?
- It is a set of one or more programs which provides a set of services that interface applications to computer hardware and which allocates and manages resources shared among multiple processes.
2 Related Goals OF OS:
Convenience
- Operating System mainly developed to make the use of computer easier.
Efficiency
- Operating System should ensure that the computer resources are managed properly.
OS Functions and Purposes:
- Resource Manager
- Service Provider
- Virtual Machine
Resource Manager
- Allocates scarce resources
- Protects entities from interfering with each other
- Protects itself and the overall system from both malicious and accidental damage
- Programs run at the pleasure of the OS
Service Provider
- Provides common functionality, simplifying applications
- Provides standard interfaces, making applications more consistent
Virtual Machine
- Defines a number of characteristics not found on the hardware
- Presents a cleaner and easier “machine” for applications to run on
- Hides the boundary between OS and hardware, allowing flexibility in hardware design while still running the same programs
Areas of Operating System Responsibility:
- Processes Management
- Memory Management
- I/O Devices Management
- File Systems Management
- Security
- Networking
- User Interface
Process Management
- Manages CPU in terms of running programs, called processes
- Schedules processes, picking the next one to get the CPU
- Switches between processes, called context switching
Process Related Services
- Creating processes
- Terminating processes
- Changing process parameters (e.g. priority)
- Providing inter process communication
- Providing process synchronization
Memory Management
- Assigns areas of memory belonging to processes to areas of physical memory
- Manages requests that exceed available physical memory
- Controls sharing of memory
Memory Related Services
- Direct allocation requests
- Direct freeing of memory
- Serving memory needs
- Managing sharing of areas of memory
I/O Device Management
- Provides common device interface tasks
- Manages exclusive access
- Hides device details
I/O Device Related Services
- Establish access to a device
- Release a device
- Read from a device
- Write to a device
- Grant exclusive access to a device
- Provide special device operations
File System Management
- Provides translation from names to resources
- Manages persistent storage of data
- Presents a device-independent interface
- Protects resources from unauthorized access
File System Related Services
- Open a file
- Close a file
- Read from a file
- Write to a file
- Seek within a file
- Query and modify file parameters
Security
- Part of other management responsibilities
- Authenticates the identity of a requester
- Authorizes access according to a security policy
Security Related Services
- Setting Security Policies
- Querying Security Polices
- Encrypting and Decrypting Message (especially carried over the network)
Networking
- Implements protocol stacks
- Provides services for:
- Establishing connections to remote systems
- Listening for connections from remote systems
- Exchanging data with remote systems
Networking Related Services
- Establishing a connection to a remote service
- Listening for connections from remote client
- Sending messages to a remote system
- Receiving messages from a remote system
- Closing a connection to a remote system
User Interfaces
- OS provides a design that have integrated the user interface which the user can deal with.
Techniques of Organizing Operating Systems:
- Different Operating System Structure:
- Monolithic Designs
- Layered Designs
- Microkernel Designs
- Virtual Machines Designs
Monolithic Designs
- Kernel structured as a single program
- Usual design techniques
- Often criticized
Layered Designs
- Dependency on only lower layers
- Tricky to structure
- Often requires splitting subsystems into multiple layers
Microkernels Design
- Move much of the traditional kernel functionality into separate programs
- Reduce the size of the kernel
- Components communicate with messages passed through the microkernel
Virtual Machine Designs
- Virtualize the hardware
- Create the illusion of multiple machines
- Each guest believes it has the hardware to itself
- Allows different OSs to run at the same time
History of the Operating System
- Pre-Batch Systems
- Simple Batch Systems
- Multi-Programmed Batch Systems
- Time-Sharing Systems
- Personal Computer Systems
- Parallel Systems
- Distributed Systems
- Real-Time Systems
Pre-Batch Systems
- No OS on earliest machines
- Collections of useful routines:
- First code reuse
- Foreshadowed the service provider aspect of operating systems
- Machines scheduled with sign-up sheets
- Issue:
- Too much spent time loading and reloading compilers.
- Solution:
- Batch all programs that use the same compiler.
Simple Batch Systems
- Development of high-speed magnetic tape.
- Bundles together all programs/jobs that use the same compiler.
- Issue:
- What if programs/jobs requires additional input?
- Solution:
- Spooling (Simultaneous Peripheral Operation On-Line)
Multi-Programmed Batch Systems
- Kept OS runs jobs one at a time based on a scheduling scheme.
- CPU is kept busy, less idle time waiting for I/O.
- OS rapidly switch among running programs.
- Issue:
- User cannot use the computer when he wants to.
- Solution:
- Allow multiple users to connect to the computer over modems from dumb terminals at home.
Time-Sharing Systems (Multitasking System)
- Multiple users all using a single computer at the same time.
- OS provides process synchronization and communication.
- OS provides deadlock avoidance.
- OS provides a file system.
Personal Computer Systems
- Computers finally become cheap enough for individual users to own.
- GOAL for OS is more of user convenience and efficiency.
Parallel Systems (Multiprocessor Systems)
- Computers having more than one processor.
- Also called as Tightly-Coupled system.
- 2 Techniques:
- Symmetric Multiprocessing
- Where each processors share the same memory and I/O; each processor works independently.
- Asymmetric Multiprocessing
- Where each processor is assigned a specific task; master-slave processors.
- Advantages:
- Increased throughput
- Economy Scale
- Increased Reliability
Distributed Systems
- After allowing multiple users and programs, multiple machines comes next
- Manage multiple computing systems as a single pool of computing resources
- Share file systems
- Support multiple CPUs cooperating on a single task
- Also called as Loosely-Coupled Systems
- Advantage:
- Resource Sharing
- Computation Speedup (Load-Sharing)
- Reliability
- Communication
- Scalability
Real-Time Systems
- OS must provides an output within a fixed timeframe.
- 2 Types:
- Hard Real-Time System
- System must perform in time or system will fail.
- Soft Real-Time System
- If system is unable to perform in time, performance degradation only.