ΕΠ02 - System Programming

Information

Code : ΕΠ02

Type : Elective

Semester : 8

ECTS credits: 5

Course URL: https://eclass.hua.gr/courses/DIT137/

Expected Outcomes

The purpose of the course is to familiarize students with the concepts and problems encountered when creating multi-threaded programs and what facilities the operating systems and higher level programming languages offer to mitigate these problems. Expected outcomes include:
- Understanding of problems encountered by concurrent access in common resources
- Ability to design and implement software based on concurrent programming principles
- Practical excercises on common techniques for guaranteeing fault tolerance and functional correctness
- Exploitation of offered operating system services for these purposes.

Content

Concurrent programming, multi-threaded programming, Process and thread synchronization, Practical examples and common techniques, inter-process communication, shared memory, multicore systems, condition variables, practical examples in C, Concurrent programming in databases, Consistency models in SQL and NoSQL Databases, Fault Tolerance, advanced examples

Evaluation Means

 

Bibliοgraphy

1. ΤΕΧΝΟΛΟΓΙΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ ΩΣ ΥΠΗΡΕΣΙΑΣ: ΜΙΑ ΕΥΕΛΙΚΤΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΝΕΦΟΥΣ
Κωδικός Βιβλίου στον Εύδοξο: 68386127
Έκδοση: 1η/2017
Συγγραφείς: ARMANDO FOX, DAVID PATTERSON
ISBN: 978-960-461-784-5
Τύπος: Σύγγραμμα
Διαθέτης Εκδότης: ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ

2. Αρχές Προγραμματισμού με Ταυτοχρονισμό και Κατανομή Λογισμικού, 2η Έκδοση
Κωδικός Βιβλίου στον Εύδοξο: 50655947
Έκδοση: 2η/2015
Συγγραφείς: Ben-Ari
ISBN: 978-960-418-591-7
Τύπος: Σύγγραμμα

3. ΣΚΕΨΟΥ ΣΕ PYTHON
Κωδικός Βιβλίου στον Εύδοξο: 94644736
Έκδοση: 2η Αμερικανική/2020
Συγγραφείς: ALLEN B. DOWNEY
ISBN: 978-960-645-090-7
Τύπος: Σύγγραμμα
Διαθέτης Εκδότης: ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ

Concurrency and Computation: Practice and Experience
IEEE Transactions on Parallel and Distributed Systems