Κεφάλαιο 3 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 3.1 Εισαγωγή 3.2 Τα λειτουργικά συστήματα 3.3 Το λογισμικό εφαρμογών 3.4 Προγραμματισμός Η/Υ 3.5 Γλώσσες προγραμματισμού
3.1 Εισαγωγή Έχουμε γράψει ένα κείμενο στον επεξεργαστή κειμένου του υπολογιστή μας…... Θέλουμε να το εκτυπώσουμε….. Με ποιο τρόπο το πρόγραμμα του επεξεργαστή κειμένου θα γνωστοποιήσει στον υπολογιστή ότι είναι συνδεδεμένος με κάποιον εκτυπωτή; Με ποιο τρόπο ο υπολογιστής μας θα καταλάβει με ποιόν εκτυπωτή είναι συνδεδεμένος;
Το λογισμικό του συστήματος: Το λογισμικό (software) είναι το σύνολο εντολών που τίθενται στην διάθεση του χρήστη προκειμένου να υποδείξει στον Η/Υ το είδος των πράξεων που θα πρέπει να εκτελέσει. Η επικοινωνία των προγραμμάτων και των χρηστών με τον Η/Υ λαμβάνει χώρα μέσω του λογισμικού των Η/Υ Το λογισμικό ενός υπολογιστικού συστήματος αναλαμβάνει την αυτοματοποίηση των διαδικασιών της διαχείρισης της ΚΜΕ, της μνήμης και των μονάδων εισόδου-εξόδου, προκειμένου τα προγράμματα να αποδεσμεύονται από τα καθήκοντα αυτά.
Μπορούμε να διακρίνουμε το λογισμικό σε δύο μεγάλες κατηγορίες 1. Το λογισμικό του συστήματος (System Software) Περιλαμβάνει το σύνολο των προγραμμάτων που ελέγχουν διαχειρίζονται και συντονίζουν τους πόρους των Η/Υ Λειτουργούν σε καθεστώς ανεξαρτησίας από συγκεκριμένες εφαρμογές. Η λειτουργία του δεν είναι άμεσα αντιληπτή από τον απλό χρήστη. Τυπικό παράδειγμα λογισμικού συστήματος αποτελεί το λειτουργικό σύστημα, τα συστήματα διαχείρισης βάσεως δεδομένων, κλπ
2. Το λογισμικό των εφαρμογών Περιλαμβάνει προγράμματα που επιτρέπουν την εκτέλεση συγκεκριμένων εργασιών των χρηστών π.χ την δημιουργία κειμένων , την σχεδίαση γραφικών, την οργάνωση δεδομένων κλπ. Το λογισμικό του συστήματος και το λογισμικό εφαρμογών είναι υπεύθυνα για να καθοδηγούν το υλικό στο να εκτελεί τις εργασίες με βάση την ανάγκη των χρηστών.
3.2 Τα λειτουργικά συστήματα Το λειτουργικό σύστημα είναι ένα σύνολο προγραμμάτων που ελέγχουν και επιβλέπουν το υλικό του Η/Υ παρέχοντας διάφορες υπηρεσίες : σε προγράμματα εφαρμογών σε προγραμματιστές και χρήστες Η/Υ Το λειτουργικό σύστημα ελέγχει και συντονίζει την λειτουργία των μονάδων περιφερειακής μνήμης, την κύρια μνήμη και την κεντρική μονάδα επεξεργασίας. Το λειτουργικό σύστημα περιέχει τις απαραίτητες εντολές που υποδεικνύουν στην ΚΜΕ πώς να επικοινωνεί με τις υπόλοιπες μονάδες , άλλα προγράμματα και τους χρήστες.
3.2.1 Τα προγράμματα που αποτελούν το Λ.Σ Προγράμματα ελέγχου (Control Programs) Το κύριο πρόγραμμα ελέγχου ονομάζεται επιτηρητής και είναι υπεύθυνο για τον έλεγχο του συνόλου των προγραμμάτων του Λ.Σ και των διαφόρων εφαρμογών. Ο επιτηρητής βρίσκεται αποθηκευμένος στην κύρια μνήμη Προγράμματα Υπηρεσιών (Servisce programs) Εκτελούν προγράμματα που είναι αρκετά χρήσιμα για τους χρήστες , π.χ μορφοποίηση δισκέτας, αντιγραφή αρχείων κλπ Τα προγράμματα αυτά δεν είναι μόνιμα αποθηκευμένα στην κύρια μνήμη.
3.2.2 Οι κύριες λειτουργίες ενός Λ.Σ 3.2.2 Οι κύριες λειτουργίες ενός Λ.Σ Η διαχείριση των πόρων του Η/Υ Διανομή χρόνου της ΚΜΕ ανάμεσα σε διάφορους χρήστες και διάφορες ταυτόχρονες εργασίες, κατανομή περιφερειακής μνήμης στα διάφορα αρχεία, εύρυθμη λειτουργία μονάδων εισόδου εξόδου. Η διαχείριση των δεδομένων Εντοπισμός, αποθήκευση, τροποποίηση κατάλληλων αρχείων κλπ Η δρομολόγηση των διαφόρων εργασιών επίβλεψη και έλεγχος των εργασιών που έχουν καθορισθεί από τους χρήστες ότι πρέπει να εκτελεσθούν στην ΚΜΕ Η παροχή τρόπου επικοινωνίας μεταξύ χρηστών και υπολογιστικών συστημάτων Καθορισμός των συμβάσεων που αποτελούν τον προκαθορισμένο τρόπο επικοινωνίας των χρηστών
3.2.3 Κατηγορίες Λ.Σ Ταξινόμηση με κριτήριο τον αριθμό των χρηστών Λειτουργικά συστήματα ενός χρήστη (Single User)τα οποία μπορούν να υποστηρίξουν μόνο έναν χρήστη κάθε φορά. Λειτουργικά συστήματα πολλών χρηστών(Multi user) τα οποία επιτρέπουν σε δύο ή περισσότερους χρήστες να έχουν ταυτόχρονη πρόσβαση στο υπολογιστικό σύστημα.
3.3 Το λογισμικό εφαρμογών Το λογισμικό εφαρμογών (Application Software), αποτελείται από προγράμματα που έχουν σχεδιαστεί προκειμένου να βοηθήσουν τους χρήστες στην ολοκλήρωση των εργασιών τους, κατά τρόπο ταχύτερο, ευκολότερο και περισσότερο αποδοτικό. Το λογισμικό εφαρμογών μπορεί να διακριθεί στις εξής κατηγορίες: Γενικευμένο λογισμικό εφαρμογών Εξειδικευμένο λογισμικό εφαρμογών Ολοκληρωμένο λογισμικό.
3. 3. 1 Γενικευμένο λογισμικό εφαρμογών 3.3.1 Γενικευμένο λογισμικό εφαρμογών. Generalized Application Software Επεξεργαστές κειμένου
Λογιστικά Φύλλα
Συστήματα διαχείρισης βάσεων δεδομένων
Εφαρμογές διαδικτύου
Παιχνίδια
3.3.2 Εξειδικευμένο λογισμικό εφαρμογών (Specialized application software) Το λογισμικό αυτό αναπτύσσεται για να εκτελεί μια προκαθορισμένη λειτουργία και δεν μπορεί να μεταβληθεί εύκολα. Προγράμματα επεξεργασίας εικόνας Σχεδιαστικά προγράμματα Προγράμματα ηλεκτρονικής σελιδοποίησης Προγράμματα επεξεργασίας ήχου Διαχειριστικές εφαρμογές (λογιστική και εμπορική διαχείριση).
3.3.3 Ολοκληρωμένο λογισμικό Intergraded Software Το ολοκληρωμένο λογισμικό αποτελεί ένα σύνολο προγραμμάτων που είναι συμβατά μεταξύ τους και επιτρέπουν τη μεταφορά δεδομένων από το ένα στο άλλο. Microsoft Office Lotus Suite Staroffice
3.4 Προγραμματισμός Η/Υ Το σύνολο των κανόνων και των οδηγιών στις οποίες βασίζεται ένας υπολογιστής προκειμένου να εκτελέσει μια συγκεκριμένη εργασία καλείται πρόγραμμα. Η διαδικασία της συγγραφής και και της εισαγωγής των κανόνων του προγράμματος καλείται προγραμματισμός. Η γλώσσα που μας επιτρέπει να δίνουμε εντολές στον Η/Υ καλείται γλώσσα προγραμματισμού Η διαδικασία που ακολουθούμε για την ανάπτυξη ενός προγράμματος καλείται κύκλος ανάπτυξης προγράμματος
3.4.1 Ο κύκλος ανάπτυξης προγράμματος Ο κύκλος ανάπτυξης προγράμματος αναλύεται σε έξι βασικά βήματα: Περιγραφή του προβλήματος, καθορισμός απαιτήσεων, Ανάλυση του προβλήματος, Σχεδίαση της λύσης του προβλήματος, Κωδικοποίηση σε γλώσσα προγραμματισμού, Έλεγχος, διόρθωση λαθών, Συντήρηση προγράμματος.
Περιγραφή του προβλήματος, καθορισμός απαιτήσεων Προσπαθούμε με απλά βήματα να απομονώσουμε και να καταγράψουμε τις πραγματικές συνιστώσες ενός προβλήματος, τοποθετώντας τις σε λογική σειρά μεταξύ τους. Αποσαφηνίζουμε τους στόχους που επιδιώκουμε να υλοποιήσουμε με αναλυτικό τρόπο προκειμένου να καταγραφεί το πλαίσιο απαιτήσεων της όλης προσπάθειας. Ανάλυση του προβλήματος Ολοκληρωμένη απεικόνιση του πλαισίου επίλυσης του προβλήματος Σχεδιασμός Σκιαγραφούμε ένα προσχέδιο της επίλυσης του προβλήματος Κατασκευάζουμε μια ακολουθία αυστηρά δομημένων βημάτων προκειμένου να επιλύσουμε το πρόβλημα. Για την περιγραφή της λύσης ενός προγράμματος χρησιμοποιούμε το λογικό διάγραμμα και τον ψευδοκώδικα.
Λογικό διάγραμμα: Σχηματικός τρόπος αναπαράστασης της ροής των οδηγιών που συνθέτουν έναν αλγόριθμο. Ψευδοκώδικας: ο αλγόριθμος παρουσιάζεται με απλές προστακτικές φράσεις σε φυσική γλώσσα
Κωδικοποίηση: αξιοποιείται η διαδικασία του σχεδιασμού.. Υλοποιείται η συγγραφή του προγράμματος σε μια γλώσσα προγραμματισμού. Τέλος ένα ειδικό πρόγραμμα αναλαμβάνει την μετάφραση του κειμένου του προγράμματος σε γλώσσα μηχανής η οποία είναι αναγνωρίσιμη από τον υπολογιστή. Έλεγχος - διόρθωση του προγράμματος: Ο προγραμματιστής πραγματοποιεί συνεχείς δοκιμές προκειμένου να βεβαιωθεί ότι το πρόγραμμα δουλεύει σωστά. Στο στάδιο αυτό διορθώνονται τα πιθανά λογικά σφάλματα. Συντήρηση προγράμματος: Το λογισμικό εγκαθίσταται και ξεκινά η λειτουργία του. Οι ανάγκες των χρηστών, και η συνεχής προσαρμογή των προγραμμάτων στις νέες απαιτήσεις καθιστούν αναγκαία την συνεχή παρακολούθηση του προγράμματος, και την τροποποίηση του.
3.5 Γλώσσες προγραμματισμού Γλώσσα Μηχανής- Machine Language, (Γλώσσα πρώτης γενιάς-1940) είναι η φυσική γλώσσα των Η/Υ. είναι κώδικας σε δυαδική μορφή (0,1). Διακρίνεται για την ταχύτητα εκτέλεσης των εντολών της και την βέλτιστη χρήση της κύριας μνήμης. Είναι δύσκολη στην χρήση της, στον εντοπισμό και διόρθωση τυχόν λαθών. Συμβολική γλώσσα -Assembly Language ( Γλώσσα δεύτερης Γενιάς -1950-60) Μνημονική αναπαράσταση των χαρακτήρων. Είναι πιο εύκολη στην γραφή και στην κατανόηση. Η εκτέλεση της απαιτεί την μετάφραση της σε γλώσσα μηχανής μέσω των συμβολομεταφραστών (Assembler).
Γλώσσες τέταρτης γενιάς - 4th Generation Languages.-1980 -1990 Γλώσσες υψηλού επιπέδου- High level Languages, (Γλώσσες τρίτης Γενιάς 1960-..) εννοιολογικά εμφανίζονται να βρίσκονται πιο κοντά στις ανθρώπινες γλώσσες. Χρησιμοποιούν ένα μικρό σύνολο από αγγλικές λέξεις. Για να εκτελεστεί ένα τέτοιο πρόγραμμα γίνεται χρήση μεταφραστών (Compilers) και των διερμηνευτών (Interpreters). Π.χ Cobol, Fortran, Basic, Logo, Pascal, Ada, C. Γλώσσες τέταρτης γενιάς - 4th Generation Languages.-1980 -1990 Ο προγραμματιστής δεν περιγράφει αλγορίθμους. Απλά καθορίζει τα δεδομένα και τις ενέργειες που πρέπει να γίνουν και το ίδιο το εργαλείο δημιουργεί τον κώδικα σε κάποια γλώσσα προγραμματισμού. Αντικειμενοστραφείς γλώσσες προγραμματισμού (Object oriented L) Π.χ C++, Java, Visual basic. Γλώσσες ανάπτυξης εφαρμογών τεχνητής νοημοσύνης, Π.χ LISP, PROLOG. Γλώσσες ερωταποκρίσεων. Γεννήτριες προγραμμάτων. Συστήματα διαχείρισης βάσεων δεδομένων.
Γλώσσες Πέμπτης Γενιάς (5th Generation language) - 21ος αιώνας Η επικοινωνία μεταξύ ανθρώπου και μηχανής γίνεται με την βοήθεια φυσικής γλώσσας. Χρησιμοποιούν λέξεις και συντακτικούς κανόνες της φυσικής γλώσσας. Αναπτύσσονται τεχνικές αναγνώρισης φωνής. Έχουν μεγάλες υπολογιστικές απαιτήσεις. Δεν έχουν ακόμη αναπτυχθεί πρότυπα με ευρεία αποδοχή. Όλες οι παραπάνω γλώσσες εκτός από την γλώσσα μηχανής προκειμένου να γίνουν κατανοητές από τον Η/Υ πρέπει να μεταφραστούν σε γλώσσα μηχανής: Εργαλεία μετάφρασης Συμβολομεταφραστής ,assembler: μεταφράζει προγράμματα σε γλώσσα assembly Διερμηνευτής, Interpreter : Μεταφράζει μια γραμμή του προγράμματος σε δυαδικό κώδικα κάθε φορά. Μεταγλωττιστής, Compiler: Ελέγχει το πρόγραμμα για συντακτικά λάθη και το μεταφράζει ολόκληρο πριν ξεκινήσει η εκτέλεση οποιουδήποτε μέρους του. Η εκτέλεση του προγράμματος γίνεται κατόπιν απαίτησης του ίδιου του χρήστη