Download Chapter 1 - Computing

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Plan 9 from Bell Labs wikipedia , lookup

Burroughs MCP wikipedia , lookup

RSTS/E wikipedia , lookup

Mobile operating system wikipedia , lookup

Copland (operating system) wikipedia , lookup

Spring (operating system) wikipedia , lookup

Security-focused operating system wikipedia , lookup

VS/9 wikipedia , lookup

Unix security wikipedia , lookup

Distributed operating system wikipedia , lookup

CP/M wikipedia , lookup

Transcript
Understanding Operating Systems
Chapter 1
Introducing Operating Systems
Introduction
• The basic role of an operating system
• The major operating system software subsystem
managers and their functions
• The types of machine hardware on which operating
systems run
• Innovations in operating systems development
• The differences between batch, interactive, realtime, hybrid, and embedded operating systems
• The evolution of operating system software
Understanding Operating Systems,
2
What is an Operating System?
• Computer System
– Software (programs)
– Hardware (physical machine and electronic
components)
• Operating System
– Part of computer system (software)
– Manages all hardware and software
• Controls every file, device, section of main memory
and nanosecond of processing time
• Controls who can use the system
• Controls how system is used
Understanding Operating Systems,
Operating System Software
• Includes four essential subsystem managers
– Main Memory Manager, Processor Manager
– Device Manager and File Manager (hard drives)
Understanding Operating Systems,
4
Operating System Software (cont'd.)
• Each manager:
– Works closely with other managers
– Performs a unique role
• Manager tasks
– Monitor its resources continuously
– Enforce policies determining:
• Who gets what, when, and how much
– Allocate the resource (when appropriate)
– Deallocate the resource (when appropriate)
Understanding Operating Systems,
5
Operating System Software (cont'd.)
• Network Manager
– Coordinates the services required for multiple
systems to work cohesively together
– Shared network resources: memory space,
processors, printers, databases, applications, etc.
Understanding Operating Systems
6
Operating System Software (cont'd.)
Understanding Operating Systems,
7
Memory Manager
• In charge of main memory
– Random Access Memory (RAM)
• Responsibilities include:
– Preserving space in main memory occupied by
operating system
– Checking validity and legality of memory space
request
– Setting up memory tracking table
• To keep track of who is using which section of
memory
– Deallocating memory to reclaim it
Understanding Operating Systems,
8
Main Memory Management
• Read-only memory (ROM)
– Another type of memory
– Critical when computer is powered on
– Holds firmware: programming code
• When and how to load each piece of the operating
system after the power is turned on
– Non-volatile
• Contents retained when the power is turned off
Understanding Operating Systems, 7e
9
Processor Management
• In charge of allocating Central Processing Unit
(CPU)
• Tracks process status
– An instance of program execution (e.g. input,
processing, output)
• Two levels of responsibility:
– Handle jobs as they enter the system
• Handled by Job Scheduler
– Manage each process within those jobs
• Handled by Process Scheduler
Understanding Operating Systems,
10
Device Management
• In charge of monitoring all devices (resources)
• Responsibilities include:
– Choosing most efficient resource allocation method
• Printers, ports, disk drives, etc.
• Based on scheduling policy
– Allocating the device
– Starting device operation
– Deallocating the device
• What is the function of a device driver?
Understanding Operating Systems,
11
File Management
• In charge of tracking every file in the system
– Data files, program files, compilers, application
programs
• Responsibilities include:
– Enforcing user/program resource access restrictions
• Uses predetermined access policies
– Controlling user/program modification restrictions
• Read-only, read-write, create, delete
– Allocating resource
• Opening the file
• Deallocating file (by closing it)
Understanding Operating Systems,
12
Network Management
• Included in operating systems with networking
capability
• Authorizes users to share resources
– Overall responsibility for every aspect of network
connectivity
• Devices, files, memory space, CPU capacity, etc.
Understanding Operating Systems,
13
User Interface
• Portion of the operating system
– Direct interaction with users
• Two primary types
– Graphical user interface (GUI)
• Input from pointing device
• Menu options, desktops, and formats vary
– Command line interface
• Keyboard-typed commands that display on a monitor
• Strict requirements for every command: typed
accurately; correct syntax; combinations of commands
assembled correctly
Understanding Operating Systems,
14
Cooperation Issues
• No single manager performs tasks in isolation
• Each element of an operating system
– Performs individual tasks and
– Harmoniously interacts with other managers
• Incredible precision required for operating system to
work smoothly
• More complicated when networking is involved
Understanding Operating Systems,
15
Cloud Computing
• Practice of using Internet-connected resources
– Performing processing, storage, or other operations
• Operating system maintains responsibility
– Managing all local resources and coordinating data
transfer to and from the cloud
• Role of the operating system
– Accessing resources
– Managing the system efficiently
Understanding Operating Systems,
16
A Brief History of Machine Hardware
• Hardware: physical machine and electronic
components
– Main memory (RAM)
• Data/Instruction storage and execution
– Input/Output devices (I/O devices)
• All peripheral devices in system
• Printers, disk drives, CD/DVD drives, flash memory,
and keyboards
– Central processing unit (CPU)
• Controls interpretation and execution of instructions
• Controls operation of computer system
Understanding Operating Systems,
17
A Brief History of Machine Hardware
(cont'd.)
• Computer classification
– By capacity and price (until mid-1970s)
• Mainframe
– Large machine
• Physical size and internal memory capacity (relatively)
– Classic Example: 1964 IBM 360 model 30
•
•
•
•
CPU required 180-square-foot air-conditioned room
CPU size: 5 feet high x 6 feet wide
Internal memory: 64K
Price: $200,000 (1964 dollars)
– Applications limited to large computer centers
Understanding Operating Systems,
18
A Brief History of Machine Hardware
(cont'd.)
• Minicomputer
– Developed for smaller institutions
– Compared to mainframe
– Smaller in size and memory capacity
• Cheaper
– Example: Digital Equipment Corp. minicomputer
• Price: less than $18,000
– Today
• Known as midrange computers
• Capacity between microcomputers and mainframes
Understanding Operating Systems,
19
A Brief History of Machine Hardware
(cont'd.)
• Supercomputer
– Massive machine
– Developed for military operations and weather
forecasting
– Example: Cray supercomputer
• 6 to 1000 processors
• Performs up to 2.4 trillion floating-point operations per
second (teraflops)
– Uses:
• Scientific research
• Customer support/product development
Understanding Operating Systems,
20
A Brief History of Machine Hardware
(cont'd.)
• Microcomputer
– Developed for single users in the late 1970s
– Example: microcomputers by Tandy Corporation and
Apple Computer, Inc.
• Very little memory (by today’s standards)
• 64K maximum capacity
– Microcomputer’s distinguishing characteristic
• Single-user status
Understanding Operating Systems,
21
A Brief History of Machine Hardware
(cont'd.)
• Workstations
– Most powerful microcomputers
– Developed for commercial, educational, and
government enterprises
– Networked together
– Support engineering and technical users
• Massive mathematical computations
• Computer-aided design (CAD)
– Applications
• Requiring powerful CPUs, large main memory, and
extremely high-resolution graphic displays
Understanding Operating Systems,
22
A Brief History of Machine Hardware
(cont'd.)
• Servers
– Provide specialized services
• To other computers or client/server networks
– Perform critical network task
– Examples:
• Print servers
• Internet servers
• Mail servers
Understanding Operating Systems,
23
A Brief History of Machine Hardware
• Advances in computer technology
– Dramatic changes
• Physical size, cost, and memory capacity
– Networking
• Integral part of modern computer systems
– Demand for information delivery while on the move
• Creating strong market for handheld devices
– Moore’s Law
• Computing power rises exponentially
• Twice as much capacity
• Released within 18-24 months
Understanding Operating Systems,
24
A Brief History of Machine Hardware
(cont'd.)
Understanding Operating Systems,
25
Types of Operating Systems
• Five categories
–
–
–
–
–
Batch
Interactive
Real-time
Hybrid
Embedded
• Two distinguishing features
– Response time
– How data enters into the system
Understanding Operating Systems,
26
Types of Operating Systems (cont'd.)
• Batch Systems
– Input relied on punched cards or tape
– Efficiency measured in throughput
• Interactive Systems
– Faster turnaround than batch systems
– Slower than real-time systems
– Introduced to provide fast turnaround when
debugging programs
Understanding Operating Systems,
27
Types of Operating Systems (cont'd.)
• Real-time systems
– Reliability is critical
– Used in time-critical environments
• Spacecraft, airport traffic control, fly-by-wire aircraft,
critical industrial processes, medical systems, etc.
– Two types of real-time systems
• Hard real-time systems: risk total system failure if the
predicted time deadline is missed
• Soft real-time systems: suffer performance
degradation as a consequence of a missed deadline
• Must be 100% responsive, 100% of the time
Understanding Operating Systems
28
Types of Operating Systems (cont'd.)
• Hybrid systems
– Combination of batch and interactive
– Light interactive load
• Accepts and runs batch programs in the background
• Network operating systems
– Special class of software
• Users perform tasks using few, if any, local resources,
e.g., cloud computing
– Wireless networking capability
• Standard feature in many computing devices: cell
phones, tablets, and other handheld Web browsers
Understanding Operating Systems
29
Types of Operating Systems (cont'd.)
• Embedded systems
– Computers placed inside other products
• Automobiles, digital music players, elevators,
pacemakers, etc.
– Adds features and capabilities
– Operating system requirements
• Perform specific set of programs
• Non-interchangeable among systems
• Small kernel and flexible function capabilities
Understanding Operating Systems,
30
Brief History of Operating Systems
Development
• 1940s: first generation
– Computers based on vacuum tube technology
– No standard operating system software
– Typical program included every instruction needed
by the computer to perform the tasks requested
– Poor machine utilization
• CPU processed data and performed calculations for
fraction of available time
– Early programs
• Designed to use the resources conservatively
• Understandability is not a priority
Understanding Operating Systems,
31
Brief History of Operating Systems
Development (cont'd.)
Understanding Operating Systems,
32
Brief History of Operating Systems
Development (cont'd.)
• 1950s: second generation
– Focused on cost effectiveness
– Computers were expensive
• IBM 7094: $200,000
– Two widely adopted improvements
• Computer operators: humans hired to facilitate
machine operation
• Concept of job scheduling: group together programs
with similar requirements
– Expensive time delays to CPU caused by very slow
I/O devices
Understanding Operating Systems,
33
Brief History of Operating Systems
Development (cont'd.)
• 1950s: second generation (cont'd.)
– I/O device speed gradually became faster
• Tape drives, disks, and drums
– Records blocked before retrieval or storage
– Access methods developed
• Added to object code by linkage editor
– Buffer between I/O and CPU introduced
• Reduced speed discrepancy
– Timer interrupts developed
• Allowed job-sharing
Understanding Operating Systems,
34
Brief History of Operating Systems
Development (cont'd.)
• 1960s: third generation
– Faster CPUs
– Speed caused problems with slower I/O devices
– Multiprogramming
• Allowed loading many programs at one time
– Program scheduling
• Initiated with second-generation systems
• Continues today
– Few advances in data management
– Total operating system customization
• Suit user’s needs
Understanding Operating Systems,
35
Brief History of Operating Systems
Development (cont'd.)
• 1970s
– Faster CPUs
– Speed discrepancy continued to caused problems
with slower I/O devices
– Main memory physical capacity limitations
• Multiprogramming schemes used to increase CPU
utilization
• Virtual memory developed to solve physical limitation
36
Brief History of Operating Systems
Development (cont'd.)
• 1980s
– Cost/performance ratio improvement of computer
components (More bang per buck!)
– More flexible hardware (firmware)
– Multiprocessing
• Allowed parallel program execution
– Evolution of personal computers
– Evolution of high-speed communications
– Distributed processing and networked systems
introduced
Understanding Operating Systems,
37
Brief History of Operating Systems
Development (cont'd.)
• 1990s
– Demand for Internet capability
• Sparked proliferation of networking capability
• Increased networking
• Increased tighter security demands to protect
hardware and software
– Multimedia applications
• Demanding additional power, flexibility, and device
compatibility for most operating systems
Understanding Operating Systems,
38
Brief History of Operating Systems
Development (cont'd.)
• 2000s
– Primary design features support:
• Multimedia applications
• Internet and Web access
• Client/server computing
– Computer systems requirements
• Increased CPU speed
• High-speed network attachments
• Increased number and variety of storage devices
– Virtualization
• Single server supports different operating systems
Understanding Operating Systems,
39
Brief History of Operating Systems
Development (cont'd.)
• 2000s
– Need for improved flexibility, reliability, and speed
– Virtual machines
• Accommodated multiple operating systems that run at
the same time and share resources
• Required OS to have an intermediate manager
– Oversee the access of each operating system to
the server’s physical resources
– Multicore processors: two to many cores
• What capabilities does the operating system need for
these processors?
Understanding Operating Systems
40
Brief History of Operating Systems
Development (cont'd.)
• 2010s
– Increased mobility and wireless connectivity
• Proliferation of dual-core, quad-core, and other
multicore CPUs
– Multicore technology
• Single chip equipped with two or more processor
cores
– What is the advantage over chips with transistors in
close proximity?
Understanding Operating Systems,
41
Object-Oriented Design (cont'd.)
Understanding Operating Systems,
42
Design Considerations
• Most common overall goal
– Maximize use of the system’s resources (memory,
processing, devices, and files) and minimize
downtime
• Factors included in developmental efforts
–
–
–
–
–
RAM resources
CPUs: number and type available
Peripheral devices: variety likely to be connected
Networking capability
Security requirements, etc.
Understanding Operating Systems
43
Conclusion
• Overall function of operating systems
• Evolution of operating systems
– Capable of running complex computers and
computer systems
• Operating system designer
– Chooses the policies that best match the system’s
environment
Understanding Operating Systems
44