Difference between revisions of "DT 8025 2016"

From CERES
Jump to: navigation, search
 
(62 intermediate revisions by one user not shown)
Line 9: Line 9:
 
* Office: E 308
 
* Office: E 308
 
* Telephone 035 16 71 87
 
* Telephone 035 16 71 87
* Email: [m.taromiradi@hh.se]
+
* Email: [m.taromirad@hh.se]
 +
 
 +
[[Mohammad Mousavi]]
 +
 
 +
* Office: E 306
 +
* Telephone 035 16 71 22
 +
* Email: [m.r.mousavi@hh.se]
  
 
===Lab Instructors===
 
===Lab Instructors===
Line 19: Line 25:
 
[[Mahsa Varshosaz]]
 
[[Mahsa Varshosaz]]
  
* Office: E 304
+
* Office: E 305
 
* Email: [mahsa.varshosaz@hh.se]
 
* Email: [mahsa.varshosaz@hh.se]
  
Line 40: Line 46:
  
 
'''[[media:assessment_guide_2015.pdf|Assessment Guide 2016]]
 
'''[[media:assessment_guide_2015.pdf|Assessment Guide 2016]]
 +
 +
=== Past Examinations ===
 +
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! Examination Date !! Questions !! Answers
 +
|-
 +
|  April 2012  ||  [[media:exam_april2012.pdf|Questions]]  || [[media:solutions_april2012.pdf|Answers]]
 +
|-
 +
|  August 2012  ||  [[media:exam_august2012.pdf|Questions]]  || [[media:solutions_august2012.pdf|Answers]]
 +
|-
 +
|  November 2013  ||  [[media:exam_november2013.pdf|Questions]]  || [[media:solutions_november2013.pdf|Answers]]
 +
|-
 +
|  January 2014  ||  [[media:exam_january2014.pdf|Questions]]  || [[media:solutions_january2014.pdf|Answers]]
 +
|-
 +
|}
 +
  
 
==Course Material and Resources ==
 
==Course Material and Resources ==
Line 58: Line 83:
 
|-
 
|-
 
|  Lecture 2: Memory-Mapped I/O  
 
|  Lecture 2: Memory-Mapped I/O  
 
+
and Concurrency (Motivation)
and Test Driven Development
+
  
 
September 2, 10:15
 
September 2, 10:15
 
  || [[media:lecture2_slides_2016.pdf| Slides]]    ||  
 
  || [[media:lecture2_slides_2016.pdf| Slides]]    ||  
  
[[media:cunit_examples_2015.zip| CUnit Examples]]
+
Chapter 9 and 11
  
 
|-
 
|-
|  Lecture 3: Concurrency (Motivation and Mutual Exclusion)  
+
 
 +
|  Lecture 3: Concurrency (Mutual Exclusion)  
 +
and Test Driven Development
  
 
September 8, 13:15  
 
September 8, 13:15  
 
|| [[media:lecture3_slides_2016.pdf| Slides]] ||  
 
|| [[media:lecture3_slides_2016.pdf| Slides]] ||  
 +
Chapter 10.2 and 11
 +
 +
[http://cunit.sourceforge.net/index.html CUnit Home Page]
 +
 +
[[media:cunit_examples_2015.zip| CUnit Examples]]
 
|-
 
|-
 +
 
|  Lecture 4: Concurrency (Context Switch)
 
|  Lecture 4: Concurrency (Context Switch)
  
September 15, 13:15
+
September 14, 10:15
 
|| [[media:lecture4_slides_2016.pdf| Slides]] ||   
 
|| [[media:lecture4_slides_2016.pdf| Slides]] ||   
 +
 +
Chapter 10.2 and 11
 
|-
 
|-
|  Lecture 5: Real Time (Periodic Tasks and Deadline)  
+
|  Lecture 5: Scheduling (Periodic Tasks and Deadline)  
  
 
September 22, 13:15
 
September 22, 13:15
 
||  [[media:lecture5_slides_2016.pdf| Slides]]  ||   
 
||  [[media:lecture5_slides_2016.pdf| Slides]]  ||   
 +
Chapter 12
 +
 
[https://www.youtube.com/watch?v=92WHN-pAFCs  A Clip about the Halting Problem]
 
[https://www.youtube.com/watch?v=92WHN-pAFCs  A Clip about the Halting Problem]
 
|-
 
|-
|  Lecture 6: Real Time (Schedulability)
+
|  Lecture 6: Real Time Scheduling           
+ Research methodology             
+
  
 
September 29, 13:15
 
September 29, 13:15
||  [[media:lecture6_slides_2016.pdf| Slides]]    || [[media:liu_layland_proof_2015.pdf|Proof of Liu and Layland's Theorem]]
+
||  [[media:lecture6_slides_2016.pdf| Slides]]    ||  
 +
 
 +
Chapter 12 and 16
 +
 
 +
Recommended reading: Hard Real-Time Computing Systems by Giorgio C. Buttazzo.
 
|-
 
|-
|  Lecture 7: Real Time (Schedulability, Cont'd)
+
|  Lecture 7: Scheduling (cntd)
 +
 
 +
and Research methodology   
  
 
October 5, 13:15
 
October 5, 13:15
  ||  [[media:lecture7_slides_2016.pdf| Slides]]  ||      
+
||  [[media:lecture7_slides_2016.pdf| Slides]]  ||
 +
 
 +
[[media:liu_layland_proof_2015.pdf|Proof of Liu and Layland's Theorem]]
 
|-
 
|-
 
|  Lecture 8: Java Programming for Android (Basics)  
 
|  Lecture 8: Java Programming for Android (Basics)  
Line 99: Line 142:
 
||  [[media:lecture8_slides_2016.pdf| Slides]]    ||     
 
||  [[media:lecture8_slides_2016.pdf| Slides]]    ||     
 
|-
 
|-
|  Lecture 9: Java Programming for Android (advanced)
 
+ Paper Presentation
 
  
October 18, 13:15
+
|  Lecture 9: Java Programming for Android (Concurrency and Services)
||  [[media:lecture9_slides_2016.pdf| Slides]]    ||   
+
[[media:local_echo_2015.zip| Local Echo Example]]
+
 
+
[[media:echo_server.zip| Echo Server Example]]
+
 
+
[[media:network_echo_2015.zip| Network Echo Example]]
+
 
+
|-
+
|  Lecture 10: Paper Presentation
+
+ Model Examination
+
  
 
October 20, 13:15
 
October 20, 13:15
  ||   [[media:model_exam_oct_2015.pdf|Model Examination]] 
+
  ||
[[media:model_exam_oct_2015_with_solutions.pdf|Model Examination with Solutions]]
+
[[media:lecture9_slides_2016.pdf| Slides]]
 
||  
 
||  
 +
[[media:local_echo_2016.zip| Local Echo Example]]
  
 +
[[media:echo_server_2016.zip| Echo Server Example]]
 +
 +
[[media:network_echo_2016.zip| Network Echo Example]]
 
|-
 
|-
 
|}
 
|}
Line 124: Line 159:
  
 
=== Practical Descriptions ===
 
=== Practical Descriptions ===
 +
 +
'''Lab sessions are held in the E Building first floor.'''
  
 
Please note that the solutions to the practical have to be submitted via blackboard before the deadline.  
 
Please note that the solutions to the practical have to be submitted via blackboard before the deadline.  
Line 133: Line 170:
 
|  Practical 0 - Introduction  to C and Raspberry Pi  ||  [[DT_8025_2016_Practical_0]]  || September 15, 2016 24:00 ||  
 
|  Practical 0 - Introduction  to C and Raspberry Pi  ||  [[DT_8025_2016_Practical_0]]  || September 15, 2016 24:00 ||  
 
|-
 
|-
|  Practical 1 - Concurrency: Manual Interleaving  ||    [[DT_8025_2016_Practical_1]]    || September 29, 2016 24:00 ||  
+
|  Practical 1 - Concurrency: Manual Interleaving  ||    [[DT_8025_2016_Practical_1]]    || October 3, 2016 24:00 (Extended) ||  
 
|-
 
|-
|  Practical 2 - Scheduling and Concurrency  ||    [[DT_8025_2016_Practical_2]]    || October 13, 2016 24:00 ||  
+
|  Practical 2 - Scheduling and Concurrency  ||    [[DT_8025_2016_Practical_2]]    || October 17, 2016 24:00 ||  
 
|-
 
|-
|  Practical 3 - Android Programming  ||    [[DT_8025_2016_Practical_3]]    || November 3, 2016 24:00 ||  
+
|  Practical 3 - Android Programming  ||    [[DT_8025_2016_Practical_3]]    || November 14, 2016 24:00 ||  
 
|-
 
|-
 +
-->
 
|}
 
|}
  
=== Studying, Summarizing and Presenting Research Papers ===
+
'''[[DT 8025 2016 - Groups  | Groups for Practicals]]'''
  
Two groups of students (thus, 4 people) join to read, summarize and present one of the following papers.
 
  
  
* G.R. Andrews and F.B. Schneider, Concepts and Notations for Concurrent Programming, ACM Computing Surveys, 15(1):4--43, 1983.  (This paper is split into 2 parts: Sections 1--3 to be presented by one group and sections 1, 4--6 by another group.)
 
  
* E.W. Dijkstra, The structure of THE multiprogramming system. Comm. ACM 11(5): 1--346, 1968. and E.W. Dijkstra, Solution of a problem in concurrent programming control. Comm. ACM 8(9): 569, 1965. L. Lamport. A New Solution of  Dijkstra's Concurrent  Programming Problem. Comm. ACM 17(8):453--455, 1974.  (These three papers are to be presented in one report and one presentation.)
+
=== Studying, Summarising and  Presenting Research Papers ===
  
* John Hughes. Software Testing with QuickCheck. In Poc. of CEFP 2009, vol. 6299 of LNCS, pp. 183-223, 2009.
+
In the second half of the course, two groups of students (thus, 4 people) join to read, summarise and present one of the papers in the provided [[DT 8025 2016 Papers Collection | collection]]
  
* D. Janzen and H. Saiedian. Test-Driven Development: Concepts, Taxonomy, and Future Direction. IEEE Computer 38(9):43--50, 2005.
+
The presentations will be held during the last two lectures.  
 +
The structure of the report and the presentation will be posted here and discussed during the lectures.  
 +
The summary reports are to be typeset in LaTex using [[media:report_template_2016.zip|this template]].  
  
* L. Lamport. Specifying Concurrent Program Modules, ACM Tran. Prog. Lang. 5(2):190--222, 1983. (Only up to and including section 3.5)
+
The deadline for submitting the summary reports is '''October 25, 12:00'''.
 +
The summaries should be sent by email to the lecturer of the course (m.taromirad@hh.se).
  
* C. Liu and J. Layland. Scheduling algorithms for multiprogramming in a hard real-time environment",Journal of the ACM 20 (1): 46–61, 1973.  
+
Please email your presentations before 12:00 on the day of presentation (October 18 or October 20) to the lecturer of the course.
  
* L. Sha, R. Rajkumar, and J.P. Lehoczky. Priority inheritance protocols: an approach to real-time synchronization, IEEE Transactions on Computers 39 (9): 1175–1185, 1990.
+
'''[[DT 8025 2016 - Paper Presentation Groups | Presentation Groups]]'''
  
* W. Taha, V. Gaspes, and R. Page. Accurate Programming: Thinking about programs in terms of properties, Proc. of DSL'11, vol. 66 of EPTCS, pp. 236-260, 2011.
 
 
 
* Suggestions for papers from the groups are also welcome and should be sent by email to the lecturer of the course.
 
 
 
The presentations will be held during the last lectures.
 
The deadline for submitting the summary reports is '''TBD'''.
 
The summaries should be sent by email to the lecturer of the course.
 
The summary reports are to be typeset in LaTex using [[media:term_paper_template_2014.zip|this template]].
 
The structure of the report and the presentation will be posted here and discussed during the lectures.
 
 
Please email your presentations before 08:00AM on the day of presentation (October  18 or October 20) to the lecturer of the course.
 
 
[[DT 8025 2016 - Paper Presentation Groups Paper | Presentation Groups 2015]]
 
  
 
=== Resources for C Programming ===
 
=== Resources for C Programming ===
 
  
 
* [http://www.eskimo.com/~scs/cclass/notes/top.html C Programming Notes]
 
* [http://www.eskimo.com/~scs/cclass/notes/top.html C Programming Notes]
Line 205: Line 228:
 
Also, the material provided by [http://staff.www.ltu.se/~nordland/ Johan Nordlander] has been essential in the set up of this course.  
 
Also, the material provided by [http://staff.www.ltu.se/~nordland/ Johan Nordlander] has been essential in the set up of this course.  
  
=[[Masoumeh Taromirad |Back to Home]]=
+
===[[Masoumeh Taromirad |Back to Home]]===

Latest revision as of 12:01, 21 October 2016

Real-Time Embedded Systems 2016

Contact

Lecturer

Masoumeh Taromirad

  • Office: E 308
  • Telephone 035 16 71 87
  • Email: [m.taromirad@hh.se]

Mohammad Mousavi

  • Office: E 306
  • Telephone 035 16 71 22
  • Email: [m.r.mousavi@hh.se]

Lab Instructors

Sebastian Kunze

  • Office: E 309
  • Email: [sebastian.kunze@hh.se]

Mahsa Varshosaz

  • Office: E 305
  • Email: [mahsa.varshosaz@hh.se]


Objectives

On completion of the course students will be able to

  • program embedded applications
  • understand and use a kernel to support concurrency, real-time and reactivity
  • design, structure and analyse programs for embedded systems
  • explain different mechanisms for communication and synchronisation between processes
  • explain characteristics of real-time systems and constructions to deal with them in programs
  • compare, select and apply programming language constructs designed for concurrency and real-time

Assessment

Taking part in the lab is mandatory and one cannot pass the course without doing the practicals. In addition, there will be a final written examination. During the lectures, some bonus questions will be asked, each of which will contribute 0.1 mark to the final mark (can come in handy when rounding up).

Assessment Guide 2016

Past Examinations

Examination Date Questions Answers
April 2012 Questions Answers
August 2012 Questions Answers
November 2013 Questions Answers
January 2014 Questions Answers


Course Material and Resources

Slides and Handouts

Lecture Handouts / Slides Other Material
Lecture 1: Introduction

September 1, 13:15

Slides A Raspberry-Pi Intro Clip

Manfred Broy's Talk at Halmstad Colloquium

Lecture 2: Memory-Mapped I/O

and Concurrency (Motivation)

September 2, 10:15

Slides

Chapter 9 and 11

Lecture 3: Concurrency (Mutual Exclusion)

and Test Driven Development

September 8, 13:15

Slides

Chapter 10.2 and 11

CUnit Home Page

CUnit Examples

Lecture 4: Concurrency (Context Switch)

September 14, 10:15

Slides

Chapter 10.2 and 11

Lecture 5: Scheduling (Periodic Tasks and Deadline)

September 22, 13:15

Slides

Chapter 12

A Clip about the Halting Problem

Lecture 6: Real Time Scheduling

September 29, 13:15

Slides

Chapter 12 and 16

Recommended reading: Hard Real-Time Computing Systems by Giorgio C. Buttazzo.

Lecture 7: Scheduling (cntd)

and Research methodology

October 5, 13:15

Slides

Proof of Liu and Layland's Theorem

Lecture 8: Java Programming for Android (Basics)

October 13, 13:15

Slides
Lecture 9: Java Programming for Android (Concurrency and Services)

October 20, 13:15

Slides

Local Echo Example

Echo Server Example

Network Echo Example


Practical Descriptions

Lab sessions are held in the E Building first floor.

Please note that the solutions to the practical have to be submitted via blackboard before the deadline.

-->
Practical Description Deadline Notes
Practical 0 - Introduction to C and Raspberry Pi DT_8025_2016_Practical_0 September 15, 2016 24:00
Practical 1 - Concurrency: Manual Interleaving DT_8025_2016_Practical_1 October 3, 2016 24:00 (Extended)
Practical 2 - Scheduling and Concurrency DT_8025_2016_Practical_2 October 17, 2016 24:00
Practical 3 - Android Programming DT_8025_2016_Practical_3 November 14, 2016 24:00

Groups for Practicals



Studying, Summarising and Presenting Research Papers

In the second half of the course, two groups of students (thus, 4 people) join to read, summarise and present one of the papers in the provided collection

The presentations will be held during the last two lectures. The structure of the report and the presentation will be posted here and discussed during the lectures. The summary reports are to be typeset in LaTex using this template.

The deadline for submitting the summary reports is October 25, 12:00. The summaries should be sent by email to the lecturer of the course (m.taromirad@hh.se).

Please email your presentations before 12:00 on the day of presentation (October 18 or October 20) to the lecturer of the course.

Presentation Groups


Resources for C Programming

Recommended Text

We will occasionally use / refer to parts of the following books:

These are only optional resources for the course.

Raspberry PI

For the first half of the course, we will use the Raspberry PI board. The boards will be provided at the lab and you will have access to the lab even outside lab hours. However, if you would like to have your own Raspberry PI and have a lot of fun, you can buy a Raspberry PI B+ board (e.g., from [1], which usually includes also a Micro SD card). You need to buy/have your own micro USB adapter. In order to use a computer display you need an HDMI cable or a converter to the appropriate input for your display monitor.

Acknowledgement

The course is based on the earlier editions of the course given by Mohammad Mousavi and Veronica Gaspes. Also, the material provided by Johan Nordlander has been essential in the set up of this course.

Back to Home