Practical Case Studies in Teaching Concurrency. A. J. Cowling

Size: px
Start display at page:

Download "Practical Case Studies in Teaching Concurrency. A. J. Cowling"

Transcription

1 Practical Case Studies in Teaching Concurrency A. J. Cowling Department of Computer Science, University of Sheffield, Sheffield, S10 2TN, UK. Telephone: ; Fax: ; As with all aspects of computing, there are four main strands to teaching concurrency, viz hardware, theory, applications and programming, with programming linking the other three together. The basic requirements for practical work for each of these strands are discussed, and the problems of meeting these requirements. These have usually limited practical work in concurrency either to theoretical exercises, or to simple programming assignments in which students build complete programs starting from some given specification. The aim of this paper is to present some examples of an alternative approach to practical work in concurrency, using case studies instead of expecting students to build complete systems for themselves. Features and benefits of the case study approach are described, and examples are given of three case studies that have been used successfully. Finally, the role of software tools in facilitating such case studies is discussed briefly. Introduction The work presented here has been developed largely within the framework of a set of courses that aim to teach both computer science and software engineering. Consequently, they have to give students an understanding of the basic scientific concepts involved and the models that can be used to analyse them, and also give them an understanding of the engineering aspects of how these concepts are applied in practice and of how to design systems that utilise them. To help produce courses that meet this dual aim, we have found it helpful to structure the subject area into four broad strands, viz hardware, theory, applications and programming, of which programming is the one that links the other three together, as illustrated in figure 1. Applying this to parallel processing, the hardware strand covers all aspects of parallel system architecture, and in our case particularly transputer architecture, while the theory strand covers basic concepts such as processes, mutual exclusion and synchronisation as well as models of concurrency like CSP [1] and CCS [2]. In considering applications of concurrency, we focus primarily on operating systems, communications systems, databases and specialised machine architectures. Then, the programming strand covers not only occam [3] and its channel-based model of process communication, but also the shared variable model that is provided in our case by the parallel processing facilities defined [4] for Modula- 2.

2 Applications Programming Hardware Theory Figure 1: The Four Strands of Computing. For the theory and programming strands students can learn a lot from simple practical exercises, such as analysing very basic models in CCS or CSP, or writing short programs when learning a concurrent language. The nature of concurrency, however, means that even quite simple examples can be complex to analyse, and so for CCS models we have experimented with using the Concurrency Workbench [5], which enables students to investigate larger examples than they could do by hand. For instance, the CCS model of Decker's Algorithm [6] involves five parallel agents defined in terms of sixteen agent expressions, so that expecting students to prove mutual exclusion or liveness by hand would be unrealistic. The Workbench makes it feasible for them to examine such examples, although its user interface has not proved very friendly: in particular, students have found it difficult to extract output that enables them to visualise easily the action trees generated by the agents. For the hardware and applications strands there is the same need for exercises to be complex enough to be realistic, so that the simple approach of asking students to write a complete program starting from a clean sheet does not work well. Concurrent systems usually need to be well designed to work at all, but students do not have the experience to design them well, so that if they are just asked to write a complete program of any significant size there are far too many opportunities for them to produce bad designs. The solution that we propose to this problem is to build case studies, in which the students are given material developed by the instructor, and then asked to investigate its behaviour, and to modify or extend it in ways that will illustrate the particular points that are important for that case study. The advantage of this approach is that the given software can be large enough to represent realistic 2

3 applications of concurrency, and designed to a known quality, but without the students having had to spend the time needed to develop it. To illustrate this, we consider three such case studies that have been developed at Sheffield, and show how they demonstrate these advantages in practice. Client-Server Architectures This study has been developed as a Modula-2 program, that uses the concurrency facilities of the standard module Processes to illustrate client and server processes communicating through a queue of request blocks, as in the device handlers of an operating system. This structure is illustrated in figure 2, and it is presented as though the server is a disk driver, and the clients are processes wishing to have blocks transferred to the disk, so that a client has to find a free block in the queue, and fill it up with the details of its request. The driver then takes blocks from the queue and processes the requests, while the client has to wait until the driver has finished dealing with its request, when it can clear the block ready for re-use. Client1 Queue Blocks Server Client2 MakeRequest WaitUntilDone ClearRequest GetRequest GetData, etc FinishRequest Figure 2: The Client - Server Structure Case Study. As presented there are three concurrent processes (two clients and one driver), and the queue is set up to contain three request blocks, so that there are more blocks available than required. This eliminates one need for synchronisation, which is important as the code contains no mutual exclusion and only minimal synchronisation. Therefore, the client includes an operation to check that the request was actually carried out properly, as this version of the system can not be guaranteed to work correctly. Where synchronisation is provided it is by active wait loops, which can be implemented easily using the standard procedure Reschedule to avoid livelock. This could tempt students to produce solutions that depend on controlling the scheduling in some way, and so to avoid this a separate module has been provided that exports a procedure Randomise which is used instead. This 3

4 uses a crude congruential random number generator to determine whether or not to invoke Reschedule, and so makes the scheduling appear non-deterministic. Students are then told not to interfere with the operation of either this or some of the other low-level modules, such as the one that outputs trace information to the screen. Within this framework the students can then be asked to make a number of improvements to the system, of which the most basic is to locate the concurrent updating problem that can occur when clients try to simultaneously claim the same block of the queue, and then to insert semaphores to provide the mutual exclusion necessary to solve this problem. Experience suggests that although this exercise sounds simple, the fact that a realistic amount of code has to be investigated means that it actually gives the students a very good understanding of how such problems can occur in practice, and can be solved. Other basic problems that can be set are to insert suitable semaphore synchronisation where required, for example to replace the active wait loops. Some of these are straightforward, but others involve a significant design element, such as the case of a client waiting until the driver has processed its request, in which there are several alternatives for the point where the semaphores are created and the way in which they are associated with the request blocks. The most elaborate exercise that we have used with this case study relies on the fact that both synchronisation and mutual exclusion are achieved with semaphores, and so problems of deadlock can be made to occur if semaphore operations are not correctly ordered. To illustrate this, the operation for releasing a request block has to become a critical section as well as the operation of claiming a block, and the same semaphore has to be used for both critical sections. The students can then be asked to consider the effect of locating the synchronisation operations that control waiting for free request blocks either inside or outside the relevant critical sections. They can also be asked to consider how the problem could be overcome, apart from reordering semaphore operations, and so can see how the constructions would operate that could be used to solve these problems within monitors, although this study can not actually use monitors because Modula-2 does not support the concept. Communication Protocols This study has also been developed as a Modula-2 program, but here the concurrency comes not from concurrency within processes running on one machine, but from the one program running simultaneously on two separate networked PCs, and communicating over the network. The basis of the study is a pair of modules that give access to some of the facilities of the standard NetBios [7]: a low level one to give a full NetBios interface, and a higher level one providing functions that allow individual machines to set up simple numeric addresses to identify themselves, and to send and receive single packets through the network. This structure is illustrated in figure 3. 4

5 Sender RxTx NbComms NetBios NetBios Program for Case Study Modula2 Library Modules Underlying Network Receiver RxTx NbComms NetBios NetBios Figure 3: The Structure of the Communication Protocol Software. As used at present, this study aims to help students understand how conventional link-level protocols use acknowledgements to provide reliable synchronised communication of complete messages, and to understand how these protocols can be defined by communicating finite-state machines. It therefore consists of a single program, using these two modules, that operates as either end of a unidirectional link, so that when run on two machines one is made to act as transmitter and the other as receiver. Each one determines and displays the address of the machine that it is running on, and waits for the operator to input the receiver address to the transmitter and vice-versa. To allow them then to synchronise, at least to within the limits of the timeouts used for the receive operations (typically 7 to 10 seconds) they then each wait for a further key press before first trying to send or receive. In its present form the study is normally used with the ISO Basic Mode protocol [8], since this is about the simplest link-level protocol, but it could also be used with a more complex protocol such as HDLC [9]. An important part of the exercise has been that the students should derive the transition and output tables for the finite state machines. Previously they have also then been expected to design appropriate representations of these, and to construct the code to implement the machines using these representations, but this has resulted in too much time being spent on details of the coding, and not enough time on the operation of the protocols being studied. As such, this example illustrates very well the advantages of the case study approach, for if the tables are represented as arrays then it would be quite possible to give the students most of this representation, and also the code that uses it to implement the machines. If this were done then all that the students would need to do as the first stage of the study would be to complete the representations, and initialise the tables to match the ones that they had derived on paper. As a 5

6 second stage they could then experiment with the protocols, for instance to see how Basic Mode would need to be modified if frames were numbered rather than acknowledgements. Of course, for such experiments to be feasible it needs to be possible to test the protocol thoroughly, and with the present version of the case study we have found that this is actually a major problem in practice, since the underlying network is so reliable that packets just do not get corrupted. While this is an advantage in one respect, as it means that students do not have to waste time attempting to incorporate any form of redundancy checking into their protocols, it is outweighed by the difficulties that it causes for testing. In the next version of this study, therefore, we propose to incorporate into the underlying packet transfer mechanism a code within each packet that can be set by the transmitter to indicate that the receiver is to treat the packet as invalid, and will adopt from the client-server study the technique of using a simple random number generator to control part of the operation of the system. In this case, the random numbers will determine which packets are to be rejected, although we shall need to allow the average rate of reject packets to be controlled, particularly so that it can be set to zero for the early stages of any testing, when the emphasis will be on ensuring that the normal exchange of valid packets operates correctly. Embedded Systems Demonstrator This case study differs from the others in that it involves special hardware as well as software, and also it was originally designed to be studied by practicing engineers rather than students, to show how transputer-based equipment could be utilised effectively within embedded systems. It was developed initially by Kerridge, and much of the hardware design carried out by Thompson [10], and the basic software case study was presented by Kerridge at Transputing 91 in Santa Clara. As illustrated in figure 4, the hardware consists of a single board carrying a T222 transputer, a CO11 link adapter connected to one of its links, some memory (RAM and ROM), a variety of interfaces and peripherals and a power supply. The interfaces are typical of those that might be needed for embedded systems: two parallel adapters, a DUART, an A-D and a D-A convertor, and also some custom logic to generate event signals to the transputer from the interrupt request signals from the interfaces. Both the registers in the custom logic and the interface registers are mapped into the external memory space. The peripherals consist of a meter to display the analogue output, a 12- button keypad, a 4-digit 7-segment display, eight toggle switches and eight LED lamps; they can be connected to the link adaptor or other interfaces in appropriate configurations via plugs and sockets on the board. The other three transputer links can be used to connect to an external host or to other 6

7 similar boards, so that software can be downloaded onto the board from a development system, and this allows the board to be used for a variety of applications. To other systems To Host T222 Link Adaptor Keypad 7-segment Display Buses PPI Events Event Generator Logic PIA DUART 2 x 25 8 switches 8 lamps 32k RAM 32k ROM A to D BNC D to A BNC Meter Figure 4: The Embedded Systems Demonstrator Hardware. For this particular case study the aim is to produce a system that simulates the operation of a photocopier: the keypad is used to input the number of copies required and to provide the start and cancel functions; the display is used to show the number of copies still to be made; the output from the D-A convertor is used to represent the paper moving through the copier unit; the switches are used to simulate various fault conditions, such as jam or paper out; and the lights are used as fault and ready indicators, and to show when various components are operating, such as the heater, the copying lamp and the input and output paper feed motors. This needs three interfaces to be used: for the D-A convertor, a parallel one for the lamps and switches, and the other parallel one for the keypad and display. The occam software that is provided for the study consists of a skeleton for the main controller process, plus a set of three complete processes, one to handle each of the peripheral interfaces in a polling mode. Each of these processes communicates with the main controller process through a set of channels, whose protocols allow the controller to send commands for output and read data values that have been input. Thus, the study consists mainly of building up the controller in stages, initially to provide the basic functions of simulating paper movement for single and then multiple copies, and then to add the other features such as responding to fault conditions. It could then be extended further, as sets of processes have been built to provide drivers for each of the interfaces that use interrupt service routines (with various degrees of buffering of data) rather than polling, and so it would be possible to experiment with using these in place of the current drivers. 7

8 Conclusions Our experience of these case studies has been that they offer significant advantages over the approach of requiring students to develop complete programs starting from a clean sheet. The students save a lot of time that would otherwise have to be spent developing the basic code that they are given in the case studies (at least 300 lines of source in each of our examples). At the same time, they gain experience in reading and understanding code that has been produced by others, and these skills are almost as valuable to them as those of designing and writing their own programs. Also, because they have been given this code rather than having to develop it themselves the experiments that they are asked to do start from a base with known characteristics and quality. These advantages would apply to teaching any aspect of computing, but the approach has a particular advantage for teaching concurrency, where one wants students to be able to concentrate on the important aspects of the parallelism and how it is used. The case study approach supports this by allowing basic sequential aspects to be dealt with in the prepared material, so that the studies (and the students) can focus on the concurrent processes and how they interact. For these reasons we have found this approach beneficial, and we hope that our experience will encourage others to try it too. References 1. C. A. R. Hoare, Communicating Sequential Processes, Prentice Hall, R. Milner, Communication and Concurrency, Prentice Hall, INMOS Ltd, occam 2 Reference Manual, Prentice Hall, N. Wirth, Programming in Modula-2, Springer-Verlag, (4th edition) R. Cleaveland, J. Parrow & B. Steffen, The Concurrency Workbench, Proc. Workshop on Automated Verification Methods for Finite-State Systems, LNCS 407 pp 24-37, Springer- Verlag, D. J. Walker, Automated Analysis of mutual exclusion algorithms, Formal Aspects of Computing 1.3 pp (1989). 7. W. D. Schwaderer, C Programmer's Guide to NetBios, Howard Sams, ISO Standard 1745 (1975), Basic Mode Control Procedures for Data Communication Systems. 9. ISO Standard 4335 (1991), HDLC - Consolidation of Elements of Procedures. 10. J. A. Thompson, Transputer and Embedded Systems Evaluation Board - User and Technical Manual, National Transputer Support Centre, Sheffield (1990). 8

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS

REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS Malaysian Journal of Computer Science, Vol. 9 No. 1, June 1996, pp. 12-17 REAL-TIME MULTITASKING KERNEL FOR IBM-BASED MICROCOMPUTERS Mohammed Samaka School of Computer Science Universiti Sains Malaysia

More information

CSc33200: Operating Systems, CS-CCNY, Fall 2003 Jinzhong Niu December 10, Review

CSc33200: Operating Systems, CS-CCNY, Fall 2003 Jinzhong Niu December 10, Review CSc33200: Operating Systems, CS-CCNY, Fall 2003 Jinzhong Niu December 10, 2003 Review 1 Overview 1.1 The definition, objectives and evolution of operating system An operating system exploits and manages

More information

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Harsh Beohar LF 265, harsh.beohar@uni-due.de Harsh Beohar Course Modelling of Concurrent Systems 1 Course handler

More information

University of Waterloo. CS251 Final Examination. Spring 2008

University of Waterloo. CS251 Final Examination. Spring 2008 University of Waterloo CS251 Final Examination Spring 2008 Student Name: Student ID Number: Unix Userid: Course Abbreviation: CS452 Course Title: Real-time Programming Time and Date of Examination: 13.00

More information

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen Harsh Beohar LF 265, harsh.beohar@uni-due.de Harsh Beohar Course Modelling of Concurrent Systems 1 Course handler

More information

Department of Computing, Macquarie University, NSW 2109, Australia

Department of Computing, Macquarie University, NSW 2109, Australia Gaurav Marwaha Kang Zhang Department of Computing, Macquarie University, NSW 2109, Australia ABSTRACT Designing parallel programs for message-passing systems is not an easy task. Difficulties arise largely

More information

Multiprocessor System. Multiprocessor Systems. Bus Based UMA. Types of Multiprocessors (MPs) Cache Consistency. Bus Based UMA. Chapter 8, 8.

Multiprocessor System. Multiprocessor Systems. Bus Based UMA. Types of Multiprocessors (MPs) Cache Consistency. Bus Based UMA. Chapter 8, 8. Multiprocessor System Multiprocessor Systems Chapter 8, 8.1 We will look at shared-memory multiprocessors More than one processor sharing the same memory A single CPU can only go so fast Use more than

More information

Multiprocessor Systems. COMP s1

Multiprocessor Systems. COMP s1 Multiprocessor Systems 1 Multiprocessor System We will look at shared-memory multiprocessors More than one processor sharing the same memory A single CPU can only go so fast Use more than one CPU to improve

More information

2 after reception of a message from the sender, do one of two things: either the message is delivered to the receiver, or it is lost. The loss of a me

2 after reception of a message from the sender, do one of two things: either the message is delivered to the receiver, or it is lost. The loss of a me Protocol Verification using UPPAAL: Exercises? Lab assistant: Alexandre David Department of Computer Systems (room 1237, mailbox 26), Uppsala University, Box 325, S751 05, Uppsala. Phone: 018-18 73 41.

More information

Chapter 5 Concurrency: Mutual Exclusion and Synchronization

Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles Chapter 5 Concurrency: Mutual Exclusion and Synchronization Seventh Edition By William Stallings Designing correct routines for controlling concurrent

More information

EASIM A SIMULATOR FOR THE 68HC11 BASED HANDYBOARD

EASIM A SIMULATOR FOR THE 68HC11 BASED HANDYBOARD EASIM A SIMULATOR FOR THE 68HC11 BASED HANDYBOARD David Edwards 1 Session Abstract Microprocessor development systems are used in the teaching of computer engineering but have relatively high capital costs

More information

Specific Proposals for the Use of Petri Nets in a Concurrent Programming Course

Specific Proposals for the Use of Petri Nets in a Concurrent Programming Course Specific Proposals for the Use of Petri Nets in a Concurrent Programming Course João Paulo Barros Instituto Politécnico de Beja, Escola Superior de Tecnologia e Gestão Rua Afonso III, n.º 1 7800-050 Beja,

More information

Chapter 5 Concurrency: Mutual Exclusion. and. Synchronization. Operating Systems: Internals. and. Design Principles

Chapter 5 Concurrency: Mutual Exclusion. and. Synchronization. Operating Systems: Internals. and. Design Principles Operating Systems: Internals and Design Principles Chapter 5 Concurrency: Mutual Exclusion and Synchronization Seventh Edition By William Stallings Designing correct routines for controlling concurrent

More information

Notes to Instructors Concerning the BLITZ Projects

Notes to Instructors Concerning the BLITZ Projects Overview Notes to Instructors Concerning the BLITZ Projects Harry H. Porter III, Ph.D. Department of Computer Science Portland State University April 14, 2006 Revised: September 17, 2007 The BLITZ System

More information

Multiprocessor Systems. Chapter 8, 8.1

Multiprocessor Systems. Chapter 8, 8.1 Multiprocessor Systems Chapter 8, 8.1 1 Learning Outcomes An understanding of the structure and limits of multiprocessor hardware. An appreciation of approaches to operating system support for multiprocessor

More information

Xinu on the Transputer

Xinu on the Transputer Purdue University Purdue e-pubs Department of Computer Science Technical Reports Department of Computer Science 1990 Xinu on the Transputer Douglas E. Comer Purdue University, comer@cs.purdue.edu Victor

More information

From message queue to ready queue

From message queue to ready queue ERCIM Workshop on Dependable Software Intensive Embedded systems In cooperation with EUROMICRO 2005 Porto, Portrugal From message queue to ready queue Case study of a small, dependable synchronous blocking

More information

Graphical Tool For SC Automata.

Graphical Tool For SC Automata. Graphical Tool For SC Automata. Honours Project: 2000 Dr. Padmanabhan Krishnan 1 Luke Haslett 1 Supervisor Abstract SC automata are a variation of timed automata which are closed under complementation.

More information

Hardware Description Languages & System Description Languages Properties

Hardware Description Languages & System Description Languages Properties Hardware Description Languages & System Description Languages Properties There is a need for executable specification language that is capable of capturing the functionality of the system in a machine-readable

More information

Concurrent & Distributed Systems Supervision Exercises

Concurrent & Distributed Systems Supervision Exercises Concurrent & Distributed Systems Supervision Exercises Stephen Kell Stephen.Kell@cl.cam.ac.uk November 9, 2009 These exercises are intended to cover all the main points of understanding in the lecture

More information

The Importance of Sliding Window Protocol Generalisation in a Communication Protocols Course

The Importance of Sliding Window Protocol Generalisation in a Communication Protocols Course The Importance of Sliding Window Protocol Generalisation in a Communication Protocols Course Author: Drago Hercog, University of Ljubljana / Faculty of Electrical Engineering, Ljubljana, Slovenia, Drago.Hercog@fe.uni-lj.si

More information

MySQL for Developers Ed 3

MySQL for Developers Ed 3 Oracle University Contact Us: 0845 777 7711 MySQL for Developers Ed 3 Duration: 5 Days What you will learn This MySQL for Developers training teaches developers how to plan, design and implement applications

More information

MCT611 Computer Architecture & Operating Systems Module Handbook. Master of Science in Software Engineering & Database Technologies (MScSED)

MCT611 Computer Architecture & Operating Systems Module Handbook. Master of Science in Software Engineering & Database Technologies (MScSED) MCT611 Computer Architecture & Operating Systems Module Handbook Master of Science in Software Engineering & Database Technologies (MScSED) Table of Contents 1 Module Details... 2 1.1 Module Description...2

More information

Concurrency. State Models and Java Programs. Jeff Magee and Jeff Kramer. Concurrency: introduction 1. Magee/Kramer

Concurrency. State Models and Java Programs. Jeff Magee and Jeff Kramer. Concurrency: introduction 1. Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer Concurrency: introduction 1 What is a Concurrent Program? A sequential program has a single thread of control. A concurrent program

More information

Don t trust other people to get it right! Exploiting a bug in the Xilinx Microkernel s Mutex implementation

Don t trust other people to get it right! Exploiting a bug in the Xilinx Microkernel s Mutex implementation Don t trust other people to get it right! Exploiting a bug in the Xilinx Microkernel s Mutex implementation Bernhard H.C. Sputh PIPRG Meeting on the 29.01.2007 Contents 1 Introduction 2 2 The Xilinx Microkernel

More information

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed

More information

What are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software

What are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software What are Embedded Systems? 1 Lecture 1 Introduction to Embedded Systems & Software Roopa Rangaswami October 9, 2002 Embedded systems are computer systems that monitor, respond to, or control an external

More information

1 What is an operating system?

1 What is an operating system? B16 SOFTWARE ENGINEERING: OPERATING SYSTEMS 1 1 What is an operating system? At first sight, an operating system is just a program that supports the use of some hardware. It emulates an ideal machine one

More information

Using OPNET to Enhance Student Learning in a Data Communications

Using OPNET to Enhance Student Learning in a Data Communications Using OPNET to Enhance Student Learning in a Data Communications Course Michael W Dixon Murdoch University, Perth, Australia m.dixon@murdoch.edu.au Terry W Koziniec Murdoch University, Perth, Australia

More information

A Theory of Parallel Computation The π-calculus

A Theory of Parallel Computation The π-calculus A Theory of Parallel Computation The π-calculus Background DFAs, NFAs, pushdown automata, Turing machines... All are mathematical entities that model computation. These abstract systems have concrete,

More information

Liveness and Fairness Properties in Multi-Agent Systems

Liveness and Fairness Properties in Multi-Agent Systems Liveness and Fairness Properties in Multi-Agent Systems Hans-Dieter Burkhard FB Informatik Humboldt-University Berlin PF 1297, 1086 Berlin, Germany e-mail: hdb@informatik.hu-berlin.de Abstract Problems

More information

Interaction Testing! Chapter 15!!

Interaction Testing! Chapter 15!! Interaction Testing Chapter 15 Interaction faults and failures Subtle Difficult to detect with testing Usually seen after systems have been delivered In low probability threads Occur after a long time

More information

Programming Assignment #4 Writing a simple parallel port device driver

Programming Assignment #4 Writing a simple parallel port device driver Programming Assignment #4 Writing a simple parallel port device driver Value: (See the Grading section of the Syllabus.) Due Date and Time: (See the Course Calendar.) Summary: This is your second exercise

More information

This qualification has been reviewed. The last date to meet the requirements is 31 December 2018.

This qualification has been reviewed. The last date to meet the requirements is 31 December 2018. NZQF NQ Ref 1498 Version 2 Page 1 of 18 National Diploma in Business (Level 5) with optional strands in Accounting, Finance, Finance - Māori, Health and Safety, Human Resource, Māori Business and, Marketing,

More information

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001 K42 Team modified October 2001 This paper discusses how K42 uses Linux-kernel components to support a wide range of hardware, a full-featured TCP/IP stack and Linux file-systems. An examination of the

More information

Reminder from last time

Reminder from last time Concurrent systems Lecture 5: Concurrency without shared data, composite operations and transactions, and serialisability DrRobert N. M. Watson 1 Reminder from last time Liveness properties Deadlock (requirements;

More information

Concurrent Preliminaries

Concurrent Preliminaries Concurrent Preliminaries Sagi Katorza Tel Aviv University 09/12/2014 1 Outline Hardware infrastructure Hardware primitives Mutual exclusion Work sharing and termination detection Concurrent data structures

More information

This Unit is suitable for candidates who have an interest in computer software or who are undertaking a course of study in computing.

This Unit is suitable for candidates who have an interest in computer software or who are undertaking a course of study in computing. National Unit Specification: general information CODE F1KP 11 SUMMARY This Unit is designed to enable candidates to correctly install and configure system and application software on a computer system.

More information

NZQF Ref 1499 Version 3 Page 1 of 14. This qualification has been reviewed. The last date to meet the requirements is 31 December 2019.

NZQF Ref 1499 Version 3 Page 1 of 14. This qualification has been reviewed. The last date to meet the requirements is 31 December 2019. NZQF Ref 1499 Version 3 Page 1 of 14 National Diploma in Business (Level 6) Level 6 Credits 120 This qualification has been reviewed. The last date to meet the requirements is 31 December 2019. Version

More information

Interaction Testing. Chapter 15

Interaction Testing. Chapter 15 Interaction Testing Chapter 15 Interaction faults and failures Subtle Difficult to detect with testing Usually seen after systems have been delivered In low probability threads Occur after a long time

More information

Comparison of CAN Gateway Modules for Automotive and Industrial Control Applications

Comparison of CAN Gateway Modules for Automotive and Industrial Control Applications Comparison of CAN Gateway Modules for Automotive and Industrial Control Applications Jan Taube 1,2, Florian Hartwich 1, Helmut Beikirch 2 1 Robert Bosch GmbH Reutlingen, 2 University of Rostock Bus architectures

More information

UNOS Operating System Simulator

UNOS Operating System Simulator UNOS Operating System Simulator Proceedings of the 15 th Annual NACCQ, Hamilton New Zealand July, 2002 www.naccq.ac.nz ABSTRACT Zhong Tang UNITEC Institute of Technology Auckland, New Zealand ztang@unitec.ac.nz

More information

Unit 2 : Computer and Operating System Structure

Unit 2 : Computer and Operating System Structure Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring

More information

Transactions on Information and Communications Technologies vol 3, 1993 WIT Press, ISSN

Transactions on Information and Communications Technologies vol 3, 1993 WIT Press,   ISSN Toward an automatic mapping of DSP algorithms onto parallel processors M. Razaz, K.A. Marlow University of East Anglia, School of Information Systems, Norwich, UK ABSTRACT With ever increasing computational

More information

Hardware Description Languages & System Description Languages Properties

Hardware Description Languages & System Description Languages Properties Hardware Description Languages & System Description Languages Properties There is a need for executable specification language that is capable of capturing the functionality of the system in a machine-readable

More information

MODERN MULTITHREADING

MODERN MULTITHREADING MODERN MULTITHREADING Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs RICHARD H. CARVER KUO-CHUNG TAI A JOHN WILEY & SONS, INC., PUBLICATION MODERN MULTITHREADING

More information

Software architecture in ASPICE and Even-André Karlsson

Software architecture in ASPICE and Even-André Karlsson Software architecture in ASPICE and 26262 Even-André Karlsson Agenda Overall comparison (3 min) Why is the architecture documentation difficult? (2 min) ASPICE requirements (8 min) 26262 requirements (12

More information

Top-Level View of Computer Organization

Top-Level View of Computer Organization Top-Level View of Computer Organization Bởi: Hoang Lan Nguyen Computer Component Contemporary computer designs are based on concepts developed by John von Neumann at the Institute for Advanced Studies

More information

Computer Architecture

Computer Architecture Computer Architecture Computer Architecture Hardware INFO 2603 Platform Technologies Week 1: 04-Sept-2018 Computer architecture refers to the overall design of the physical parts of a computer. It examines:

More information

2. Which of the following resources is not one which can result in deadlocking processes? a. a disk file b. a semaphore c. the central processor (CPU)

2. Which of the following resources is not one which can result in deadlocking processes? a. a disk file b. a semaphore c. the central processor (CPU) CSCI 4500 / 8506 Sample Questions for Quiz 4 Covers Modules 7 and 8 1. Deadlock occurs when each process in a set of processes a. is taking a very long time to complete. b. is waiting for an event (or

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

OPERATING- SYSTEM CONCEPTS

OPERATING- SYSTEM CONCEPTS INSTRUCTOR S MANUAL TO ACCOMPANY OPERATING- SYSTEM CONCEPTS SEVENTH EDITION ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College Preface This volume

More information

ENGINEERING. Apply online: CAREER OPPORTUNITY

ENGINEERING. Apply online:   CAREER OPPORTUNITY Apply online: www.midkent.ac.uk/ ENGINEERING Our courses and higher apprenticeships train the engineers of the future as well as those who are already working in the industry. You ll learn the analytical,

More information

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5

Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5 Concurrency, Mutual Exclusion and Synchronization C H A P T E R 5 Multiple Processes OS design is concerned with the management of processes and threads: Multiprogramming Multiprocessing Distributed processing

More information

MySQL for Developers Ed 3

MySQL for Developers Ed 3 Oracle University Contact Us: 1.800.529.0165 MySQL for Developers Ed 3 Duration: 5 Days What you will learn This MySQL for Developers training teaches developers how to plan, design and implement applications

More information

Fault Detection of Reachability Testing with Game Theoretic Approach

Fault Detection of Reachability Testing with Game Theoretic Approach Fault Detection of Reachability Testing with Game Theoretic Approach S. Preetha Dr.M. Punithavalli Research Scholar, Karpagam University, Coimbatore. Director, Sri Ramakrishna Engineering College, Coimbatore.

More information

Deadlocks. Thomas Plagemann. With slides from C. Griwodz, K. Li, A. Tanenbaum and M. van Steen

Deadlocks. Thomas Plagemann. With slides from C. Griwodz, K. Li, A. Tanenbaum and M. van Steen Deadlocks Thomas Plagemann With slides from C. Griwodz, K. Li, A. Tanenbaum and M. van Steen Preempting Scheduler Activations Scheduler activations are completely preemptable User" space" Kernel " space"

More information

Verification and Validation of X-Sim: A Trace-Based Simulator

Verification and Validation of X-Sim: A Trace-Based Simulator http://www.cse.wustl.edu/~jain/cse567-06/ftp/xsim/index.html 1 of 11 Verification and Validation of X-Sim: A Trace-Based Simulator Saurabh Gayen, sg3@wustl.edu Abstract X-Sim is a trace-based simulator

More information

STANDARD I/O INTERFACES

STANDARD I/O INTERFACES STANDARD I/O INTERFACES The processor bus is the bus defied by the signals on the processor chip itself. Devices that require a very high-speed connection to the processor, such as the main memory, may

More information

Fundamentals of Operating Systems (COMP355/L) A Student's Manual for Practice Exercises

Fundamentals of Operating Systems (COMP355/L) A Student's Manual for Practice Exercises Fundamentals of Operating Systems (COMP355/L) A Student's Manual for Practice Exercises Text Book: Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 1 Practice Exercises #1 Chapter

More information

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal

More information

Multitasking / Multithreading system Supports multiple tasks

Multitasking / Multithreading system Supports multiple tasks Tasks and Intertask Communication Introduction Multitasking / Multithreading system Supports multiple tasks As we ve noted Important job in multitasking system Exchanging data between tasks Synchronizing

More information

Exploring multiple transputer arrays

Exploring multiple transputer arrays Exploring multiple transputer arrays INMOS Technical Note 24 Neil Miller May 1988 72-TCH-024-01 You may not: 1. Modify the Materials or use them for any commercial purpose, or any public display, performance,

More information

Kanban Size and its Effect on JIT Production Systems

Kanban Size and its Effect on JIT Production Systems Kanban Size and its Effect on JIT Production Systems Ing. Olga MAŘÍKOVÁ 1. INTRODUCTION Integrated planning, formation, carrying out and controlling of tangible and with them connected information flows

More information

Designs and applications for the IMS C004

Designs and applications for the IMS C004 Designs and applications for the IMS C004 INMOS Technical Note 19 Glenn Hill September 1988 72-TCH-019 You may not: 1. Modify the Materials or use them for any commercial purpose, or any public display,

More information

"Multicore programming" No more communication in your program, the key to multi-core and distributed programming.

Multicore programming No more communication in your program, the key to multi-core and distributed programming. "Multicore programming" No more communication in your program, the key to multi-core and distributed programming. Eric.Verhulst@OpenLicenseSociety.org Commercialised by: 1 Content About Moore s imperfect

More information

Finding Firmware Defects Class T-18 Sean M. Beatty

Finding Firmware Defects Class T-18 Sean M. Beatty Sean Beatty Sean Beatty is a Principal with High Impact Services in Indianapolis. He holds a BSEE from the University of Wisconsin - Milwaukee. Sean has worked in the embedded systems field since 1986,

More information

Studying Graph Connectivity

Studying Graph Connectivity Studying Graph Connectivity Freeman Yufei Huang July 1, 2002 Submitted for CISC-871 Instructor: Dr. Robin Dawes Studying Graph Connectivity Freeman Yufei Huang Submitted July 1, 2002 for CISC-871 In some

More information

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

Centre for Parallel Computing, University of Westminster, London, W1M 8JS Graphical Construction of Parallel Programs G. R. Ribeiro Justo Centre for Parallel Computing, University of Westminster, London, WM 8JS e-mail: justog@wmin.ac.uk, Abstract Parallel programming is not

More information

Concurrent and Distributed Systems Introduction

Concurrent and Distributed Systems Introduction Concurrent and Distributed Systems 8 lectures on concurrency control in centralised systems - interaction of components in main memory - interactions involving main memory and persistent storage (concurrency

More information

[08] IO SUBSYSTEM 1. 1

[08] IO SUBSYSTEM 1. 1 [08] IO SUBSYSTEM 1. 1 OUTLINE Input/Output (IO) Hardware Device Classes OS Interfaces Performing IO Polled Mode Interrupt Driven Blocking vs Non-blocking Handling IO Buffering & Strategies Other Issues

More information

Software Specification Refinement and Verification Method with I-Mathic Studio

Software Specification Refinement and Verification Method with I-Mathic Studio Communicating Process Architectures 2006 297 Peter Welch, Jon Kerridge, and Fred Barnes (Eds.) IOS Press, 2006 2006 The authors. All rights reserved. Software Specification Refinement and Verification

More information

OFF-SITE TAPE REPLICATION

OFF-SITE TAPE REPLICATION OFF-SITE TAPE REPLICATION Defining a new paradigm with WANrockIT EXECUTIVE SUMMARY For organisations that need to move large quantities of data onto tape storage and store it off-site, the prospect of

More information

Experiences with OWL-S, Directions for Service Composition:

Experiences with OWL-S, Directions for Service Composition: Experiences with OWL-S, Directions for Service Composition: The Cashew Position Barry Norton 1 Knowledge Media Institute, Open University, Milton Keynes, UK b.j.norton@open.ac.uk Abstract. Having used

More information

Transactions on Information and Communications Technologies vol 3, 1993 WIT Press, ISSN

Transactions on Information and Communications Technologies vol 3, 1993 WIT Press,   ISSN The implementation of a general purpose FORTRAN harness for an arbitrary network of transputers for computational fluid dynamics J. Mushtaq, A.J. Davies D.J. Morgan ABSTRACT Many Computational Fluid Dynamics

More information

Module 1. Introduction:

Module 1. Introduction: Module 1 Introduction: Operating system is the most fundamental of all the system programs. It is a layer of software on top of the hardware which constitutes the system and manages all parts of the system.

More information

Reintroduction to Concurrency

Reintroduction to Concurrency Reintroduction to Concurrency The execution of a concurrent program consists of multiple processes active at the same time. 9/25/14 7 Dining philosophers problem Each philosopher spends some time thinking

More information

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to:

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to: F2007/Unit5/1 UNIT 5 OBJECTIVES General Objectives: To understand the process management in operating system Specific Objectives: At the end of the unit you should be able to: define program, process and

More information

1 - Spedo 2100TRO Operators Manual Spedo UK Limited

1 - Spedo 2100TRO Operators Manual Spedo UK Limited OPERATORS MANUAL Issue 2 Part Number SP005 233 Unit 5, Riverwey Ind. Park Newman Lane Alton Hampshire GU34 2QL ENGLAND Telephone National: 01420 86546 International: +44 1420 86546 Facsimile National:

More information

Managed Print Service Guide

Managed Print Service Guide New Managed Print Service brought to you by Xerox and the University of Exeter Print & Copy Services Managed Print Service Guide This booklet contains important information about the new printing and copying

More information

A Comparison of the Iserver-Occam, Parix, Express, and PVM Programming Environments on a Parsytec GCel

A Comparison of the Iserver-Occam, Parix, Express, and PVM Programming Environments on a Parsytec GCel A Comparison of the Iserver-Occam, Parix, Express, and PVM Programming Environments on a Parsytec GCel P.M.A. Sloot, A.G. Hoekstra, and L.O. Hertzberger Parallel Scientific Computing & Simulation Group,

More information

Simulation Verification of multiple levels of constraints for system level designs in systemc

Simulation Verification of multiple levels of constraints for system level designs in systemc Simulation Verification of multiple levels of constraints for system level designs in systemc Piyush Ranjan Satapathy, Xi Chen and Harry C. Hsieh Department of Computer Science University of California,

More information

(TO Operating System CONVERG ENT TECHNOLOGIES AWS/IWS. :11 Interprocess communication facility

(TO Operating System CONVERG ENT TECHNOLOGIES AWS/IWS. :11 Interprocess communication facility CONVERG ENT TECHNOLOGIES AWS/IWS (TO Operating System tfj Real-time, message-based multitasking operating system ~ Event-driven priority scheduling scheme :11 Interprocess communication facility ~ Support

More information

Lecture 3: Concurrency & Tasking

Lecture 3: Concurrency & Tasking Lecture 3: Concurrency & Tasking 1 Real time systems interact asynchronously with external entities and must cope with multiple threads of control and react to events - the executing programs need to share

More information

ETSI TS V8.0.0 ( )

ETSI TS V8.0.0 ( ) TS 101 180 V8.0.0 (2000-05) Technical Specification Digital cellular telecommunications system (Phase 2+); Security mechanisms for the SIM Application Toolkit; Stage 1 (GSM 02.48 version 8.0.0 Release

More information

Introduction to Computing and Systems Architecture

Introduction to Computing and Systems Architecture Introduction to Computing and Systems Architecture 1. Computability A task is computable if a sequence of instructions can be described which, when followed, will complete such a task. This says little

More information

Operating Systems. Lecture 09: Input/Output Management. Elvis C. Foster

Operating Systems. Lecture 09: Input/Output Management. Elvis C. Foster Operating Systems 141 Lecture 09: Input/Output Management Despite all the considerations that have discussed so far, the work of an operating system can be summarized in two main activities input/output

More information

AO IBM i Advanced Modernization Workshop Curriculum

AO IBM i Advanced Modernization Workshop Curriculum AO IBM i Advanced Modernization Workshop Curriculum This workshop is intended to provide the IBM i professional, specifically the RPG programmer, with an overview of the newest capabilities which have

More information

Module 5: Concurrent and Parallel Programming

Module 5: Concurrent and Parallel Programming Module 5: Concurrent and Parallel Programming Stage 1 Semester 2 Module Title Concurrent and Parallel Programming Module Number 5 Module Status Mandatory Module ECTS Credits 10 Module NFQ level 9 Pre-Requisite

More information

Operating Systems. Lecture 07: Resource allocation and Deadlock Management. Elvis C. Foster

Operating Systems. Lecture 07: Resource allocation and Deadlock Management. Elvis C. Foster Operating Systems Lecture 7: Resource allocation and Deadlock Management Lecture 3 started the discussion of process management, with the emphasis on CPU scheduling. This lecture continues that discussion

More information

Student Name:.. Student ID... Course Code: CSC 227 Course Title: Semester: Fall Exercises Cover Sheet:

Student Name:.. Student ID... Course Code: CSC 227 Course Title: Semester: Fall Exercises Cover Sheet: King Saud University College of Computer and Information Sciences Computer Science Department Course Code: CSC 227 Course Title: Operating Systems Semester: Fall 2016-2017 Exercises Cover Sheet: Final

More information

An implementation model of rendezvous communication

An implementation model of rendezvous communication G.Winskel Eds. Appears in Seminar on Concurrency S.D.Brookds, A.W.Roscoe, and Lecture Notes in Computer Science 197 Springer-Verlag, 1985 An implementation model of rendezvous communication Luca Cardelli

More information

1995 Paper 10 Question 7

1995 Paper 10 Question 7 995 Paper 0 Question 7 Why are multiple buffers often used between producing and consuming processes? Describe the operation of a semaphore. What is the difference between a counting semaphore and a binary

More information

Data Link Control Protocols

Data Link Control Protocols Protocols : Introduction to Data Communications Sirindhorn International Institute of Technology Thammasat University Prepared by Steven Gordon on 23 May 2012 Y12S1L07, Steve/Courses/2012/s1/its323/lectures/datalink.tex,

More information

Module 11: I/O Systems

Module 11: I/O Systems Module 11: I/O Systems Reading: Chapter 13 Objectives Explore the structure of the operating system s I/O subsystem. Discuss the principles of I/O hardware and its complexity. Provide details on the performance

More information

Introduction to Parallel Computing

Introduction to Parallel Computing Introduction to Parallel Computing This document consists of two parts. The first part introduces basic concepts and issues that apply generally in discussions of parallel computing. The second part consists

More information

OPERATING SYSTEMS CS136

OPERATING SYSTEMS CS136 OPERATING SYSTEMS CS136 Jialiang LU Jialiang.lu@sjtu.edu.cn Based on Lecture Notes of Tanenbaum, Modern Operating Systems 3 e, 1 Chapter 5 INPUT/OUTPUT 2 Overview o OS controls I/O devices => o Issue commands,

More information

40 Behaviour Compatibility

40 Behaviour Compatibility 40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating

More information

these developments has been in the field of formal methods. Such methods, typically given by a

these developments has been in the field of formal methods. Such methods, typically given by a PCX: A Translation Tool from PROMELA/Spin to the C-Based Stochastic Petri et Language Abstract: Stochastic Petri ets (SPs) are a graphical tool for the formal description of systems with the features of

More information

Maximizing revenue with in-service testing centralized testing/monitoring systems. Application note

Maximizing revenue with in-service testing centralized testing/monitoring systems. Application note Maximizing revenue with in-service testing centralized testing/monitoring systems Application note 1237-2 This is the second booklet in a series of Application Notes dealing with Maximizing Revenue with

More information