- 1.CSE 380Introduction to Operating Systems Insup Lee Fall
00
2. What is an Operating System?
- A piece of software that provides a convenient, efficient
environment for the execution of user programs.
Hardware Operating systems Systems software Applications
software Users 3. Resource Abstraction and Sharing
- Hides the details of how the hardware operates
- Provides an abstract model of the operation of hardware
components
-
- generalize hardware behavior
-
- limit the flexibility in which hardware can be manipulated
- Computation model: processes, threads
- Resources: memory, disk, files, cpu, etc.
4. Why do we need an operating system?
- User viewpoint -- provide user interface, command interpreter,
directory structure, utility programs (compilers, editors,
filters)
- Program environment viewpoint -- enhance the bare machine
higher-level I/O, structure files, notion of independent processes,
improved store (size, protection)
- Efficiency viewpoint -- replace a human operator scheduling
jobs, storing I/O (files), invoking necessary programs such as
compiler
- Economic viewpoint -- allow concurrent uses and good scheduling
of resources
- So, the goals are to make the system convenient to use (via
system calls) and to manage resources efficiently.
5. Evolution of an OS
6. Brief History of Operating Systems
- 1940's -- First Computers
- 1950's -- Batch Processing
- 1960's -- Multiprogramming (timesharing)
- 1970's -- Minicomputers & Microprocessors
- Late 1970's, 1980's -- Networking, Distributed Systems,
Parallel Systems
- 1990's and Beyond -- PCs, WWW, Mobile Systems
7. 1940's -- First Computers
- Computer dedicated to one user/programmer at a time. Program
loaded manuallyby programmer, using console switches. Debugging
using console lights.
-
- Interactive (user gets immediate response)
-
- Expensive machine idle most of time, because people are
slow.
-
- Programming & debugging are tedious.
-
- Each program must include code to operate peripherals -- error
prone, device dependencies.
- Libraries of subroutines to drive peripherals are example of
typical OS service.
8. 1950's -- Batch Processing
- User/programmer submits a deck of cards that describes a job to
be executed.
- Jobs submitted by various users are sequenced automatically by
a residentmonitor.
- Tape drives available for batching of input and spooling of
output.
-
- Computer system is kept busier.
-
- No longer interactive; longer turnaround time.
-
- CPU is still idle for I/O-bound jobs.
- OS issues -- command processor (JCL), protection of resident
monitor from user programs, loading of user programs after
monitor.
9. 1960's -- Multiprogramming (timesharing)
- The advent of the I/O processor made simultaneous I/O and CPU
processingpossible.
- CPU is multiplexed (shared) among a number of jobs -- while one
job waitingfor I/O, another can use CPU.
-
- Interactiveness is restored.
-
- Hardware and O.S. required become significantly more
complex.
- Timesharing - switch CPU among jobs for pre-defined time
interval
- Most O.S. issues arise from trying to support multiprogramming
-- CPU scheduling, deadlock, protection, memory management, virtual
memory, etc.
- CTSS (Compatible Time Sharing System), Multics
10. 1970's - Minicomputers & Microprocessors
- Trend toward many small to mid-range personal computers, rather
than a single mainframe.
- Early minicomputers and microprocessors were small, so there
was some regression to earlier OS ideas.
-
- e.g. DOS on PC is still essentially a batch system similar to
those used in 1960, with some modern OS ideas thrown in (e.g.,
hierarchical file system).
- This trend is changing rapidly because of powerful new
microprocessors.
- Also, the user interface became more important.
11. Late 1970's, 1980's - Networking
- Powerful workstations (e.g., PDP, VAX, Sunstations, etc.)
- Local area networks (e.g., Ethernet, Token ring) and
long-distance network (Arpanet)
- Networks organized with clients and servers
- Decentralization of computing requires more communication
(e.g., resource sharing)
- O.S. issues -- network communication protocols, data
encryption, security, reliability, consistency of distributed
data
- Real-Time Systems timing constraints, deadlines, QoS (90s
term)
12. 1990's and Beyond
- Parallel Computing (tera-flops)
- Powerful PCs, Multimedia computers
- High-speed, long-distance communication links to send large
amounts of data, including graphical, audio and video
- Electronic notebooks using wireless communication
technologies
- O.S. issues -- Large heterogeneous systems,mobile computing,
etc.
13. Basic OS Concepts
- Processes: programs in execution
- Resources (e.g., files, memory, display)
-
- A process must request it from the OS
-
- The process is blocked until it is allocated
- Shell -- command interpreter
14. Services provided by OS
- Controlled access to files
- Error detection and response
-
- hardware errors (e.g., memory error, device failures)
-
- software errors (e.g., overflow, out of memory boundary)
-
- collect usage statistics, monitor performance
15. Services Provided by OS (2)
- CPU scheduling:allocate computing time among several
processes
- Memory management:allocate main memory among several
processes
- Swapping:move processes and their data between main memory and
secondary storage
- I/O device drivers:specialized code required to operate I/O
devices
- File system:organize mass storage (disk) into files and
directories
- Utilities:date/time, accounting, file copy, etc.
- Command interpreter:allow users to enter commands
interactively
- System calls:allow user programs access to O.S. services
- Protection:keep processes from interfering with each other and
system
- Communication & Resource sharing:allow users/processes to
communicate (over networks) and share resources(e.g., laser
printers, disks, etc.)
- Security:protect machines from intruders, worms and
viruses
16. Factors in OS Design
-
- Performance/Efficiency -- CPU utilization, resource utilization
(e.g. disks), response time
-
- Correctness/Reliability -- error-free (no software
crashes)
-
- Maintainability -- modular construction, clearly defined
interfaces, well-documented
-
- Small in size-- main memory and secondary storage valuable,
larger means more error-prone, larger means takes longer to
write
-
- Standards and open systems
17. Operating System Structure