![Page 1: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/1.jpg)
Operating Systems and Multicore Programming (1DT089)Operating Systems and Multicore Programming (1DT089)
Course Structure
Operating Systems and Multicore Programming (1DT089)
Monday january 21 Uppsala University 2013 [email protected]
![Page 2: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/2.jpg)
www.it.uu.se/edu/course/homepage/osmulticore/vt13
To get access to the course in Ping Pong you must be registered on the course.
![Page 3: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/3.jpg)
![Page 4: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/4.jpg)
![Page 5: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/5.jpg)
1. The students who quit a course, must inform the Student Office!
2. If less than 3 weeks have passed since the course started, the course registration will be removed.
3. After 3 weeks a "course intermission" will be reported to UPPDOK instead.
4. You must sign up for the final written exam.
![Page 7: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/7.jpg)
All you need to learn about Erlang is covered during the lectures. This book is recommended for those who which to learn more or prefers to have a text book to complement the lectures.
The main text book used in the course.
![Page 8: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/8.jpg)
Vad är du riktigt bra på?
Hur blev du bra på det?
![Page 9: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/9.jpg)
• 20 % after listening
• 30 % after reading
• 70 % after talking
• 90 % after doing
We learn in different waysThere are lots of research on this and different people learn in different ways. But, in general these conclusions can be made regarding how much you remember after a learning activity:
This tells us that listening to lectures and reading the textbook on your own may not be the most efficient way to learn...
![Page 10: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/10.jpg)
![Page 11: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/11.jpg)
• 20 % after listening
• 30 % after reading
• 70 % after talking
• 90 % after doing
Seems like a good idea to combine these models of learning and thinking...
![Page 12: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/12.jpg)
Learning activitiesCourse textbook• reading
Lectures• listening
Tutorials• reading and doing
Seminars and workshops• talking and listening
Programming• doing
• 20 % after listening
• 30 % after reading
• 70 % after talking
• 90 % after doing
If possible, incorporate and combine different levels of thinking in the various learning activities.
![Page 13: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/13.jpg)
KursmålEfter godkänd kurs ska studenten kunna:
• Redogöragöra för hur operativsystem och runtimesystem växelverkar med maskin- och programvara.
• Förklara och använda algoritmer och tekniker för schemaläggning och synkronisering i system med en eller flera processorer och processorkärnor.
• Redogöra för hur synkroniseringstekniker kan användas för att hantera samtidighet i datorsystem, och bedöma deras lämplighet i olika situationer.
• Använda högnivåspråk för att utnyttja concurrency hos flerkärniga system.
• Redogöra för principerna för olika programmeringsmodeller av flerkärniga system, till exempel processer, trådar, meddelandeöverföring och "software transactional memory".
• Använda processer, trådar och meddelandeöverföring för programmering av flerkärniga system.
• Presentera och diskutera kursens innehåll muntligt och skriftligt med för utbildningsnivån lämplig färdighet.
AktiviteterAktiviteter för lärande på kursen
• Frågor• Föreläsningar• Programmeringsuppgifter• Workshops• Tutorials• Handledning• Seminarier• Tenta• Projekt
+
![Page 14: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/14.jpg)
MandatoryNon
mandatory
Theory and assignments
(9 Hp)
LecturesLectures
Theory and assignments
(9 Hp)
Problem setsProblem sets
Workshops
Theory and assignments
(9 Hp)
Problem setsProblem sets TutoringTheory and assignments
(9 Hp)
Problem setsProblem sets
Seminars
Theory and assignments
(9 Hp)PresentationsPresentations Oral feedback (peer review)
Theory and assignments
(9 Hp)
Final written examFinal written exam
Project
(6 Hp)
Written project proposal in English
Written project proposal in English
Written feedback from CS-WEd
Project
(6 Hp)
Written project proposal in English
Written project proposal in English Oral presentation
Project
(6 Hp)
Written project proposal in English
Written project proposal in English
Oral feedback (peer review)
Project
(6 Hp)
TutoringTutoring
Project
(6 Hp)
Progress meetingsProgress meetingsOral presentations
Project
(6 Hp)
Progress meetingsProgress meetingsOral feedback (peer review)
Project
(6 Hp)Final written report in SwedishFinal written report in Swedish Written feedback (peer review)
Project
(6 Hp)
Final presentationFinal presentation
Oral presentation
Project
(6 Hp)
Final presentationFinal presentation Demo
Project
(6 Hp)
Final presentationFinal presentation
Oral feedback (peer review)
Project
(6 Hp)
Final deliveryFinal delivery
Course activities
To pass the course, you must attend and actively participate in mandatory workshops, seminars, presentations and group meetings.
You must also present solutions to programming problems, pass a final written exam and complete a final project.
![Page 15: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/15.jpg)
You must pass three mandatory problem sets. Each problem set covers material presented during a few weeks that you will work on outside the lectures.
A problem set consists of a set of:
• questions
• programming tutorials
• programming assignments.
There will be scheduled tutoring sessions in the computer labs, but be ware that the scheduled time is not planned to be enough for you to finnish.
• You need to work on the problem sets on non scheduled time.
Problem sets
![Page 16: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/16.jpg)
For each problem set there is a mandatory workshop where you meet in groups and discuss the problems presented in the problems set.
The goal is not to arrive at final solutions to all problems. Instead, the group members should try to find out what they know and more important what they don't know and make plans on how to complete the problem set.
There will also be a mandatory workshop in preparation for the final written exam.
To pass a workshop, the student must actively take part in the group discussions.
In total there are 4 workshops. To pass the course, you must attend at least two of these but you are strongly encouraged to attend all of them.
Workshops
![Page 17: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/17.jpg)
To pass on a problem set, the student must be able to:
• Orally answer and discuss the questions in the problem set.
• To demonstrate executable solutions to programming problems.
• Orally explain and discuss solutions to programming problems.
Grading seminars
![Page 18: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/18.jpg)
Problem Set 11 22 333
Summary
System calls, Process management, Inter Process
Communication. Hidden state and Reentrant code
System calls, Process management, Inter Process
Communication. Hidden state and Reentrant code
Threads, Synchronization and Thread safety
Threads, Synchronization and Thread safety Concurrency and message passing in ErlangConcurrency and message passing in ErlangConcurrency and message passing in Erlang
Topics
System calls
fork()Threads
PThreads
Sequiental Erlang
AtomsAtoms
Topics
System calls
wait()Threads
Java Threads
Sequiental Erlang
Immutable variablesImmutable variables
Topics
System calls
exit()
Synchronization primitives
Condition variables
Sequiental Erlang
TuplesTuples
Topics
System calls
pipe()Synchronization
primitives
Semaphores
Sequiental Erlang
Lists
map
Topics
System callsread()
Synchronization primitives
Mutex locks
Sequiental Erlang
Lists fold
Topics
System calls
write()
Synchronization primitives
Monitors Sequiental Erlang
Lists
List comprehensions
Topics
System calls
dup2()stdlib.h
rand()
Sequiental Erlang
Tail recursive functionsTail recursive functions
Topics
System calls
exec()stdlib.h
srand()
Sequiental Erlang
Conditional
execution
GuardsTopics
System calls
kill()
Sequiental Erlang
Conditional
execution
Pattern matching
Topics
System calls
signal()
Sequiental Erlang
Conditional
execution if
Topics
stdlib.hrand()
Sequiental Erlang
Conditional
execution
case
Topics
stdlib.hsrand()
Sequiental Erlang
EUnitEUnit
Topics
Concurrent Erlang
spawnspawn
Topics
Concurrent Erlang
SendSend
Topics
Concurrent Erlang
ReceiveReceive
Topics
Concurrent Erlang
spawn_linkspawn_link
![Page 19: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/19.jpg)
To pass the course, you must participate in a group presentation where you present a topic related to the course. You must also listen and give feedback to other groups presentations.
Presentations
To pass the course, you must pass a written exam.
Written Exam
![Page 20: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/20.jpg)
To pass the course, you must pass a mandatory project. The project is done in groups of 4 - 6 students.
Each student must actively participate in discussions about the project and how the project relates to the course goals, especially regarding concurrency and synchronization.
Each student must also be able to explain and discuss the system architecture. Each project group member must be able to explain and discuss her/his individual contribution in more detail.
To pass, all of the above requirements must be presented orally during regular project meetings, orally in form of a final presentation and as part of a final written report.
Project
![Page 21: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/21.jpg)
To pass the project, the group must hand in a written project proposal. Each group must also give feedback to another project groups written project proposal.
To pass the project, you must attend and actively participate in 2 progress meetings. Each group must also give oral feedback to another project group during each progress meeting.
Each group must hand in a final written project report. Each group must give written feedback on another groups project report.
To pass the project, you must attend and actively participate in a final oral presentation. Each group must also give feedback to another groups final project presentation.
Project
![Page 22: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/22.jpg)
![Page 23: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/23.jpg)
Group survey
![Page 24: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/24.jpg)
![Page 25: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/25.jpg)
![Page 26: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/26.jpg)
Course content Operating systems
Concurrency
Concurrent programming
![Page 27: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/27.jpg)
Operating systems
![Page 28: Operating Systems and Multicore Programming (1DT089)](https://reader030.vdocument.in/reader030/viewer/2022020622/61eb47b13f51f03d9a396358/html5/thumbnails/28.jpg)
Concurrency and concurrent programming