L’ambiente SOFTWARE Matjaž Hmeljak

Slides:



Advertisements
Presentazioni simili
1 Introduzione ai calcolatori Parte II Software di base.
Advertisements

Linguaggi di programmazione
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Interazione Uomo - Macchina
AVVIARE IL COMPUTER WINDOWS ‘98 Queta fase è definita BOOTSTRAP
STRUTTURA DEL PERSONAL COMPUTER
INFORMATICA Trattamento automatizzato dellinformazione.
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
CONOSCIAMO IL WINDOWS '95.
Elaboratore e Sistemi Operativo
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2000/2001.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Sistemi operativi. Informatica 1 SCICO - a.a. 2010/11 2 Insieme di programmi per gestire le risorse del calcolatore – Risorse: memoria di massa, tastiera.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
FONDAMENTI DI INFORMATICA
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Struttura dei sistemi operativi (panoramica)
Linguaggi di programmazione
Laboratorio di Informatica
1 Lambiente SOFTWARE Matjaž Hmeljak. 2 software - presentazione per definizione un calcolatore sa eseguire alcune istruzioni dell'insieme di istruzioni.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Introduzione alle basi di dati
I SISTEMI OPERATIVI.
Informatica per medici
DBMS ( Database Management System)
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Il computer: struttura fisica e struttura logica
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Concetti di base sul Software dei PC Unitre Anno
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il Sistema Operativo (1)
Il Sistema Operativo: il File System
WORD Lezione n. 1 Aprire il programma Aprire un documento esistente
Di Luca Santucci 5° Programmatori
Internet Explorer I preferiti Stampa di pagine web Salvataggio di pagine web Copia di elementi di pagine web in altri applicativi.
MS-DOS è il sistema operativo, Come praticamente tutti i sistemi operativi per i computer del periodo, l'MS- DOS era un sistema operativo mono utente.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
USO DEL COMPUTER E GESTIONE DEI FILE
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
I sistemi operativi1 CONCETTI FONDAMENTALI l HARDWARE: il componente “materiale” di un sistema informatico l SOFTWARE: il componente “immateriale” di un.
Introduzione a Windows Lezione 2 Riccardo Sama' Copyright  Riccardo Sama'
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
I FILE I File sono l’ unità base di informazione nell’interazione tra utente e sistema operativo I File sono l’ unità base di informazione nell’interazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Sintesi da pag. 8 a pag. 21. L’ Informatica è la scienza che studia il trattamento automatico dell’informazione. Deriva dal francese «Informatique»
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
I sistemi operativi Funzioni principali e caratteristiche.
La struttura di un computer
Conosciamo…il computer
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Struttura del Computer
I L SO MS DOS … una breve guida…. C OS ’ È UN S ISTEMA OPERATIVO Un sistema operativo (SO) è un insieme di programmi che agisce come intermediario tra.
Transcript della presentazione:

L’ambiente SOFTWARE Matjaž Hmeljak

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

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:

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

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

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

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

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.

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.

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.

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

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

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”

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)

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”

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.

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)

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.

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

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)

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)

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

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

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

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

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)

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

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,

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

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)

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

il SO come interfaccia SPORTELLO CHIUSO UTENTE INTERFACCIA CALCOLATORE

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.

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

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 >

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:

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.

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

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

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

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

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

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]

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

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.

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

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 (1967-68)

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

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

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

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 !

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

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.

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)

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 ]

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

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

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.

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:

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.

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

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.

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

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)

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.

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

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.

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.

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.

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.

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.

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.

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

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

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 )

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”

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

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’

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.

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

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.

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