La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

L’ambiente SOFTWARE Matjaž Hmeljak

Presentazioni simili


Presentazione sul tema: "L’ambiente SOFTWARE Matjaž Hmeljak"— Transcript della presentazione:

1 L’ambiente SOFTWARE Matjaž Hmeljak

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; l’insieme dei programmi preparati per un calcolatore = software

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 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,... 24

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 all’utente... per editare filmati video 25

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, una lavatrice, un frigo, un telefonino, una impianto di riscaldamento, una serra, dei semafori, un allevamento di pesci, tutti gli impianti di casa, auto, aereo, nave, ... per aiutare le decisioni di un manager, di un medico, ... per gestire una comunicazione tra due o piu' utenti della rete: audio (una chiacchierata tra due), video (video conferenza), video in spazio virtuale 3D ecc ecc 26

7 software: fisso e attivabile su richiesta
l’insieme 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 35

8 software : base/programmazione/applicativi
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, ma di solito 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.

9 software : base/programmazione/applicativi
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”,..) permette 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.

10 software base: sistema operativo = ambiente di lavoro
SOFTWARE DI BASE = SISTEMA OPERATIVO una parte importante dei programmi definisce l’ambiente di lavoro (interfaccia uomo-macchina) del calcolatore, determinato dal software di base cioe’ dal “sistema operativo”: calcolatori diversi ma con lo stesso sistema operativo sono utilizzabili allo stesso modo.

11 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 (HW e SW) componenti il sistema di elaborazione. singole parti del SO gestiscono le “risorse” del calcolatore (risorse: HW e anche SW). 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” ...

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

13 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”

14 un sistema operativo per piu' macchine
** 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)

15 piu' sistemi operativi su una macchina
** Viceversa, sulla stessa macchina possiamo installare diversi sistemi operativi: ad es. su un PC 486 o con un Pentium possiamo installare il sistema MSDOS, il sistema Windows95, il sistema OS/2, il sistema Linux, il sistema Oberon, il sistema Windows XP e altri Per ogni sistema operativo X la macchina si presenta come “la macchina X”

16 puo' esserci un livello di programmi sottostante al software di base:
software base 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 l’hardware vero e proprio e il software utente, viene chiamata firmware.

17 parte di software permanentemente registrata
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)

18 bootstrap firmware (ROM) è la parte del nucleo centrale (kernel) 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 all’accensione) 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.

19 x unita’ centrale [provare ad associare
s.o.: gestione risorse 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

20 Il sistema operativo (S.O.) = i programmi di gestione del calcolatore,
s.o.: kernel e shell 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)

21 s.o.: driver nota: ogni risorsa fisica e' gestita a basso livello da un programma detto "driver" della risorsa, 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)

22 Lo schema logico sottostante, detto comunemente
s.o.: modello a strati 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. SW di base Sistema operativo Shell Database Programmi HW utente Fogli Kernel Elettronici ecc Applicativi ... di rete Schema concettuale di un sistema operativo: ogni strato usa lo strato sottostante, non altri...

23 gestione di una risorsa
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

24 il nucleo del SO gestisce l’ UC la MC i processi
nucleo o kernel del s.o. il nucleo del SO gestisce l’ UC la MC i processi l’ UC - l’unita’ 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 P2 in attesa di u.c. P2 in esecuzione processo 1 processo 2 processo 3 tempo dT

25 il nucleo del SO gestisce l’ UC la MC i processi
nucleo o kernel del s.o. il nucleo del SO gestisce l’ 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

26 il S.O. come gestore risorse
il nucleo del SO gestisce l’ 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 dell’istruzione 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)

27 processo = programma + le risorse fisiche per eseguirlo +
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)...

28 il S.O. come gestore risorse
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,

29 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’ dall’altro, 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 ...

30 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 l’uso della risorsa, con criteri di equita’ e con varie priorita’ (ogni processo in attesa di una risorsa deve ottenere la risorsa entro tempi ragionevoli)

31 il S.O. come gestore risorse
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 l’uso delle risorse da parte dei processi (programmi, utenti) (risorse assegnate ai processi) 4. riprende in carico le risorse al rilascio

32 il SO come interfaccia SPORTELLO CHIUSO UTENTE INTERFACCIA CALCOLATORE

33 il SO come interfaccia tra calcolatore e utente
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.

34 interfaccia a riga comandi
come comunica l’utente 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) ?...

35 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 >

36 interfaccia a riga comandi
Dopo il segnale di attenzione (prompt) l’utente scrive il suo comando (richiesta al SO) sulla stessa riga: ( in corsivo e rosso quanto scritto dall’utente ) 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:

37 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 (``POSIX.2''). DIAGNOSTICS The time utility shall exit with one of the following values: An error occurred in the time utility. The utility was found but could not be invoked. The utility could not be found. Otherwise, the exit status of time shall be that of utility.

38 interfaccia a riga comandi
Dopo il segnale di attenzione (prompt) l’utente scrive il suo comando (richiesta al SO) sulla stessa riga: ( in corsivo e rosso quanto scritto dall’utente ) 29/02/99 07:45:56 C:> time 19:00:00 29/02/99 19:00:00 C:> l’utente 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 ((amministratore o no))

39 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...

40 interfaccia a riga comandi - date, time
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

41 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

42 il sistema operativo fornisce un menu' : scegli cosa fare: controllo
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 (Xerox Palo Alto e SmallTalk) scegli cosa fare: sospendi logout spegni cambia utente

43 l'interfaccia "guidata" a menu' (per usare il sistema )
menu' e mouse 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; l’utente 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]

44 (... nel 1981 l’IBM realizza il PC con MSDOS e 8088)
menu e mouse ... storia Sistemi dove l’utente interagisce con il SO mediante un cursore sono detti sistemi a finestre con menu'a tendina tra i primi sistemi a finestre realizzati nel 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 l’IBM 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) (l’IBM esce con il PC/AT con il 286) ... e poi (dopo...) si ispirarono l'Amiga, l'Atari, la MS per il sistema Windows 3.0, l'IBM con OS/2,... ritorneremo su entrambe le modalita’ di “comandare” un sistema

45 risorse fisiche : memoria, periferiche, CPU.
SO - riassunto 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.

46 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) ...

47 Fondamenti di informatica - Software
UN SISTEMA OPERATIVO ... PICCOLO, vecchio e brutto : “il” DOS DOS = Disk Operating System la parola DOS significa letteralmente “Sistema operativo per sistemi a dischi”. Il termine DOS risale agli anni 64-66, 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 ( )

48 Fondamenti di informatica - Software
Oggi “ 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 commissionò a una piccola ditta software la realizzazione di un semplice sistema operativo, destinato a soppiantare l’imperante CP/M (control-program-monitor) basato sul microprocessore Z80 e/o l' Intel 8080; all'epoca la Apple aveva 5 anni, continuava a vendere l'Apple II (con R6502) e progettava il Lisa, Sinclair progettava lo Spectrum (Z80) ... erano i primi home computer con videogiochi, come il Commodore 64?).

49 Fondamenti di informatica - Software
MS-DOS eredito’ molti concetti gia’ presenti in SO del tempo, come il CP/M, o l’UNIX in versione ridotta. La ditta in questione (Microsoft) era gestita da un “giovane bravo e ambizioso”, Bill Gates, il quale capì subito l’importanza 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 ( ), 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)

50 Fondamenti di informatica - Software
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), un minimo di nozioni DOS e' opportuno avere ... L’interfaccia dell’utente nel DOS e’ l’interprete dei comandi (inseriti da tastiera); L' interprete comandi non e' molto 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 ... ).

51 riavvia il sistema in modalita' DOS ...) oppure
software – il DOS nota: il dos si puo' "raggiungere" (scavalcando windows) in vari modi, ad es. alla fine di una sessione (cosa vuoi fare: riavvia il computer spegni standby riavvia il sistema in modalita' DOS ...) oppure nel menu' dei programmi vedere !

52 Fondamenti di informatica - Software
Un comando è il modo con cui l'utente fa sì che il computer esegua un compito particolare, come ad esempio, la copia di un file. Alcuni comandi hanno effetto su interi dischi, oppure su un file specifico o su di un gruppo di 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 c’e’) anche c:> delete *.* e’ molto semplice - ma anche molto pericoloso...

53 Fondamenti di informatica - Software
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 <Enter> e puo’ essere modificata (finche’ non si batte enter) cancellando quanto gia’ scritto e poi riscrivendo.

54 Fondamenti di informatica - Software
FILE SYSTEM DOS (e così anche la totalità dei sistemi operativi attuali) organizza logicamente le informazioni memorizzate nel disco in una sorta di “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 In particolare, nel DOS i file system rappresentano la strutturazione logica della memoria di massa - disco, e sono chiamati volumi, ad es.: c: e’ un volume (di solito e’ il primo disco fisso)

55 Fondamenti di informatica - Software
FILE (archivio) Entità logica principale per l'archiviazione di dati sul calcolatore, è un qualunque complesso di dati che viene considerato come un oggetto univoco all’interno del file system (ha un nome, una posizione su disco, e altre inf) Un file permette al DOS di distinguere una serie di informazioni da un'altra. Se, ad esempio, si sta utilizzando un programma di elaborazione di testi per scrivere una lettera, il documento elettronico realizzato verrà memorizzato (per poterlo riutilizzare in seguito) in un file, ad es.: matjaz.txt oppure toni.doc [ nome.estensione, l’estensione indica il “tipo” di file ]

56 Fondamenti di informatica - Software
Ogni file ha un posto all’interno del file system (percorso, o path), (vedremo tra poco cosa significa) un nome (name) che lo distingue, nel nome c'e una estensione (extension) che indica il tipo di informazioni contenute ( .txt per un testo ASCII, .doc per un documento Word, .exe per un programma eseguibile, ecc.) (in windows non si vede) L’identificazione di un file è realizzata mediante un “pathname” (percorso + 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

57 Fondamenti di informatica - Software
chi crea un file nuovo ? alcuni file sono creati dall'utente (copia un file, ...) alcuni vengono forniti con il DOS (con il S.O.usato...) altri con le applicazioni, come l'elaboratore di testi (wordprocessor), 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

58 Fondamenti di informatica - Software
DIRECTORY o CARTELLA o INDIRIZZARIO Entità con cui si costruiscono “alberi” di gruppi di file, ovvero strutture gerarchiche, dove alla radice c’e’ appunto l’indirizzario radice, e in tale indirizzario vi sono sotto-indirizzari “figli” o nodi intermedi, che a loro volta ... Se la radice = “armadio”, come in un armadio gruppi di documenti omogeneamente classificati vengono archiviati in raccoglitori opportuni, per poter ritrovare un documento più semplicemente, cosi’ un directory intermedio e’ una “cartella” in cui vi sono documenti (file) o altre (sotto) cartelle.

59 Fondamenti di informatica - Software
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 <Enter> dopo aver digitato ogni comando) [n.b.: <enter> sta per UN tasto !] C: cd \DOS <enter> (cambia directory/cartella corrente) C: dir <enter> (dimmi cosa c'e' nel dirett.corrente) Le informazioni che ora scorrono velocemente sullo schermo sono l’elenco 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:

60 Fondamenti di informatica - Software
È 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.

61 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 rd esempi

62 Fondamenti di informatica - Software
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.

63 Fondamenti di informatica - Software
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...

64 nota: un volume puo' corrispondere ad un disco fisico
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)

65 Fondamenti di informatica - Software
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.

66 Fondamenti di informatica - Software
ROOT GIOCH CHIM. DISCH PACM RETE CLASSI ZAPPA

67 Fondamenti di informatica - Software
La directory principale è il punto di partenza di tutte le altre directory all’interno 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.

68 Fondamenti di informatica - Software
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.

69 Fondamenti di informatica - Software
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 l’unita’ 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.

70 Fondamenti di informatica - Software
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.

71 Fondamenti di informatica - Software
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.

72 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.

73 Fondamenti di informatica - Software
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

74 Fondamenti di informatica - Software
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 !)

75 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 )

76 Fondamenti di informatica - Software
DOS (di solito) viene configurato in modo tale che sia consentito all’utente di reperire sempre i comandi esterni se questi non si trovano nella directory corrente (tramite la “variabile di sistema” PATH che lista l’elenco 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”

77 Fondamenti di informatica - Software
L’elenco 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....

78 Fondamenti di informatica - Software
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... l’utente in questo caso ha a disposizione dei menu’ di scelte possibili, e si limita a selezionare una di esse. vedremo meglio piu’ in la’

79 Fondamenti di informatica - Software
software applicativo Con il termine software applicativo si intendono l’insieme 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.

80 Fondamenti di informatica - Software
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 ...)

81 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 l’utente - programmatore sia in grado di realizzare nuovo software applicativo o adattare uno già realizzato, al fine di risolvere i problemi dettati dalle esigenze dell’utente stesso.

82 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 "L’ambiente SOFTWARE Matjaž Hmeljak"

Presentazioni simili


Annunci Google