• Introduction to what an operating system is?
• Issues involved in the design of an operating system
• Different types of operating systems
Lets start
What is an operating system?
Top-down view
• Provides an extended or virtual machine abstraction to user programs
• Easier to program than the underlying hardware.
• All services are invoked and accomplished through system calls.
Bottom-up view
• Acts as a resource manager of a complex system
• Resources consist of processors, memories, timers, disks, mice, keyboard, network
interfaces, printers etc.
• OS manages allocation of these resources to user programs in an orderly and controlled
manner
Resource multiplexing
• OS multiplexes resources in two ways:
• In time, In space
• Time multiplexing involves different programs taking turns in using the resource.
Example: CPU scheduling, printer sharing.
• Space multiplexing involves different program getting part of the resource possibly at the
same time. Example: memory is divided into several running programs.
The major OS issues
• Structure: how is the OS organized?
• Sharing: how are resources shared across users?
• Naming: how are resources named (by users or programs)?
• Security: how is the integrity of the OS and its resources ensured?
• Protection: how is one user/program protected from another?
• Performance: how do we make it all go fast?
• Reliability: what happens if something goes wrong (either with hardware or with
program)?
• Extensibility: can we add new features?
• Communication: how do programs exchange information, including across a network?
More OS issues
• Concurrency: how are parallel activates (computation and I/O created and controlled?
• Scale: what happens as demands or resources increase?
• Persistence: how do you make data last longer than program executions?
• Distribution: how do multiple computers interact with each other?
• Accounting: how do we keep track of resources usage, and perhaps charge for it?
Type of Operating Systems
Main frame operating systems:
- Huge amounts of I/O activity.
- Transaction and time sharing services.
- Batch processing is routine non-interactive jobs. e.g. claims processing, sales
- reporting etc. Transaction processing systems handle large number of small
- requests e.g. check processing in banks, air line reservations etc.
- Time-sharing systems allow multiple remote users to run jobs at the same time e.g.
- querying a database. OS Optimized for these tasks. Example is OS/390
Server operating systems
- Run on very large PCs, workstations or even main-frames. They serve multiple users over a network simultaneously
- And allow them to share hardware and software. Examples are web servers, database transaction servers etc. Examples of
- OS in this class are Win2K, XP and flavors of UNIX.
Multiprocessor operating systems
- OS is basically a variation to server operating systems with special provisions for connectivity and communication management between different CPUs.
PC operating systems
- OS provides a nice interface to a single user.
- Typically used for word processing, spread sheets, Internet access etc.
Real-time operating systems
- Characterized by time as the key parameter. Real-time response to internal and external events is more important than any other design goal. Classified into two sub-categories: Hard and Soft real-time.
- Example applications include Industrial process control, robotics and assembly lines, air traffic control, network routers and telecommunication switches, multi-media systems etc.
Embedded operating systems
- Embedded in small devices e.g. palm-top computers e.g. PDA, TV sets, micro-wave ovens, mobile phones. They have characteristics of real-time systems (mainly soft real-time) but also have restraints on power consumption, memory usage etc.
- Examples include PalmOS and Windows CE. Height of this type is smart-card systems.
Distributed Systems
- Distribute the computation among several physical processors.
Loosely coupled system
- Each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines.
- Advantages of distributed systems:
- Resources Sharing, Computation speed up – load sharing, Reliability, Communications
Parallel Systems
- Multiprocessor systems with more than on CPU in close communication.
Tightly coupled system
- Processors share memory and a clock; communication usually takes place through the shared memory.
- Advantages of parallel system
- Increased throughput, Economical, Increased reliability, graceful degradation, fail soft systems.