Studiewijzer module RTSOF

© Harry Broeders.

onderwijseenheid: Verdiepende minor Elektrotechniek EVMIN
onderwijsdeel: EVMINX9: Real-Time Software (RTSOF)
studiebelasting: 84 SBU
semester / kwartaal: ECV/2
contacturen: 2 uur/week college en 2 uur/week practicum
toetsing: practicumbeoordeling (O/V), huiswerkopgave (cijfer) en eindopdracht (cijfer)
benodigde voorkennis: PROS1 tot en met PROS3 en OPSYS.
verantwoordelijke docent: Harry Broeders

Inleiding.

Software waarvan het resultaat niet alleen correct maar ook exact op tijd moet zijn wordt realtime software genoemd. Vooral het begrip voorspelbaarheid is erg belangrijk bij real-time systemen. Veel embedded systemen bevatten real-time software. Het is daarom van belang dat een elektrotechnisch ingenieur in staat is om real-time software te ontwikkelen.

Globale leerdoelen.

De beginnende elektrotechnische ingenieur die de cursus RTSOF heeft gevolgd is in staat om real-time software te ontwikkelen. Hij/zij is bekend met de specifieke kenmerken van realtime systemen en kent verschillende implementatievormen van real-time software.

Als je deze cursus met een voldoende hebt afgesloten:

Literatuur.

Real-Time Systems and Programming Languages (Fourth Edition), Alan Burns and Andy Wellings, ISBN: 978-0-321-41745-9 (we gebruiken Hoofdstuk 4 t/m 6, 9, 11 en 12). Getting started with QNX Neutino 2, Robert Krten, ISBN: ISBN 0-9682501-1-4 (dit boek kun je bij mij lenen).
Als alternatief voor de bovenstaande 4de editie kun je ook de (oude) 3de editie gebruiken.

Real-Time Systems and Programming Languages (Third Edition), Alan Burns and Andy Wellings, ISBN: 0201729881 (we gebruiken Hoofdstuk 7 t/m 10, 12 en 13).

Benodigde hard- en software.

C++, Boost, QNX (of een andere POSIX compatible RTOS).

Toetsing en beoordeling.

Er worden voor deze cursus drie deelresultaten vastgesteld waarbij het eerste en tweede resultaat (beoordeling practische eindopdracht en huiswerkopdacht) cijfers (1..10) zijn en het derde resultaat (practicum) een O(nvoldoende) of V(oldoende) is. Het eindresultaat wordt dan 0.2 * cijfer huiswerk + 0.8 * cijfer eindopdracht als het practicum Voldoende is en een 1 als het practicum Onvoldoende is. Het bodemcijfer is 4.5.

Je kunt naar keuze alleen werken of in tweetallen. Als je ervoor kiest om samen te werken met een partner kies dan wel een partner van ongeveer hetzelfde niveau.

Het practicum wordt beoordeeld met Onvoldoende of Voldoende. Alle opdrachten worden afzonderlijk beoordeeld met een voldoende of onvoldoende aan de hand van:

Om het practicum met een voldoende af te sluiten moeten alle opdrachten voldoende zijn.

Weekplanning theorie.

Let op! Deze planning kan tijdens het geven van deze onderwijsmodule nog worden aangepast!

week inhoud sheets boek 3de ed boek 4de ed leesvoer
1 Introductie, concurrent programming met de nadruk op Pthreads en shared variabele based synchronisation. Het opfrissen van de bij OPSYS opgedane kennis. RTSOF_deel1.pps.

RTSOF_deel1.pdf.

H7 en H8. Zie hieronder voor details. H4 en H5. Zie hieronder voor details. RTOS versus GPOS . Artikel uit Embedded Computer Design van januari 2005. Verplicht lezen!
The Free Lunch Is Over
: A Fundamental Turn Toward Concurrency in Software  Artikel uit Dr. Jobb's Journal van maart 2005. Aanbevolen literatuur.
2 Concurrent programming in C++ met Boost. RTSOF_deel2.pps.

RTSOF_deel2.pdf.

Zie hieronder voor details. Boost thread library documentatie Hoef je niet door te lezen maar heb je wel nodig op het practicum.
What's New in Boost Threads? Artikel uit Dr. Jobb's Journal van oktober 2008. Aanbevolen literatuur.
3 Message-based synchronisation and communication.
Voorbeeld van concurrent programming in een embedded systeem.
RTSOF_deel3.pps.

RTSOF_deel3.pdf.

H7 en H9. Zie hieronder voor details. H4 en H6. Zie hieronder voor details. -
4 Real-time facilities. RTSOF_deel4.pps.

RTSOF_deel4.pdf.

H12. Zie hieronder voor details. H9. Zie hieronder voor details. -
5 Scheduling. RTSOF_deel5.pps.

RTSOF_deel5.pdf.

H13. Zie hieronder voor details. H11. Zie hieronder voor details. -
6 + 7 Uitloop + begeleiding bij de eindopdracht. - - --

Gedetailleerde planning theorie.

Week 1. Introductie, concurrent programming met de nadruk op Pthreads en shared variabele based synchronisation.

Week 2. Concurrent programming in C++ met Boost.

Week 3. Message-based synchronisation and communication + voorbeeld van concurrent programming in een embedded systeem.

Week 4. Real-time facilities.

Week 5. Scheduling.

Weekplanning practicum.

Bij dit practicum wordt op een iets andere manier gewerkt dan dat je tot nu toe gewend was. De practicumopgaven worden in groepjes van 2 studenten uitgevoerd. Het is de bedoeling dat je ongeveer 4 uur/week aan dit practicum besteedt. Als je bij het werken aan het practicum tegen problemen aanloopt waardoor je niet verder kunt wacht dan niet tot het ingeroosterde uur maar stuur een mailtje naar J.Z.M.Broeders@hhs.nl.

week opdracht studiemateriaal onderwerp
1 opdracht 1 Theorie van week 1. Inleiding QNX.
2+3 opdracht 2 Theorie van week 1 en 3. Multi-threaded programmeren in POSIX.
4 opdracht 3 Theorie van week 2. Multi-threaded programmeren in C++.
5 t/m 7 + week 8 opdracht 4 - Eindopdracht.