- abstraction - control over details
- consider the disk
- a magnet on a stick, a spinning magnetic disk
- servo-mechanisms, read-write technologies
- bits on a disk, addressing, errors
- scsi, ide interfaces
- disk interfaces
- file interfaces
- database interfaces
- web interfaces
- abstractions make complex systems understandable, implementable,
manageable
- an os implements an abstract machine - where the virtual comes from
- choosing the right abstractions is an art and a science
- both for users and itself - different points of view
- objects are well suited for defining and implementing abstractions
- interfaces and encapsulation - inheritance too (subtype polymorphism)
- semi-natural concurrency
- language support
- resource management - managing abstracted resources
- anything needed by a computation - cpu, memory, disk, bandwidth, time
- managed for economy, protection, convenience - as always, they conflict
- the cycle - request, receive/deny, adjust-rerequest, use, release
- the big four resources
- processor
- the importance of defining the right abstractions
- a process is the abstraction for an executing program
- a process is the home for all other abstractions needed by the
computation
- a process represents a claim on the processor
- processes are heavy-weight - expensive to make, expensive to copy
- threads - abstracting away the cpu part from the rest
- memory - cost and size; fast and small or cheap and big
- a hierarchy of memories from fast and small to slow and huge
- make it all look fast and huge
- devices
- abstraction vs performance - convenience vs economy
- within a device class, make them all look the same
- what about between device classes -
- files
- an abstraction of big, permanent, cheap memory
- 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.