






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
informatica per esame psicologia
Tipologia: Sintesi del corso
1 / 12
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







Il software è l’insieme dei programmi che vengono eseguiti dal sistema. Un programma è un insieme ordinato di istruzioni sintatticamente corrette per l'elaboratore la cui esecuzione risolve un determinato problema. Tipi di software: * Sistemi Operativi (Windows, Unix, Linux)
-È un insieme di programmi che gestisce il funzionamento di base del computer. -Sono gestite dal sistema operativo tutte le funzioni generali della macchina, come l’aspetto grafico delle visualizzazioni su monitor, la scrittura e la lettura dai dischi, la messa in esecuzione e la chiusura dei vari programmi, la ricezione e trasmissione di dati attraverso tutti i dispositivi di I/O. -Il sistema operativo rimane sempre attivo dal momento in cui viene caricato nella memoria centrale (all’accensione della macchina) fino allo spegnimento Componenti SO Gestore dei processi (programmi in esecuzione) Gestore della memoria principale Gestore della memoria secondaria Gestore delle Periferiche (dispostivi di I/O) Gestore dei file e del file system Gestore del sistemi di protezione Gestore del networking Sistema di interpretazione dei comandi (interfaccia utente) X funzioni SO vedi slide 7 1) GESTORE DEI PROCESSI Un processo è un programma in esecuzione. Un processo necessita di certe risorse, tra cui tempo di CPU, memoria file, dispositivi di I/O, per portare a termine il suo compito. Il SO è responsabile delle seguenti attività coinvolte nella gestione dei processi: o creazione e cancellazione dei processi o sospensione e riesumazione dei processi o fornire meccanismi per sincronizzazione dei processi comunicazione tra processi evitare, prevenire e risolvere i deadlock. Per il momento assumiamo di trattare sistemi mono-programmati (anche detti mono- tasking) In sistemi di questo tipo è possibile eseguire un solo programma alla volta: i programmi devono essere eseguiti in modo sequenziale e si può mandare in esecuzione un programma solo quando quello precedente ha terminato l'esecuzione Supponiamo che il nostro sistema sia un bar in cui un barista serve diversi clienti. Barista= processore, i clienti= processi da eseguire Cliente 1 cliente 2 cliente 3 Ordina attesa consegna paga ordina attesa consegna paga ordina attesa consegna paga Barista Attesa ordine prepara cocktail attesa riscuote attesa ordine prepara cocktail attesa riscuote -qualunque processo alterna fasi di esecuzione a fasi in cui è bloccato in attesa di qualche evento esterno -Un processo può essere in attesa che sia terminata un’operazione di input di dati oppure in attesa di poter usare una risorsa in quel momento occupata
La velocità di elaborazione di un calcolatore (quindi il tempo in cui un processo è in esecuzione) è dell’ordine del milionesimo di secondo. In un’esecuzione sequenziale, mentre il processo attivo è bloccato in attesa di eventi esterni, il processore rimane inattivo, in uno stato chiamato idle , e risulta pertanto sotto-utilizzato. Una soluzione ragionevole per migliorare sia la “produttività” del barista che la qualità del servizio potrebbe essere quella di servire i più clienti contemporaneamente, Ogni volta che un cliente inizia la consumazione del suo caffè, il barista, invece di restare inattivo può iniziare il servizio del prossimo cliente Contemporaneamente non è esatto, infatti, poiché vi è un solo barista (un solo processore nel caso di un computer) il servizio non è realmente eseguito in parallelo ma avviene alternando il servizio tra i vari clienti. In questo modo i tempi di inattività del barista sono eliminati Barista Attesa ordine cliente 1 prepara cocktail cliente 1 attesa ordine cliente 2 prepara cocktail cliente 2…. l’idea illustrata mediante l’esempio precedente è l'idea di base del multi-tasking: più programmi vengono eseguiti contemporaneamente sullo stesso processore. -Il numero di processi attivi viene detto grado di multiprogrammazione del sistema -Dal punto di vista del processore, in ogni istante vi è un solo processo in esecuzione Se l'alternanza tra i processi è frequente (ad esempio ogni 10 millisecondi), l'utente ha l'impressione che l'esecuzione dei programmi sia veramente simultanea Un processo quindi può trovarsi in tre diversi stati:
Il numero di file che devono essere memorizzati su un disco può essere estremamente elevatosi ha quindi la necessità di mantenere i file in una forma ordinata un unico spazio (contenitore) di file è scomodo perché le operazioni di ricerca di un file e di creazione di un nuovo file diventano onerose (non è possibile avere due file con lo stesso nome) l'idea è quella di raggruppare i file in sottoinsiemi (seguendo magari dei criteri di tipo logico) Tutti i sistemi operativi forniscono operazioni per creare delle directory (cartelle) una directory (cartella) è costituita da un insieme di file i nomi dei file sono locali alle directory (si possono avere due file con lo stesso nome purché siano in due directory diverse) - in questo modo l’indice conterrà due tipi di oggetti: nomi di file e nomi di directory - senza la strutturazione in directory, tutti i file potrebbero essere identificati semplicemente mediante il loro nome; nel caso di un’organizzazione gerarchica a più livelli si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero EX: Ad esempio il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: A:\Biblioteca\Narrativa-Ita\libro La directory Pautasso di Utenti è identificata dalla sequenza: A:\Utenti\Pautasso il carattere “\” (slash) viene usato come separatore – una sequenza di questo tipo può essere vista come il cammino che si deve compiere per raggiungere un determinato file a partire dalla radice dell'albero, ed è chiamata pathname assoluto il pathname relativo è invece il percorso che si deve compiere per raggiungere il file a partire dalla directory nella quale siamo (directory corrente) due file possono avere lo stesso nome “elisa.doc” ma non lo stesso pathname cioè non lo stesso percorso che uno deve fare per arrivare al file “elisa.doc” Per organizzare gerarchicamente i file, il sistema operativo deve fornire all'utente anche un insieme di operazioni sulle directory, per esempio:
Molte istruzioni sono date al SO tramite control statements, (letteralmente: dichiarazioni di istruzioni) che servono per creare e gestire processi, gestire gli I/O, gestire la memoria principale e secondaria, gestire il file system … Il programma del SO che legge ed interpreta tali istruzioni viene chiamato interprete della linea di comando (sistemi DOS e Windows) o shell (UNIX) o infine interfaccia grafica (MacOS). La sua funzione è di ricevere un comando ed eseguirlo SERVIZI OFFERTI DAL SO to sum up ◼ Esecuzione di programmi – capacità di caricare un programma nella memoria ed eseguirlo. ◼ Operazioni I/O – strumenti per l’uso delle periferiche (lettura disco, scrittura video, …). ◼ Gestione del File-system manipulation – capacità di leggere, scrivere, creare e cancellare i files. ◼ Comunicazione – scambio di informazioni fra i processi eseguiti sullo stesso computer o su computer diversi. ◼ Determinazione degli errori – assicurare una corretta computazione determinando gli errori nella CPU, nella memoria, nelle periferiche o nei programmi. Servizi Addizionali ◼ Allocazione delle risorse – allocazione delle risorse del sistema fra i vari utenti e i vari programmi che usano contemporaneamente il sistema. ◼ Contabilità – mantenimento delle informazioni relative all’uso delle risorse eseguite dagli utenti sul sistema. Scopo di tale operazione è: uso per statistiche, o protezione, o pagamento dell’uso del sistema. ◼ Protezione – assicurazione che tutti gli accessi alle risorse del sistema siano controllate Il sistema operativo risiede sull’hard disk come tutti gli altri programmi e viene caricato nella memoria RAM all’accensione della macchina. Esistono molti sistemi operativi: ◼ MS-DOS, oggi soppiantato da Windows. ◼ Windows della Microsoft ◼ MacOS della Apple per i computer Macintosh, ◼ Linux e Unix I drivers ◼ Sono dei file usati dal sistema operativo per effettuare la comunicazione fra il computer e le varie periferiche. ◼ Per poter funzionare correttamente, ogni dispositivo deve avere il suo particolare driver registrato dal sistema operativo. Esistono perciò i driver di stampante, modem, lettore CD, scheda video, scheda audio, scheda di rete, ... ◼ I driver vengono istallati sul computer attraverso un software di installazione automatica che viene fornito assieme ai dispositivi stessi quando le compri ◼ Windows possiede una funzione detta Plug and Play che all'accensione del computer verifica la presenza di nuovi componenti hardware, ricercando automaticamente il driver adatto. IL SOFTWARE APPLICATIVO ◼ È l'insieme dei programmi che non sono compresi nel sistema operativo, e che vengono invece installati dall'utente per svolgere compiti specifici, come:
Attenzione: finchè la soluzione di un problema viene descritta in termini informali può rimanere l’ ambiguità circa l’attuabilità della soluzione da parte del cacolatore (tralascio dei dettagli nello spiegare a mario come fare la pasta, non gli dico dove si trova il pacco di pasta), questo accade quando spiego ad un calcolatore le procedure da usare Per rimuovere tale ambiguità si deve formalizzare la definizione di un esecutore Le soluzioni effettive (soluzioni che possono essere rese comprensibili dal calcolatore) z esecutori caratterizzati formalmente sn chiamati algoritmi = è una successione ordinata di istruzioni che definiscono le operazioni da eseguire su dei dati x risolvere una classe di problemi Nel caso dei calcolatori 1- Le soluzioni effettive sn tradotte in procedure effettive o programmi 2- Il linguaggio formale x la loro descrizione è detto linguaggio di programmazione Il processo di Sviluppo di un programma:
Alle variabili deve essere assegnato esplicitamente un valore All’inizio di un algoritmo le variabili hanno un valore indeterminato Le variabili hanno lo stesso uso dei pronomi nel linguaggio naturale Servono per riferirsi ad un oggetto (di solito un valore numerico) indipendentemente dal valore specifico di questo ASSEGNAZIONE = l’istruzione di assegnazione è quella particolare istruzione che permette di definire il valore attuale di una variabile. Il valore rimane inalterato fino ad una nuova assegnazione alla variabile (mi permette di “aprire la scatola e metterci dentro la roba) L’assegnazione viene eseguita così
Altezza 5 (vuol dire che dentro la scatola altezza metto il valore 5) Regola assegnazione: ogni volta che una variabile appare a destra dell’istruzione di assegnazione , è necessario che un valore sia già stato assegnato a quella variabile Ex a 2; b 3; c a+b allora si ha c= VETTORI = le variabili considerate fin’ora sn dette variabili scalari una variabile vettore (array) è una coppia:
Può essere immaginata come una scatola con un nome e che può essere divisa in tanti comparti ognuno dei quali è numerato e può contenere un valore La loro prima posizione è la posizione 0 e così via Ex vettore vocali con dimensione 5 e gli indici dei suoi elementi vanno da 0 a 4, l’elemento del vettore vocali in posizione 3 è la “o” Vocali pos 0 pos 1 pos2 pos 3 pos A E I O U Ogni valore è individuato dal nome della variabile seguito dal numero del comportato detto indice La dimensione di un vettore è il numero dei suoi elementi, dato un vettore di dimensione N, gli indici vanno da 0 a N- L’istruzione di assegnazione ad un vettore è analoga a quella x una variabile ordinaria, con la differena che si deve specificare anche a quale posizione ci stiamo riferendo Ex il nostro vettore vocali ha dimensione 5, allora posso scrivere vocali(3) E Oppue vocali (0) I ottenendo Vocali= IEUEI MATRICE È l’estensione del concetto di vettore, cioè tanti vettori uno accanto all’altro “è un insieme di valori che sn indicizzati facendo ricorso a 2 o più indici” La notazione usata M(i,j) i è la riga e j è la colonna Vedi slide 29 ISTRUZIONI Le istruzioni possono essere divise in 6 categorie, con esse posso lavorare sulle variabili
Ex: altezza< di 180 è un predicato; (altezza< di 180) or (voto >= a 25) è un predicato composto. Ma non posso dire nulla sul valore di verità ad ora. altezza=176 e voto=12, e poi (altezza<180) or (voto >=25) ora questa è una proposizione, il valore di verità di questa proposizione??? Non lo so ancora, so solo che Altezza<180 è (vero). Voto>=25 è (falso) Gli operator logici not, or, and mi cambiano il valore di verità ad ex: “not (falso)” =vero (Altezza<180) or (not (voto>=25)) predicato composto (176<180) or (not (12 >= 25)) proposizione (vero) or (not (falso)) (vero) or (vero) è vero se almeno uno dei due è vero Vero valore di verità Not Dato un predicato p, not p è vero quando p è falso e viceversa And Dati due predicati p e q, p and q è vero solo quando entrambi p e q sn versi altrimenti falsi or dati due predicat p e q, p or q è falsi solo quando entrambi p e q sn falsi, altrimenti è vero Esercizi: età compresa tra 18 e 60 anni come lo scrivo? Età> 18 AND età< Vero AND vero Vero Altezza superiore a 1,90 oppure peso superiore a 100kg Altezza >1.90 or peso> V OR V V Un anno multiplo di 4 ma non multiplo di 100 (ricorda se è un multiplo vuol dire che il resto della divisione viene 0) (Anno mod 4=0) AND (NOT (anno mod 100=0)) Se l’anno è 2020 Vero AND vero Vero Se l’anno è 2300 Vero AND falso falso scrivere due formule che coinvolgono altezza, età e peso, con AND OR NOT. Indicano una valutazione (a caso) delle variabili e il corrisp valore di verità ((età=10 AND altezza= età-3) OR (peso<20)) AND NOT (peso= età) Età= 40 Altezza= 170 Peso= 65
((40=10) AND 170= 40-3) OR (65<20)) And NOT (65=40) ((F ANF F) OR (F)) AND NOT (F) (F OR F) AND V F AND V F Fornisci dei valori per le variabili che le rendano vere ((età= 20) AND (età>15)) OR (peso<50) Età= 20 Peso= Colore= ESERCIZI SU SLIDE DA 40 A 45 GLI ESERCIZI VERRANNO SVOLTI SUL QUADERNO D’ORA IN POI
È la definizione formale della soluzione del problema Prevede la sbriciolazione del problema in sotto-problemi È un linguaggio formale di tipo grafico x rappresentare gli algoritmi Attraverso il diagramma a blocchi si può indicare l’ordine di esecuzione delle istruzioni Un particolare simbolo grafico detto blocco elementare è associato ad ogni tipo di istruzione elementare I blocchi sn collegati da frecce che indicano il susseguirsi delle istruzioni Begin= blocco iniziale Leggi x=blocco di lettura A= blocco di azione End= blocco finale Scrivi x= blocco di scrittura C = blocco di controllo Un diagrama a blocchi descrive u algoritmo se: