UNIVERSITY OF ATHENS
Department of Informatics & Telecommunications
Spring Semester 2026
Mondays 13:00-15:00 in Room A2 and Tuesdays 11:00-13:00 in Room A2
Instructor: Mema Roussopoulou
Email: mema -at* di *dot- uoa -dot* gr
Office: A38
Office hours: Tuesdays 13:00-14:00
EDIP: Nikos Perdikopanis
Email: nikosp -at* di *dot- uoa -dot* gr
Office: A33
Announcements
1) Please sign up on the Piazza class forum here.
We will use the class forum to make any announcements regarding homeworks, lectures, exams, etc. You are required to read the class forum regularly.
Περιγραφή Μαθήματος
Σε αυτό το μάθημα θα μελετήσουμε το Λειτουργικό Σύστημα Unix από τη πλευρά του χρήστη. Τα θέματα που θα καλύψουμε συμπεριλαμβάνουν:
This class will also include an introduction to security including the concepts of software vulnerabilities and secure programming.
Assignments
Βιβλία για το Κ24: · M.J.
Rochkind, Advanced
Unix Programming,
Prentice-Hall Software Series, · Kay
Robbins, Steven Robbins, "Unix
Systems Programming: Communication, Concurrency, and Threads", Prentice Hall PTR, 2003. Διαφάνειες: Οι διαφάνειες που
χρησιμοποιούνται σε αυτό το μάθημα είναι βασισμένες σε μεγάλο βαθμό στα σετ
διαφανειών που χρησιμοποίησαν οι κκ. Αλέξης Δελής και Αντώνης Δελιγιαννάκης σε
προηγούμενα εξάμηνα. Η αρχική πηγή του
περιεχομένου των διαφανειών είναι οι σημειώσεις του κ. Σταματόπουλου. Ευχαριστίες στον κ. Σταματόπουλο. Θα τις βρείτε παρακάτω. Αλλες Χρήσιμες Αναφορές: · Δωρεάν διαθεσιμότητα
του Linux και FreeBSD: Ubuntu, Debian, Suse, RedHat, και FreeBSD · Χρήσιμο F.A.Q.
για την γλώσσα προγραμματισμού C - faq-c · Εισαγωγικά tutorials
για Unix είναι εδώ
και εδώ . · Tutorials
για το πως να κάνετε compile προγράμματα στο Unix Tut-A, Tut-B,
και Tut-C · Οδηγίες για όσους
γράφουν C++ · A. D.
Downey, The
Little Book of Semaphores,
GreenTree Press, 2007. Grading
There will be required oral examinations for each programming assignment.
Course Policy Assignments are due on the day listed on the class schedule below.
Should there be a change in deadline, this will be announced on eclass.
Cheating will NOT be tolerated and will result in immediate
failure of the class. Consider yourself warned. NO LAPTOP OR MOBILE PHONE USE ALLOWED IN CLASS. Date Topic Handouts, Assignments Lecture Notes Monday 16/2 Class overview. Topic
1: Intro to Unix, basic commands, file
processing, C shell, metacharacters, environment variables, process
management, makefiles. Class overview (pdf) Topic 1 (pdf) Tuesday 17/2 Topic
1 (cont'd)
Tuesday 24/2 Topic 1 (cont'd)
Monday 2/3 Topic 2 (cont'd). Topic 2 (pdf) Topic 2 (Sample
bash scripts) Tuesday 3/3 Topic 3:
Error handling, perror, errno, low-level I/O, system calls link, unlink,
mkdir, rmdir, rename, symlink, readlink, signals, signal handling actions,
syscalls raise, pause, alarm. Topic 3 (pdf) Topic 3 (Topic
3 sample programs ) Monday 9/3 Topic 3 (cont'd) Tuesday 10/3 Topic 3 (cont'd) Monday 16/3 Topic 3 (cont'd). Tuesday 17/3 Topic 4:
Process: concept, process state machine execution, syscalls getpid, getppid,
exit, fork, wait, waitpid, exec, orphan processes, zombie processes, pipes,
file descriptors after exec Topic 4 (pdf) Topic 4 (Topic
4 sample programs ) Monday 23/3 Topic 4 (cont'd). Tuesday 24/3 Topic 4 (cont'd).   Monday 30/3 Topic 5:
Interprocess Communication across the Net: client-server model, handling
client requests, socket syscalls, bind, connect, listen, accept, bzero,
bcopy, TCP, UDP Topic 5 (pdf) Topic 5 (Topic
5 sample programs ) Tuesday 31/3 Topic 5 (cont’d) Monday 6/4-Tuesday 14/4 Easter break – no class. Monday 20/4 Topic 5 (cont'd) Tuesday 21/4 Topic 6:
Threads: concept, thread creation, termination, going from single-threaded to
multi-threaded, synchronization, binary semaphores, conditional variables,
producer-consumer problem Topic 6 (pdf) Topic 6 (Topic
6 sample programs ) Monday 27/4 Tuesday 28/4 Monday 4/5 Tuesday 5/5 Topic 6 (cont'd) Monday 11/5 Topic 6 (Threads cont'd)
Topic 6 (cont'd) Monitor-style programming (acks to Y. Smaragdakis) ) Tuesday 12/5 Topic 6 (cont'd) Monday 18/5 Topic 6 (cont'd) Tuesday 19/5 Topic 7:
Interprocess Communication: System V,
message queues, shared memory, semaphores, deadlock Topic
7 (pdf) Topic 7 (Topic
7 sample programs ) Monday 25/5 Topic 7 (cont’d) Tuesday 26/5 Topic 7 (cont’d)
Class Forum
You are required to follow the class forum. Find our class forum page
here.
Programming Assignments: 20%
Exam 1: 40%
Exam 2: 40%
Syllabus & Schedule (tentative)
Topic2: Bash shell programming: parameters,
arithmetics, expr, conditional statements, if stmt, case stmt, for loops,
while loops, sample script programs.
Exam 1
Topic 6 (cont'd)
Topic 6 (cont'd)