I00062 (I00062)
Processen en concurrency*
< 2006/2007 > 05-02-2007 t/m 08-06-2007 (08-06-2007) L
Informatica - Bachelor (2003) Hardware: Machines en infrastructuur (3 ec)
omvang
3 ec (84 uur) : 18 uur plenair college, 0 uur groepsgewijs college, 12 uur computerpracticum, 0 uur 'droog' practicum, 3 uur gesprekken met de docent, 24 uur onderling overleg met medestudenten (werkgroepen, projectwerk e.d.), 27 uur zelfstudie
investering
3 ec * 28 u/ec + #std * (1 + 3ec * 0.75 u/student/ec)
inzet tentatief

examinator
afdeling
tijdbesteding

prof. dr. Frits Vaandrager
sws
150u.

speciale web-site
/~fvaan/PC

 

Dit vak gaat in op het begrip proces, aanverwante noties als communicatie en synchronisatie tussen processen, en de centrale rol die het begrip proces speelt in bedrijfsystemen (oftewel operating systems) zoals Unix, Windows en Linux.

Leerdoelen

Het primaire doel van dit college is om studenten inzicht te geven in de achterliggende principes in het ontwerp van bedrijfsystemen in het algemeen, en ze tevens te laten zien hoe deze principes in de praktijk worden gebracht in bestaande bedrijfssystemen zoals Unix, Linux en Windows. In het bijzonder verschaft het college inzicht in het belangrijke concept van een proces en het gebruik hiervan binnen bedrijfssystemen:

  • Wat is een proces? Wat is het gedrag en welke datastructuren zijn nodig om het te representeren? Wat is een thread?
  • Hoe kan bereikt worden dat slechts een enkel proces toegang heeft tot bepaalde middelen (mutual exclusion) en hoe kunnen processen onderling communiceren? Hoe kan het gedrag en de correctheid van parallelle programma's die deze taken realiseren worden geanalyseerd?
  • Hoe kan een bedrijfsysteem op een verstandige manier middelen verdelen tussen processen? Wat zijn typische problemen die hierbij spelen (deadlock en starvation) en hoe kunnen die worden opgelost?

Onderwerpen

aProcessen, Threads, Concurrency, Mutual Exclusion, Synchronization, Deadlock, Starvation, Uniprocessor Scheduling, Multiprocessor en Real-Time Scheduling.

Werkvormen

Hoorcollege, werkcollege en practicum.

Vereiste voorkennis

Een besturingssysteem bemiddelt tussen toepassingsprogramma's, hulpprogramma's en gebruikers enerzijds en de hardware van de computer anderzijds. Een goed begrip van besturingsystemen vereist derhalve enige kennis van de indeling en architectuur van computers, bijvoorbeeld verkregen bij het college Machines. Ten behoeve van het practicum is enige ervaring met imperatief programmeren vereist, bijvoorbeeld opgedaan tijdens de cursus Algoritmen en programma's. Tot slot zullen we een aantal concurrency algoritmen modelleren met behulp van eindige automaten, zoals behandeld tijdens de cursus Talen en Automaten.

Tentaminering

Schriftelijk tentamen en practicum (beiden tellen even zwaar).

Literatuur

Verplichte literatuur voor het vak is

William Stallings
Operating Systems: Internals and Design Principles fifth edition,
ISBN: 0-13-147954-7 (hardcover) of ISBN 0-13-127837 (paperback)
(Er is ook een Nederlandse versie van dit boek maar die kun je beter maar niet gebruiken omdat de vertaling erg slecht is.) Check altijd het ISBN nummer om te controleren of je een goede versie te pakken hebt. Bestellen via de uitgever, is niet noodzakelijk het goedkoopst.


Evaluatie: studentenquêtes http://www.cs.ru.nl/~fvaan/PC/Cursusevaluatie_PC_Vaandrager2006.pdf; docentevaluatie
Rendement: 15 begonnen, echt meegedaan, geslaagd met 1e kans, geslaagd totaal
Q: