Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11."— Μεταγράφημα παρουσίασης:

1 ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11

2  Εξοικείωση µε θεμελιώδεις έννοιες και µηχανισµούς που προσφέρει το λειτουργικό σύστηµα UNIX και τα UNIX-like συστήµατα ◦ δηµιουργία/διαχείριση διεργασιών ◦ επικοινωνία διεργασιών  Γλώσσα προγραµµατισµού C  Κλήση συστήµατος fork  Χρήση Sockets  Μοντέλο Πελάτη-Εξυπηρέτη (Client-Server model)  Χρήση Shared memory  Χρήση Semaphores  Χρήση Signals  - 2 -

3  2 ή 3 ασκήσεις  Συνολικά 40% του τελικού βαθµού στο μάθηµα  Η 1η άσκηση θα αναρτηθεί τις επόµενες ηµέρες  - 3 -

4  Οι ασκήσεις ϑα είναι σε οµάδες των 2-3 ατόµων  Παραδίδονται ηλεκτρονικά µέσω της σελίδας του µαθήµατος  Η ηµεροµηνία παράδοσης θα ανακοινώνεται µαζί µε την άσκηση  Σε περίπτωση που µια άσκηση παραδοθεί µε καθυστέρηση θα  υπάρχει µείωση βαθµού - 10% για κάθε µέρα  - 4 -

5  Σε περίπτωση που εντοπιστεί αντιγραφή, ο βαθµός στο µάθηµα θα µηδενιστεί για όλους όσους εµπλέκονται στην αντιγραφή  Αν ο κώδικας µιας άσκησης δεν κάνει compile η άσκηση αυτή θα µηδενίζεται  Η υλοποίηση κάθε άσκησης θα πρέπει να χρησιµοποιεί τα βασικά εργαλεία που θα παρουσιάζονται στο αντίστοιχο φροντιστήριο  - 5 -

6  Ο κώδικας πρέπει να έχει επαρκή σχόλια  Στρατηγικά σχόλια – επεξήγηση σε υψηλό επίπεδο στην αρχή κάθε function ◦ Λάθος παράδειγμα σχόλιου:  i=i+1  //Η μεταβλητή i αυξάνεται κατά 1 ◦ Σωστό σχόλιο  i=i+1  // Ο αριθμός των διεργασιών που κάνουν αυξάνεται για να.  - 6 -

7  Τακτικά σχόλια – επεξήγηση του πηγαίου κώδικα  Επαρκή σχόλια = 60% των συνολικών γραµµών είναι σχόλια (∼ 1-2 γραµµές σχόλια για κάθε 1 γραµµή πηγαίου κώδικα)  Μερικά σχόλια = < 60 % των συνολικών γραµµών – -1 βαθµός  Καθόλου σχόλια – -2 βαθµοί  ∆οµή πηγαίου κώδικα ◦ Σωστή χρήση tabs-spaces ◦ Μη οµοιόµορφη / καθόλου – -1 βαθµός ◦ Σωστή δοµή σε συναρτήσεις / υπο-αρχεία  - 7 -

8  Με την χρήση εικονικών μηχανών  Κατέβασμα του virtualbox ◦ https://www.virtualbox.org/wiki/Downloads https://www.virtualbox.org/wiki/Downloads  Κατέβασμα έτοιμου στημένου συστήματος linux ◦ Ubuntu image από εδώ: ◦ http://sourceforge.net/projects/virtualboximage/fil es/Ubuntu%20Linux/12.04/ubuntu_12.04-x86.7z http://sourceforge.net/projects/virtualboximage/fil es/Ubuntu%20Linux/12.04/ubuntu_12.04-x86.7z ◦ Username: ubuntu password: reverse  Μεταφορά αρχείων από/προς την εικονική μηχανή  - 8 -

9  Απαραίτητο εργαλείο για: ◦ Δημιουργία εκτελέσιμων αρχείων από τον πηγαίο κώδικα  Χρήσιμο για: ◦ Περιήγηση στους φακέλους ◦ Συγγραφή πηγαίου κώδικα  Στο ubuntu βρίσκεται στο Applications- >Accessories->Terminal  Βασικά πλήκτρα: ◦ «κάτω βελάκι», «πάνω βελάκι», «μια φορά πάτημα tab», «δύο γρήγορες φορές πάτημα tab»  - 9 -

10  cd ◦ cd.. (ανέβα ένα επίπεδο πάνω) ◦ cd ~ (πήγαινέ με στο home dir μου) ◦ pwd (που βρίσκομαι)  ls  mkdir, rmdir, mv, rm, cp  man ◦ Οδηγίες για τα πάντα… ◦ Πχ man read, man write, man open  - 10 -

11  Μπορείτε να χρησιμοποιήσετε GUI ◦ Text editor ◦ Applications->Accessories->Text Editor  Μπορείτε να γράφετε σε vi μέσω terminal  Και στις δυο περιπτώσεις, σημαντικό είναι το syntax highlighting ◦ Κάνει τον κώδικα πιο ευανάγνωστο  - 11 -

12  1. Compile (Μεταγλώττιση):  file1.c =>file1.o  2. Link:  file1.o + file2.o => exec  - 12 -

13  Το χρησιμοποιούμε για να παράγουμε τα εκτελέσιμα αρχεία από τον πηγαίο κώδικα  Βασική εντολή (compile και link): ◦ gcc -Wall helloworld.c -o helloworld ◦ Σημαίνει: «κάνε compile και link το helloworld.c και φτιάξε το εκτελέσιμο helloworld» ◦ Για να «τρέξω» το helloworld γράφω: ◦./helloworld ◦ (μαζί με το./ )  - 13 - #include<stdio.h> int main(int argc, char **argv) { printf("Hello World\n"); printf("Hello World\n"); return 0; return 0;} helloworld.c

14  Το χρησιμοποιούμε για να παράγουμε τα εκτελέσιμα αρχεία από τον πηγαίο κώδικα  Βασική εντολή (πρώτα compile και μετά link)  gcc -Wall -c helloworld.c  gcc helloworld.o -o helloworld  Το τρέχω πάλι με: ./helloworld  - 14 - #include<stdio.h> int main(int argc, char **argv) { printf("Hello World\n"); printf("Hello World\n"); return 0; return 0;} helloworld.c

15  - 15 - #include #include void hello(const char *name) { printf("Hello %s!\n", name); } hello.c void hello(const char *); int main(int argc, char **argv) {hello("World"); return 0; } main.c terminal $ gcc -Wall -c main.c $ gcc -Wall -c hello.c $ gcc main.o hello.o -o hello $./hello Hello World!

16  Διεπαφή προς άλλα κομμάτια κώδικα (API)  Περιέχουν πρότυπα και δηλώσεις ◦ Συναρτήσεις ◦ Καθολικές (global) μεταβλητές .h αρχεία  preprocessor: #include "header.h"  - 16 -

17  - 17 - void hello(const char *); hello.h #include #include void hello(const char *name) { printf("Hello %s!\n", name); } hello.c #include "hello.h" int main(int argc, char **argv) {hello("World"); return 0; } main.c

18  int main(int argc, char **argv) ◦ argc: Αριθμός ορισμάτων προγράμματος ◦ argv: Πίνακας με τα ορίσματα ◦ argv[0]: Το όνομα του προγράμματος  Παράδειγμα: αρχείο args.c  - 18 - #include #include int main(int argc, char **argv) { int i; for (i=0; i<argc; i++) printf("%d %s\n", i, argv[i]); return 0; } $./args arg1 arg2 0./args 1 arg1 2 arg2 args.c terminal


Κατέβασμα ppt "ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google