CSE 120 Principles of Operating Systems Lecture 1 Overview

CSE 120 Principles of Operating Systems Lecture 1 Overview

CSE 120 Principles of Operating Systems Fall 2000 Lecture 1: Course Introduction Geoffrey M. Voelker Lecture 1 Overview l Discuss handouts l What is an operating system? l Brief history of operating systems l Class overview September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 2 1 What is an operating system? l The operating system is the software layer between user applications and the hardware Applications Operating System Hardware l The OS is “all the code that you didn’t have to write” to implement your application September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 3 The OS and Hardware l The OS abstracts/controls/mediates access to hardware resources u Computation (CPUs) u Volatile storage (memory) and persistent storage (disk, etc.) u Communication (network, modem, etc.) u Input/output devices (keyboard, display, printer, camera, etc.) l The OS defines a set of logical resources (objects) and a set of well-defined operations on those objects (interfaces) u Physical resources (CPU and memory) u Logical resources (files, programs, names) September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 4 2 The OS and Hardware (2) l Benefits to applications u Simpler (no tweaking device registers) u Device independent (all network cards look the same) u Portable (same program on Windows95/98/ME/NT/2000/…) u Transportable (same program across different OSes (Java)) September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 5 The OS and Applications l The OS defines a logical, well-defined environment… u Virtual machine (each program thinks it owns the computer) l For users and programs to safely coexist, cooperate, share resources u Concurrent execution of multiple programs (timeslicing) u Communication among multiple programs (pipes, cut & paste) u Shared implementations of common facilities » No need to implement the file system more than once u Mechanisms and policies to manage/share/protect resources » File permissions (mechanism) and groups (policies) September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 6 3 OS Metaphors l Service provider u The OS provides a standard set of facilities/services that enable programs to be simple and portable l Executive/bureaucrat/big brother/juggler u The OS controls access to shared resources, and allocates resources for the greater good l Caretaker u The OS monitors and recovers from exceptional conditions l Cop/security guard u The OS mediates access to resources, granting or denying requests to use resources September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 7 Brief History of OS design In the beginning… l OSes were runtime libraries u The OS was just code you linked with your program and loaded into the computer u First computer interface was switches and lights, then punched tape and cards l Batch systems were next u OS was permanently stored in primary memory u It loaded a single job (card reader, mag tape) into memory u Executed job, created output (line printer) u Loaded the next job, repeat… u Card readers, line printers were slow, and CPU was idle while they were being used September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 8 4 Spooling l Disks provided a much faster I/O device than card readers, mag tape, and line printers l Motivated development of spooling (Simultaneous Peripheral Operation On-Line) u Use disk to overlap I/O of one job with computation of others u Move program/data from card reader onto disk while another job computes u When done, next job ready to be loaded from disk u Can spool multiple programs onto disk, OS can choose which job to run next (job scheduling) u But, CPU still idle when job reads/writes to disk September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 9 Multiprogramming l Multiprogramming increased system utilization u Keeps multiple runnable jobs loaded in memory u Overlaps I/O processing of a job with computation of another u Benefits from I/O devices that can operate asynchronously u Requires the use of interrupts and DMA u Optimizes system throughput (number of jobs finished in a given amount of time) at the cost of response time (time until a particular job finishes) September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 10 5 Timesharing l Timesharing supports interactive use of computer by multiple users u Terminals give the illusion that each user has own machine u Optimizes response time (time to respond to an event like a keystroke) at the cost of throughput u Based on timeslicing – dividing CPU time among the users u Enabled new class of applications – interactive! u Users now interact with viewers, editors, debuggers l The MIT Multics system (mid-late 60s) was an early, aggressive timesharing system l Unix is also a timesharing system …what about Windows? September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 11 Distributed Operating Systems l Distributed systems facilitate use of geographically distributed resources u Machine connected by wires l Supports communication between parts of a job or different jobs on different machines u Interprocess communication l Sharing of distributed resources, hardware, and software u Exploit remote resources l Enables parallelism, but speedup is not the goal u Goal is communication September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 12 6 Parallel Operating Systems l Support parallel applications trying to get speedup of computationally complex tasks across multiple CPUs l Requires basic primitives for dividing single task into multiple parallel activities l Supports efficient communication among activities l Supports synchronization of activities to coordinate data sharing l Early parallel systems used dedicated networks and custom CPUs, now common to use networks of high- performance PC/workstations September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 13 Embedded Operating Systems l Decreased cost of processing makes computers ubiquitous u Your car has dozens of computers in it u Think of everything that has electric motor in it, and now imagine that it also has a computer l Each embedded application needs its own OS u Cell phones u PDAs (PalmPilot, etc.) l Very soon u Your house will have 100s of embedded computers in it u Your electrical lines and airwaves will serve as the network u All devices will interact as a distributed system September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 14 7 CSE 120 l This course addresses classic OS concepts u The services provided by the OS u OS implementation on modern hardware u Co-evolution of hardware and software u Techniques for implementing software systems that are » Large and complex » Long-lived and evolving » Concurrent » Performance-critical u Remove all mysteries September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 15 Fundamental OS Issues l The fundamental issues/questions in this course are: u Structure: how is an operating system organized? u Sharing: how are resources shared among users? u Naming: how are resources named (by users and programs)? u Protection: how are users/programs protected from each other? u Security: how can information access/flow be restricted? u Communication: how to exchange data? u Reliability and fault tolerance: how to mask failures? u Extensibility: how to add new features? September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 16 8 Fundamental OS Issues (2) u Concurrency: how to control parallel activities? u Performance: how to make efficient use of resources, reduce OS overhead? u Scale and growth: how to handle increased demand? u Compatibility: can we ever do anything new? u Distribution: how to coordinate remote operations? u Accountability: how to charge for/restrict use of resources? l And the “principles” in this course are the methods/approaches/solutions to these issues September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 17 Course Components l Course material provided through class lectures, textbook readings, and handouts l Course assignments are homework questions from the book and a series of class projects u Approximately five spaced throughout the quarter l Discussion sections are a forum for asking questions u Will have mailing list and online discussion forums, too September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 18 9 Nachos l Nachos is an instructional operating system u It is a user-level operating system and a machine simulator » Not necessarily unlike the Java runtime environment » Will become abundantly clear (or not so clear) very soon u Written in C++ u Programming environment will be Unix (Linux) u The projects will require serious time commitments l There will be three projects using Nachos u Concurrency and synchronization u Virtual memory u File system l You will work in groups of four on the projects September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 19 For next class… l Browse the course web (if it ever gets fixed…) u http://www-cse.ucsd.edu/classes/fa00/cse120/ l Read Chapters 1 and 2 l Send your email address to me ([email protected]) for mailing list l Start thinking about partners for project groups l The lab machines are being transitioned to Linux (they have NT on them) l I will bring account slips at the next lecture (not ready before class today) September 20, 2000 CSE 120 -- Lecture 1 -- Course Intro 20 10.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us