Topic: critical regions
Topic: multi-tasking
Topic: operating system kernel
Topic: race conditions
Topic: real time systems
Topic: shared objects
Topic: task scheduling
| |
Subtopic: threads
Quote: a thread is the basic unit of CPU utilization. All threads within a task share access to all task resources
| Quote: use threads for ten processors, slow devices, user-invoked actions, client requests to a server, deferred work [»birrAD_1991]
| Quote: use threads instead of polling, waiting, and interrupts; each operation is a single, synchronous procedure [»mcjoPR1_1989]
| Quote: a process is a locus of control, an abstract entity that moves through the instructions [»dennJB3_1966]
| Subtopic: design for threading
Quote: limit the number of currently runnable threads in an application; helps make it robust, responsive, and portable [»blocJ_2001]
| Quote: distinguish immutable classes, thread-safe classes, conditionally thread-safe, thread-compatible, and thread-hostile classes [»blocJ_2001]
| Subtopic: mutex
Quote: a mutex or critical section is the simplest primitive for accessing shared variables; lock a mutex, use shared variables, unlock the mutex and release a blocked thread [»birrAD_1991]
| Quote: while Thread is a monitor, allow access to stop, interrupt, etc by other threads; no concurrent, shared data access [»bacoDF10_2000]
| Subtopic: interrupt
Quote: with processor sharing, any statement can be interrupted for an unknown period [»wirtN8_1977]
| Subtopic: examples
Quote: Limbo includes multi-tasking with task initiation and coordination via the 'alt' statement [»dorwSM1_1997]
| Quote: Topaz -- fine grained threads and multiple address spaces [»mcjoPR1_1989]
| Subtopic: kill-safe
Quote: implement kill-safe by suspending an instance instead of killing it; a surviving task can resurrect the instance
| Quote: stop a thread by polling for a stop condition; killing a thread is inherently unsafe [»blocJ_2001]
| Subtopic: thread pool
Quote: use a work crew, i.e., a fixed pool of threads, to efficiently process many queued requests [»birrAD_1991]
| Subtopic: thread termination
Quote: thread termination is like indefinite suspension [»flatM6_2004]
| Subtopic: thread-based memory allocation
Quote: LKmalloc -- memory allocator for servers with a subheap per thread; scales well [»larsPA10_1998]
| Subtopic: process vs. thread
Quote: a Mach task is the environment for running threads; all threads share virtual memory, communication privileges, and access rights [»tevaA11_1989]
| Quote: assign each process to a team with a shared address space and memory; communicate between teams with interprocess communication primitives [»cherDR2_1979]
| Subtopic: threads vs. processors
Quote: avoid having many more runnable threads than processors unless the threads are blocked on condition variables [»birrAD_1991]
| Subtopic: system threads
Quote: most system threads are too heavy-weight to support 10,000 threads in Java; implement virtual threads [»allmE7_2004]
| Subtopic: problems with threads
Quote: survey of fine-grain thread packages; good for medium-grain; none supported fine-grain with a general thread model [»pricGW11_2003]
| 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: the observer pattern is difficult to get right; must analyze all possible interleavings [»leeEA5_2006]
| Quote: multicore processors have much richer interleaving than single core processors; will lead to new system failures [»leeEA5_2006]
|
Related Topics
Topic: critical regions (58 items)
Topic: multi-tasking (22 items)
Topic: operating system kernel (67 items)
Topic: race conditions (33 items)
Topic: real time systems (14 items)
Topic: shared objects (13 items)
Topic: task scheduling (49 items)
|