ΠΑΝΕΠΙΣΤΗΜΙΟ
ΚΥΠΡΟΥ
|
ΕΠΛ 428: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ Ακαδημαϊκό Έτος 2007-2008, Εαρινό Εξάμηνο |
Πρόγραμμα Μαθημάτων
Εβδ. |
Διδάσκων |
Ημερομηνία |
Περιγραφή |
|
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) Συμπληρωματικά Εγχειρίδια: |
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) Συμπληρωματικά Εγχειρίδια: |
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()) Συμπληρωματικό Εγχειρίδιο: |
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