Managing Complexity of Control Software through Concurrency

G.H. Hilderink

Research output: ThesisPhD Thesis - Research UT, graduation UTAcademic

19 Downloads (Pure)

Abstract

In this thesis, we are concerned with the development of concurrent software for embedded systems. The emphasis is on the development of control software. Embedded systems are concurrent systems whereby hardware and software communicate with the concurrent world. Concurrency is essential, which cannot be ignored. It requires a proper handling to avoid pathological problems (e.g. deadlock and livelock) and performance penalties (e.g. starvation and priority conflicts). Multithreading, as such, leads to sources of complexity in concurrent software. This complexity is considered frightening, because it complicates the software designs and the resulting code. Moreover, this paradigm complicates the understanding of the behaviour of concurrent software. A paradigm with a precise understanding of concurrency is essential. In this thesis, a methodology is proposed that comprises a paradigm of fundamental aspects of concurrency. These fundamental aspects are derived from the Communicating Sequential Processes (CSP) theory. CSP is a theory of programming that is developed by Hoare, Brookes, and Roscoe. CSP comprises fundamental concepts useful for precisely describing and studying concurrent systems. These concepts are based on processes and events. Processes and events are abstract entities, more abstract than objects. Processes and events are essential in describing and reasoning about the real-time behaviour of process architectures. A process architecture describes a (sub-) program as a composition of communicating processes. The proposed methodology brings a subset of CSP to practice in order to specify, design, and implement process architectures. The CSP concepts bring forth a glue-logic between these phases in the development trajectory. Furthermore, these concepts offer technical solutions, which have been enhanced with notion of priorities, exception handling, and timing. The precise semantics of the concepts and their restrictions provide the guidelines to create reliable and robust concurrent software. The abstraction and separation of well-defined concerns contribute to managing complexity in concurrent software. The proposed methodology defines the following ingredients: 1. A graphical modelling language defines graphical notations and rules that are derived from CSP. The graphical modelling language is used for specifying, designing, and graphically programming process architectures. This results in CSP diagrams. 2. An object model implements the CSP concepts by means of objectoriented techniques. This model can be implemented in objectoriented programming languages. This results in the CSP libraries for Java, C (in object-oriented style) and C++. The graphical modelling language and the object model go together. CSP diagrams are used to describe and to analyse process architectures. A CSP library is used to implement process architectures in an objectoriented programming language. This methodology uses processoriented and object-oriented techniques, and hides thread-oriented techniques. The proposed methodology is applied to control applications on embedded computer systems.
Original languageEnglish
Awarding Institution
  • University of Twente
Supervisors/Advisors
  • van Amerongen, Jacob , Supervisor
  • Broenink, Jan, Advisor
Award date19 May 2005
Place of PublicationEnschede, The Netherlands
Publisher
Print ISBNs90-365-2204-8
Publication statusPublished - 19 May 2005

Fingerprint

Embedded systems
Computer programming languages
Computer systems
Glues
Software design
Computer hardware
Semantics
Trajectories
Chemical analysis
Modeling languages

Keywords

  • IR-50746
  • METIS-226090
  • EWI-18686

Cite this

Hilderink, G. H. (2005). Managing Complexity of Control Software through Concurrency. Enschede, The Netherlands: Ipskamp Printing.
Hilderink, G.H.. / Managing Complexity of Control Software through Concurrency. Enschede, The Netherlands : Ipskamp Printing, 2005. 352 p.
@phdthesis{8051b04409ec400d83e8376d76b18ec6,
title = "Managing Complexity of Control Software through Concurrency",
abstract = "In this thesis, we are concerned with the development of concurrent software for embedded systems. The emphasis is on the development of control software. Embedded systems are concurrent systems whereby hardware and software communicate with the concurrent world. Concurrency is essential, which cannot be ignored. It requires a proper handling to avoid pathological problems (e.g. deadlock and livelock) and performance penalties (e.g. starvation and priority conflicts). Multithreading, as such, leads to sources of complexity in concurrent software. This complexity is considered frightening, because it complicates the software designs and the resulting code. Moreover, this paradigm complicates the understanding of the behaviour of concurrent software. A paradigm with a precise understanding of concurrency is essential. In this thesis, a methodology is proposed that comprises a paradigm of fundamental aspects of concurrency. These fundamental aspects are derived from the Communicating Sequential Processes (CSP) theory. CSP is a theory of programming that is developed by Hoare, Brookes, and Roscoe. CSP comprises fundamental concepts useful for precisely describing and studying concurrent systems. These concepts are based on processes and events. Processes and events are abstract entities, more abstract than objects. Processes and events are essential in describing and reasoning about the real-time behaviour of process architectures. A process architecture describes a (sub-) program as a composition of communicating processes. The proposed methodology brings a subset of CSP to practice in order to specify, design, and implement process architectures. The CSP concepts bring forth a glue-logic between these phases in the development trajectory. Furthermore, these concepts offer technical solutions, which have been enhanced with notion of priorities, exception handling, and timing. The precise semantics of the concepts and their restrictions provide the guidelines to create reliable and robust concurrent software. The abstraction and separation of well-defined concerns contribute to managing complexity in concurrent software. The proposed methodology defines the following ingredients: 1. A graphical modelling language defines graphical notations and rules that are derived from CSP. The graphical modelling language is used for specifying, designing, and graphically programming process architectures. This results in CSP diagrams. 2. An object model implements the CSP concepts by means of objectoriented techniques. This model can be implemented in objectoriented programming languages. This results in the CSP libraries for Java, C (in object-oriented style) and C++. The graphical modelling language and the object model go together. CSP diagrams are used to describe and to analyse process architectures. A CSP library is used to implement process architectures in an objectoriented programming language. This methodology uses processoriented and object-oriented techniques, and hides thread-oriented techniques. The proposed methodology is applied to control applications on embedded computer systems.",
keywords = "IR-50746, METIS-226090, EWI-18686",
author = "G.H. Hilderink",
year = "2005",
month = "5",
day = "19",
language = "English",
isbn = "90-365-2204-8",
publisher = "Ipskamp Printing",
address = "Netherlands",
school = "University of Twente",

}

Hilderink, GH 2005, 'Managing Complexity of Control Software through Concurrency', University of Twente, Enschede, The Netherlands.

Managing Complexity of Control Software through Concurrency. / Hilderink, G.H.

Enschede, The Netherlands : Ipskamp Printing, 2005. 352 p.

Research output: ThesisPhD Thesis - Research UT, graduation UTAcademic

TY - THES

T1 - Managing Complexity of Control Software through Concurrency

AU - Hilderink, G.H.

PY - 2005/5/19

Y1 - 2005/5/19

N2 - In this thesis, we are concerned with the development of concurrent software for embedded systems. The emphasis is on the development of control software. Embedded systems are concurrent systems whereby hardware and software communicate with the concurrent world. Concurrency is essential, which cannot be ignored. It requires a proper handling to avoid pathological problems (e.g. deadlock and livelock) and performance penalties (e.g. starvation and priority conflicts). Multithreading, as such, leads to sources of complexity in concurrent software. This complexity is considered frightening, because it complicates the software designs and the resulting code. Moreover, this paradigm complicates the understanding of the behaviour of concurrent software. A paradigm with a precise understanding of concurrency is essential. In this thesis, a methodology is proposed that comprises a paradigm of fundamental aspects of concurrency. These fundamental aspects are derived from the Communicating Sequential Processes (CSP) theory. CSP is a theory of programming that is developed by Hoare, Brookes, and Roscoe. CSP comprises fundamental concepts useful for precisely describing and studying concurrent systems. These concepts are based on processes and events. Processes and events are abstract entities, more abstract than objects. Processes and events are essential in describing and reasoning about the real-time behaviour of process architectures. A process architecture describes a (sub-) program as a composition of communicating processes. The proposed methodology brings a subset of CSP to practice in order to specify, design, and implement process architectures. The CSP concepts bring forth a glue-logic between these phases in the development trajectory. Furthermore, these concepts offer technical solutions, which have been enhanced with notion of priorities, exception handling, and timing. The precise semantics of the concepts and their restrictions provide the guidelines to create reliable and robust concurrent software. The abstraction and separation of well-defined concerns contribute to managing complexity in concurrent software. The proposed methodology defines the following ingredients: 1. A graphical modelling language defines graphical notations and rules that are derived from CSP. The graphical modelling language is used for specifying, designing, and graphically programming process architectures. This results in CSP diagrams. 2. An object model implements the CSP concepts by means of objectoriented techniques. This model can be implemented in objectoriented programming languages. This results in the CSP libraries for Java, C (in object-oriented style) and C++. The graphical modelling language and the object model go together. CSP diagrams are used to describe and to analyse process architectures. A CSP library is used to implement process architectures in an objectoriented programming language. This methodology uses processoriented and object-oriented techniques, and hides thread-oriented techniques. The proposed methodology is applied to control applications on embedded computer systems.

AB - In this thesis, we are concerned with the development of concurrent software for embedded systems. The emphasis is on the development of control software. Embedded systems are concurrent systems whereby hardware and software communicate with the concurrent world. Concurrency is essential, which cannot be ignored. It requires a proper handling to avoid pathological problems (e.g. deadlock and livelock) and performance penalties (e.g. starvation and priority conflicts). Multithreading, as such, leads to sources of complexity in concurrent software. This complexity is considered frightening, because it complicates the software designs and the resulting code. Moreover, this paradigm complicates the understanding of the behaviour of concurrent software. A paradigm with a precise understanding of concurrency is essential. In this thesis, a methodology is proposed that comprises a paradigm of fundamental aspects of concurrency. These fundamental aspects are derived from the Communicating Sequential Processes (CSP) theory. CSP is a theory of programming that is developed by Hoare, Brookes, and Roscoe. CSP comprises fundamental concepts useful for precisely describing and studying concurrent systems. These concepts are based on processes and events. Processes and events are abstract entities, more abstract than objects. Processes and events are essential in describing and reasoning about the real-time behaviour of process architectures. A process architecture describes a (sub-) program as a composition of communicating processes. The proposed methodology brings a subset of CSP to practice in order to specify, design, and implement process architectures. The CSP concepts bring forth a glue-logic between these phases in the development trajectory. Furthermore, these concepts offer technical solutions, which have been enhanced with notion of priorities, exception handling, and timing. The precise semantics of the concepts and their restrictions provide the guidelines to create reliable and robust concurrent software. The abstraction and separation of well-defined concerns contribute to managing complexity in concurrent software. The proposed methodology defines the following ingredients: 1. A graphical modelling language defines graphical notations and rules that are derived from CSP. The graphical modelling language is used for specifying, designing, and graphically programming process architectures. This results in CSP diagrams. 2. An object model implements the CSP concepts by means of objectoriented techniques. This model can be implemented in objectoriented programming languages. This results in the CSP libraries for Java, C (in object-oriented style) and C++. The graphical modelling language and the object model go together. CSP diagrams are used to describe and to analyse process architectures. A CSP library is used to implement process architectures in an objectoriented programming language. This methodology uses processoriented and object-oriented techniques, and hides thread-oriented techniques. The proposed methodology is applied to control applications on embedded computer systems.

KW - IR-50746

KW - METIS-226090

KW - EWI-18686

M3 - PhD Thesis - Research UT, graduation UT

SN - 90-365-2204-8

PB - Ipskamp Printing

CY - Enschede, The Netherlands

ER -

Hilderink GH. Managing Complexity of Control Software through Concurrency. Enschede, The Netherlands: Ipskamp Printing, 2005. 352 p.