Courses
EE 290N. Concurrent Models of Computation
Description
This course studies concurrent models of computation (MoCs). The topics will include how to use concurrent MoCs to design software systems, how to implement concurrent MoCs, how to analyze designs for boundedness, deadlock, and determinacy, formal semantics (fixed point semantics and metric-space models), and a bit of language design (type systems, higher-order components, structured design). The MoCs we will cover include process networks (PN), threads, message passing, synchronous/reactive (SR), concurrent state machines (statecharts and ERG), dataflow (several variants), rendezvous (like CSP, CCS), time-triggered models (like Giotto), discrete-event (DE), and continuous-time (CT). We will study heterogeneous models, including hybrid systems. We will study how these MoCs are used in languages such as StreamIt, LabVIEW, Lustre/SCADE, Esterel, Signal, and Simulink. Applications to embedded systems design, cyber-physical systems modeling, and parallel and distributed software will be considered.
Class web page: http://embedded.eecs.berkeley.edu/concurrency
