























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
riassunto slide e appunti della lezione. dal pdf 6 al 11.
Tipologia: Dispense
1 / 31
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!
























di FÈIFHIÈIHI DRIVER OFTWARE VIDEOSCRITTURA software applicativo
BASIDIDATI PRESENTAZIONE FOTORITOCCO UTILITIES Si possono distinguere due categorie di software: IL SOFTWARE DI BASE E IL SOFTWARE APPLICATIVO. Applicazione per giocare; applicazione per analizzare i dati; pagine web. Il termine software indica la parte intangibile del computer (in contrasto con quella fisica definita hardware) scritte in Binario. Noi oggi scriviamo in binario? noi utilizziamo linguaggi più vicini all’uomo detti ad alto livello poi tradotti in codice binario. Programma: (programma=insieme di cifre binarie, che sono istruzioni che la macchina segue) La forma più semplice di software è il codice binario 010101001001 – le istruzioni che esegue la CPU sono costituita dai programmi, ovvero dall’insiemi di istruzioni che il computer esegue. Insieme di tutti i programmi eseguiti nel Computer:
Istruzione Rect (100,100,300,200) (disegna un rettangolo). Es: Viene trasformata in tante sequenze di 01010 che la CPU comprende ed esegue. Sono segnali elettrici che scorrono nei circuiti (componenti del Computer) Il Sistema Operativo è Un Software di Base : Software che gestisce e controlla automaticamente le risorse del computer permettendone il funzionamento. Gestisce il computer senza che l’utente sia consapevole di quello che sta accadendo. Viene caricato nella memoria d’uso all’atto dell’accensione della macchina. Il software di base è necessario al computer per funzionare E’ costituito dall’insieme dei programmi che hanno lo scopo di rendere operativo il computer gestendone le risorse di sistema software di base è strettamente legato alle caratteristiche dell’hardware. SOFTWARE DI BASE, ( software di sistema) E’ composto dai programmi che permettono di utilizzare il computer per svolgere determinati compiti specifici. Rientrano in questa categoria i programmi per la videoscrittura, la posta elettronica, i fogli elettronici, i programmi di grafica, le applicazioni gestionali, i programmi antivirus, programmi per la compressione SOFTWARE APPLICATIVO Tutti questi programmi possono essere installati sul computer solamente dopo l’installazione del sistema operativo. Il software applicativo è necessario all’utente per lavorare. dei files, etc.
I programmi shareware alla scadenza si comportano in maniera diversa: (ossia software a sorgente aperto) è stato sviluppato da una comunità aperta di ricercatori e di spesso sono versioni semplificate di prodotti a pagamento, oppure versioni di lancio per nuovi software. Quando si acquista un prodotto software si ottiene la End-user license agreement (EULA), che consente di utilizzarlo liberamente per la propria attività.
I programmi shareware riacquistano la completa funzionalità (e legalità) solo mediante una Software open source: i sorgenti che lo compongono possono oltre che essere utilizzati anche essere modificati a proprio piacimento per ottenere un risultato più adatto alle proprie esigenze, rispettando pro alcune regole.
Quando la memoria non è più sufficiente per contenere completamente tutte le istruzioni dei vari processi è possibile “simulare” una memoria più grande mantenendo nella memoria di lavoro (RAM) solo le istruzioni ed i dati che servono in quel momento. Ciascun programma in esecuzione può attivare più processi (task): nei sistemi operativi Windows è possibile visualizzare l’elenco dei task attivi mediante il Task Manager. 3- GESTORE DELLA MEMORIA DI MASSA:(file sistem) è quel modulo del sistema operativo che si occupa di gestire le informazioni memorizzate sui dispositivi di memoria di massa. Si occupa della lettura/scrittura dei dati e deve garantire la correttezza e la coerenza delle informazioni. La gestisce della memorizzazione dei dati sui dispositivi di memoria di massa prende il nome di file sistem. Esistono diversi tipi di file system (a seconda dei sistemi operativi), ma quasi tutti i sistemi operativi utilizzano un’organizzazione dei files di tipo gerarchica, dove l’elemento utilizzato per raggruppare più files è costituito dalla “cartella” (directory). organizzarne il contenuto, (spostando/copiando/cancellando/rinominando files e cartelle). Sui dischi di un PC si possono trovare decine di migliaia di files: se non ci fosse nessun criterio di ordinamento sarebbe molto complicato riuscire a rintracciare ogni volta il file che interessa. occupa anche di gestire la cooperazione tra le varie CPU presenti nel La gestione dei processi avviene in maniera differente in base al tipo di utilizzo a cui il sistema è rivolto ma il programma che si occupa dell’assegnazione del microprocessore tra i vari processi attivi, decidendone l’avvicendamento, è comunemente chiamato scheduler. Nei computer dotati di multi-processore (con più CPU), lo scheduler si sistema. 1-GESTORE DEI PROCESSI: E ’ il modulo che si occupa di controllare l’avvio , l’interruzione e la chiusura dei vari processi (task) caricando i relativi programmi in memoria. Tutte le altre istruzioni del programma nonché i dati, che in quel momento non servono, sono tolti dalla memoria centrale e parcheggiati sul disco nella cosiddetta area di swap(scambio/baratto) che costituisce la memoria virtuale. Con tale sistema l’esecuzione dei programma rallenta notevolmente. La complessività del gestore della memoria dipende dal tipo di sistema operativo. Nei sistemi multi-tasking più programmi possono essere caricati in memoria contemporaneamente. 2- GESTORE DELLA MEMORIA DI LAVORO: è quel modulo del sistema operativo che si occupa di assegnare la memoria ai vari processi. ( Per eseguire un processo è necessario che il relativo programma sia caricato nella memoria RAM). Il sistema operativo fornisce all’utente tutti i programmi necessari per visualizzare l’indice dei dischi ed Molti sistemi operativi (fra cui windows) includono nel nome una sigla aggiuntiva detta estensione che caratterizza il tipo di file. L’estensione viene separata con un punto dal resto del nome e permette in genere di comprendere la categoria a cui quel file appartiene. Il file system permette di creare dei “raccoglitori” (cartelle) che consentono la gestione dei files in gruppi logicamente omogenei. Ogni cartella può contenere altre sottocartelle e così via, come un gioco di scatole cinesi. Ogni file e ogni cartella devono possedere un nome che li distingua dagli altri.
Distinguiamo S.O. con interfaccia a carattere e S.O. con interfaccia grafica. Nei sistemi operativi con interfaccia a carattere detti anche a linea di comando (Command Line Interface, CLI), l’interazione con l’utente avviene principalmente attraverso la digitazione di appositi comandi impartiti tramite tastiera. Sullo schermo (di un colore solitamente scuro uniforme) non compare nessun oggetto grafico e tutti i comandi devono essere digitati da tastiera Ricordiamo l’MS-DOS(Microsoft Disk Operating System) diffuso tra i PC fino all’avvento del SO Microsoft Windows 3.1. L’ESTENSIONE viene separata con un punto dal resto del nome e permette in genre di comprendere la categoria a cui quel file appartiene. ◦ (^) le estensioni. avi. mpg .mp4 appartengono a filmati che ovviamente possono contenere video e audio ◦ (^) le estensioni. jpg. gif. bmp .png indicano immagini; ◦ (^) con estensione. htm e. html sono pagine web; ◦ (^) con estensione. exe sono programmi eseguibili; 5-GESTORE DELL’INTERFACCIA UTENTE: Ha il compito di implementare i meccanismi per rendere agevole l’utilizzo del sistema da parte degli utenti. (l’insieme dei meccanismi di interazione tra il computer e l’utente prende il nome di interfaccia utente) ◦ (^) con estensione. doc .xls .mdb .ppt sono file rispettivamente di Word, Excel, Access e PowerPoint; Il controllo delle unità stesse avviene attraverso speciali programmi detti driver spesso realizzati dai produttori dei dispositivi stessi. es:i files 4-GESTORE DELLE UNITA DI INPUT/OUTPUT: E’ quel modulo del sistema operativo che si occupa di gestire la ricezione e la trasmissione dei dati attraverso tutte le unità di input/output assegnandole ai processi che ne fanno richiesta. Nei sistemi operativi con interfaccia grafica(Graphical User Interface, GUI) l’interazione avviene tramite icone e finestre, utilizzando un mouse che comanda un puntatore all’interno di un’interfaccia grafica strutturata a finestre Sono chiamati ambienti user friendly (amichevoli verso l’utente). ◦ (^) l’estensione. wav .mp3 indica files audio; ◦ (^) con estensione. txt sono documenti di testo semplice;
slide Quando si scambiano dati, deve essere noto il tipo di codifica utilizzata. La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue. Lo standard di codifica più diffuso è il codice ASCII.
Per ciò dobbiamo inserire nella codifica?
I caratteridicontrollo 2 caratteri (^) stampabili Ellman TABELLA ASCII^ IN NOTAZIONEBINARIA Codifica parola “Ciao”: All’interno del computer, “Ciao” è scritta così: 01000011 01101001 01100001 01101111 Hanno funzioni speciali: si ottengono o contrasti specifici o con una sequenza ALTGr + numero tastierino() - - -ALT + numero tastierino…(con tastierino numerico) altrimenti mappa caratteri.* -I successivi 95 simboli, numerati da 32 fino a 126, sono caratteri stampabili. -Il 128esimo simbolo è ancora un carattere di controllo non stampabile. -I primi 32, numerati da 0 fino a 31, sono caratteri di controllo non stampabili. La concatenazione del “nibble” di riga e di quello di colonna dà il codice ASCII in binario. -Il numero “234” viene codificato come sequenza ASCII: 00110010 00110011 00110100 = il (spazio) P O. -Testo “ il PO” = 01101001 01101100 00100000 01010000 01001111 00101110 Attenzione: così non è possibile fare operazioni aritmetiche direttamente, va ricalcolato dal codice ASCII. Esempi di sequenze binarie: LA TABELLA ASCII ESISTE ANCHE IN MANIERA ESTESA: I codici oltre il127 non sono compresi nello standard originario.
Palette di colori: Immagini raster-vettoriali: Immagini vettoriali: Compressione delle immagini: Se occorre “ridisegnare” l’immagine più grande, la soluzione al problema è garantita dal formato vettoriale che rappresenta l’immagine come un insieme di equazioni matematiche, che riproducono delle curve, e che quindi possono essere ridisegnate. Infatti, potrebbe capitare che, quando lo zoom è molto alto, i pixel diventino dei quadratini ben visibili a video, generando uno spiacevole effetto sgranato dell’immagine, poiché non sia ha sufficiente informazione. In questo contesto l’approccio raster non è il migliore. Le immagini raster non sono adatte ogni qualvolta si ha la necessità di eseguire un ingrandimento dell’immagine senza perdere in risoluzione. Le immagini vettoriali
esempioricettatorta i re (^) Iniziati ALGORIMOVÀ l’erogazione quando la quantità è sufficiente. esempio di tale meccanismo è la telefonata. In questo caso, l’input è costituito dal numero di telefono e dal telefono cellulare; l’output è la telefonata effettuata, a condizione che il numero sia stato digitato correttamente e che l’interlocutore risponda. Il procedimento che consente di ottenere l’output a partire dall’input rappresenta l’algoritmo. L’algoritmo per effettuare una telefonata può essere descritto come una sequenza di passi: si solleva il ricevitore, si attende il segnale di linea, si compone il numero ripetendo l’operazione finché tutte le cifre non sono state inserite (questa fase rappresenta un’interazione). Successivamente si attende la risposta: se la linea è libera e l’interlocutore risponde, si conduce la conversazione e infine si depone il ricevitore; se invece l’interlocutore non risponde, oppure se la linea è occupata, si depone comunque il ricevitore. Questo esempio mostra come un algoritmo possa includere condizioni, ripetizioni e sotto-algoritmi. Per fare il caffè si prende prima una cialde poi si inserisce nella macchinetta. Si prendono Definizione di Algoritmo e Informatica: Possiamo spiegare l’algoritmo attraverso l’esempio della preparazione del caffè: ogni fila di quest’ultimo è rappresentato dal altrettante palline poste sulla sinistra della Un sistema di elaborazione può essere descritto attraverso lo schema input → elaboratore → output. una tazzina si inserisce la tazzina sotto la cialde si attiva l’erogazione e si blocca Rapporto Algoritmo-Dato: Il concetto di algoritmo è inscindibile da quello di dato. Un algoritmo è una procedura che prende dati in input e, dopo averli elaborati, restituisce dati in output. L'informatica è definita come la scienza della rappresentazione e dell'elaborazione rigorosa (e potenzialmente automatica) dell'informazione. Non riguarda solo la tecnologia dei calcolatori, ma anche e soprattutto il modo in cui l'informazione viene strutturata ed elaborata automaticamente. Un altro esempio, può essere quello di un pallottoliere in cui il numero indicato da fila. Le palline non utilizzate sono poste a destra ciò significa che i passi dell’algoritmo saranno: spostiamo una pallina da sinistra a destra sulla prima fila e contemporaneamente si sposta una pallina da destra a sinistra all’ultima fila. Si ripete il passo precedente fino all’esaurimento delle palline della prima fila. successivamente si spostano una pallina da sinistra a destra sulla seconda fila e contemporaneamente si sposta una pallina da destra a sinistra l’ultima fila. Si ripete il passo precedente fino all’esaurimento delle palline della seconda fila. Infine, il numero di palline che si trova a sinistra sulla terza fila rappresenta il valore cercato.
Algoritmo = sequenza precisa di operazioni comprensibili e perciò eseguibili da uno strumento automatico. In questo processo, l’essere umano definisce l’algoritmo, mentre il calcolatore esegue il programma che implementa tale algoritmo. vi sono anche altre definizioni ACM (Associazione per le Macchine Calcolatrici): L'Informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l'informazione, includendo la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione. L’input è costituito dai dati ammissibili, che vengono forniti al sistema. L’elaboratore riceve questi dati e li sottopone a una trasformazione, seguendo passo dopo passo un algoritmo, espresso tramite un linguaggio di programmazione. Il risultato di questa trasformazione è l’output, ovvero i dati desiderati. In sintesi, l’input viene elaborato secondo un algoritmo dall’elaboratore per produrre un output.
In generale, un algoritmo possiede quattro proprietà fondamentali: la sequenza di istruzioni deve essere finita, quest’ultima deve portare a un risultato corretto. le istruzioni devono essere eseguibili materialmente. le istruzioni non devono essere ambigue. L’evoluzione della tecnologia software ha portato allo sviluppo di linguaggi di programmazione strutturati (general purpose) di uso generale(‘60/80), come ALGOL, Pascal e Modula-2, adatti a una vasta gamma di applicazioni. Successivamente si sono diffusi negli anni 80 il linguaggio C (tante app) e a seguire linguaggi come C++, orientato alla programmazione a oggetti, e Java. prima di loro vi erano i linguaggi di programmazione (HHL): Fortran, cobol. L’evoluzione della tecnologia software: I linguaggi di programmazione permettono di descrivere gli algoritmi in una forma interpretabile dal calcolatore. Esistono diversi livelli di linguaggio , a partire dal linguaggio macchina (0100001111 etc..) passando per il linguaggio assembler (LOAD PAGA; ADD STRAORD;STORE TOT), fino ai linguaggi più evoluti come il linguaggio C (TOT=PAGA+STRAORD). Linguaggio di programmazione: L’evoluzione dei linguaggi di programmazione ha avuto come obiettivo quello di allontanarsi sempre più dal modo in cui la macchina interpreta un algoritmo e di avvicinarsi al modo di ragionare degli esseri umani, passando dal linguaggio macchina ai linguaggi orientati agli oggetti.
1 15 (^2 ) 4 60 8 120 (^31 ) 64 I 24 8 In questo caso, 32 + 1 = 33. Si considerano quindi i valori corrispondenti nella seconda Simboli standard dei diagrammi di flusso: Rappresentazione di un algoritmo: I diagrammi di flusso utilizzano simboli standardizzati, ciascuno con un significato preciso. si raddoppia progressivamente (1, 2, 4, 8, 16, 32, …), mentre nella seconda colonna si cioè 33. Successivamente si osserva il secondo numero da moltiplicare, 33, e si Questo algoritmo può essere descritto attraverso le fasi di inizializzazione, elaborazione e decisione. Il procedimento prevede la costruzione di una tabella: nella prima colonna si parte da 1 e L’elaborazione di istruzioni o calcoli è rappresentata da un rettangolo. individuano i numeri della prima colonna che, sommati tra loro, danno come risultato 33. Ad ogni passo, l’elemento in esame viene confrontato con il massimo corrente; se è maggiore, il massimo corrente viene aggiornato. La decisione è rappresentata da un rombo, dal quale partono due rami alternativi, corrispondenti solitamente alle risposte sì e no. nella prima colonna compaiono i valori 1, 2, 4, 8, 16, 32, 64 e 128, mentre nella seconda Il processo si arresta quando il valore della prima colonna supera il secondo fattore, Al termine dell’elaborazione, il valore memorizzato rappresenta il massimo della sequenza. sommando i valori corrispondenti: 1536 + 96 + 24 = 1656. raddoppia ripetutamente il primo numero da moltiplicare, in questo caso 15 (15, 30, 60, 120, 240, 480). -Lo stesso procedimento può essere applicato, ad esempio, a 24 x 69=?. In questo caso, Un esempio storico è l’algoritmo di moltiplicazione egizia, applicato ad esempio al calcolo di 15 x 33=?. Il simbolo di inizio/fine è rappresentato da un ovale. Algoritmo ad alto livello: ricerca del massimo: colonna, cioè 480 e 15, che sommati danno il risultato finale: 480 + 15 = 495. Algoritmo di moltiplicazione egizia: L’algoritmo prevede innanzitutto l’inizializzazione del valore del massimo al valore del primo elemento della sequenza. Successivamente si esaminano uno dopo l’altro tutti gli elementi rimanenti. colonna i corrispondenti raddoppi di 24. Poiché 69 = 64 + 4 + 1, il risultato si ottiene Un esempio di algoritmo ad altissimo livello è la ricerca del massimo in una sequenza di numeri, ad esempio 45, 52, 12, 4 e 35. Un algoritmo può essere rappresentato attraverso i diagrammi di flusso, che sono grafici utilizzati per esprimere un algoritmo in modo schematico e intuitivo. Per rappresentare un algoritmo è necessario descrivere i passi necessari e la loro corretta sequenza. I diagrammi di flusso costituiscono una descrizione spesso più efficace e meno ambigua rispetto a una descrizione esclusivamente verbale.
STERT
OPERAZIONE IO AZIONE^ azione^ i CIND I SOTIOAEORI.TO SEQUENZIALE CONDIZIONALE^ INTELATIVA istruzioni sig DOMANDA
istkzioni istruzioni istruzioni Istkzioni^ Domanda il blocco start , seguito da uno o più blocchi di azione , che rappresentano In forma generale: se una condizione è vera, allora si esegue un’istruzione; altrimenti se ne esegue un’altra. dei due rami alternativi. La struttura iterativa (o ciclica) prevede la ripetizione di un condizione , generando rami alternativi. È inoltre possibile utilizzare sotto-algoritmi, che rappresentano procedure richiamate all’interno dell’algoritmo principale. fondamentali. La struttura sequenziale prevede una successione lineare di Tipi di esecuzione nei diagrammi di flusso (esempi): I diagrammi di flusso si costruiscono a partire da un insieme di blocchi base che di decisione, che permettono l’assunzione di decisioni sulla base di una Algoritmo: struttura di selezione (decisione) 2)esempio: massimo fra due numeri: trasferimento di informazioni, che indicano operazioni di input e output, e blocchi l’esecuzione di istruzioni o calcoli. Possono essere presenti blocchi di Teorema di Böhm-Jacopini: istruzioni eseguite una dopo l’altra. La struttura condizionale introduce una Il teorema di Böhm-Jacopini, enunciato nel 1966 da due informatici italiani, afferma che qualunque algoritmo può essere implementato utilizzando esclusivamente tre strutture fondamentali: la sequenza, la selezione e il ciclo. Queste strutture possono essere applicate ricorsivamente alla composizione di istruzioni elementari, rendendo possibile la costruzione di qualsiasi algoritmo. Costruzione dei diagrammi di flusso: 1)esempio è il seguente: se il numero è occupato, allora si ricompone il numero; altrimenti si inizia la conversazione. I blocchi base vengono collegati tramite frecce , che indicano il passaggio da un’azione alla successiva e definiscono il flusso di esecuzione dell’algoritmo. insieme di istruzioni finché una determinata condizione risulta vera. La struttura di selezione permette la prescrizione di un’azione sulla base del verificarsi di una condizione. decisione: a seconda dell’esito di una condizione ( sì o no ), il flusso segue uno rappresentano le operazioni elementari e i costrutti di controllo. Il flusso inizia con Nei diagrammi di flusso è possibile individuare diverse strutture di esecuzione Infine, l’algoritmo stampa il valore massimo e termina l’esecuzione. Si assumono come operazioni elementari la somma, la sottrazione, L’algoritmo legge i valori di x e y, calcola la differenza d = x - y e verifica il segno di d. Se d è maggiore di zero, il massimo è x; altrimenti il massimo è y. Si vuole trovare il massimo fra due numeri interi positivi x e y. il confronto con zero e la lettura/scrittura di numeri.
In molti sistemi è fondamentale gestire operazioni concorrenti di accesso ai dati.
Esempio: sistema informativo di conti bancari. Per prevenire situazioni di incoerenza, i DBMS implementano algoritmi di controllo della concorrenza , che garantiscono che le transazioni eseguite in concorrenza producano lo stesso risultato di una esecuzione seriale. ◦ (^) Opzione 2: lock X → leggi X → calcola Y = X - 80 → scrivi Y → sostituisci X con Y → unlock X ◦ (^) Opzione 1: X = X - 100 → crash in questo momento Un DBMS deve garantire che accessi da parte di applicazioni diverse non interferiscano tra loro, lasciando il sistema in uno stato consistente. Alcune operazioni sui dati sono particolarmente delicate e devono essere gestite secondo la regola del “tutto o niente”. ◦ (^) Opzione 1 legge X = 120 ◦ (^) Opzione 1 aggiorna X = 20 ◦ (^) Opzione 2 aggiorna X = 40 Il risultato finale non è corretto (i prelievi totali dovrebbero portare a 120 - 100 - 80 = -60, ma senza controllo il sistema resta incoerente). Se non gestito correttamente, la sequenza delle operazioni può produrre risultati errati. Controllo della concorrenza: L’utilizzo di lock in lettura e scrittura consente un accesso sicuro alle risorse condivise di dati, come ad esempio una stampante di rete. ◦ (^) Opzione 2: leggi X → calcola Y = X - 80 → scrivi Y → sostituisci X con Y ◦ (^) Opzione 1: leggi X → calcola Y = X - 100 → scrivi Y → sostituisci X con Y ◦ (^) Opzione 2 legge X = 120 Per questo, i DBMS forniscono strumenti per annullare operazioni non complete e fare rollback allo stato precedente del sistema. ◦ (^) Opzione 1: lock X → leggi X → calcola Y = X - 100 → scrivi Y → sostituisci X con Y → unlock X Un’operazione si considera conclusa solo se arriva fino alla fine; in caso contrario, tutto viene annullato. Affidabilità dei DBMS: ◦ (^) Opzione 2: Y = Y + 100 Schedulando le operazioni senza controllo: 2-Prelievo 80 euro 1-Prelievo 100 euro ◦ (^) Conto X ha saldo = 120 euro Gestione della concorrenza: esempio di gestione corretta con lock manager: ◦ (^) Due richieste al tempo T: Esempio: trasferimento di 100 euro dal conto X al conto Y.