TU BRAUNSCHWEIG
| Carl Friedrich Gauß Faculty | Department of Computer Science
Informatikzentrum

Seminar Verteilte Systeme: Systems programming (Bachelor)

SemesterSummer 2019 [ Other terms: Winter 19/20 · Winter 18/19 · Sommer 18 · Winter 17/18 · Sommer 17 · Winter 16/17 · Winter 15/16 · Sommer 15 · Winter 14/15 · Sommer 14 · Sommer 13 · Sommer 12 ]
Module #INF-VS-041
ProgrammesBachelor Informatik, Bachelor Informations-Systemtechnik, Bachelor Wirtschaftsinformatik
IBR Group(s)DS (Prof. Kapitza)
TypeSeminar
Lecturer
PhotoProf. Dr. Rüdiger Kapitza
Abteilungsleiter
kapitza[[at]]ibr.cs.tu-bs.de
+49 531 3913294
Room 135
Assistant
PhotoInes Messadi
Wissenschaftliche Mitarbeiterin
messadi[[at]]ibr.cs.tu-bs.de
+49 531 3913295
Room 117
Credits5
Hours0+2
Time & Place

*Kick-Off Meeting* Tuesday, 09.04.2019, 13:15, IZ 105

Weekly meeting time: TBA, IZ 105

Certificates Submission of the essay, programming assignment and successful presentation. The grade is determined by the activity in the seminar as well as the quality of essay and presentation.
Content The seminar is dedicated to exploring systems programming in a well-established environment. It will address problems of programming, tools and modern hardware. The topics covered in the seminar will include:
  • Modern Hardware: RDMA, Transactional memory
  • Trusted Execution: SGX, AMD SME, TrustZone
  • Tools: Pin tool, LLVM
  • OS examples: Linux drivers, Genode, PineOS
  • Virtualization

Seminar Topics

Topic
1) Using Remote Direct Memory Access (RDMA) efficiently to enable a fast network communication

RDMA is a technology that enables direct data movement between the memory of remote computers in a zero-copy manner, without the support of the operating system. Consequently, it helps to reduce the CPU load and to decrease the network overhead.

Task: Explain how to enable an RDMA-based network communication and implement a sample application using C or C++.

Hints

2) How to secure applications using SGX?

In the last years, cloud computing faced trust issues for applications managing sensitive data. To address this, Intel developed Software Guard Extensions (SGX) which allows the creation of one or more trusted execution environments inside an application, guarded against unauthorized accesses by higher privileged code and attackers.

Task: Explain how to secure applications using SGX and implement a sample application using C/C++.

Hints

3) How to update data in a distributed system via Conflict-free Replicated Data Types (CRDTs)?
Task: Explain how CRDT replication works and implement a sample application using C or C++. This includes to explore a few different CRDTs and show their benefits compared to traditional solutions. Also, it would be of interest to show how they are used in industry, examples include Redis, Riak, and Facebook.

Hints

4) Lessons learned from building applications completely in Rust
Task: In the last year, there has been a lot of interest to Rust programming language, which promises security properties and is claimed to be the next fastest language. Your task is to explain what features Rust provides, and implement a benchmark comparing its performance with the C language.

Hints

5) Understanding Transactional Memory
Task: Transactional Memory is a general concurrency mechanism that uses transactions instead of locks with a strong guarantees of no parralelism issues (deadlocks, race conditions, etc). Your task is to present a hands-on result from using a TM library, and explain its benefits over the usual mutex and locks mechanisms.

Hints

6) How to implement fundamental operating system services?
Task: The idea is to present the fundamentals to implement operating system services, such as device drivers, file systems, multi-tasking processing and to rely on educational Unix-like OS such as MINIX.

Hints

7) How to implement a Linux device driver?
Task: The role of a driver is provide mechanisms to users to access particular protected part of hardware. Your task is to present hands-on results of how we can implement a linux device driver in order to gain access to a particular device that is of interest.

Hints

8) Atomic operations, from basics to advanced
Task: When parallel threads are accessing data, mutual exclusion prevents data races. Atomic operations are alternatives to locks, relatively quick and do not suffer from deadlocks. Your task is to present hands-on results explaining atomic operations from basics to advanced.

Hints

9) Using Rust SGX SDK
Task: Exploring the Rust SGX SDK that connects Intel SGX and Rust programming language

Hints

Seminar

The talk and essay has to be done in English. Each participant will take one or more papers under a specific topic. Participants are responsible for a peer review, including:

  • Attend peer's presentation dry run and give feedback.
  • Review peer's essay before submission.
  • Participate by asking questions, contributing to the discussion.

Notes

Please submit the essay as well as your presentation slides. The requirements for presentation and essay are listed as follows:

  • Presentation and essay in English.
  • Programming assignment.
  • Presentation time about 25 minutes.
  • Essay should comprise about 4 pages.

Each participant is supposed to do further research based on the paper. The supervisors are always glad to help in this case.

The strength of the university depends on academic and personal integrity. In this seminar, essays must be done in your own words. Plagiarism is an offense against the examination regulations.

Templates

The LaTeX template for seminar essay can be found here.

Additional considerations for the design of the essay can be found on the website of IBR.

LaTeX templates for presentation slides can be found here.

Additional considerations for the design can be found on the website of IBR.

Material

The material is only available to registered attendees. In order to register, you need either an IBR account or a self-activated IBR-y-account. Afterwards you can login to this site (with the function at the top of this page).
[ Podcast | Podcast aller Formate | Newsfeed aller Formate ]
ChapterSlidesExercises
1. Atomic operations, from basics to advanced
pdfpdfpdf
2. How to secure applications using SGX?
pdfpdfpdf
3. Lessons learned from building applications completely in Rust
pdfpdfpdf
4. How to implement a Linux device driver?
pdfpdfpdf
5. Educational OS
pdfpdfpdf
6. Trusted counter using SGX Rust SDK
pdfpdfpdf
7. Using RDMA efficiently
pdfpdfpdf
8. Conflict-free Replicated Data Types(CRDTs)
pdfpdfpdf
9. Multiple Enclaves with Intel VCA
pdfpdfpdf
Schedule
[ Subscribe Calendar | Download Calendar ]
DateDescription
09.04.2019, 13:15 UhrKick-off Meeting (IZ Raum 105)
21.05.2019, 13:15 UhrPresentation "Atomic operations, from basics to advanced" (IZ Raum 105)
28.05.2019, 13:15 UhrPresentation "How to secure applications using SGX?" (IZ Raum 105)
28.05.2019, 13:15 UhrPresentation "Building applications completely in Rust" (IZ Raum 105)
04.06.2019, 13:15 UhrPresentation "How to implement a Linux device driver?" (IZ Raum 105)
18.06.2019, 13:15 UhrPresentation "Educational Operating Systems" (IZ Raum 105)
25.06.2019, 13:15 UhrPresentation "Using Rust SGX SDK to implement a trusted counter" (IZ Raum 105)
02.07.2019, 13:15 UhrPresentation "Efficient use of Remote Direct Memory Access" (IZ Raum 105)
09.07.2019, 13:15 UhrPresentation "Conflict-free Replicated Data Types (CRDTs)" (IZ Raum 105)
09.07.2019, 13:15 UhrPresentation "Multiple Enclaves with Intel VCA" (IZ Raum 105)
References

Slides and template:

On World-Wide-Web, there are different ways to enhance your seminar presentations:

For the literature review there links might be helpful:

(La)TeX Tips + Tricks


last changed 2019-06-05, 09:51 by Ines Messadi
printemailtop