ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΟΣ

Χειμερινό Εξάμηνο 2007-08

Γενικά Στοιχεία

Κωδικός:

Κ24

Κατηγορία:

Κορμός Πληροφορικής και Τηλεπικοινωνιών

Εξάμηνο:

Z'

 

 

Διαλέξεις:

Τετάρτη 19:00-21:00 (αίθουσα Α')

 

Πέμπτη 16:00-18:00 (αίθουσα ΣΤ')

 

 

Έναρξη μαθημάτων:

Τετάρτη 17/10/2007

 

 

Διδάσκων:

Αντώνιος Δεληγιαννάκης (adelidi.uoa.gr)

 

 

Μεταπτυχιακοί Συνεργάτες:

Βασίλης Στούμπος (stoumposdi.uoa.gr)

Αργύρης Πετρόπουλος (archiepetropgmail.com)

Δημήτριος Κατρής (d.katrisdi.uoa.gr)

Δημήτριος Κωτσάκος (std02041di.uoa.gr)

Αντικείμενο του Μαθήματος

  1. Το λειτουργικό σύστημα Unix από την πλευρά του χρήστη
  2. Βοηθητικά προγράμματα του Unix
  3. Προγραμματισμός σε κελύφη
  4. Προγραμματισμός λειτουργιών συστήματος σε C για
    1. χειρισμό λαθών
    2. δημιουργία και τερματισμό διεργασιών
    3. αποστολή/παραλαβή σημάτων
    4. είσοδο/έξοδο χαμηλού επιπέδου
    5. επικοινωνία μεταξύ διεργασιών μέσω
      1. σωλήνων
      2. υποδοχών
      3. ουρών μηνυμάτων
      4. κοινής μνήμης και σηματοφόρων
    6. δημιουργία, τερματισμό και συγχρονισμό νημάτων
    7. διαχείριση συστήματος αρχείων

Ηλεκτρονική Λίστα

Για εγγραφή στην ηλεκτρονική λίστα του μαθήματος επισκεφθείτε την ιστοσελίδα http://www.di.uoa.gr/~mailman/listinfo/info-spro. Η διεύθυνση της λίστας, για αποστολή μηνυμάτων σ' αυτήν, είναι: info-spro@di.uoa.gr. Παραλαβή μηνυμάτων από τη λίστα γίνεται μέσω του ηλεκτρονικού ταχυδρομείου (στη διεύθυνση που δηλώθηκε κατά την εγγραφή). Διαγραφή από τη λίστα, αλλά και ανάγνωση των μηνυμάτων που έχουν σταλεί σ' αυτήν, μπορεί να γίνει επίσης μέσω της ιστοσελίδας της λίστας. Μηνύματα που είχαν σταλεί στις αντίστοιχες λίστες σε παλαιότερα εξάμηνα μαθημάτων μπορούν να βρεθούν μέσω αυτής της ιστοσελίδας και ακόμα παλαιότερα μηνύματα (προ mailman εποχή) μέσω αυτής της διεύθυνσης. (Ευχαριστίες στον Στέφανο Σταμάτη)

 

ΠΑΡΑΚΑΛΟΥΝΤΑΙ ΟΣΟΙ ΔΕΝ ΕΧΟΥΝ ΗΔΗ ΕΓΓΡΑΦΕΙ ΣΤΗΝ ΗΛΕΚΤΡΟΝΙΚΗ ΛΙΣΤΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΝΑ ΤΟ ΚΑΝΟΥΝ ΑΜΕΣΑ. ΟΣΟΙ ΕΧΟΥΝ ΓΡΑΦΕΙ ΜΕ ΕΜΑΙL ΔΙΑΦΟΡΕΤΙΚΟ ΑΠΟ ΑΥΤΟ ΤΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ, ΕΙΤΕ ΝΑ ΜΟΥ ΣΤΕΙΛΟΥΝ ENA EMAIL ΓΙΑ ΝΑ ΜΕ ΕΝΗΜΕΡΩΣΟΥΝ ΓΙΑ ΤΟ EMAIL ΤΟΥΣ ΣΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ, ΕΙΤΕ (ΠΡΟΤΙΜΟΤΕΡΟ) ΝΑ ΕΓΓΡΑΦΟΥΝ ΚΑΙ ΜΕ ΤΗ ΔΙΕΥΘΥΝΣΗ ΤΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΣΤΗ ΛΙΣΤΑ. 

Βιβλία Μαθήματος

Τα βιβλία του μαθήματος ορίζονται εδώ. Αν δεν ξέρετε πώς να επισκεφτείτε αυτή τη σελίδα, στείλτε μου email από τη διεύθυνσή σας του πανεπιστημίου.

Βιβλιογραφία

  1. Brian W. Kernighan, Rob Pike. "Το Περιβάλλον Προγραμματισμού Unix", Prentice-Hall (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 1989.
  2. Stephen R. Bourne. "The Unix System V Environment", Addison-Wesley, 1987.
  3. W. Richard Stevens. "Advanced Programming in the Unix Environment", 2nd edition, Addison-Wesley, 2005.
  4. Marc J. Rochkind. "Advanced Unix Programming", Addison-Wesley, 2004.
  5. Graham Glass. "Unix for Programmers and Users", Prentice-Hall, 1993.
  6. David R. Butenhof. "Programming with POSIX Threads", Addison-Wesley, 1997.
  7. W. Richard Stevens. "Unix Network Programming", Prentice-Hall, 1990.
  8. Keith Haviland, Dina Gray, Ben Salama. "Unix System Programming", Addison-Wesley, 1999.
  9. David A. Curry. "Using C on the Unix System", O'Reilly & Associates, 1991.
  10. Brian W. Kernighan, Dennis M. Ritchie. "Η Γλώσσα Προγραμματισμού C", Prentice-Hall (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 1988.
  11. Eric S. Roberts. "Η Τέχνη και Επιστήμη της C", Addison-Wesley (Ελληνική μετάφραση, εκδόσεις Κλειδάριθμος), 2004.
  12. Harvey M. Deitel, Paul J. Deitel. "C How to Program", 3rd edition, Prentice-Hall, 2001.
  13. Judy Kay, Bob Kummerfeld. "C Programming in a Unix Environment", Addison-Wesley, 1989.
  14. Andrew Feibus. "Unix Quick!", McGraw-Hill, 1991.
  15. Daniel Gilly. "Unix in a Nutshell", O'Reilly & Associates, 1998.
  16. Brian W. Kernighan, Rob Pike. "The Practice of Programming", Addison-Wesley, 1999.
  17. Διομήδης Σπινέλλης. "Ανάγνωση Κώδικα - Η Προοπτική του Ανοικτού Λογισμικού", εκδόσεις Κλειδάριθμος, 2005.

Λογισμικό Μαθήματος

  1. Επίσημες υπολογιστικές πλατφόρμες του μαθήματος είναι τα μηχανήματα linux02.di.uoa.gr, linux03.di.uoa.gr, .........., linux12.di.uoa.gr του Τμήματος, με λειτουργικό σύστημα Linux.
  2. SSH GUI Terminal (PuTTY)
  3. SFTP GUI προγράμματα

Ενδιαφέροντες Σύνδεσμοι

  1. C Language Answers to Frequently Asked Questions   [TXT]
  2. Recommended C Style and Coding Standards   [PDF]
  3. Vim Tutor in Greek
  4. Unix Programming Tools
  5. Unix - Frequently Asked Questions (1/7)
  6. Unix - Frequently Asked Questions (2/7)
  7. Unix - Frequently Asked Questions (3/7)
  8. Unix - Frequently Asked Questions (4/7)
  9. Unix - Frequently Asked Questions (5/7)
  10. Unix - Frequently Asked Questions (6/7)
  11. Unix - Frequently Asked Questions (7/7)
  12. Unix Programming FAQ
  13. FAQ about the awk programming language
  14. Unix-socket-faq for network programming
  15. FAQ for threads
  16. Another threads FAQ
  17. Posix threads programming
  18. Knoppel     Download (Έκδοση 0.8)     Οδηγίες
  19. The Linux Home Page at Linux Online
  20. Linux Programming Resources
  21. Σημειώσεις του Μαθήματος "Εισαγωγή στον Προγραμματισμό" (ευχαριστίες στον κύριο Σταματόπουλο)

Ανασκοπήσεις Διαλέξεων

Διαφάνειες Ανά Μάθημα

Διαφάνειες Προηγούμενων Εξαμήνων του κυρίου Σταματόπουλου

Προηγούμενα Θέματα Εξετάσεων (ευχαριστίες στον κύριο Σταματόπουλο)

1994-2000
2001-2006
Α' Περίοδος 2007
Β' Περίοδος 2007

Α' Περίοδος 2008

Βαθμολογία

Γραπτή εξέταση:

50%

Ασκήσεις:

50% (5%, 15%, 17% και 13% για τις ασκήσεις 1, 2, 3 και 4 (αντίστοιχα))

Για την εξεταστική του Σεπτεμβρίου, το 50% του βαθμού καθορίζεται από τη γραπτή εξέταση, ενώ το υπόλοιπο 50% από τον καλύτερο βαθμό ανάμεσα στη γραπτή εξέταση και τις ασκήσεις. Αυτό σημαίνει ότι όποιος δεν παραδώσει ασκήσεις, μπορεί να προσέλθει στην εξεταστική του Σεπτεμβρίου, όπου η γραπτή εξέταση του θα είναι με άριστα το 10.

Ασκήσεις

Η Άσκηση 4 (ατομική άσκηση) βρίσκεται εδώ. Ημερομηνία παράδοσης είναι στις 08/02, στις 18:00. ΔΕΝ ΘΑ ΓΙΝΟΥΝ ΔΕΚΤΕΣ ΕΡΓΑΣΙΕΣ ΠΕΡΑΝ ΑΥΤΗΣ ΤΗΣ ΗΜΕΡΟΜΗΝΙΑΣ. ΣΥΝΕΠΩΣ ΔΕΝ ΙΣΧΥΕΙ Η ΠΟΛΙΤΙΚΗ ΚΑΘΥΣΤΕΡΗΜΕΝΗΣ ΠΑΡΑΔΟΣΗΣ ΕΡΓΑΣΙΩΝ ΑΠΟ ΤΗ ΣΤΙΓΜΗ ΠΟΥ ΔΟΘΗΚΕ ΠΑΡΑΤΑΣΗ.

Η Άσκηση 3 βρίσκεται εδώ. Ημερομηνία παράδοσης είναι στις 14/01, στις 18:00.

Η Άσκηση 2 βρίσκεται εδώ. Ένα δείγμα πιθανής πίστας εμφανίζεται εδώ (ΠΡΟΣΟΧΗ: Θα υπάρχει άλλη πίστα στην εξέταση). Ημερομηνία παράδοσης είναι στις 04/12, στις 18:00. Το παραδοτέο tar αρχείο να περιέχει ένα README αρχείο που θα περιγράφει τις βασικές επιλογές σας ως προς την υλοποίηση της άσκησης. Επίσης στο README να δηλώσετε καθαρά ποιος από την κάθε ομάδα υλοποίησε την κάθε συνάρτηση στην άσκηση. Το παραδοτέο να περιέχει και ένα Makefile για την παραγωγή του εκτελέσιμου. Με την εντολή make θα μεταγλωττίζονται τα αρχεία, ενώ με την εντολή make clean θα διαγράφονται τα εκτελέσιμα αρχεία, καθώς και όλα τα object αρχεία (*.o). Κανένα παραδοτέο δεν πρέπει να περιέχει εκτελέσιμα ή/και .o αρχεία  Όπως πάντα, οι ασκήσεις είναι προσωπική υπόθεση των μελών της κάθε ομάδας και δεν νοείται διαφορετικές ομάδες να έχουν όμοια υλοποίηση σε καίριες συναρτήσεις.

Η Άσκηση 1 βρίσκεται εδώ. Ημερομηνία παράδοσης είναι στις 7/11, στις 18:00. Για όσους δεν ασχολούνται με ποδοσφαιρικά ζητήματα, η νίκη σε ένα αγώνα δίνει 3 βαθμούς, η ισοπαλία 1 βαθμό και η ήττα 0 βαθμούς.

Υποβολή Ασκήσεων

· Φτιάξτε ένα tar αρχείο με όλη τη δουλειά σας (Για την Άσκηση 1: 2 bash scripts, ένα αρχείο με τις εντολές UNIX και ένα README που περιγράφει πώς υλοποιήσατε τα προγράμματα στο Bash κέλυφος – Για τις υπόλοιπες ασκήσεις όλα τα αρχεία source files, header files, Makefile, README-file, κλπ) και δώστε του ένα όνομα που ΕΥΚΟΛΑ σας ξεχωρίζει (π.χ. AntoniosDeligiannakis.tar")

· Το παραπάνω αρχείο το αντιγράφετε στον παρακατω καταλογο:
/home/users/spro/projectX/USER-ID       

όπου Χ=1,2,3,4 είναι ο αριθμός της άσκησης και USER-ID είναι το login όνομά σας στον Unix Server. Για το παραπάνω παράδειγμα και για την πρώτη άσκηση η υποβολή θα γινόταν με την απλή εντολή
cp AntoniosDeligiannakis.tar /home/users/spro/project1/adeli/
δεδομένου ότι το login id του χρήστη είναι adeli. Η ίδια εντολή για τη δεύτερη άσκηση θα ήταν

cp AntoniosDeligiannakis.tar /home/users/spro/project2/adeli/ 

· Μπορείτε να κάνετε πολλαπλές υποβολές. Μόνο η τελευταία υποβολή λαμβάνεται υπ όψιν.

· Αν ο κατάλογος δεν υπάρχει, τότε μάλλον δεν έχετε γραφτεί στη λίστα του μαθήματος. Η ανανέωση των καταλόγων θα γίνεται ανά 2 ημέρες. Όσοι περιμένουν μέχρι τις τελευταίες μέρες για να δουν ότι δεν υπάρχει ο κατάλογος τους και να γραφτούν στη λίστα θα έχουν ποινή στο βαθμό της άσκησης.

Πάντα βάζετε ενα README αρχείο με οδηγίες για τον εξεταστή της άσκησης.

 

Διαβάστε Προσεκτικά!

Διαδικασίες αξιολόγησης ασκήσεων και "κώδικας ηθικής"