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.
 



Did you know that you can earn dollars by locking premium areas of your blog / site?
ReplyDeleteTo start you need to join AdWorkMedia and run their Content Locking widget.