ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

Σχετικά έγγραφα
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Εικονική Μνήμη (Virtual Μemory)

Εισαγωγή στην Πληροφορική

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγή στην Πληροφορική

Λιβανός Γιώργος Εξάμηνο 2017Β

Περιγραφή και Έλεγχος ιεργασιών

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Αρχιτεκτονική Υπολογιστών

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

Εισαγωγικά & Βασικές Έννοιες

Λειτουργικά Συστήματα (ΗΥ321)

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

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

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

Αρχιτεκτονική υπολογιστών

Εικονική Μνήμη (Virtual Μemory)

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Αρχιτεκτονική υπολογιστών

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΛΟΓΙΣΜΙΚΟ (software)

Αρχιτεκτονική Υπολογιστών

ΗΜΥ 313: Τεχνολογία Λειτουργικών Συστηµάτων

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

Επιτεύγµατα των Λ.Σ.

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Οργάνωση Υπολογιστών (IΙI)

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Εισαγωγή στα Λειτουργικά

Ε-85: Ειδικά Θέµατα Λογισµικού

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Εξαιρέσεις και Διακοπές (Exceptions and Interrupts)

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Παράλληλη Επεξεργασία

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

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

Μετάφραση ενός Προγράμματος Εξαιρέσεις

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Οργάνωση Υπολογιστών (Ι)

Αρχιτεκτονική Υπολογιστών

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Μικροαρχιτεκτονική του LC3

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

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

Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης.

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

Λειτουργικά Συστήματα (ΗΥ321)

Τι είναι το Cloud; Είναι κάτι διαφορετικό ανάλογα ποιος το βλέπει. Administrator Technical Salesman MarkeHng Boss User

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Κεφάλαιο 4: Λογισμικό Συστήματος

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Αρχιτεκτονική Υπολογιστών

Information Technology for Business

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

ΕΙΣΑΓΩΓΗ ΣΥΣΤΑΤΙΚΑ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Λειτουργικά Συστήματα (ΗΥ321)

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

ΔΟΜΗ ΤΟΥ Η/Υ (PC compatibles) RAM CPU PCI Bridge

PCI Bridges P2P Bridge RAM CPU PCI Bridge PCI2ISA Bridge

Δομή της CPU Register file IP CPU TLB Level-1 cache RAM SP MMU PS ALU Address bus Data bus

Ιδεατή μνήμη (Virtual memory) 0xC6470BC3 Register file IP CPU TLB Level-1 cache RAM SP MMU PS ALU JMP 0x3A750C87

Stack frames i: $ret: $factorial: 1 n: 1 i: $ret: $factorial: 2 n: 2 i: $ret: $factorial: 6 n: 3 factorial(1) factorial(2) factorial(3) int factorial(int n) { int i; if(n < 2) return 1; else { i = factorial(n-1); return n*i; } } int i struct ctx $ret int $factorial int n

Kernel mode Ο επεξεργαστής βρίσκεται σε μια από τις δύο καταστάσεις: Kernel mode: Όλες οι εντολές γλώσσας μηχανής είναι νόμιμες. Μόνο ο πυρήνας του ΛΣ πρέπει να εκτελείται σε αυτή την κατάσταση. User mode: Κάποιες (οι προνομιούχες-privileged) εντολές μηχανής δεν είναι νόμιμες. Τυχόν απόπειρα εκτέλεσης δημιουργεί κατάσταση σφάλματος (θα αναλυθεί αργότερα). Η κατάσταση αποθηκεύεται σε ένα bit του PSW register. Ο κώδικας των διεργασιών θα πρέπει να εκτελείται μόνο σε User mode, ποτέ σε Kernel mode (λόγοι ασφαλείας).

Σύγχρονες και ασύγχρονες λειτουργίες Σύγχρονη λειτουργία (synchronous operation): Αυτός που την ενεργοποιεί, την περιμένει να τελειώσει Πχ. ανάγνωση μιας θέσης μνήμης RAM από τη CPU Ασύγχρονη λειτουργία (asynchronous operation): Αυτός που την ενεργοποιεί συνεχίζει χωρίς να την περιμένει να τελειώσει Πχ. ανάγνωση μιας σελίδας από το σκληρό δίσκο Πώς γίνεται αντιληπτή η ολοκλήρωση μιας ασύγχρονης λειτουργίας? CPU RAM PCI Bridge

Polling and Interrupts Polling: το ΛΣ ελέγχει περιοδικά για να δει αν έχει ολοκληρωθεί κάποια λειτουργία. Interrupts: όταν ολοκληρωθεί η λειτουργία, η CPU δέχεται ένα σήμα διακοπής (interrupt signal). Παραδείγματα: Διάβασμα μιας σελίδας από το σκληρό δίσκο. Ανάγνωση από το πληκτρολόγιο.

Interrupt handling (χειρισμός διακοπής) Κάθε διακοπή χαρακτηρίζεται από έναν αριθμό. Interrupt vector: ένα array που σε κάθε διακοπή αντιστοιχεί μια διεύθυνση μνήμης, στην οποία βρίσκεται η ρουτίνα χειρισμού διακοπής (interrupt handler). Εκτελούνται τα εξής βήματα: 1. Σώζονται στο σωρό οι καταχωρητές IP και PS. 2. Η CPU μπαίνει σε kernel mode. 3. Η εκτέλεση πηδά στον αντίστοιχο interrupt handler. Μάσκα διακοπών (interrupt mask): ένα bit vector που δηλώνει για κάθε διακοπή αν αυτή είναι ενεργή (enabled), ή απενεργοποιημένη (disabled).

Trapping Για να μπει η εκτέλεση στον πυρήνα, θα πρέπει Να συμβεί κάποιο interrupt, ή Κάποια διεργασία να καλέσει ένα system call (κλήση συστήματος). Να συμβεί κάποιο σφάλμα Ενιαίος μηχανισμός: κλήση συστήματος = (software) interrupt Ονομάζεται trapping.

Trapping (συνέχεια) Χειρισμός εσφαλμένων καταστάσεων Παραδείγματα Απόπειρα εκτέλεσης privileged εντολής σε user mode Απόπειρα πρόσβασης σε απαγορευμένη θέση μνήμης Floating-point error (πχ. division-by-zero, log(0)...) Εκτέλεση εντολής HALT... κ.α.

Context switching Context: η πληροφορία που χρειάζεται να σωθεί ώστε να συνεχιστεί αργότερα μια διακοπείσα διεργασία. Καταχωρητές Περιλαμβάνονται: IP, SP, Απεικόνιση ιδεατής μνήμης Πώς γίνεται Multitasking: Preemptive (με interrupts) Non-preemptive (κλήση yield)

Pre-emptive multitasking Interrupt-driven. Η κάθε διεργασία δρομολογείται για ένα μέγιστο χρόνο, που λέγεται quantum (ή timeslice). Λειτουργία του scheduler: Έστω ότι εκτελείται η διεργασία Α. Έρχεται interrupt από το χρονόμετρο, που ενεργοποιεί τον scheduler. Επιλέγεται η επόμενη διεργασία που θα εκτελεστεί (πώς?), έστω Β. Αρχικοποιείται πάλι το χρονόμετρο για να μετρήσει διάρκεια 1 quantum. Context_switch(A,B)

Preemptive multitasking Η εκτέλεση μίας διεργασίας που μόλις δρομολογήθηκε κρατάει το πολύ 1 quantum. Λόγοι που μπορεί να κρατήσει λιγότερο: Η διεργασία ζήτησε την εκτέλεση I/O. Η διεργασία ζήτησε απευθείας (με system call) να σταματήσει η δρομολόγησή της. Διάρκεια 1 quantum: Linux: 1 msec 10 msec Windows NT: 20-120 msec Μικρότερο quantum: καλύτερο interactiveness Μεγαλύτερο quantum: καλύτερο locality

Non-preemptive multitasking. Χρησιμοποιήθηκε ευρέως στο παρελθόν, σήμερα μόνο σε ειδικές περιπτώσεις (embedded systems). Μια διεργασία που εκτελείται δεν διακόπτεται, παρά μόνον αν: Η διεργασία ζητήσει την εκτέλεση I/O. Η διεργασία ζητήσει απευθείας (με system call) να σταματήσει η δρομολόγησή της. Δηλ. μπορούμε να θεωρήσουμε ότι quantum =

APICs Advanced Programmable Interrupt Controllers Χρησιμοποιούνται για: Προχωρημένο έλεγχο Ι/Ο και *κυρίως* Υπολογιστές με πολλαπλά CPU (SMP = Symmetric Multiprocessors) Εντολές:... Προτεραιότητες: ευέλικτες πολιτικές. Κατεύθυνση του κάθε interrupt σε συγκεκριμένο CPU. Εσωτερικά ρολόγια (timers).

Δομή του πυρήνα 1. Μονολιθική (monolithic): Linux 2. Μικροπυρήνας (microkernel): Windows NT, Solaris 3. Ιδεατές μηχανές (Virtual machines): IBM VM/390 Υπό έρευνα σήμερα: Exokernels

Μονολιθική Aka. The big mess Ο κώδικας του πυρήνα χωρίζεται σε: Process Scheduler Process Memory management Resource managers (filesystem, network protocols) Device drivers Process system calls interrupts Είσοδος στον πυρήνα με: Interrupts System calls Scheduler Drivers Kernel MM ResMgrs

Microkernel Ο πυρήνας χωρίζεται σε Μικροπυρήνα Διεργασίες συστήματος (system processes) Οι διεργασίες χρήστη ζητούν υπηρεσίες Ι/Ο (δίσκου, δικτύου κλπ) από τις διεργασίες συστήματος μέσω μηχανισμών επικοινωνίας διεργασιών. Process Process Process system calls interrupts ResMgrs Drivers System Processes system calls MM Microkernel Scheduler

Virtual Machines (VMs) Κάθε VM ομοιάζει με έναν πλήρη Η/Υ. Δε χρησιμοποιείται σήμερα ως το κυρίως Λ.Σ. Process Process Υλοποιείται συχνά σε embedded περιβάλλοντα Process Java VM VMware system calls interrupts VM VM VM VM ResMgrs MM Kernel Drivers Scheduler

Virtualization Σήμερα, έχουμε ένα νέο μοντέλο οργάνωσης: Cluster: συλλογή από (συνήθως όμοιους) υπολογιστέςservers, συνήθως σε κάποιο data cetner Σε κάθε υπολογιστή, ένας αριθμός από VMs. cluster data center computer

Virtualization techniques Full: πλήρης προσομοίωση του hardware Εκτελεί guest OS χωρίς αλλαγές Partial: μερική προσομοίωση του hardware Εκτελεί guest OS με ειδικούς drivers Paravirtualization: κοινό hardware Guest kernel με αλλαγές, για συνεργασία

Hypervisors (ή VM Monitors) Type1 (bare metal) Type2 (hosted) Container

Cloud computing IaaS: Infrastructure as a Service Ενοικίαση VMs PaaS: Platform as a Service Περιβάλλον εκτέλεσης εφαρμογών (web server, database, κλπ) Ενοικίαση app hosting SaaS: Software as a Service Applications με συνδρομή