ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 428: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ

Ακαδημαϊκό Έτος 2007-2008, Εαρινό Εξάμηνο

Πρόγραμμα Μαθημάτων

Εβδ.

Διδάσκων
 Ημερομηνία
 Περιγραφή
PDF
1
Χ
 Δευτέρα 21/1 Περιγραφή Συμβολαίου,  Εισαγωγή στο Unix και τον Προγραμματισμό Συστημάτων (Κεφάλαιο 1 - Unix System Overview (Stevens & Rago)

Στόχοι Μαθήματος, Συμβόλαιο Μαθήματος, Βιβλιογραφία, Περιεχόμενο Μαθήματος, Ανατομία του ΛΣ Unix, Βασικά Στοιχεία για το Kernel, System Calls, Προγραμματισμός στο Κέλυφος, Unix Ιστορική Αναδρομή.

Contract

Lecture 1

 
Δ
 Πέμπτη 24/1 Βασικές Εντολές Συστήματος Unix

UNIX εντολές: passwd, man, whatis, apropos, info, help, users, who, whoami, finger, w, Δομή καταλόγων, πλοήγηση στη δομή καταλόγων (ls, cd, pwd, pathnames, pushd, popd), χώρος δίσκου (du, df), συμπίεση-αποσυμπίεση (zip, gzip, bzip2, unzip, gunzip, bunzip2, tar), σύνδεσμοι (συμβολικοί, σκληροί - ln).

Lecture 2

2
Δ
 Δευτέρα 28/1 Βασικές Εντολές Συστήματος Unix

Χειρισμός Καταλόγων/Αρχείων (mkdir, rmdir, cp, mv, rm), Εξέταση Αρχείων (file, head, tail, cat, more, wc, sort, uniq), Ρεύματα Εισόδου/Εξόδου (stdin, stdout, stderr), Ανακατεύθυνση Αρχείων, Διοχέτευση/Σωλήνωση, Ανακατεύθυνση και Διοχέτευση.

Lecture 3

 
Δ
 Πέμπτη  31/1 Προχωρημένες εντολές Unix και Εργαλεία Ωφελιμότητας (System Utilities)

Εντολές UNIX (echo, touch), Ιδιοκτησία και Δικαιώματα Πρόσβασης (chmod, chgrp, chown, umask, suid, sgid, sticky bit), Κανονικές Εκφράσεις (grep, egrep).

Lecture 4ab

3
Δ
 Δευτέρα 4/2 Προχωρημένες εντολές Unix και Εργαλεία Ωφελιμότητας (System Utilities)

Έλεγχος Διεργασιών (jobs, ps, fg, bg, kill, top), Εύρεση Αρχείων και Προγραμμάτων (which, whereis, find, exec, xargs), Εντολές UNIX (alias, cut, tr, tee, mail, comm, diff, crontab).

Lecture 4ab

 
Χ
 Πέμπτη 7/2 Εργαλεία Ωφελιμότητας Unix (Sed και Αwk)

Συμπληρωματικά Εγχειρίδια:
 + Sed Introduction Manual
 + Awk Introduction Manual

Lecture 5ab

sed.pdf

awk.pdf

4
Χ
 Δευτέρα 11/2 Εργαλεία Ωφελιμότητας Unix (Sed και Αwk)

Lecture 5ab

 
Χ
 Πέμπτη  14/2 To Κέλυφος Bash (Bash Guide - Κεφάλαια 1,2,3 Garrels)

Εισαγωγή στο Κέλυφος Βash, Περιβάλλον και Μεταβλητές (Περιβάλλον και Μεταβλητές,  Αρχεία ελέγχου Login/Logout, Μεταβλητές Κελύφους, Εντολές Κελύφους), Προγραμματισμός Κελύφους (Εκτέλεση Προγραμμάτων, Είσοδος Τιμών από τον Χρήστη, Command-line Parameters)

 Συμπληρωματικά Εγχειρίδια:
 + Bash Guide for Beginners, Machtelt Garrels
 + Advanced Bash Shell Scripting Guide, Mendel Cooper

Lecture 6

beg-bash.pdf

adv-bash.pdf

5
X
 Δευτέρα 18/2 Προγραμματισμός Κελύφους Bash (Bash Guide - Κεφάλαια 7,9,10 Garrels)

Συνθήκες Ελέγχου (If, Case), Λογικοί Τελεστές (&&, II, !), Σχεσιακοί Τελεστές (-gt,-lt,..),Αριθμητικές Εκφράσεις και Πίνακες, Επαναληπτικοί και Ένθετοι Βρόχοι, Έλεγχοι Αρχείων (File Testing), Συναρτήσεις, Πίνακες και Παραδείγματα

Lecture 7

X
 Πέμπτη 21/2  Προχωρημένος Προγραμματισμός Κελύφους Bash (Bash Guide - Κεφάλαιo 12 και επιλεγμένα θέματα απo το Advanced Bash Programming)

 Αποσφαλμάτωση με την set, Διαχείριση Σημάτων (signals & trap), Διοχετεύσεις λαι συσκευές (εντολή exec), Επίλυση Παραδειγμάτων

Lecture 8

examples.pdf

I-O_redirection .pdf

6
Δ
 Δευτέρα 25/2  Χαμηλού Επιπέδου Είσοδος/Έξοδος (Low-Level I/O in C) - Κεφάλαιο 3 (Stevens & Rago)

Διαχείριση Λαθών με την <errno.h> (επίσης df, ulimit, od), Εισαγωγή στα Αρχεία και Συστήματα Αρχείων στο Unix (Τύποι Αρχείων, Partitions, i-nodes, blocks), Μέθοδοι Επεξεργασίας Αρχείων: Standard I/O vs. Χαμηλού Επιπέδου Ι/Ο, Χαμηλού Επιπέδου Ι/Ο (System Calls I/O) <fcntl.h>, <unistd.h>, Παραδείγματα Χρήσης

 Για επανάληψη μελετήστε επίσης το Κεφάλαιο 5 - Standard I/O (Stevens & Rago)

Lecture 9

Δ
Πέμπτη  28/2  Συστήματα Αρχείων και Καταλόγων (Files & Directories) - Κεφάλαιο 4 Stevens & Rago

Ολοκλήρωση Διάλεξης 9, Μέτα-πληροφορίες Αρχείων (sys/stat.h): Δομή και Πρόσβαση, Διαχείριση Αρχείων με κλήσεις συστήματος [rename(), chmod(), link(), unlink(), symlink(), readlink()], Διαχείριση Καταλόγων (mkdir(), rmdir()), Προσπέλαση Καταλόγων με συναρτήσεις βιβλιοθήκης dirent.h [opendir(), readdir() και closedir()], Παραδείγματα Χρήσης (mystat, filetype, lsdirR)

Lecture 10

7
Χ
  Δευτέρα 3/3  Διεργασίες: Περιβάλλον και Έλεγχος (Process Environment & Control) - Κεφάλαιο 7, 8 Stevens & Rago

Διεργασίες: Εισαγωγικές Έννοιες, Ταυτότητες Διεργασιών (getpid(), getppid(), getuid(), getgid()), Διεργασίες στην Μνήμη (Δομή & Αναπαράσταση), Δημιουργία Διεργασιών (fork()), Μεταβλητές Περιβάλλοντος, Ορφανές Διεργασίες, Διεργασίες και Αρχεία, Αναμονή Διεργασιών (wait(), waitpid()), Zombie Διεργασίες

Lecture 11

Χ
 Πέμπτη 6/3  Διεργασίες & Σήματα (Processes and Signals) - Κεφάλαιο 8, 10 Stevens & Rago

Η οικογένεια συναρτήσεων exec(), Η κλήση συστήματος system(), Σήματα στην C. Η κλήση συστήματος signal(), Σήματα και Διεργασίες, Η Κλήση συστήματος alarm(), Δια-διεργασιακά Σήματα (kill()).
 

Lecture 12
8
---
Δευτέρα 10/3
 Αργία (Καθαρά Δευτέρα)
---
Δ/Χ
 Πέμπτη 13/3  Ενδιάμεση Εξέταση - Μέχρι Διάλεξη 12 ---
9 Χ  Δευτέρα 17/3  Δια-Διεργασιακή Επικοινωνία (Inter-Process Communication): i) Pipes και ii) Named Pipes (FIFO) - Κεφάλαιο 15 Stevens & Rago

Οι κλήσεις συστήματος dup, dup2, Επικοινωνία μεταξύ Διεργασιών - Εισαγωγή, Πρόβλημα και Ανασκόπηση Λύσεων, IPC1: Σωλήνες (Pipes): Επικοινωνία Παιδί=>Πατέρα, Παιδί <=>Πατέρα, Υλοποίηση Pipe Κελύφους,   IPC2: FIFO (Named Pipes), FIFO και Κελύφους, FIFO στην C, Παράδειγμα Reader-Writer με FIFO.

Lecture 13
  Χ  Πέμπτη 20/3 XSI IPC (System V) : iii) Ουρές Μνημάτων (Message Queues),  iv) Κοινόχρηστη Μνήμη (Shared Memory) και v) Σηματοφόροι (Semaphores) - Κεφάλαιο 15 Stevens & Rago

Ορισμοί (Προσδιοριστές και Κλειδιά, Διαχείριση IPC πόρων, Διαχείριση IPC με εντολές κελύφους), Ουρές Μηνυμάτων, Δομή Μηνύματος, Δομή Ουράς Μηνυμάτων, Δημιουργία Ουράς Μηνυμάτων, Αποστολή Μηνυμάτων, Παραλαβή Μηνυμάτων, Πλήρες Παράδειγμα Ουράς Μηνυμάτων, Έλεγχος Ουράς Μηνυμάτων, Κοινή Μνήμη, Δομή Κοινής Μνήμης, Δημιουργία, Προσάρτηση, Απόσπαση και Έλεγχος Κοινής Μνήμης, Παράδειγμα Κοινής Μνήμης, Σηματοφόροι, Δομή Συνόλου Σηματοφόρων, Δημιουργία, Χειρισμός και Έλεγχος Συνόλου Σηματοφόρων, Παράδειγμα Σηματοφόρου.

Lecture 14

10
Χ
 Δευτέρα 24/3  Προγραμματισμός Υποδοχών (Socket Programming) - Κεφάλαιο 16 Stevens & Rago

Προγραμματισμός Υποδοχών, Ορισμός Υποδοχής, Θύρες, Αναθέσεις Αριθμών Θύρων, Οικογένειες Πεδίων Υποδοχών, Είδη Υποδοχών, TCP Επικοινωνία Εξυπηρετητή/Πελάτη, Βασικές Λειτουργίες Εξυπηρετητή και Πελάτη, Μετατροπή ακολουθίας bytes, Περιγραφείς Υποδοχών, Δημιουργία Υποδοχής (socket()), Δομή Διεύθυνσης Υποδοχής, Συσχέτιση Διεύθυνσης με Υποδοχή (bind()), Άκουσμα των εισερχομένων συνδέσεων (listen()), Αποδοχή εισερχομένων αιτήσεων σύνδεσης (accept()), Αίτηση σύνδεσης (connect()), Μεταφορά δεδομένων (read(), write(), send(), recv()), Κλείσιμο σύνδεσης (close(), shutdown())

 Συμπληρωματικό Εγχειρίδιο:
 + Beej's Guide to Network Programming Using Internet Sockets, Brian Hall

Lecture 15ab

sockets.pdf

 
Χ
 Πέμπτη 27/3

Προγραμματισμός Υποδοχών (Socket Programming) - Κεφάλαιο 16 Stevens & Rago

Χειρισμός IP διεύθυνσης (inet_addr(), inet_ntoa()), Επιπρόσθετες βοηθητικές συναρτήσεις (getpeername(), gethostname(), gethostbyname(), gethostbyaddr()), getsockname(), setsockopt(), bzero(), bcopy()), Παράδειγμα client-server.

Lecture 15ab

11
Δ/Χ
 Δευτέρα 31/3  Παρουσιάσεις Φοιτητών Ι Student Presentations
 
Δ/Χ
 Πέμπτη 3/4  Παρουσιάσεις Φοιτητών ΙΙ
Ιστοσελίδα Παρουσιάσεων
Student Presentations
12
Δ
Δευτέρα 7/4  Ασφάλεια Λογισμικού Συστημάτων

Cryptography, Public Key Infrastructure (PKI), Certification Authorities.

Διάλεξη με προσκεκλημένο το Λειτουργό Μηχανογράφησης του Τμήματος Πληροφορικής, κ. Ανδρέα Κέκκου

 Lecture 16
 
Δ
Πέμπτη 10/4

Εισαγωγή στο Υπολογιστικό Πλέγμα

 

Lecture 17abc 
13
Δ
Δευτέρα 14/4 Ενδιάμεσο Λογισμικό gLite και υποδομή EGEE
Υποβολή Εργασιών στο EGEE
Lecture 17abc
 
Δ
 Πέμπτη 17/4 Το EGEE ως αποθηκευτική Υποδομή Lecture 17abc
Παρασκευή 18/4 - Λήξη Μαθημάτων
 

19 Απριλίου - 4 Μαΐου (Διακοπές Πάσχα)

5-18 / 5 : Τελικές Εξετάσεις

 



Πρόγραμμα Μαθημάτων

 

University of Cyprus, Department of Computer Science, © 2008