operating systems and multicore programming (1dt089)

28
Operating Systems s and Multicore Prog Course Structure ramming (1DT089) Monday january 21 Uppsala University 2013 [email protected]

Upload: others

Post on 22-Jan-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Operating Systems and Multicore Programming (1DT089)

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)

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)
Page 4: Operating Systems and Multicore Programming (1DT089)
Page 5: Operating Systems and Multicore Programming (1DT089)

1. The students who quit a course, must inform the Student Office!

[email protected]

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)

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)

Vad är du riktigt bra på?

Hur blev du bra på det?

Page 9: Operating Systems and Multicore Programming (1DT089)

• 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)
Page 11: Operating Systems and Multicore Programming (1DT089)

• 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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)
Page 23: Operating Systems and Multicore Programming (1DT089)

Group survey

Page 24: Operating Systems and Multicore Programming (1DT089)
Page 25: Operating Systems and Multicore Programming (1DT089)
Page 26: Operating Systems and Multicore Programming (1DT089)

Course content Operating systems

Concurrency

Concurrent programming

Page 27: Operating Systems and Multicore Programming (1DT089)

Operating systems

Page 28: Operating Systems and Multicore Programming (1DT089)

Concurrency and concurrent programming