Operating Systems CSE451 Spring 2000: Instructor: Gary Kimura Slides Courtesy of Hank Levy
Operating Systems CSE451 Spring 2000: Instructor: Gary Kimura Slides Courtesy of Hank Levy
Operating Systems CSE451 Spring 2000: Instructor: Gary Kimura Slides Courtesy of Hank Levy
CSE451
Spring 2000
7/27/2018 2
What resources need to be managed?
• the CPU (computation)
• primary memory
• secondary memory devices (disks, tapes, etc)
• networks
• input devices (keyboard, mouse)
• various I/O devices (printers, display, cameras,
speakers)
7/27/2018 3
What’s in an OS?
Application Quake Sql Server
Services
SYSTEM CALL API System Utils Shells Windowing & graphics
7/27/2018 5
Major issues in Operating Systems
• structure -- how is an operating system organized?
• sharing -- how are resources shared among users
• naming -- how are resources named (by users or programs)
• protection -- how is one user/program protected from
another
• security -- how to restrict the flow of information
• performance -- why is it so slow?
• reliability and fault tolerance -- when something goes wrong
• extensibility -- how do we add new features?
• communication -- how and with whom can we communicate
(exchange information)
7/27/2018 6
Major issues in OS (2)
• concurrency -- how are parallel activities created and
controlled?
• scale and growth -- what happens as demands or resources
increase?
• persistence -- how to make data last longer than programs
• compatibility -- can we ever do anything new?
• distribution -- accessing the world of information
• accounting -- who pays the bills, and how do we control
resource usage?
7/27/2018 7
A brief history of operating systems
• “in the beginning”, the OS was just code to which you
linked your program, loaded the whole thing into
memory, and ran your program; basically, just a
run-time library
• simple batch systems were first real operating systems:
• os was stored in part of primary memory
• it loaded a single job (from card reader) into memory
• ran that job (printed its output, etc.)
• loaded the next job...
• control cards in the input file told the os what to do
• Spooling and buffering allowed jobs to be read ahead of
time onto tape/disk or into memory.
7/27/2018 8
Multiprogramming
• Multiprogramming systems provided
increased utilization
• keeps multiple runnable jobs loaded in memory
• overlaps I/O processing of a job with computes of
another
• benefits from I/O devices that can operate
asynchronously
• requires the use of interrupts and DMA
• tries to optimize throughput at the cost of response
time
7/27/2018 9
Timesharing
• Timesharing supported interactive use of
• each user feels as if he/she has the entire machine (at
least late at night!)
• timesharing tries to optimize response time at the
cost of throughput
• based on time-slicing -- dividing CPU equally
among the users
• permitted active viewing, editing, debugging,
participation of users in the execution process
• MIT Multics system (mid-late 1960s) was first large
timesharing system
7/27/2018 10
Distributed Operating Systems
• distributed systems facilitate use of geographically
distributed resources
– machines connected by wires
• supports communication between parts of a job or
different jobs
– interprocess communication
• sharing of distributed resources, hardware and
software
– resource utilization and access
• permits some parallelism, but speedup is not the issue
7/27/2018 11
Parallel Operating Systems
• Support parallel applications wishing to get speedup of
computationally complex tasks
• Needs basic primitives for dividing one task into
multiple parallel activities
• Supports efficient communication between those
activities
• Supports synchronization of activities to coordinate
sharing of information
• It’s common now to use networks of high-performance
PCs/workstations as a parallel computer
7/27/2018 12
Embedded Operating Systems
7/27/2018 13
CSE 451
• In this class we will learn:
• what are the parts of an O.S.
• how is the o.s. and each sub-part structured
• what are the important interfaces
• what are the important policies
• what algorithms are typically used
• We will do this through reading, lectures, and a project.
• You will need to keep up with all three of these.
7/27/2018 14