Group: operating system
Group: program module
Group: systems
Topic: abstract data type
Topic: abstraction
Topic: abstraction in programming
Topic: program module as encapsulation
Topic: classification
Topic: communication protocols
Topic: design for change
Topic: families of programs
Topic: handling complexity
Topic: hierarchical structures
Topic: identifying program modules
Topic: interface between program modules
Topic: information hiding
Topic: localized understanding
Topic: non-hierarchical classification and multiple classification
Topic: outlines
Topic: semantics by an abstract machine
Topic: software portability
Topic: stepwise refinement
Topic: taxonomy
Topic: top-down vs. bottom-up design
Topic: understanding systems
Topic: the 'uses' hierarchy for organizing systems
Topic: virtual machine
| |
Subtopic: levels of abstraction
Quote: successful, large systems tend to be organized in layers or levels of abstraction
| Quote: a good design models some aspect of reality. Concepts are classes with inheritance to show relationships. Multiple levels of abstraction [»stroB_1991]
| Quote: resource allocation should be organized in levels of abstraction with minimal dependencies between levels
| Quote: lowest robot level avoids objects, next layer makes robot wander about, third level encourages exploration [»brooRA1_1991]
| Quote: with a structured flow chart can fold the paper to show an abstraction level
| Subtopic: layers as abstraction
Quote: structure an operating system as layers of insensitive, abstract machines
| Quote: each operating system level manages a particular type of abstract object [»robiL9_1975]
| Quote: CADES design is a series of levels; each level an abstract machine [»pearDJ7_1973]
| Subtopic: specification vs. implementation
Quote: a design level tells what must be done by the lower level and how to implement the higher level [»neugW_1982]
| Quote: every specification is an implementation of a higher level specification
| Quote: good interfaces allow low-level details to change without effecting the higher levels [»rossDT_1970]
| Quote: digital computers allow many representational layers; a variable may represent a satellite and in turn be represented by a voltage [»winoT_1986]
| Quote: 2-level van Wijngaarden grammars define meta rules that generate BNF rules [»kostCH_1974a, OK]
| Subtopic: data vs. code
Quote: level principle--active entities at one level are data structures at a lower level; e.g., process vs. context block [»finkRA_1986]
| Subtopic: reduce dependencies
Quote: Cedar uses system layering to reduce compilation dependencies and increase use of system components [»swinDC7_1985]
| Quote: separate the presentation code from domain code; the UI should only display information [»fowlM3_2001]
| Subtopic: design levels
Quote: stage three of CADES structural modeling is defining the system's levels and functions [»pearDJ7_1973]
| Quote: the 'context' layer in Conniver's database shows differences from previous layers [»mcdeDV9_1975]
| Quote: an electronic test system may have many levels of specification, e.g., run smoothly, rpms, voltage [»cheaTE_1976]
| Quote: the top-down designer creates tree structures; at a level with no shared components [»jackMA_1975]
| Subtopic: portability
Quote: portability may measure the representation level of a program; e.g., octal code is not portable [»cbb_1973, OK]
| Quote: using MacApp for Intermedia, guarantees common functionality
| Quote: one programs for a virtual machine defined by hardware and other software [»parnDL8_1971]
| Subtopic: execution hierarchy
Quote: have ten orders of magnitude between program execution in hours and instruction execution in a microsecond; must have intermediate levels [»dijkEW10_1972]
| Quote: hierarchy allows large and complex programs out of simple components; complexity only through number of components and levels [»jackMA_1975]
| Quote: need intermediate levels between a program's execution and an instruction's execution; about a 10^10 ratio; bricks to walls is maybe 10^3
| Quote: a programmer must bridge a 10^9 ratio in time and space with a single technology; much deeper conceptual hierarchy than ever before [»dijkEW12_1989]
| Quote: each level of a hierarchy represents a doubling or more in size; small and medium systems have few levels [»dijkEW10_1972]
| Quote: the minimum number of layers in a system is a high-level programming language and hardware; the operating system can be eliminated [»ingaDH9_1982]
| Quote: a vast amount of code is required to realize a programmer's intent, often concisely stated [»laruJR5_2004]
| Quote: use correctness tools to close the immense gap between code and intent
| Subtopic: communication stack
Quote: end-to-end argument--implement functions at the endpoints of a communication system; do not implement within the communication system unless needed for efficiency [»saltJH11_1984]
| Quote: be careful of functions in low-level subsystems; every application will pay for it; limited information to do job efficiently [»saltJH11_1984]
| Subtopic: user programs, tasks
Quote: assign user programs to reserved processes; do not charge time spent in critical sections [»dijkEW2_1971]
| Quote: organize a layer as tasks made of subroutines; all interfaces are subroutine calls instead of intertask communication [»clarDD12_1995]
| Subtopic: communication between levels
Quote: subsumption architecture for intelligent robots: fixed-topology layers of finite state machines; higher layers can replace or inhibit messages of lower layers [»brooRA1_1991]
| Quote: collision control where higher levels restrict free parameters of lower levels [»freuE_1984]
| QuoteRef: robiL9_1975 ;;2 levels of abstract machines which only access one level away. Level either transparent to feature or hides feature
| Subtopic: exception processing from higher-level
Quote: lower levels can't use knowledge about higher levels; but undesired events need higher level information to determine the appropriate action [»parnDL10_1976b]
| Quote: a reported undesired event indicates a failure of the previous level's abstract machine
| Quote: an undesired event may be propagating downward (i.e., violating virtual machine restrictions) or upward (i.e., reported by lower level) [»parnDL10_1976b]
| Subtopic: up-call
Quote: use up-calls to transfer incoming network data, user input, or status changes to higher level processes; avoids context switches; used for high-performance networks [»birrAD_1991]
| Quote: an upcall calls a higher level function across protection boundaries; an alternative to asynchronous signals [»clarDD12_1995]
| Quote: upcalls usually call a higher level function through a procedure variable
| Quote: rewriting a downcall protocol as upcalls improved performance and code size by 5-10x [»clarDD12_1995]
| Quote: an upcall may asks questions about its service; e.g., ask for further data to append to an outgoing packet [»clarDD12_1995]
| Quote: with upcalls, need to separate client data from the level's data; the later must be consistent and unlocked before an upcall occurs [»clarDD12_1995]
| Quote: with upcalls, need to either disallow recursive downcalls, restrict downcalls to simple actions/queuing, or restrict downcalls to setting flags [»clarDD12_1995]
| Subtopic: problems with layers
Quote: layered abstractions increase the stack data cache footprint, TLB misses, and function call overhead; too many arguments; spectacularly deep call stacks [»smaaB2_2006]
|
Related Topics
Group: operating system (27 topics, 924 quotes)
Group: program module (10 topics, 336 quotes)
Group: systems (17 topics, 530 quotes)
Topic: abstract data type (64 items)
Topic: abstraction (62 items)
Topic: abstraction in programming (67 items)
Topic: program module as encapsulation (28 items)
Topic: classification (65 items)
Topic: communication protocols (62 items)
Topic: design for change (76 items)
Topic: families of programs (11 items)
Topic: handling complexity (60 items)
Topic: hierarchical structures (46 items)
Topic: identifying program modules (26 items)
Topic: interface between program modules (55 items)
Topic: information hiding (50 items)
Topic: localized understanding (43 items)
Topic: non-hierarchical classification and multiple classification (16 items)
Topic: outlines (16 items)
Topic: semantics by an abstract machine (38 items)
Topic: software portability (43 items)
Topic: stepwise refinement (25 items)
Topic: taxonomy (16 items)
Topic: top-down vs. bottom-up design (30 items)
Topic: understanding systems (48 items)
Topic: the 'uses' hierarchy for organizing systems (18 items)
Topic: virtual machine (13 items)
|