operating systems and multicore programming (1dt089)
TRANSCRIPT
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]
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.
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.
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.
Vad är du riktigt bra på?
Hur blev du bra på det?
• 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...
• 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...
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.
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
+
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.
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
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
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
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
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
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
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
Group survey
Course content Operating systems
Concurrency
Concurrent programming
Operating systems
Concurrency and concurrent programming