La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Lambiente SOFTWARE Matjaž Hmeljak. 2 software - presentazione per definizione un calcolatore sa eseguire alcune istruzioni dell'insieme di istruzioni.

Presentazioni simili


Presentazione sul tema: "1 Lambiente SOFTWARE Matjaž Hmeljak. 2 software - presentazione per definizione un calcolatore sa eseguire alcune istruzioni dell'insieme di istruzioni."— Transcript della presentazione:

1 1 Lambiente SOFTWARE Matjaž Hmeljak

2 2 software - presentazione per definizione un calcolatore sa eseguire alcune istruzioni dell'insieme di istruzioni detto linguaggio macchina qualunque cosa si voglia far fare al calcolatore - per funzionare il calcolatore elettronico deve avere un programma = una sequenza di istruzioni che gli dice cosa fare; linsieme dei programmi preparati per un calcolatore = software

3 3 software - presentazione il calcolatore - pur con un repertorio di istruzioni abbastanza limitato (un centinaio di istruzioni) - e' una macchina in grado di risolvere una gran quantita' di problemi appartenenti a categorie molto diverse, e' una macchina a uso generico un calcolatore puo essere programmato per fare molte cose in campi applicativi diversi vediamo alcuni tipi di software piu noto:

4 4 elenco incompleto di software applicativo - 1 alcuni tipi di software piu noto: programmi/ per gestire archivi dati (consultazione,aggiornamento.. per contabilita, calcolo paghe, gestione magazzino,... per scrivere testi (text editor) per scrivere e impaginare testi (word processor) per scrivere / impaginare libri o giornali (stampa) per disegnare: disegno tecnico (disegno a 2 dimensioni, a 3 dimensioni ), disegno a mano libera, per risolvere problemi di matematica, fisica, chimica... per preparare e gestire tabelle, statistiche, grafici, per progettare macchine, navi, calcolatori,...

5 5 elenco incompleto di software applicativo - 2 per giocare (abilita, strategia, riflessi, in gruppo,...) per modificare immagini esistenti (ritocco, colore,..) per scrivere, modificare, suonare musica... per scrivere / smistare posta elettronica per cercare dati disponibili in rete internet per creare, modificare, gestire dati in rete per comunicare direttamente con piu persone lontane per simulare ambienti virtuali per inviare su richiesta un film allutente... per editare filmati video

6 6 elenco incompleto di software applicativo - 3 per creare filmati di animazione 2D / 3D per codificare e crittare e poi trasmettere, decodificare e decrittare testi, suoni, immagini, filmati per gestire... una fabbrica, lavatrice, frigo, cellulare, impianto di riscaldamento, serra, allevamento di pesci, semafori, impianti di casa, un'auto, un aereo, una nave, razzo con bomba preventiva, per aiutare le decisioni di un manager, di un medico, di un generale... per gestire una comunicazione tra due o piu' utenti della rete: chiacchierata audio tra due o piu', video conferenza a piu' utenti in spazio virtuale 3D... una spia software su un canale telefonico skype,...

7 7 un elenco completo solo dei tipi o categorie di sw... non e' possibile !

8 8 software: fisso e attivabile su richiesta linsieme dei programmi = software Quasi sempre un calcolatore ha una minima parte di programmi fissi (in memoria indelebile ROM) e la maggior parte di programmi residenti su una memoria periferica - un disco fisso (Hard Disk) - da dove sono richiamati (su richiesta) in memoria RAM

9 9 Il software rappresenta la componente funzionale che permette la flessibilita' di un sistema di elaborazione. Le varie componenti logico - funzionali (programmi, moduli, librerie) del software possono essere classificate in modi diversi, spesso si raggruppano in tre grandi categorie, diverse tra loro per compiti e finalità: 1. software di base 2. linguaggi di programmazione e ambienti di sviluppo software 3. software applicativo. software : base/programmazione/applicativi

10 10 classificazione del software 1. software di base (sistema operativo, gestisce le risorse del calcolatore anche per conto degli utenti) 2. linguaggi di programmazione (traduttori) e ambienti di sviluppo software (debugger) e di utilita (gestione periferiche, disk doctor,..) permettono lo sviluppo di nuovi programmi 3. software applicativo: il calcolatore diventa una particolare macchina per risolvere un problema Attenzione: la distinzione non è rigida, poiché a volte si hanno sovrapposizioni ed intersezioni tra i compiti e le finalità storicamente assegnate alle diverse categorie. software : base/programmazione/applicativi

11 11 software base: sistema operativo = ambiente di lavoro il SISTEMA OPERATIVO e' il SOFTWARE DI BASE, e' una parte importante dei programmi, e definisce lambiente di lavoro del calcolatore (compresa l' interfaccia uomo-macchina) calcolatori diversi ma con lo stesso sistema operativo sono utilizzabili allo stesso modo.

12 12 sistema operativo = gestore di risorse SOFTWARE DI BASE = SISTEMA OPERATIVO ll software di base è costituito da tutto un insieme di programmi che gestiscono (sovrintendono al corretto funzionamento di) tutte le unità logiche o risorse (HW e SW) componenti il sistema di elaborazione. le singole parti del SO gestiscono le risorse del calcolatore (HW e anche SW) e sono dette manager... Ad esempio la parte che si occupa della memoria centrale e il memory manager, la parte che si occupa degli archivi su disco [una struttura HW e SW] e il file manager...

13 13 sistemi operativi... un elenco Alcuni nomi di sistemi operativi: CTSS (1962, IBM709, Time Sharing, 10 utenti) MULTICS (1965-69, GE-645, iniz.30 utenti, fino al 2000) uno dei primi file system multi-utente OS/360 (1968, IBM 360), casi particolari il TOS e il DOS [crisi del software, "the mythical month-man"] Unix (1969, nasce su macchine Digital PDP 11/xx) (vedere http://www.bell-labs.com/history/unix/ ) CP/M (1975, macchine con Z80 e Intel 8080) UCSD/Pascal (1977, Apple II, Rockwell 6502) [stava su due floppy da 110k !] OS9 (1979, Motorola 68000)

14 14 sistemi operativi... un elenco Alcuni nomi di sistemi operativi: CTSS (1961, IBM709, Time Sharing, 10 utenti) MULTICS (1965-69, GE-645, iniz.30 utenti, fino al 2000) DOS/360 (1968, IBM 360) Unix (1969, nasce su macchine Digital PDP 11/xx) (vedere http://www.bell-labs.com/history/unix/ ) CP/M (1975, macchine con Z80 e Intel 8080) UCSD/Pascal (1977, Apple II, Rockwell 6502) OS9 (1979, Motorola 68000) MS.DOS (1981, macchine basate su Intel8088) Workbench (Amiga 1988) Windows95 (1995, macchine Intel 486 e Pentium) Linux (varie versioni, vari processori) Windows XYZ OS X.k Macintosh ecc (vedi su internet Altavista/Yahoo/Google ecc... )

15 15 sistemi operativi ** calcolatori diversi ma con lo stesso sistema operativo sono utilizzabili allo stesso modo: le macchine si presentano allo stesso modo e offrono lo stesso ambiente: es. Unix ** sulla stessa macchina possiamo installare diversi sistemi operativi: per ogni sistema X la stessa macchina si presenta come la macchina X

16 16 ** calcolatori diversi con diversa unita' centrale ma con lo stesso sistema operativo ==>> sono utilizzabili allo stesso modo – ad es. se si installa il sistema operativo Linux su un PC con processore Intel e su un Apple con processore Power PC allora entrambe le macchine si presentano allo stesso modo e offrono lo stesso ambiente. MA: La maggior parte dei SO sono legati a una particolare macchina (ad es. OS Apple) un sistema operativo per piu' macchine

17 17 piu' sistemi operativi su una macchina ** Viceversa, sulla stessa macchina possiamo installare diversi sistemi operativi: ad es. su un Pentium possiamo installare il sistema MSDOS, il sistema Windows YZ, il sistema OS/2, il sistema Linux, il sistema Oberon, e altri Per ogni sistema operativo X la macchina si presenta come la macchina X

18 18 Nota: il software di base è un insieme di programmi che gestisce (per conto nostro) tutte le unità logiche - diremo in generale tutte le risorse - componenti il sistema di elaborazione. In questa ottica, il sistema operativo è senza dubbio il software di base essenziale al funzionamento corretto del calcolatore, e per l'uso agevole da parte dell'utente puo' esserci un livello di programmi sottostante al software di base: la parte di software di basso livello, a metà strada tra lhardware vero e proprio e il software utente, viene chiamata firmware. software base

19 19 firmware firmware = parte di software permanentemente registrata all'interno del calcolatore, (indelebile) nelle ROM (e questo congela una macchina per un dato S.O.) e addiritura nella UC stessa, tipicamente sotto forma di microcodice (programma fatto di microistruzioni = microprogramma o µ - programma)

20 20 firmware (ROM) è la parte del SO che si occupa della fase di partenza (all' accen-sione) del calcolatore, detta bootstrap(*), e della manutenzione di basso livello del sistema: sicuramente almeno la parte di avvio del sistema (programma che viene eseguito allaccensione) DEVE essere memoriz-zata in una ROM (in memoria permanente, non volatile). Il programma di boot esegue dei controlli sul sistema e poi legge la parte principale del sistema operativo da disco (floppy o HD) --------------------------------------- dal dizionario: bootstrap, noun: 1 a loop at the back of a boot, used to pull it on; 2 the technique of starting with existing resources to create something more complex and effective; 3 a technique of loading a program into a computer by means of a few initial instructions that enable the introduction of the rest of the program from an input device. bootstrap

21 21 Il sistema operativo (S.O.) di un elaboratore elettronico è il programma di gestione del calcolatore e di tutte le risorse (componenti HW e SW) ad esso associate un elenco incompleto di "risorse": x unita centrale [provare ad associare x processi (*) ad ogni risorsa in tabella x memoria, la qualifica HW oppure SW] x file system, x dischi, (*)processo=un programma in x sistema utenti esecuzione assieme alle risorse x stampanti, hw (memoria centrale, periferiche) x interfaccia utente, e sw (descrittori di stato, tabelle..) x schermo, tastiera, x rete, ecc s.o.: gestione risorse

22 22 Il sistema operativo (S.O.) = i programmi di gestione del calcolatore, * si divide in moduli (subsystems) responsabili di una specifica parte da gestire: user management, user interface management, file system management, I/O management, (drivers per dischi, stampanti,..) memory management, (kernel) process management, (kernel)... La parte centrale (che gestisce l'uso della U.C. e della M.C.) viene detta kernel (o core o nucleo), mentre l'interfaccia verso l'utente viene chiamata shell (o guscio esterno) s.o.: kernel e shell

23 23 s.o.: driver nota: ogni risorsa fisica e' gestita a basso livello da un programma detto "driver" della risorsa, (pero': memory manager, cpu scheduler...) il driver rende l'uso della risorsa piu' agevole ed evita di riscrivere le stesse procedure di uso (chiedi la risorsa, "apri" la risorsa, controlla stato della risorsa, trasmetti dati da/alla risorsa, rilascia la risorsa ecc) (es.: driver di stampante, driver del disco, driver della tastiera ecc)

24 24 Lo schema logico sottostante, detto comunemente a cipolla, fa vedere come i vari sottosistemi che compongono il sistema operativo interagiscono tra di loro e con gli utenti del calcolatore. s.o.: modello a strati Schema concettuale di un sistema operativo: ogni strato usa lo strato sottostante, non altri... HW Kernel Sistema operativo Shell SW di base Applicativi di rete Programmi utente Database Fogli Elettronici ecc...

25 25 per ogni risorsa del sistema il suo manager mantiene: ** per ogni risorsa del calcolatore (HW e SW) una tabella di stato (un descrittore) in cui memorizza lo stato della risorsa, (tipo, quantita, libera/occupata, usata da chi, richiesta da chi (coda di attesa per la risorsa), limiti di quantita', limiti di tempo,...) ** per ogni processo (programma in esecuzione) il SO ricorda che risorse ha, quali risorse chiede, quali limiti di uso ha (ad es.di tempo di u.c., o di spazio disco - un utente puo occupare al massimo N settori di disco) a che utente fa capo, che privilegi di accesso ha, se e attivo o in attesa di qualcosa, se e in esecuzione (usa l UC o e in attesa di essa) ecc gestione di una risorsa

26 26 il nucleo del SO gestiscel UC la MC i processi l UC - lunita centrale e assegnata al programma in esecuzione (per definizione) per un tempo limitato, e poi passata ad altri programmi, a turni di tempo dT molto brevi (millesimo di secondo): effetto: come se ci fossero piu unita centrali (virtuali) a disposizione dei programmi in esecuzione (e quindi la multiprogrammazione) esecuzione in time-sharing nucleo o kernel del s.o. dT tempo processo 1 processo 2 processo 3 P2 in esecuzione P2 in attesa di u.c.

27 27 il nucleo del SO gestiscel UC la MC i processi la MC - un programma per essere eseguito deve stare in memoria centrale: il gestore dei processi per far partire un programma chiede al memory manager una parte della memoria centrale, che (se disponibile) e' assegnata al programma (spesso solo per la parte in uso corrente, e la parte del programma non attiva al momento viene lasciata su disco) problema: protezione dei programmi tra loro: in ogni caso solo una parte della MC viene usata da ogni programma; vi sono sempre piu' programmi in esecuzione ciascuno in una parte della memoria centrale; ogni programma non deve invadere zone di memoria assegnate ad altri programmi (e al s.o.); se lo fa, sara' l'HW a bloccarlo nucleo o kernel del s.o.

28 28 il nucleo del SO gestiscel UC la MC i processi processo = programma (istruzioni+dati) + le risorse fisiche per eseguirlo (MC,periferiche..) + lo stato del programma (cioe dei suoi dati e dellistruzione in corso) il SO deve assicurare il funzionamento corretto e sicuro di ogni processo - sia utente sia i processi di lui stesso (l'attivita' del SO implica l'esecuzione di piu'processi) il S.O. come gestore risorse

29 29 processo =... ricorda: processo = programma + le risorse fisiche per eseguirlo + lo stato del programma (valori dei suoi dati e indirizzo istruzione in corso) OGNI programma in esecuzione DEVE avere una zona di memoria centrale (dove stanno le sue istruzioni e i suoi dati ) e il processore centrale (reale o virtuale) – in piu il S.O. deve sapere quali altre risorse ha chiesto / ottenuto e in che stato e in ogni istante (se e in esecuzione reale (ha il processore) o se sta aspettando il turno per il processore (ha solo un processore virtuale) o se sta aspettando qualche altra risorsa (ad es piu Mem Centrale, un accesso al disco, la risposta di una periferica ecc) le informazioni sono concentrate in una zona descrittore del processo... e cosi per ogni risorsa del sistema (desrittore di risorsa)...

30 30 SO gestisce le risorse: risorse fisiche : U.C., memoria, periferiche, … risorse logiche: file system, archivi, processi, … Tutte queste risorse sono "preziose", nel senso che spesso vi sono piu' richieste da parte di piu' processi per le stesse risorse - si crea una coda di attesa perche' in genere le risorse non sono condivisibili [utilizzabili] tra più programmi contemporaneamente, il S.O. come gestore risorse: mutua esclusione

31 31 il S.O. come gestore risorse - mutua esclusione Gestione delle risorse: in genere non condivisibili / non utilizzabili da più programmi contemporaneamente: * si pensi ad es. alla risorsa stampante: se due programmi si mettessero a stampare contemporaneamente, potremmo avere una pagina stampata a meta da uno e a meta dallaltro, magari ogni seconda riga (o ogni secondo carattere) appartiene ad uno dei due programmi... * peggio ancora se due programmi usano la stessa zona di memoria, cancellandosi i dati o le istruzioni a vicenda... Il SO (i vari manager del SO) risolve questi problemi della corretta assegnazione e della mutua esclusione nell'uso delle risorse...

32 32 il S.O. come gestore risorse - code di attesa SO gestisce risorse - è compito del SO controllare la corretta utilizzazione delle risorse al fine di evitare conflitti tra diversi programmi e/o utenti. spesso vi sono piu richieste che non le risorse a disposizione - si ha allora un conflitto di richieste e quindi si creano code di attesa: se ci sono piu richieste (di uso di una risorsa) il SO deve gestire una coda di attesa per luso della risorsa, con criteri di equita e con varie priorita (ogni processo in attesa di una risorsa deve ottenere la risorsa entro tempi ragionevoli)

33 33 Per gestire le risorse del sistema il S.O. 1. mantiene lo stato globale del sistema (elenco e stato di ogni risorsa) in ogni istante mediante tabelle interne, 2. decide l'allocazione delle risorse mediante delle politiche di allocazione/deallocazione stabilite a priori, oppure cambiate dinamicamente sulla base del monitoraggio del carico di lavoro del computer stesso (politiche di scheduling) – gestione code di attesa 3. controlla luso delle risorse da parte dei processi (programmi, utenti) (risorse assegnate ai processi) 4. riprende in carico le risorse al rilascio il S.O. come gestore risorse

34 34 il SO come interfaccia SPORTELLO CHIUSO UTENTECALCOLATOREINTERFACCIA

35 35 Un altro importante compito del sistema operativo è quello di svolgere il servizio di intermediario -->> interfaccia tra l'hardware del calcolatore e l'utente dello stesso. Questo importante compito viene svolto dalla shell (guscio), parte del SO sempre attiva, che si occupa principalmente di ricevere e di interpretare le richieste di utilizzo del sistema (dell'hardware, ad esempio per registrare su disco una certa informazione) per poi inoltrarle correttamente (tramite chiamate al sistema operativo, system calls) ai vari moduli del nucleo specializzati in singole funzioni. il SO come interfaccia tra calcolatore e utente

36 36 come comunica lutente al sistema che cosa vuole fare? vecchio stile : (MSDOS, UNIX) utilizzando uno schermo a testo (terminale "alfanumerico", non grafico) e una tastiera l'utente scrive i comandi per il sistema operativo (in un "command language" o "job control language"), una volta premuto l'invio questo comando viene interpretato e (se corretto) eseguito; il s.o. "a riposo" aspetta da tastiera un comando; es: ? copia file1.txt, file2.txt ? (si sottintende che l'esito del copia era ok) ?... interfaccia a riga comandi

37 37 interfaccia a riga comandi interfaccia a righe di comandi: il sistema segnala che e in attesa di un comando (scrivendo sullo schermo una scritta di pronto, o prompt, che potrebbe essere ad es. un carattere solo, come il ? oppure il >, e poi l'utente inserisce il suo comando, ad es "time" e il tasto di invio: > time oppure il sistema scrive come "prompt" o segno di attenzione qualcosa di piu lungo, ad es.:... 29/02/99 07:45:56 sh-2.05a root >

38 38 Dopo il segnale di attenzione (prompt) lutente scrive il suo comando (richiesta al SO) sulla stessa riga: ( in corsivo e rosso quanto scritto dallutente ) 29/02/99 07:45:56 root > man time (richiesta di spiegazione del comando time, man sta per manual), al che il SO risponde visualizzando il testo relativo... riportato nella prossima immagine: interfaccia a riga comandi

39 39 man time dell'unix: TIME(1) BSD General Commands Manual TIME(1) NAME time -- time command execution SYNOPSIS time [-lp] utility DESCRIPTION The time utility executes the times utility. After the utility finishes, time writes the total time elapsed, time consumed by system overhead, and the time used to execute utility to the standard error stream. Times are reported in seconds. Available options: -l The contents of the usage structure are printed. -p The output is formatted as specified by IEEE Std 1003.2-1992 (``POSIX.2''). DIAGNOSTICS The time utility shall exit with one of the following values: 1-125 An error occurred in the time utility. 126 The utility was found but could not be invoked. 127 The utility could not be found. Otherwise, the exit status of time shall be that of utility.

40 40 Dopo il segnale di attenzione (prompt) lutente scrive il suo comando (richiesta al SO) sulla stessa riga: ( in corsivo e rosso quanto scritto dallutente ) 29/02/99 07:45:56 C:> time 19:00:00 29/02/99 19:00:00 C:> lutente ha modificato il tempo corrente (orologio del sistema) e il sistema e di nuovo pronto ad eseguire un comando - operazione spesso vincolata al livello di autorizzazione dell'utente ((se amministratore o no)) interfaccia a riga comandi

41 41 interfaccia a riga comandi - e se sbaglio? l' interazione con il sistema a riga di testo presenta il problema che il comando = stringa di caratteri viene riconosciuto confrontando la stringa inserita dall'utente con una tabella di stringhe previste ==>> ogni comando DEVE essere inserito esattamente come previsto. Se inserisco ad es. il comando data (in inglese date) il sistema risponde:... 29/02/99 07:45:56 C:> data invalid command e poi si rimette in ascolto … 29/02/99 07:45:56 C:> oppure: 29/02/99 07:45:56 bash: data: command not found o altri messaggi di poco aiuto, e non dice altro...

42 42 Oppure (unix, prompt e uts $ ): inserisco ad es. il comando data (date dizione inglese) il sistema risponde: uts_130_k$ data ksh: data: not found [il sistema cerca tra i comandi uts_131_k$ che conosce, ma non trova...] mentre con i comandi date e time ottengo: uts_131_k$ date Fri Sep 25 18:38:55 MET DST 1998 uts_132_k$ time [quanto tempo macchina real 0m0.00s e stato usato finora] user 0m0.00s sys 0m0.00s interfaccia a riga comandi - date, time

43 43 interfaccia a riga comandi - e se sbaglio? interfaccia con comandi su riga: dialogo veloce (l'UNIX ha 300 comandi di poche lettere, da 1 a 3...) consente di fare cose che con l'interfaccia grafica e' quasi impossibile... MA... va bene per "professionisti": e' necessario ricordare i comandi con le loro sintassi (manuale di aiuto per ogni comando...) NON va bene per "dilettanti" come noi ;-) > coppy mio.txt mio_copia.txt > ? not found [errore di battitura del comando] > copy mio.text mio_copia.txt > ? not found [errore di battitura del nome del file] > copy mio.text, mio1.txt > ? not found [err nome file... ] … al che uno desiste e va a bere una camomilla... meglio : dialogo "pilotato" con interfaccia grafica

44 44 interfaccia a menu' il sistema operativo fornisce un menu' : scegli cosa fare: controllo file programmi documenti risorse altro l'utente puo' solo scegliere una delle opzioni presentate (ad es con i tasti di direzione su' e giu')... in genere il comando selezionato da' a sua volta altri menu'... l'interazione con menu' risale agli anni 80 (sistema Star della Xerox a Palo Alto, California) scegli cosa fare: sospendi logout spegni cambia utente

45 45 l'interfaccia "guidata" a menu' (per usare il sistema ) e' resa piu' facile con l'uso di un "puntatore" : un mouse (o sistema equivalente) con cui si muove un cursore [la posizione corrente] sullo schermo. il sistema mostra sullo schermo tutto quello che si puo fare (funzioni principali) con un menu' grafico; lutente sceglie (seleziona il programma che vuole attivare) con lo spostamento del cursore e poi conferma la scelta con un tasto sul mouse in tal modo si evita il dialogo: > coppy mio.txt mio_copia.txt > ? not found [errore di battitura del comando] > copy mio.text mio_copia.txt > ? not found [errore di battitura del nome del file] menu' e mouse

46 46 interfaccia a riga comando - a menu' sotto l'equivalente del comando ls in forma grafica: cliccando su una cartella il sistema mostra una finestra con i file e le sottocartelle contenute (qui la cartella "prova" contiene 4 oggetti); selezionando e attivando uno dei 4 oggetti equivale al cd (cambia cartella corrente) o alla richiesta di esecuzione dell'oggetto.... qui a fianco sopra: videata di un sistema unix, sono mostrati: il comando cd (change directory) cambia cartella e il comando ls (lista) file o cartelle contenuti in una cartella; si noti che l'invito del sistema da' la posizione corrente della cartella "di lavoro" o cartella corrente;

47 47 interfaccia a menu' interfaccia grafica: con il mouse muovo il cursore e seleziono un'opzione principale (File) e in risposta il sistema mi da' un menu' di opzioni secondarie (qui: New Project, New File, New Empty File, Open...) videata iniziale di Xcode, sistema di sviluppo program mi del S.O. 10.4 della Apple; il sistema "chiede" cosa si vuole fare, offrendo un menu di scelte in alternativa (File, Edit, View,...)

48 48 Sistemi dove lutente interagisce con il SO mediante un cursore sono detti sistemi a finestre con menu'a tendina tra i primi sistemi a finestre realizzati nel 1981 alla Xerox e il sistema Star, con mouse, ikone, finestre, con linguaggio SmallTalk-80 ("zio" del C++) e mesa ("zia" del linguaggio Modula/2) (... nel 1981 lIBM realizza il PC con MSDOS e 8088) a tale sistema si "ispiro " la Apple per il sistema Lisa (gia' nel 82) doveva essere il successore del Apple II, ma fu un fiasco commerciale), e poi per il Mac (gennaio 84) (lIBM esce con il PC/AT con il 286)... e poi (dopo...) si ispirarono l'Amiga, l'Atari, la MS, "last but not least" con il sistema Windows 3.0, l'IBM con OS/2,... (ci fu una lite giudiziaria sull'uso del sistema a menu', finestre e icone tra Apple e MS...) ritorneremo su entrambe le modalita di comandare un sistema menu e mouse... storia

49 49 Riassumendo, il S.O. è il gestore delle risorse di cui è composto il sistema di elaborazione: risorse fisiche : memoria, periferiche, CPU. risorse logiche: file system, archivi, processi, task, risorse su rete (server, stampanti,...) -> gestione per conto di uno o piu utenti [multiuser] e per conto di uno o piu programmi [multitasking] in esecuzione in un dato istante di tempo. SO - riassunto

50 50 SO - rissunto il S.O. gestisce le risorse di cui è composto il sistema di elaborazione (fisiche : memoria, periferiche, CPU, e logiche: file system, archivi, processi, task) * per conto di uno o piu utenti [multiuser] e per conto di uno o piu programmi [multitasking] mediante opportune "interfaccie" o convenzioni: per l'utente, sono disponibili un certo numero di comandi ("per eseguire un programma cerca la sua ikona e clicca su essa", "per copiare un file seleziona e trascina", "panello di controllo", ecc...) per un programma, con una libreria di sotto- programmi disponibili al programma (system call)...

51 51 UN SISTEMA OPERATIVO... PICCOLO, vecchio e brutto : il DOS della MS DOS = Disk Operating System la parola DOS significa letteralmente Sistema operativo per sistemi a dischi. Nota Bene : Il termine DOS risale agli anni 66-68, quando entrano in uso i primi sistemi gestiti da programmi memorizzati su disco (e non piu su nastro magnetico, come erano i precedenti TOS (tape operating system), di accesso molto piu lento!) es.: DOS/360 della IBM (1967-68) Software: MSDOS

52 52 Oggi per il DOS si intende il MS/DOS Nel 1980 l' IBM si apprestava a lanciare il primo PC, e scelse il microprocessore Intel 8086 (a 8/16 bit) e commissiono' a una piccola ditta software la realizzazione di un semplice sistema operativo, destinato a soppiantare limperante CP/M (control- program-monitor) basato sul microprocessore Z80 e/o l' Intel 8080; all'epoca la Apple aveva 4 anni, continuava a vendere l'Apple II (con R6502) e aveva "quasi finito" il progetto Lisa, Sinclair progettava lo Spectrum (Z80), c'era il Commodore 64,... primi home computer con videogiochi). Software: MSDOS

53 53 MS-DOS eredito molti concetti gia presenti in SO del tempo (es. CP/M, o UNIX) in versione ridotta. La ditta in questione (Microsoft) era gestita da un giovane bravo e ambizioso, Bill Gates, il quale capì subito limportanza di realizzare un sistema operativo molto compatto, (erano i vincoli del tempo per un personal), ma facilmente espandibile. MS-DOS, la versione Microsoft del DOS divenuta lo standard mondiale per i PC (1981-1998), era infatti composto da pochi programmi residenti in rom e una serie di programmi residenti su disco (con le funzionalità di un sistema operativo per sistemi con memorie di massa a dischi magnetici) Software: MSDOS

54 54 Si noti che il DOS 1.0 aveva un file system a un solo indice, per floppy da 350kbyte... nel DOS 2. fu aggiunto un file system a piu' livelli, con piu' cartelle... il DOS ha avuto successo perche' permetteva agli sviluppatori del sw a scrivere programmi per un mercato molto vasto e abbastanza standardizzato, ma.. non ha mai risolto vari problemi: * problema di protezione della memoria * multi utente - file system multi utente * interfaccia piu' amichevole Software: MSDOS

55 55 Anche se il DOS ha terminato il suo ciclo di vita, soppiantato dai sistemi a finestre (ambienti di lavoro visuali, windows systems, di cui parleremo tra breve), (la MS ha cominciato a vendere Windows agli inizi delgli anni 90, circa dopo 10 anni di vita del MSDOS) un minimo di nozioni DOS e' opportuno avere... Linterfaccia dellutente nel DOS e linterprete dei comandi (inseriti da tastiera); L'interprete comandi e' poco intelligente (i comandi devono essere scritti esattamente secondo le sue regole) ma in compenso molto compatto (e il file command) – doveva stare in memorie molto piccole (sotto 30k byte)! Fondamenti di informatica - Software

56 56 software – il DOS nota: il dos si puo' "raggiungere" (scavalcando windows) in vari modi, ad es. alla fine di una sessione [ma nelle nuove versioni di Windows non c'e' piu' ] (cosa vuoi fare: riavvia il computer spegni standby riavvia il sistema in modalita' DOS...) oppure nel menu' dei programmi vedere !

57 57 Un comando è il modo per far eseguire al computer un compito / un lavoro, come ad esempio, la copia di un file. I comandi sono istruzioni per il SO: alcuni comandi sono molto semplici: ad es. c: > date [c:> e la scritta di invito o di prompt, con cui il sistema dice: sto aspettando un tuo comando; dice anche che l'unita' disco corrente e' l' HD di nome "c:" (*) ] produce la scritta con la data corrente (quella che ce) anche c:> delete *.* e molto semplice - ma anche molto pericoloso ;-).... --------------------- (*) storicamente i primi due dischi erani i floppy A: e B: Dos - comandi DOS

58 58 La riga di comando, battuta sulla tastiera e visualizzata sul display, permette di lanciare un comando (cioe di far caricare in memoria da disco e poi eseguire un programma) il comando e seguito eventualmente da altre informazioni (dette opzioni, sono "operandi" del comando), fornite al computer per fare in modo che esso possa eseguire la funzione richiesta in modo voluto. La riga di comando termina quando viene premuto il tasto e puo essere modificata (finche non si batte enter) cancellando quanto gia scritto e poi riscrivendo. DOS: riga comando

59 59 FILE SYSTEM DOS (e così anche la totalità dei sistemi operativi attuali) organizza logicamente le informazioni memorizzate nel disco in un archivio generale virtuale detto FILE SYSTEM, costituito da una struttura composta da due entità principali: i file (archivio, insieme di registrazioni o record) i directory (cartella, indice) – non c'erano nel DOS 1 il file system e' la struttura logica della memoria di massa (la struttura fisica sono settori,tracce...) un sistema puo' avere piu' dischi, o volumi, ogni volume e' identificato da un nome, es. c: e un volume (di solito e il primo disco fisso) DOS: il file system dos

60 60 FILE (archivio) e' l' entità logica principale per l'archiviazione di dati sul calcolatore, e'un complesso di dati considerato come un oggetto unico allinterno del file system (con attributi: un nome, una posizione su disco, una data di creazione, una lunghezza (in byte) e altre informazioni Per il file system del DOS un file e' una serie di informazioni distinta da un'altra. Ogni file e'marcato anche come "tipo" di dati, ad es. un file testo potrebbe avere il nome Pollicina.txt dove Pollicina e' detto nome del file, e.txt e' detta l'estensione del file (il tipo del file), in genere: nome.estensione DOS: il file system dos

61 61 estensione: es. sto utilizzando un programma di elaborazione di testi per scrivere una lettera, il documento elettronico realizzato sara' memorizzato (per poterlo riutilizzare in seguito) in un file, ad es.: matjaz.txt oppure toni.doc.txt per un testo ASCII,.doc per un documento Word,.exe per un programma eseguibile,.dat potra' esserre usato per dati ecc nei s.o. a interfaccia grafica l'estensione e' stata conglobata nell' "icona" che rappresenta il file - l'estensione non si vede.... DOS: il file system dos: nome e estensione del file

62 62 DIRECTORY o CARTELLA o INDIRIZZARIO Entità con cui si costruiscono alberi di gruppi di file, ovvero strutture gerarchiche, dove alla radice ce appunto lindirizzario radice, e in tale indirizzario vi sono sotto-indirizzari figli o nodi intermedi, che a loro volta "contengono" o rimandano a sott-sotto- indirizzari o a file dati ecc Come in un armadio gruppi di documenti omogeneamente classificati vengono archiviati in raccoglitori opportuni, questi in cassetti ecc, per poter ritrovare un documento più semplicemente, cosi un directory intermedio e una cartella in cui vi sono documenti (file) o altre (sotto) cartelle. Fondamenti di informatica - Software

63 63 struttura dei file - file e cartelle.... C: musica classica mozart donGiovanni.txt ZauberFloete.mov libri in figura: c: e' il volume ed e' la radice del file system, in esso sono contenute due cartelle (libri e musica) e un file dati prova.txt; nella cartella musica vi sono piu' cartelle (classica, world..), nella cartella classica vi sono le cartelle mozart e rossini, in mozart vi sono due file... ad es. il nome completo di donGiovanni.txt e' c:/musica/classica/mozart/donGiovanni.txt prova.txt world rossini

64 64 posizione del file nel file system o "path name" Il nome del file da solo non basta a identificare un file, come per un indirizzo di una persona devo dare... ""nome,cognome,isolato,citta',regione,stato..."" cosi' per individuare un file si deve dare il "nome" completo, ovvero il percorso delle cartelle dalla cartella radice (contiene tutti i file) + nome + estensione) univoco, ad esempio: c:\storia\sumeri\algoritmi\volume.txt il percorso e' c:\storia\sumeri\algoritmi\, il nome del file e' volume.txt DOS: il file system dos: nome e path del file

65 65 posizione del file nel file system o "path name" ad esempio: c:\storia\sumeri\algoritmi\prova.txt ==>> c:\storia\sumeri\algoritmi\prova.txt e' il nome del file completo file system: path e cartella di lavoro C: storia sumeri algoritmi scrittura prova.txt cane.doc chimica greci

66 66 per individuare un file devo dire dove sta; se pero' una cartella e' selezionata come cartella "corrente" o "di lavoro" allora all'interno della cartella corrente basta dare il nome ed e' sottinteso "in cartella corrente" qui sotto "algoritmi" e' la cartella corrente, prova.txt e' il nome del file in algoritmi: file system: path e cartella di lavoro C: storia sumeri algoritmi scrittura prova.txt cane.doc chimica greci

67 67 chi crea un file nuovo ? alcuni sono creati direttamente dall'utente (es copia un file), altri sono creati con le applicazioni, come un elaboratore di testi (wordprocessor), oppure da un compiler (traduttore di programmi) ecc In ogni caso il DOS deve sapere dove c'e' spazio libero per memorizzare un nuovo file - un file system deve gestire lo spazio libero/occupato sul disco! I file creati da un un compilatore, da un linker, da un wordprocessor contengono in generale codici illeggibili (istruzioni di formattazione, istruzioni in linguaggio macchina,...) ed altre informazioni, usate dal calcolatore stesso e/o necessarie affinché il sistema e le applicazioni funzionino in modo corretto file system: creazione file nuovo: testi e file binari

68 68 Per visualizzare il modo in cui DOS elenca i file, si può usare il comando DIR (elenco contenuto directory), digitando i seguenti comandi al prompt dei comandi (ricordandosi di premere dopo aver digitato ogni comando) [n.b.: sta per UN tasto !] C: cd \DOS (cambia directory/cartella corrente) C: dir (dimmi cosa c'e' nel dirett.corrente) Le informazioni che ora scorrono velocemente sullo schermo sono lelenco dei programmi di utilità forniti con DOS. Tutti i programmi di utilità (memorizzati in singoli file) forniti con DOS vengono archiviati in un'unica directory \DOS nel volume C: Fondamenti di informatica - Software

69 69 È probabile che sul calcolatore in uso verranno caricati centinaia o migliaia di file e quindi potrà diventare difficile ritrovarli al momento necessario. Per organizzare meglio i file allora si raggruppano mediante le directory. I programmi di utilita nel DOS sono messi in C:\DOS (la barra \ separa i nomi) Se l'utente desidera individuare uno di questi file, dovrà cercarli nella directory avente come path C:\DOS. Fondamenti di informatica - Software

70 70 Fondamenti di informatica - Software una directory e'creata dall'utente o da un'applicazione: md (make directory) rd (remove directory) es voglio creare una cartella esempi alla radice del C:\ eseguo: cd c:\ md esempi cd c:\esempi ora la cartella corrente e' c:\esempi ! se voglio eliminare tale cartella basta eseguire il comando remove directory : rd esempi

71 71 DOS indica la directory di lavoro visualizzandone il nome al prompt dei comandi. Il prompt dei comandi visualizzato di seguito, ad esempio, indica che la directory di lavoro e' DOS. C: \DOS> mentre C:\partec\introd> indica che il direttorio corrente e' la cartella introd che sta nella cartella partec che sta sul disco C: La directory di lavoro è detta directory corrente. Conoscere la directory corrente aiuta non solo a trovare i file, ma rende anche più semplice l'eventuale passaggio ad un'altra directory. Fondamenti di informatica - Software

72 72 DOS permette all'utente di trovare ed utilizzare i file presenti in qualsiasi directory, qualunque sia la directory corrente. Ad es. se inserisco il comando: c:\DOS>c:\mio\giochi\superfigo.exe (il comando e inclinato) allora il DOS va a cercare il programma superfigo.exe nella cartella (nel directory) c:\mio e da qui nella sottocartella giochi, poi lo carica in memoria e lo esegue... Se i comandi DOS vengono applicati ai file presenti nella directory corrente, saranno più brevi. in ambiente a finestre questi comandi sono molto piu' immediati: per passare da una cartella all'altra basta selezionare la cartella voluta... Fondamenti di informatica - Software

73 73 dos - saggini nota: un volume puo' corrispondere ad un disco fisico oppure ad una parte di un disco fisico (magari di qualche altra macchina collegata in rete con la nostra) ad es. la procedura di inizializzazione della connessione di un utente "studente" al server di ingegneria rende disponibili due "dischi" virtuali nell'ambiente del laboratorio della facolta' di ingegneria che sono S: (serving4, con i programmi disponibili agli studenti) H: (sempre su serving4, la memoria privata di uno studente sul disco del server) X: (su serving4, mem. privata di studente su server) (situazione 2005 ;-)

74 74 Le directory possono contenere altre directory, così da costruire un albero di directory. Una directory contenuta in un'altra directory è detta sottodirectory. La creazione di sottodirectory permette di catalogare i file in modo più efficace. Si immagini che la directory sia una grossa scatola, al cui interno sono contenute scatole più piccole (sottodirectory): questa successione può proseguire all'infinito (vi sono sottodirectory della sottodirectory, ecc.). I file possono essere contenuti in qualsiasi livello di questa successione. Tutte le directory sono sottodirectory, tranne la directory principale o root (radice) dell'albero di directory. Fondamenti di informatica - Software

75 75 ROOT Fondamenti di informatica - Software CHIM. GIOCH DISCH RETEPACM CLASSI ZAPPA

76 76 La directory principale è il punto di partenza di tutte le altre directory allinterno di un disco (o volume). È rappresentata da una barra rovesciata (ad es. A:\). (A: e un volume, di solito un floppy) Quando la directory principale è la directory corrente, il prompt dei comandi avrà il seguente aspetto: C:\> I1 prompt illustrato sopra indica che ci si trova nella directory principale della unità C. Dato che la directory principale costituisce la base di tutte le altre directory, non è possibile eliminarla. Si consiglia di archiviare nella directory principale il minor numero possibile di file. Fondamenti di informatica - Software

77 77 Esiste comunque un numero massimo di file che la directory principale può contenere e in ogni caso e preferibile utilizzare le directory per meglio organizzare l'archiviazione dei file. Questa è la ragione per cui, all'avvio del sistema, appare il seguente prompt dei comandi: C:\> Il prompt dei comandi mostrato sopra indica che l'unità C è l'unità corrente (volume c:), e che la directory principale, rappresentata da una barra rovesciata (\), è la directory corrente. Fondamenti di informatica - Software

78 78 Come una directory è costituita da un gruppo di file, cosi un'unità disco (o volume) è costituita da un gruppo di directory organizzato ad albero (tree): il file system. Esso è l'insieme organizzato di tutte le directory presenti su un disco, anzi, su tutti i dischi del sistema. Se un sistema ha piu unita disco, oppure se lunita disco e organizzata in piu parti (partizioni) logicamente separate, oppure se abbiamo accesso ad un disco remoto su rete (file server), o un unita CD ecc - ogni unita e ogni partizione sono un volume del file system. Fondamenti di informatica - Software

79 79 Volume (Unità Disco) Il nome di un'unità in DOS è rappresentato da una lettera singola maiuscola (A:, B:,..., Z:) La prima unità disco floppy è l'unità A, la seconda unità disco floppy, se presente, è l'unità B. Il disco rigido, o almeno parte di esso (si parla di partizione del disco), è detto unità C. Fondamenti di informatica - Software

80 80 Se l'unità corrente è l'unità A e la directory corrente dell'unità è ESEMPIO, il prompt dei comandi avrà il seguente aspetto: A:\ESEMPIO> Se sul sistema è presente più di un disco rigido, oppure se si utilizzano il CD-ROM o una rete, saranno disponibili più lettere di unità (D:, E: e cosi via). ogni unità, di qualunque tipo essa sia, contiene una directory principale. Fondamenti di informatica - Software

81 81 Fondamenti di informatica - Software Comandi DOS residenti: Alcuni comandi DOS che sono spesso utilizzati vengono custoditi nella memoria del sistema per un accesso rapido. Vengono caricati da un file speciale, chiamato command.com (in cui risiede parte del S.O.) Ciò rende più semplice la loro esecuzione. Questi comandi sono detti residenti appunto perché risiedono sempre nella memoria primaria del computer. Non sono molti, poiché altrimenti occuperebbero troppo spazio in memoria. Questi comandi possono essere lanciati quando ci si trova al prompt di DOS. Non è necessario spostarsi in un drive o directory particolare per eseguirli.

82 82 Comandi esterni: Alcuni comandi usati con minor frequenza (oppure troppo grandi) non vengono caricati automaticamente in memoria. Sono chiamati comandi esterni, e vengono memorizzati su disco. Qualunque programma in linguaggio macchina (versione direttamente eseguibile) puo essere attivato in questo modo - se il DOS riesce a trovarlo Sono caratterizzati da estensione.com o.exe. es.: scan.exe edit.com format.com diskcopy.com xcopy.exe grep.com... Fondamenti di informatica - Software

83 83 se inserisco un comando esterno, il DOS recupera il file di comando dal disco (lo legge e lo carica in memoria centrale) e lo esegue, ad es: c:\ > edit va in esecuzione il programma edit c:\> tria2 va in esecuzione il programma tria2.exe – SE si trova nella cartella corrente oppure in una delle cartelle indicate nell'elenco (disponibile al sistema e modificabile dall'utente) dei "percorsi" o "path" privilegiati da provare (se invece tria2.exe non c'e' in alcuna cartella [corrente e elencata nei path], avremo un messaggio di errore !) Fondamenti di informatica - Software

84 84 Es.: BACKUP, RESTORE e DISKCOPY sono comandi esterni, e non potranno agire se DOS non ha accesso alla directory contenente i file di comando (di solito \DOS). La memoria utilizzata dal comando viene liberata quando esso ha terminato il suo compito (oggi nei sistemi a finestre e' abituale avere piu' programmi residenti in memoria, pronti per essere eseguiti / ripresi a meta' esecuzione )

85 85 DOS (di solito) viene configurato in modo tale che sia consentito allutente di reperire sempre i comandi esterni se questi non si trovano nella directory corrente (tramite la variabile di sistema PATH che lista lelenco dei percorsi di ricerca delle applicazioni che si vogliono usare di solito. In risposta al comando path C:\path otteniamo ad es.: PATH=C:\DOS;C:\JDK116\BIN;C:\BORLAND\BIN che mostra i direttori dove il DOS andra a cercare un comando (e se non lo trova, dira comando non valido Fondamenti di informatica - Software

86 86 Lelenco dei comandi esterni si trova nei manuali..., e si rimanda all'apposito comando di aiuto HELP talvolta presente nei programmi per la spiegazione su che cosa facciano caso per caso.... non è compito di questo testo entrare nel dettaglio del funzionamento dei singoli comandi DOS, non appena avete a disposizione un PC spendete un po di tempo a provarli.... Fondamenti di informatica - Software

87 87 quanto detto vale per il dos, ma con qualche piccola modifica vale anche per unix o linux senza interfaccia grafica. il modo di attivare dei programmi (cioe di dare dei comandi) in un sistema a finestre e ben diverso, MA i concetti per quanto riguarda la struttura dei file e delle cartelle sono gli stessi... lutente in questo caso ha a disposizione dei menu di scelte possibili, e si limita a selezionare una di esse. vedremo meglio piu in la Fondamenti di informatica - Software

88 88 software applicativo Con il termine software applicativo si intendono linsieme dei programmi che permettono di specializzare il funzionamento dell'elaboratore per consentire di svolgere al meglio quel particolare compito che l'utente richiede. I software tools o strumenti software (programmi di utilita) sono logicamente esterni al sistema operativo così come viene rilasciato dalla casa costruttrice, e sono un particolare tipo di software applicativo. Fondamenti di informatica - Software

89 89 Si usano i termini software tool o utility quando si indicano quei programmi, ( esterni al sistema operativo) che sono di corredo a particolari dispositivi (come le periferiche, esempio i tool di controllo sonoro sulle schede MIDI), o che sono molto generali (quali ad esempio PCTOOLS e Norton Utilities, che permettono la manutenzione corretta del sistema MS-DOS (attualmente (2002) in svendita su rete...) Fondamenti di informatica - Software

90 90 Fondamenti di informatica - Software Si parla invece di package quando si indica una collezione di programmi e strumenti atti a un particolare scopo (ad es. wordprocessing, fogli elettronici o spreadsheets, ecc.). Lo scopo principale dei linguaggi di programmazione (e degli ambienti di sviluppo software associati) è quello di permettere che lutente - programmatore sia in grado di realizzare nuovo software applicativo o adattare uno già realizzato, al fine di risolvere i problemi dettati dalle esigenze dellutente stesso.

91 91 Fondamenti di informatica - Software fine del capitolo di introduzione al software ai s.o. al dos segue il capitolo di introduzione ai linguaggi e grammatiche, e poi algoritmi e infine il linguaggio C


Scaricare ppt "1 Lambiente SOFTWARE Matjaž Hmeljak. 2 software - presentazione per definizione un calcolatore sa eseguire alcune istruzioni dell'insieme di istruzioni."

Presentazioni simili


Annunci Google