You are on page 1of 36

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

Γλώσσες Προγραμματισμού

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


Συστήματα (Λ/Σ)
Το UNIX και οι εντολές του

Παρουσίαση 4

1
Λειτουργικά Συστήματα &
Γλώσσες Προγραμματισμού

Διαφάνειες σύμφωνα με τις


Πανεπιστημιακές Σημειώσεις
του Καθηγητή Κ. Γιαννάκογλου

Επιμέλεια: Επικ. Καθηγητής Ν. Πετρόπουλος


Παρουσίαση 4
2
Περιεχόμενα Παρουσίασης 4
"Λ/Σ UNIX & Λ/Σ LINUX"

1. Ιστορικά Στοιχεία UNIX


2. Ιστορικά Στοιχεία LINUX
3. Πρόγραμμα "Φλοιός"
4. Διεργασίες

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 3


Ιστορικά Στοιχεία UNIX – (1)
Το Λ/Σ UNIX (και ο κλώνος του LINUX)
χρησιμοποιούνται σήμερα στη μεγαλύτερη ποικιλία
Η/Υ .
Όλα ξεκίνησαν από μια προσπάθεια, γύρω στο 1960,
να αντικατασταθεί η αποκλειστική χρήση του Η/Υ
από ένα και μόνο χρήστη τη φορά, με το σύστημα
καταμερισμού χρόνου (time-sharing). Οι πρώτες
ενέργειες, με μικρή και προσωρινή επιτυχία, έγιναν
από το ΜIT, με το οποίο αργότερα συνεργάστηκαν τα
AT&T Bell Laboratories και η General Electric.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 4
Ιστορικά Στοιχεία UNIX – (2)
Η τριμερής αυτή συνεργασία έδωσε ένα πρόγονο του
σημερινού UNIX, το MULTICS (MULTI plexed
Information and Computing Service). Το MULTICS,
γενικά, μπορεί να θεωρηθεί ότι δεν εκπλήρωσε τους
στόχους του αφού στηρίχθηκε σε προβληματική
Γλώσσα Προγραμματισμού και δεν είχε την
υποστήριξη ικανού Υλικού.

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 5


Ιστορικά Στοιχεία UNIX – (3)
Στη συνέχεια ο Ken Thompson (μέλος της
προηγούμενης ερευνητικής ομάδας), δημιούργησε μια
παραλλαγή του MULTICS, το σύστημα UNICS
(UΝiplexed Information and Computing Service)
δουλεύοντας σε Η/Υ της σειράς PDP-7. Η ονομασία
UNICS αργότερα άλλαξε σε UNIX. Χαρακτηριστικό
της επιτυχίας της δουλειάς του Thomson είναι η
μεταφορά, σε συνεργασία με τον Dennis Ritchie, του
συστήματος σε Η/Υ της σειράς PDP-11 που
μπορούσαν να υποστηρίζουν πολλούς χρήστες.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 6
Ιστορικά Στοιχεία UNIX – (4)
Η ομάδα των Thomson και Ritchie συνέχισε τις
προσπάθειες αλλάζοντας Γλώσσες για τη γραφή του
UNIX και έδωσαν μια "τελική" μορφή σε Γλώσσα
"C", στην αρχή της δεκαετίας του 1970. Το γεγονός
ότι οι σημαντικότερες φάσεις της εξέλιξης αυτής
έλαβαν χώρα σε Η/Υ PDP-11 βοήθησε σημαντικά
στην καθιέρωση του UNIX. Ο λόγος είναι ότι, την
εποχή εκείνη, τα πανεπιστήμια διέθεταν κυρίως
συστήματα PDP-11 και το σύστημα UNIX έγινε
αποδεκτό αφού έλυνε αρκετά προβλήματα άλλων Λ/Σ.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 7
Ιστορικά Στοιχεία UNIX – (5)
Ακολούθησε η προσπάθεια το UNIX να ξεπεράσει την
αποκλειστική χρήση στον PDP-11 και να τρέχει και σε
άλλους Η/Υ. Το ότι ήταν γραμμένο σε C έλυνε αρκετά
προβλήματα γιατί η C ήταν μια επιτυχημένη Γλώσσα.
Έτσι, θεωρητικά, αρκούσε να γραφτεί ένας
Μεταγλωττιστής C (C compiler) και Λογισμικό
Οδήγησης Συσκευών (device drivers) για τις
συσκευές I/Ο για κάθε άλλο Η/Υ μαζί με ένα μικρό
τμήμα του Λ/Σ σε Γλώσσα Μηχανής (assembly
language) κυρίως για τη διαχείριση μνήμης.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 8
Ιστορικά Στοιχεία UNIX – (6)
Πρακτικά όμως υπήρχαν πάντοτε κρίσιμες
λεπτομέρειες που έπρεπε να επιλυθούν κάθε φορά που
το UNIX μεταφερόταν σε άλλο τύπο Η/Υ. Η
κατάσταση βελτιώθηκε σημαντικά όταν η ομάδα του
Steve Johnson των Bell Laboratories δημιούργησε τον
"φορητό" Μεταγλωττιστή C (portable C compiler),
δηλαδή έναν Μεταγλωττιστή κατάλληλο για
διαφορετικές αρχιτεκτονικές της CPU. Αυτό συνέβαλε
στην εξάπλωση του UNIX σε πολλούς νέους Η/Υ
διαφορετικών αρχιτεκτονικών CPU.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 9
Ιστορικά Στοιχεία UNIX – (7)
Στη συνέχεια η AT&T διέθεσε, γύρω στο 1984, τις
πρώτες εμπορικές εκδόσεις UNIX, με πιο γνωστή και
επιτυχημένη την UNIX System V. Συγχρόνως, το
πανεπιστήμιο Berkeley, άρχισε να εργάζεται
ερευνητικά σε μια έκδοση του UNIX, να την
βελτιώνει και να την εξελίσσει, και κυκλοφόρησε τις
δικές του εκδόσεις UNIX, αρχικά για τον Η/Υ PDP-
11. Αυτές ονομάσθηκαν εκδόσεις UNIX ΒSD (BSD=
Berkeley Software Distribution).

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 10


Ιστορικά Στοιχεία UNIX – (8)
Ανάμεσα στις βελτιώσεις των εκδόσεων BSD ήταν η
χρήση εικονικής μνήμης (virtual memory) και
σελιδοποίησης (paging) που επέτρεπε
να τρέχουν προγράμματα μεγαλύτερα από τη φυσική
μνήμη του H/Y, φορτώνοντας και ξεφορτώνοντας
σελίδες από και προς τη μνήμη του από το σκληρό
δίσκο. Το Berkeley προσέθεσε σημαντικό αριθμό νέων
βοηθητικών Προγραμμάτων Συστήματος και
Εφαρμογών στο UNIX, με πιο γνωστά από αυτά, τον
κειμενογράφο vi και τον φλοιό c (c shell ή csh).
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 11
Ιστορικά Στοιχεία UNIX – (9)
Στο τέλος του '80 υπήρχαν σε χρήση δύο διαφορετικές
μορφές UNIX: η BSD4.3 του Berkeley και η 3η
έκδοση του System V της AΤ&T. Η διπλή εμφάνιση
του UNIX προκαλούσε προβλήματα κυρίως στις
εταιρίες που ανέπτυσσαν λογισμικό για Η/Υ με UNIX
αφού αυτό έπρεπε να μπορεί να συνεργάζεται με δύο
ασύμβατες εκδόσεις UNIX. Την προσπάθεια
συμβιβασμού των δύο UNIX και τη δημιουργία
προτύπου ανέλαβε η Επιτροπή Προτύπων της ΙΕΕΕ,
γνωστή ως POSIX (POS= Portable Operating System).
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 12
Ιστορικά Στοιχεία UNIX – (10)
Προέκυψε το Λ/Σ UNIX προτύπου POSIX, παρόλα
αυτά η προτυποποίηση δεν προχώρησε στο βαθμό που
ήταν επιθυμητός και εξακολούθησε η ύπαρξη αρκετών
εκδόσεων UNIX.

Το σημαντικότερο πλεονέκτημα του Λ/Σ UNIX είναι


ότι είναι "φορητό" ή αλλιώς "μεταφέρσιμο".

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 13


Ιστορικά Στοιχεία UNIX – (11)
Φορητότητα Προγράμματος:
Η έννοια του φορητού ή μεταφέρσιμου
Προγράμματος σημαίνει το Πρόγραμμα μπορεί να
μεταφερθεί από Η/Υ σε Η/Υ και να τεθεί σε
λειτουργία χωρίς καθόλου ή έστω με ελάχιστες
τροποποιήσεις.

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 14


Ιστορικά Στοιχεία UNIX – (12)
Φορητότητα Λ/Σ UNIX (1):
Η έννοια του φορητού ή μεταφέρσιμου Λ/Σ μπορεί να
διατυπωθεί και διαφορετικά. Επειδή το Λ/Σ
"λειτουργεί" τον Η/Υ (ερχόμενο σε άμεση επικοινωνία
με αυτόν), πρέπει να γνωρίζει όλα τα στοιχεία του
Υλικού που ελέγχει. Όμως οι διαφορές στο Υλικό
μεταξύ δύο Η/Υ είναι πολύ σημαντικές και οι
πιθανότητες να μπορεί να μεταφερθεί το Λ/Σ από Η/Υ
σε Η/Υ με λίγες μεταβολές είναι μάλλον απίθανη.

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 15


Ιστορικά Στοιχεία UNIX – (13)

Φορητότητα Λ/Σ UNIX (2):


Επομένως, ένα φορητό Λ/Σ μπορεί να μεταφέρεται
από Η/Υ σε Η/Υ με τις "ελάχιστες δυνατές" αλλαγές.

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 16


Γενεολογικό δέντρο UNIX
Ιστορικά Στοιχεία LINUX – (1)
Το Λ/Σ LINUX είναι ένα UNIX προτύπου POSIX.
Πρόκειται για Λ/Σ για το οποίο δεν θεμελιώνονται
εμπορικά δικαιώματα. Ως Λ/Σ αναπτύχθηκε για να
λειτουργεί με Η/Υ που έχουν CPU αρχιτεκτονικής
INTEL τύπου 80x86. Μέχρι να αναπτυχθεί το LINUX
αυτοί οι Η/Υ θεωρούνταν κατάλληλοι μόνο για PC
βασισμένα στα Λ/Σ της IBM και της Microsoft.
Δημιουργήθηκε το 1991 από τον Φιλανδό Linus
TORVALDS, ο οποίος έγραψε το πρόγραμμα Πυρήνα
που απαιτούνταν.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 18
Ιστορικά Στοιχεία LINUX – (2)
Λόγω των ελεύθερων δικαιωμάτων του το LINUX
αναπτύχθηκε ως αντιδάνειο και για Η/Υ και τις CPU
τους, για τους οποίους υπήρχε ήδη κατάλληλο UNIX.
Ως αποτέλεσμα το LINUX επέβαλλε στην ουσία το
πρότυπο POSIX και πολύ ικανοποιητική φορητότητα.
Το μερίδιό του στους Η/Υ απαιτήσεων, δηλαδή τους
Υπερ-υπολογιστές, τα "clusters", τις "φάρμες", τους
εξυπηρετητές και τους σταθμούς εργασίας είναι
σήμερα (2015) από 35 έως 95% ανάλογα με την
εφαρμογή.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 19
Ιστορικά Στοιχεία LINUX – (3)
Το μερίδιό του στα PC είναι πολύ μικρότερο και
δύσκολα μετρήσιμο
(αλλά από αυτούς τους Η/Υ ξεκίνησε!)
Διατίθενται σήμερα (2015) πολλές εκδόσεις
(distributions) LINUX, οι σημαντικότερες είναι:
Red Hat Enterprise (κλώνοι: Fedora και CentOS),
Debian (κλώνοι: Ubuntu και Mint), SUSE Linux
Enterprise (κλώνος: openSUSE), Mandriva
(κλώνος: Mageia), Arch Linux, Slackware Linux,
Puppy Linux, και το Android για κινητά
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 20
Ιστορικά Στοιχεία LINUX – (4)
Όλες οι διαθέσιμες εκδόσεις υπάρχουν τόσο για CPU της
INTEL όσο και για CPU της AMD. Οι διαφορές μεταξύ των
εκδόσεων βρίσκονται κυρίως στο πρόγραμμα Πυρήνα. Όλα τα
υπόλοιπα απαραίτητα είναι σχεδόν όμοια και διαφέρουν μόνο
στον οπτικό τρόπο αλληλεπίδρασης με τον χρήστη, τη μορφή
δηλαδή του "παραθυρικού" περιβάλλοντος.
Στο μάθημα αυτό ΔΕΝ θα ασχοληθούμε με τα
"παραθυρικά" περιβάλλοντα LINUX, παρά ΜΟΝΟ
με την αλληλεπίδραση χρήστη – Η/Υ μέσω
γραμμών εντολών (command line).
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 21
Πρόγραμμα "Φλοιός" – (1)
Κύρια Προγράμματα Λ/Σ UNIX, με σειρά
απομακρυνόμενη από το Υλικό:
1.Σύστημα Αρχείων, πρόγραμμα Πυρήνα, Λογισμικό
οδήγησης συσκευών
2.Πρόγραμμα Συστήματος "Φλοιός"
3.Άλλα Προγράμματα Συστήματος
4.Άλλα Προγράμματα Εφαρμογών
5.Άλλα Προγράμματα Χρήστη

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 22


Πρόγραμμα "Φλοιός" – (2)
Το Πρόγραμμα "Φλοιός" (shell) είναι αυτό που
παρέχει στο χρήστη τις εντολές με τις οποίες μπορεί
αυτός να επικοινωνήσει με το Λ/Σ και να καθοδηγήσει
σε σημαντικό βαθμό τις Διεργασίες που επιθυμεί,
ανάλογα με τα δικαιώματα εξουσίας που διαθέτει.
Τις εντολές αυτές ο χρήστης πληκτρολογεί μία προς
μία στο τερματικό του ή εναλλακτικά προετοιμάζει
Αρχείο που περιέχει ένα σενάριο από τέτοιες εντολές
(command script), το οποίο εκτελεί με κατάλληλο
τρόπο.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 23
Πρόγραμμα "Φλοιός" – (3)
Κάθε μία από τις εντολές αυτές πρέπει να εκτελεσθεί
πλήρως πριν ξεκινήσει η επόμενη ακριβώς στη σειρά.
Για την "μετάφραση" των εντολών του Φλοιού προς
το Λ/Σ και το Υλικό χρησιμοποιείται μεταφραστής
τύπου Διερμηνευτή που είναι μέρος του Φλοιού.
Γενικά, ένας Διερμηνευτής ασχολείται πάντα μόνο με
τη μετάφραση μίας και μόνης εντολής. Όταν η
εντολή αυτή εκτελεστεί πλήρως, ο Διερμηνευτής θα
μεταφράσει την επόμενη.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 24
Πρόγραμμα "Φλοιός" – (4)
Ως συνέπεια η μετάφραση και η εκτέλεση μέσω
Διερμηνευτή είναι αργή ΑΛΛΑ καταναλώνει λίγη
μνήμη.
(Από την άλλη γενικά, ένας Μεταγλωττιστής ασχολείται
με τη μετάφραση όλων των εντολών ενός
προγράμματος, δημιουργώντας στην ουσία στη θέση του
ένα άλλο πρόγραμμα σε Γλώσσα πιο κατανοητή για το
Υλικό. Η μετάφραση και η εκτέλεση μέσω
Μεταγλωττιστή είναι πολύ γρηγορότερη ΑΛΛΑ
καταναλώνει πολύ περισσότερη μνήμη.)
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 25
Πρόγραμμα "Φλοιός" – (5)
Τα πιο γνωστά Προγράμματα Φλοιοί είναι ο Φλοιός
Bourne (Bourne shell) και ο Φλοιός C (c shell). Οι
Η/Υ με Λ/Σ UNIX ή LINUX επιτρέπουν στο χρήστη
να χρησιμοποιεί περισσότερους από έναν Φλοιό. Ο
πλέον δημοφιλής σήμερα (2015) είναι ο Φλοιός
Bourne στην έκδοσή του "Bourne Again SΗell"
(ή bash) και σε αυτόν θα εστιάσουμε.
Για το χρήστη του Λ/Σ που γνωρίζει τις
βασικές εντολές ενός Φλοιού, οι γνώσεις αυτές είναι
άμεσα εφαρμόσιμες και στους άλλους Φλοιούς.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 26
Πρόγραμμα "Φλοιός" – (6)
Ο Φλοιός δημιουργεί το σχήμα επικοινωνίας:
Χρήστης → Φλοιός → UNIX (LINUX)
H λειτουργία του παραπάνω σχήματος επιτρέπει να
ξεκινήσει μια Διεργασία, κατόπιν εντολής του χρήστη,
με ενδιάμεσο το Φλοιό. Ο Φλοιός αναλαμβάνει να
θέτει διαρκώς στη διάθεση του χρήστη την ένδειξη
διαθεσιμότητας ή αλλιώς την ένδειξη αναμονής
εντολής ή αλλιώς το σύμβολο προτροπής (prompt),
το γνωστό χαρακτήρα $ (αν bash) ή % (αν c shell)
στην οθόνη του τερματικού του χρήστη.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 27
Πρόγραμμα "Φλοιός" – (7)
Όταν ο χρήστης δώσει την εντολή που επιθυμεί, αυτή
διαβάζεται από το Φλοιό, ο οποίος αναλαμβάνει να
μεταφράσει την εντολή μέσω του Διερμηνευτή του, σε
μία ή περισσότερες εντολές που είναι κατανοητές από
το UNIX. Πρακτικά, ο Φλοιός λειτουργεί ιδεατά,
δηλαδή ο χρήστης δεν αντιλαμβάνεται (και, σύμφωνα
με την ιδέα της ιδεατής μηχανής, δε θα έπρεπε να
αντιλαμβάνεται) την ενδιάμεση παρουσία του Φλοιού.

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 28


Πρόγραμμα "Φλοιός" – (8)
Παράδειγμα (1):
Η εντολή date, με την οποία ο χρήστης ζητά να μάθει την
ημερομηνία και την ώρα από τον Η/Υ κάνει κατανοητή τη
διακριτική παρέμβαση του Φλοιού μεταξύ χρήστη και UNIX.
Ο χρήστης, στην ένδειξη διαθεσιμότητας $ υποβάλλει την
εντολή
$ date
και λαμβάνει την επιθυμητή απάντηση-πληροφορία, λ.χ. στη
μορφή
Thu Apr 27 15:39:50 EET_DST 2000
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 29
Πρόγραμμα "Φλοιός" – (9)
Παράδειγμα (2):
Χωρίς την ανάμιξη του χρήστη, έστω και σ’ αυτή την
απλούστατη και ευκολομνημόνευτη εντολή, ο φλοιός
Δημιουργεί την αντίστοιχη Διεργασία. Η Διεργασία
που σχηματίστηκε για την εκτέλεση της εντολής date
ολοκληρώθηκε και έπαψε να υφίσταται μόλις ο Η/Υ
έδωσε την απάντησή του στο χρήστη.

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 30


Πρόγραμμα "Φλοιός" – (10)

Μία εντολή διά του Φλοιού αντιστοιχεί σε ένα απλό (όπως η


date) ή πολυσύνθετο (όπως η telnet) Πρόγραμμα Συστήματος
ή Πρόγραμμα Εφαρμογής και βεβαίως σε μία ή περισσότερες
γονικές & θυγατρικές Διεργασίες.
Ένα "σενάριο" δια του Φλοιού (command script),
σηματοδοτεί την διαδοχική σειριακή εκτέλεση πολλών
εντολών δια του Φλοιού. Υπό την (ευρεία) αυτή έννοια ένα
"σενάριο" δια του Φλοιού, μπορεί να νοείται ως Πρόγραμμα
γραμμένο στην Γλώσσα Προγραμματισμού "Φλοιός".

Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 31


Διασυνδέσεις στο UNIX

Διασύνδεση σε
επίπεδο χρήστη
Διασύνδεση σε Χρήστες
επίπεδο βιβλιοθήκης Βοηθητικά προγράμματα
Διασύνδεση σε (φλοιοί, κειμενγράφοι, κ.λ.π.) Κατάσταση
επίπεδο κλήσης Βασική Βιβλιοθήκη Χρήστη
συστήματος
(open, close, read, write, fork, κ.λ.π.)
ΛΣ UNIX (διαχείριση διεργασιών, Κατάστασ
μνήμης, file system, κ.λ.π) η
Πυρήνα
Υλικό (CPU, RAM, HDD, Terminals, κ.λ.π)
Διεργασίες (πάλι) – (1)
Δίοδοι επικοινωνίας (streams) (1):
Μία Διεργασία είναι συνδεδεμένη, και με τον ορισμό διόδων
(streams) για την ανταλλαγή πληροφορίας και μηνυμάτων με
το Εκτελούμενο Πρόγραμμα.
Οι δίοδοι επικοινωνίας ορίζονται γενικά με δύο τρόπους:
ØΗ ίδια η Διεργασία καθορίζει αυστηρά τις επιθυμητές
διόδους
ØΟι δίοδοι δεν ορίζονται από τη Διεργασία, αλλά
χρησιμοποιούνται οι προφανείς δίοδοι (default streams) του
συστήματος.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 33
Διεργασίες (πάλι) – (2)
Δίοδοι επικοινωνίας (streams) (2):
Η καταγραφή των αναγκών που παρουσιάζονται κατά την
εκτέλεση μιας Διεργασίας καθορίζουν και τις διόδους που
πρέπει να έχει. Έτσι, αυτές μπορεί να είναι:
 η είσοδος (input): Με τη δίοδο εισόδου, η Διεργασία
τροφοδοτείται με τα δεδομένα που θα επεξεργαστεί μέσω του
Εκτελούμενου Προγράμματος.
η έξοδος (output): Με τη δίοδο εξόδου, η Διεργασία
επιστρέφει και θέτει στη διάθεση του χρήστη τα
αποτελέσματα του Εκτελούμενου Προγράμματος.
το σφάλμα (error)
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 34
Διεργασίες (πάλι) – (3)
Δίοδοι επικοινωνίας (streams) (3):
Με τη δίοδο σφάλματος η Διεργασία ειδοποιεί για
ενδεχόμενα σφάλματα που παρουσιάστηκαν κατά την
εκτέλεση της.
Η δίοδος σφάλματος υπάρχει για να διαχωρίζονται τα
μηνύματα που επιστρέφει η Διεργασία για ενδεχόμενα
σφάλματα εκτέλεσης από τα ουσιαστικά
αποτελέσματα της Διεργασίας που οδεύουν προς τη
δίοδο εξόδου όταν η Διεργασία εκτελεσθεί κανονικά.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 35
Διεργασίες (πάλι) – (4)
Δίοδοι επικοινωνίας (streams) (4):
Αν δεν έχει ορισθεί διαφορετικά, μια Διεργασία στο
UNIX (LINUX) θα χρησιμοποιήσει την τυπική είσοδο
(standard input ή stdin), την τυπική έξοδο (standard
output ή stdout) και την τυπική έξοδο σφάλματος
(standard error ή stder).
Οι τυπικές αυτές δίοδοι, ταυτίζονται αντίστοιχα με το
πληκτρολόγιο (είσοδος) και την οθόνη (έξοδος και
σφάλμα) του τερματικού.
Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 36

You might also like