DOC PREVIEW
UMD CMSC 412 - Operating Systems

This preview shows page 1-2-3-4-5 out of 16 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

11CMSC 412Operating SystemsFall 2004Professor Michael HicksWelcome!• Read the Syllabus– read the warning about the size of the project– make sure you get the 6th edition (or later) ofthe book• Discussion Sections (start Wednesday)– focus on the project– meet only once a week• Probably we will have three times total per week; youcan attend the section of your choice. See the webpage.22Projects• The best way to understand is by doing– So, we will build an operating system that workson bare hardware by extending the GeekOSacademic operating system. 6 projects total.• Project #0 Handout (posted August 31)– It will be due late next week.– It will get you familiar with the simulator andthe Cyclone programming language, which youcan use to write some or all of the project.What is Cyclone? Glad you asked …Cyclone• Based on C– Low-level control over memorymanagement, data representation, andaccess to the machine• But type-safe!– Rules out many hard-to-find bugs andsecurity holes• Buffer overflows• Dangling pointers– These bugs have killed many projects33Cyclone in this class• You will be required to use it for project 0,to get familiar with it• From then on it is optional– Could very well make your project morereliable, and prevent many bugs– But, it’s a research compiler, and it will havebugs itself, and may have cryptic error messages• We will do our best to overcome these issues with you.If a major problem in the compiler inhibits a good-faithattempt to complete the project, you will not bepenalized.Cyclone in this class• Completing at least one project usingCyclone (from project 1 to 6) will netsome extra credit– You must include a writeup of yourexperience, including what features youused, what difficulties you ran into, andsuggestions for improvement.• Seehttp://www.cs.umd.edu/projects/cyclone/44Class Grades Serverhttp://grades.cs.umd.edu• Get your LinuxLab account from here– CS computing cluster. Projects mustwork and be submitted on thesemachines.• Complete grade information• Interface for requesting regrades onexams and projects (with deadline!)Course Material• Reading– Chapter 1– Chapter 2 (for Wednesday)• Coordination with other section– lectures and exams may differ– projects will be the same55Why Study OSs?• Understand computer systems– From the hardware to applications– Helpful for understanding performance,security, reliability, and other issuesWhy Study OSs?• Understand principles of abstraction– OSs are large and complex. How do we managethis complexity?– Abstraction:• Break each piece into self-contained chunks• Plug each piece together– Different views of service from view of theprovider and view of the user– These principles will serve you in other softwaresystems projects• E.g., thinking about concurrency66Why Study OSs?• Understand tradeoffs of system design– Many types of users (too many!)• real-time, desktop, server, etc...– Many possible models and abstractions• OS researchers are ‘abstraction merchants’– There is no perfect OS!Why Study OSs?• It’s fun!– the details are interesting (I think so!)77What is an Operating System?• Resource Manager– Resources include: CPU, memory, disk, network– OS allocates and de-allocates these resources• Virtual Machine– provides an abstraction of a larger (or just different)machine– Examples:• Virtual memory - looks like more memory• Java - pseudo machine that looks like a stack machine• IBM VM - a complete virtual machine (can boot multiplecopies of an OS on it)• Multiplexor– allows sharing of resources and protection– motivation is cost: consider a $40M supercomputerWhat is an OS (cont)?• Provider of Services– includes most of the things in the abovedefinition– provide “common” subroutines for theprogrammer• windowing systems• memory management• The software that is always loaded/running– generally refers to the Os kernel.• small protected piece of software• All of these definitions are correct– but not all operating have all of these features88Abstract View of SystemOperating System Cousins• Hardware– OS is managing hardware resources so needs to knowabout the ugly details of the hardware• interrupt vectors• page tables• I/O registers– some features can be implemented either inhardware or the OS• Languages– can you write an OS in any language?• No: need to be able to explicitly layout data structures tomatch hardware99OS Cousins (cont)• Language Runtime systems– memory management requirements• explicit heap management• garbage collection• stack layout– concurrency and synchronization– calling convention (how are parameters passed)• Data Structure and Algorithms– efficient access to information in an OS• for most things need linear time and space• for many things want log or constant timeOS Examples: Batch system• Mainframes– Automate running of user jobs– Users submit jobs, OS schedules them– Called a batch system– OS referred to as a resident monitor1010Multiprogramming• Many jobs active “at once”– Each job no longer runs to completionbefore the next can start– Many jobs resident in memory at once;the CPU is shared between them• Job scheduling– which jobs to load into memoryMultiprogramming OSs• Must manage resources– Memory– I/O devices– CPU– Want to be fair and efficient• CPU scheduling– which memory-resident program to run• Protection– Prevent errant job from tainting results ofanother1111Multitasking (Timesharing)• Like multiprogramming, but interactive– Switching between tasks is very fast• Preemption: interrupting a job totransfer control to another job– Quantum: the time slice allocated to aprocess before it’s preempted. ModernOS typically 50 ms.• Interactivity requires more support– Filesystem, virtual memory,synchronization, deadlock avoidanceDesktop System• Catered to a single user• Goal: flexibility and responsiveness– Support interactive I/O devices– May not need to be as efficient as multi-user OS to be more responsive– May be less concerned with protection1212Parallel System• Single computer system of several tightly-coupled CPUs– All share memory, clock, devices• Goals:– Better value• Increased performance• Lower cost– Increased reliability• Two flavors– symmetric and asymmetricDistributed System• Many machines


View Full Document

UMD CMSC 412 - Operating Systems

Documents in this Course
Security

Security

65 pages

Deadlocks

Deadlocks

22 pages

Set 2

Set 2

70 pages

Project 2

Project 2

21 pages

Load more
Download Operating Systems
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Operating Systems and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Operating Systems 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?