Λειτουργικά Συστήματα

Slides:



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

Τεχνολογίες Web Απαραίτητες γνώσεις για την υλοποίηση της άσκησης.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το λογισμικό του υπολογιστή
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Λειτουργικό Σύστημα ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ENOTHTA B.1.3 (1)
ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Εισαγωγικό Φροντιστήριο.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
Λειτουργικά συστήματα
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
Προγραμματισμός Η/Υ Πανεπιστήμιο Αιγαίου
Κεφάλαιο 1ο Εισαγωγή σε Λειτουργικά Συστήματα Ορισμός ΛΣ
Λειτουργικό Σύστημα 2ο μέρος.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
ΜΑΘ-3122/106 Προγραμματισμός
Μια παρουσίαση από τον Άνθη Ιωάννη
Λειτουργικά Συστήματα
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
File Management και I/O στο UNIX
Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ
Σελίδα 1 ΕΚΠΑ. «Διαμόρφωση υπηρεσίας καταλόγου Active Directory σε Windows 2003» Τηλέμαχος Ράπτης Εθνικό και Καποδιστριακό.
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
Εισαγωγή στο UNIX και άλλα εργαλεία Pedro Trancoso Γιαννάκης Σαζεϊδης.
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Λειτουργικά Συστήματα Ι « Παραδοσιακά Λειτουργικά Συστήματα »
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 11 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Λειτουργικά Συστήματα Ι
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 1 ο – Εισαγωγή στο MINIX 3 Ντίρλης Νικόλαος.
Ολυμπιάδα Πληροφορικής
Ολυμπιάδα Πληροφορικής
ΕΛΕΥΘΕΡΟ ΛΟΓΙΣΜΙΚΟ GNU FSF GNU/Linux Knoppel
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Σχολικό Έτος ο ΕΚ Καρδίτσας Πρόγραμμα Ενδοσχολικής Επιμόρφωσης “H ενδοσχολική επιμόρφωση της καρδιάς μας. Ο ένας για τον άλλο” Η χρήση του.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Εαρινό Εξάμηνο
Εγκατάσταση του joomla σε τοπικό υπολογιστή Νταλούκας Βασίλης Υπεύθυνος ΚΕ.ΠΛΗ.ΝΕ.Τ. 1 ου Γραφείου Δ.Ε. Ν.Ηλείας.
Εισαγωγή στην Πληροφορική και στην διαχείριση μεγάλου όγκου δεδομένων Γρηγόριος Αμούτζιας Επικ. Καθηγητής Βιοπληροφορικής στη Γενωμική Τμήμα Βιοχημείας.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Τεχνολογία και Προγραμματισμός Υπολογιστών
Εισαγωγή στα Λειτουργικά Συστήματα (ΛΣ) Operating Systems (OS)
ΕΛΕΥΘΕΡΟ ΛΟΓΙΣΜΙΚΟ GNU FSF GNU/Linux Knoppel
Λειτουργικά Συστήματα
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
H/Y Υλικό Λογισμικό Συστήματος Εφαρμογών. H/Y Υλικό Λογισμικό Συστήματος Εφαρμογών.
Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ
Μεταγράφημα παρουσίασης:

Λειτουργικά Συστήματα Ντίρλης Νικόλαος- ΕΤΥ 1ο Φροντιστήριο Παρασκευή, 11/10/2013 Β4 Λειτουργικά Συστήματα- Φροντιστήριο

Φροντιστήριο Κάθε Παρασκευή 13:00- 15:00 Παραδόσεις: Δευτέρα 13:00- 16:00 Κύριος στόχος του Φροντιστηρίου είναι η βοήθεια σε πρακτικά θέματα που αφορούν (κυρίως!) τις ασκήσεις του μαθήματος. Λειτουργικά Συστήματα- Φροντιστήριο

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

Θεωρία στα… γρήγορα (1/3) Λειτουργικό Σύστημα: 1) Διαχείριση Πόρων 2) Μηχανή Αφαίρεσης: α) Διεργασίες β) Αρχεία Πυρήνας (Kernel) Λ.Σ: 1) Kύριο τμήμα του Λ.Σ 2) Yλοποιεί τις δύο βασικές οντότητες (processes και files) του Λ.Σ. Τρόποι Λειτουργίας: 1) User Mode 2) Kernel Mode (ο χρήστης δεν μπορεί να επέμβει) Λειτουργικά Συστήματα- Φροντιστήριο

Θεωρία στα… γρήγορα (2/3) Διεργασίες: Για να μπορέσει μια διεργασία χρήστη (user process) να χρησιμοποιήσει τους πόρους πρέπει να καλέσει τις κατάλληλες ρουτίνες του kernel. Αυτό επιτυγχάνεται μέσω system calls Το κάθε system call υλοποιείται μέσω μίας ρουτίνας η οποία βρίσκεται σε μία βιβλιοθήκη που συνδέεται (linked) με τον κώδικα της user process. Όλες οι ρουτίνες αυτής της βιβλιοθήκης εκτελούν μία ειδική εντολή, που ονομάζεται TRAP. Η εντολή TRAP είναι αυτή η οποία αλλάζει το σύστημα από user mode σε kernel mode H κάθε διεργασία αντιπροσωπεύει ένα εκτελούμενο πρόγραμμα. Οι διεργασίες μπορούν να έχουν και μία ιεραρχική σχέση. Συχνά χρειάζεται να κοινοποιήσει ο kernel σε ένα process πληροφορία. Αυτό επιτυγχάνεται με την χρήση των signals Λειτουργικά Συστήματα- Φροντιστήριο

Θεωρία στα…γρήγορα (3/3) Αρχεία: Τα αρχεία είναι οργανωμένα σε ομάδες που ονομάζονται κατάλογοι (directories). Ένας κατάλογος μπορεί να περιέχει έναν άλλο κατάλογο, και έτσι δημιουργείται ένα ιεραρχικό σύστημα διαχείρισης αρχείων (file system). Πέρα από την χρησιμοποίηση των αρχείων από τους χρήστες για μη-προσωρινά δεδομένα, τα αρχεία προσφέρουν και ένα τρόπο υψηλού-επιπέδου πρόσβασης σε περιφερειακές συσκευές Pipes: Χρησιμοποιείται ώστε δύο διεργασίες να ανταλλάξουν πληροφορίες Το «file» αποτελεί μια αφαίρεση (abstraction) για πολλά είδη I/O: με περιφερειακές συσκευές (π.χ., δίσκους, τερματικά) και με δια- διεργαστική επικοινωνία (interprocess communication). Λειτουργικά Συστήματα- Φροντιστήριο

Μονολιθικά ή Micro-kernels; (1/2) Μονολιθικά: Σε αυτά τα συστήματα δεν υπάρχει καμία δομή όσον αφορά την οργάνωση των ρουτινών του Λ.Σ Μικρο-πυρήνες: Αυτή η προσέγγιση βασίζεται στη φιλοσοφία ο πυρήνας του Λ.Σ. να είναι όσο τον δυνατόν μικρότερος. Ρουτίνες οι οποίες παραδοσιακά βρίσκονταν στον πυρήνα (kernel) τώρα βρίσκονται έξω απ’ αυτόν Λειτουργικά Συστήματα- Φροντιστήριο

Μονολιθικά ή Micro-kernels; (2/2) «The Tanenbaum-Torvalds debate was a debate between Andrew S. Tanenbaum and Linus Torvalds, regarding Linux and kernel architecture in general. Tanenbaum began the debate in 1992 on the Usenet discussion group comp.os.minix, arguing that microkernels are superior to monolithic kernels and therefore Linux was, even in 1992, obsolete.» Λειτουργικά Συστήματα- Φροντιστήριο

Τα Λειτουργικά Συστήματα σήμερα Android, BSD, iOS, Linux, OS X, QNX, Microsoft Windows,Windows Phone, IBM z/OS… Τα περισσότερα από τα παραπάνω (εκτός από τα Windows) έχουν τις ρίζες τους στο Unix Λειτουργικά Συστήματα- Φροντιστήριο

Από το Unix στο Linux (1/2) Δεκαετία του 60’: Το UNIX είναι Λ.Σ που αναπτύχθηκε κατά τις δεκαετίες του 1960 και του 1970 από ομάδα εργαζομένων των εργαστηρίων Bell Labs) της εταιρείας AT&T (την ίδια εταιρεία που ανέπτυξε τη γλώσσα προγραμματισμού C). Δεκαετία του 80’: Το MINIX είναι ένα Unix-like Λ.Σ. βασιζόμενο στη σχεδιαστική τεχνική των μικρο-πυρήνων που δημιουργήθηκε από τον Andrew S. Tanenbaum στο Vrije Universiteit του Amsterdam για εκπαιδευτικούς σκοπούς. Το 1987 μπορούσε κάποιος να χρησιμοποιήσει το MINIX αν είχε μια κόπια των 12,000 γραμμών κώδικα σε C (kernel, memory manager και file system του MINIX 1.0) σε ένα floppy disk της εποχής. Την ίδια δεκαετία αναπτύχθηκε και το GNU project από τον Richard Stallman. Λειτουργικά Συστήματα- Φροντιστήριο

Από το Unix στο Linux (2/2) Δεκαετία του 90’: Το 1991, ο Linus Torvalds φοιτητής στο University of Helsinki in Finland ξεκίνησε να πειραματίζεται σε ένα Unix-like Λ.Σ. Μετά από 6 μήνες δουλειάς αποφάσισε ότι η λειτουργικότητα του project του δεν ήταν η επιθυμητή και έτσι αποφάσισε να ανεβάσει τον κώδικά του στο διαδίκτυο. Σχετικά σύντομα αναπτύχθηκε μια κοινότητα 40.000 χρηστών και προγραμματιστών που δούλεψαν πάνω στο Linux κάτω από την GNU άδεια. Λειτουργικά Συστήματα- Φροντιστήριο

Εγκατάσταση Linux (1/2) Η πιο «trendy» λύση είναι το Virtualbox! Δίνει τη δυνατότητα να έχουμε στο ίδιο μηχάνημα πολλά λειτουργικά συστήματα ταυτόχρονα (το καθένα τρέχει στο δικό του sandbox). Για παράδειγμα πολλές διανομές του Linux ή ακόμα και να μπορούμε να «παίζουμε» από τα Windows μας με Mac OS! Μοναδικό μειονέκτημα: Απόδοση Υπάρχουν «άπειρα» χρηστικά tutorials στο διαδίκτυο. Ένας οδηγός για αυτούς που «βαριούνται» το διάβασμα: http://www.youtube.com/watch?v=VX5MhjT3qgY Μπορείτε να κατεβάσετε το Virtualbox από εδώ: https://www.virtualbox.org/wiki/Downloads Λειτουργικά Συστήματα- Φροντιστήριο

Εγκατάσταση Linux (2/2) Κατεβάστε την καινούργια έκδοση από εδώ: http://ubuntu-gr.org/ (επισκεφτείτε οπωσδήποτε και το εξαιρετικό Forum με πολλά tutorials ακόμα και με θέματα που δεν έχουν να κάνουν αναγκαστικά με Linux) Υπάρχει η δυνατότητα να κατεβάσετε έτοιμο στημένο σύστημα πχ από εδώ: http://virtualboxes.org/images/ubuntu/ αν και είναι σαφώς πιο «ψαγμένο» να ρυθμίσετε εσείς τις παραμέτρους της εικονικής μηχανής σας (υπάρχουν άπειρα online tutorials) Λειτουργικά Συστήματα- Φροντιστήριο

Στα Windows; Με τη βοήθεια της εφαρμογής DEV++ από την ιστοσελίδα της bloodshed: http://www.bloodshed.net/ Δεν το συνιστούμε όμως! Λειτουργικά Συστήματα- Φροντιστήριο

Το Τερματικό στο Ubuntu Αυτά που χρειάζεστε είναι ένα τερματικό και ένα editor της επιλογής σας. Τερματικό: Applications/Accessories/Terminal Εditor: gedit Applications/Accessories/text editor Λειτουργικά Συστήματα- Φροντιστήριο

Βασικές Εντολές Τερματικού cd : ◦cd .. (ανέβα ένα επίπεδο πάνω) ◦cd ~ (πήγαινέ με στο home dir μου) ◦pwd (που βρίσκομαι) ls ,mkdir, rmdir, mv, rm, cp …και φυσικά: man <όνομα> για να μάθουμε τι κάνουν όλα τα παραπάνω! Λειτουργικά Συστήματα- Φροντιστήριο

Compile & Run! (1/4) Πριν από οτιδήποτε άλλο μια συμβουλή: Φτιάξτε ευανάγνωστους κώδικες! Σωστή δομή, επαρκή σχόλια Επαρκή σχόλια = 60% των συνολικών γραμμών είναι σχόλια (∼ 1-2 γραμμές σχόλια για κάθε 1 γραμμή πηγαίου κώδικα) Σωστή χρήση tabs-spaces Σωστή δομή σε συναρτήσεις / υπο-αρχεία Λειτουργικά Συστήματα- Φροντιστήριο

Compile & Run! (2/4) Στην πραγματικότητα θα δείξουμε πως κάνουμε compile + link + run. Δημιουργία αρχείου helloworld.c στο getit gcc helloworld.c Δημιουργία αρχείου a.out στον ίδιο φάκελο (ελέγξτε με ls) ./a.out Λειτουργικά Συστήματα- Φροντιστήριο

Compile & Run! (3/4) gcc -Wall helloworld.c -o helloworld Σημαίνει: «κάνε compile και link το helloworld.c και φτιάξε το εκτελέσιμο helloworld» Για να «τρέξω» το helloworld γράφω: ./helloworld Λειτουργικά Συστήματα- Φροντιστήριο

Compile & Run! (4/4) gcc -Wall -c helloworld.c gcc helloworld.o -o helloworld Το τρέχω πάλι με: ./helloworld Σε κάθε βήμα κάνω ls για να δω τα αρχεία που δημιουργούνται. Λειτουργικά Συστήματα- Φροντιστήριο

Πολλά Αρχεία (1/2) main.c #include <stdio.h> 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; Λειτουργικά Συστήματα- Φροντιστήριο

Πολλά Αρχεία (2/2) terminal $ gcc -Wall -c main.c $ gcc -Wall -c hello.c $ gcc main.o hello.o -o hello $ ./hello Hello World! Λειτουργικά Συστήματα- Φροντιστήριο

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

Παράδειγμα hello.h void hello(const char *); hello.c #include <stdio.h> void hello(const char *name) { printf("Hello %s!\n", name); } main.c #include "hello.h" int main(int argc, char **argv) hello("World"); return 0; Λειτουργικά Συστήματα- Φροντιστήριο

Ορίσματα (1/2) int main(int argc, char **argv) Παράδειγμα: αρχείο args.c #include <stdio.h> { int i; for (i=0; i<argc; i++) printf("%d %s\n", i, argv[i]); return 0; } Λειτουργικά Συστήματα- Φροντιστήριο

Ορίσματα (2/2) Στο Τερματικό: ./args arg1 arg2 0 ./args 1 arg1 2 arg2 Εναλλακτικά: gcc args.c ./a.out arg1 arg2 Λειτουργικά Συστήματα- Φροντιστήριο