Topic: action chunks
Topic: asynchronous processing
Topic: communicating sequential processes
Topic: concurrent while in parallel processing
Topic: data parallel processing
Topic: defining a process
Topic: hard real time systems
Topic: high priority processes
Topic: interrupts
Topic: interprocess communication
Topic: lock-free concurrency
Topic: managing shared memory
Topic: massively parallel processors
Topic: models of parallel computation
Topic: non-preemptive task scheduling
Topic: parallel algorithms
Topic: plan-based task scheduling
Topic: process migration
Topic: calculus of communicating processes
Topic: race conditions
Topic: real time systems
Topic: synchronous communication through a channel
Topic: task scheduling
Topic: waitfor condition in parallel processing
Topic: concurrency
Topic: concurrency control by monitors
Topic: concurrent operations
Topic: critical regions
Topic: deadlocks
Topic: events
Topic: event controlled processing
Topic: monitored statements and events
Topic: multi-tasking
Topic: non-deterministic processing
Topic: parallel control statements
Topic: Petri net
Topic: Petri net transitions and events
Topic: process threads
Topic: remote procedure call
Topic: synchronized processing
Topic: vector processing
Group: coordination system
Group: digital communication
Group: distributed systems
Group: machine model
Group: operating system
Group: process control
Group: relationship between brain and behavior
Group: robots
Topic: artificial neuron nets
Topic: broadcasting information
Topic: co-routines
Topic: computer architecture
Topic: coordinated processes
Topic: interrupt handler
Topic: monitored variable
Topic: multi-processing for a user interface
Topic: multi-user systems
Topic: multiple activities in a user interface
Topic: multiple processors
Topic: parallel programming languages
Topic: proving concurrent programs
Topic: specification and design of distributed systems
| |
Summary
All real-time applications, including operating systems, need some form of parallel processing. Each process needs to define scheduling and the system resources it uses or destroys. Processes are normally structured hierarchically but non-hierarchical structures provide increased reliability and flexibility. In real-time systems, the user is also a process interacting asynchronously with the system. (cbb 5/80)
Subtopic: idealized parallelism
Quote: ideal reactive systems produce outputs simultaneously with inputs; allows decomposition without affecting behavior, timing, or interleaving [»benvA9_1991]
| Subtopic: concurrent algorithms
Quote: concurrent, incremental memory compressor with short pauses and one heap pass; requires 3x storage [»kermH6_2006]
| Quote: for concurrent operations on B-trees, separate safe from unsafe nodes; an update to a safe node does not affect its ancestors [»bayeR_1977]
| Quote: algorithm for concurrent, tunable indexing of B*-trees; deadlock free [»bayeR_1977]
| Quote: survey of optimistic replication algorithms; background propagation of change; supports concurrent work and allows for unreliable communications [»saitY3_2005]
| Subtopic: inter-program communication
Quote: real-time systems by connecting programs via the operating system, using finite-state machine or Petri nets, using concurrent programming languages [»benvA9_1991]
| Quote: UNIX processes communicate via shared open files, program arguments, exit codes, predefined files, and pipes [»mashJR_1976]
| Subtopic: scaling
Quote: linear scaling and simplicity important for Web applications; allows high volumes and throughput [»boswA10_2005]
| Subtopic: message passing vs. shared data
Quote: procedural message passing is more complicated than data-parallel or shared-variable programs; use an application builder [»wilsGV_1995]
| Subtopic: process state
Quote: a process is either active or it is suspended, awaiting activation by an external event such as I/O
| Subtopic: processes vs. queuing
Quote: Acme uses a new process for each I/O request; its state encodes the state of the I/O request and removes the need for queues
| Subtopic: resource acquisition
Quote: resource acquisition is initialization. Resources, like objects, are released in the reverse order of their acquisition; works well with exception handling [»stroB_1991]
| Subtopic: restricted parallelism
Quote: each context level acts as a single mutex lock and thus prevents cycles in the invocation structure [»maysD5_2002]
| Subtopic: memory allocation for parallel processes
Quote: Hoard memory allocator for parallel C and C++ programs; one global heap and per-processor heaps with low synchronization costs; up to 18x better [»bergED11_2000]
| Subtopic: state machine parallelism
Quote: an ESP context switch only saves the program counter; no stack needed for a state machine
| Quote: the ESP compiler extracts Spin models for checking; can often fully debug with the model checker [»kumaS6_2002]
| Quote: reimplemented VMMC using 500 lines of ESP and 3000 lines of C; replaced 15,600 lines; exhaustively checked the ESP code [»kumaS6_2002]
| Subtopic: testing parallel programs
Quote: difficult to test non-deterministic software because of limited observability and limited controllability [»holzGJ11_2002]
| Quote: use static analysis, symbolic interpretation, reachability, and logic model checking for non-deterministic software; but bugs will still remain
| Subtopic: model checking
Quote: logic model checking is effective for concurrency-related errors; based on temporal logic as proposed by Pnueli [»holzGJ11_2002]
| Quote: the TimeLine graphical editor simplifies the specification of basic temporal properties for SPIN model checkers; linear temporal logic is difficult to use [»holzGJ11_2002]
| Subtopic: race detection
Quote: type annotation for static race detection; found errors in Java libraries; 20 annotations per 1000 lines [»flanC6_2000]
| Subtopic: efficiency
Quote: efficient heap management via a separate process; bulk deallocate, pre-allocation of multiple objects [»kharM10_2006]
| Subtopic: history of parallel processing
Quote: multi-programming needs meta-instructions for parallel processing, naming, and protection [»dennJB3_1966]
| Quote: a process is a locus of control, an abstract entity that moves through the instructions [»dennJB3_1966]
| Quote: can interpose additional computation for a quarter of the cycles; reduces time to 9.9 seconds
| Subtopic: problems with parallel processing
Quote: the most common synchronization error was ignoring read synchronization; data may be out-of-date or uninitialized [»hoveD7_2004]
| Quote: programming with threads is difficult; misuse of concurrency is widespread; use a bug checker to catch concurrency problems [»hoveD12_2004]
| Quote: simple analysis find obvious synchronization errors; programmers do not understand synchronization and they avoid using synchronization [»hoveD7_2004]
| Quote: Smartcom for Windows abandoned concurrent programming due to difficulties with Smartcom III; problems remained with efficiency, non-reentrant message handlers, and unbounded message recursion [»maysD5_2002]
| Quote: threaded programs are extremely difficult to prove equivalent; due to the enormous number of possible interleavings [»leeEA5_2006]
| Quote: threads are wildly nondeterministic; seriously flawed as a computation model [»leeEA5_2006]
| Quote: threaded programs rely on programming style to constrain their nondeterminism
| Quote: keep number of threads near the number of CPUs
|
Group: parallel processing
Topic: action chunks (6 items)
Topic: asynchronous processing (30 items)
Topic: communicating sequential processes (33 items)
Topic: concurrent while in parallel processing (5 items)
Topic: data parallel processing (14 items)
Topic: defining a process (23 items)
Topic: hard real time systems (64 items)
Topic: high priority processes (13 items)
Topic: interrupts (25 items)
Topic: interprocess communication (29 items)
Topic: lock-free concurrency (8 items)
Topic: managing shared memory (74 items)
Topic: massively parallel processors (29 items)
Topic: models of parallel computation (33 items)
Topic: non-preemptive task scheduling (16 items)
Topic: parallel algorithms (15 items)
Topic: plan-based task scheduling (13 items)
Topic: process migration (3 items)
Topic: calculus of communicating processes (13 items)
Topic: race conditions (33 items)
Topic: real time systems (14 items)
Topic: synchronous communication through a channel (28 items)
Topic: task scheduling (49 items)
Topic: waitfor condition in parallel processing (20 items)
Topic: concurrency (33 items)
Topic: concurrency control by monitors (24 items)
Topic: concurrent operations (22 items)
Topic: critical regions (58 items)
Topic: deadlocks (21 items)
Topic: events (44 items)
Topic: event controlled processing (46 items)
Topic: monitored statements and events (16 items)
Topic: multi-tasking (22 items)
Topic: non-deterministic processing (19 items)
Topic: parallel control statements (12 items)
Topic: Petri net (44 items)
Topic: Petri net transitions and events (21 items)
Topic: process threads (25 items)
Topic: remote procedure call (44 items)
Topic: synchronized processing (35 items)
Topic: vector processing (15 items)
Related Topics
Group: coordination system (8 topics, 217 quotes)
Group: digital communication (11 topics, 296 quotes)
Group: distributed systems (14 topics, 348 quotes)
Group: machine model (13 topics, 206 quotes)
Group: operating system (27 topics, 924 quotes)
Group: process control (13 topics, 106 quotes)
Group: relationship between brain and behavior (9 topics, 332 quotes)
Group: robots (16 topics, 147 quotes)
Topic: artificial neuron nets (29 items)
Topic: broadcasting information (18 items)
Topic: co-routines (13 items)
Topic: computer architecture (46 items)
Topic: coordinated processes (8 items)
Topic: interrupt handler (20 items)
Topic: monitored variable (28 items)
Topic: multi-processing for a user interface (14 items)
Topic: multi-user systems (4 items)
Topic: multiple activities in a user interface (17 items)
Topic: multiple processors (10 items)
Topic: parallel programming languages (14 items)
Topic: proving concurrent programs (37 items)
Topic: specification and design of distributed systems (14 items)
|