Lecture Notes for Operating Systems

9 September 2002 - OS Abstractions


  1. abstraction - control over details

    1. consider the disk

      1. a magnet on a stick, a spinning magnetic disk

      2. servo-mechanisms, read-write technologies

      3. bits on a disk, addressing, errors

      4. scsi, ide interfaces

      5. disk interfaces

      6. file interfaces

      7. database interfaces

      8. web interfaces

    2. abstractions make complex systems understandable, implementable, manageable

    3. an os implements an abstract machine - where the virtual comes from

      1. choosing the right abstractions is an art and a science

      2. both for users and itself - different points of view

    4. objects are well suited for defining and implementing abstractions

      1. interfaces and encapsulation - inheritance too (subtype polymorphism)

      2. semi-natural concurrency

      3. language support

  2. resource management - managing abstracted resources

    1. anything needed by a computation - cpu, memory, disk, bandwidth, time

    2. managed for economy, protection, convenience - as always, they conflict

    3. the cycle - request, receive/deny, adjust-rerequest, use, release

  3. the big four resources

    1. processor

      1. the importance of defining the right abstractions

      2. a process is the abstraction for an executing program

        1. a process is the home for all other abstractions needed by the computation

        2. a process represents a claim on the processor

      3. processes are heavy-weight - expensive to make, expensive to copy

      4. threads - abstracting away the cpu part from the rest

    2. memory - cost and size; fast and small or cheap and big

      1. a hierarchy of memories from fast and small to slow and huge

      2. make it all look fast and huge

    3. devices

      1. abstraction vs performance - convenience vs economy

      2. within a device class, make them all look the same

      3. what about between device classes -

    4. files

      1. an abstraction of big, permanent, cheap memory

      2. the universal abstraction - plan 9 (and unix) treats memory (/dev/*mem), devices (/dev), and processes (/dev/proc)like files;


This page last modified on 4 September 2002.