




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
Questo testo introduttivo esplora i concetti fondamentali dell'informatica, dal concetto di esecutore e programma, al linguaggio macchina e l'assemblatore, fino ai linguaggi di programmazione di alto livello e il ruolo del traduttore. Viene inoltre presentato il concetto di macchina astratta, la teoria di Church-Turing e l'ingegneria del software. Il documento inoltre tratta argomenti come la gestione della CPU, della memoria virtuale, delle periferiche e della rete.
Tipologia: Sintesi del corso
1 / 8
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





Grazie ad esso il calcolatore è estremamente flessibile. GLI ALGORITMI Sequenza di istruzioni per realizzare un trattamento dell’informazione, di risolvere uno specifico problema. Ogni algoritmo deve avere le seguenti caratteristiche:
Vengono realizzati i LINGUAGGI DI PROGRAMMAZIONE DI ALTO LIVELLO, più vicini ad altri linguaggi utilizzati dall’uomo che rendono l’attività piu semplice e produttiva. Naturalmente un programma scritto in linguaggio di programmazione di alto livello deve essere tradotto in linguaggio macchina → attività svolta dal TRADUTTORE. ↓ Due tipi: Compilatore – riceve in input l’intero programma in linguaggio di alto livello ( Programma sorgente) e produce in output la sua traduzione in macchina(progr.oggetto) PIU VANTAGGIOSO solo quando il programmatore vuole distribuire il proprio programma ad altri. Interprete – riceve in input il programma sorgente e ne traduce le singole istruzioni facendole eseguire direttamente. PIU VANTAGGIOSO. La macchina astratta = combinazione di un calcolatore e del relativo traduttore in linguaggio alto livello. La macchina fisica = rappresentata solo dal calcolatore. LA MACCHINA DI TURING MDT Alan Mathison Turing ( 1912-1954) il padre della moderna informatica. MDT = dispositivo\sistema automatico per l’elaborazione dell’informatica semplice ma potente di entità astratta. E’ costituita da: -un alfabeto finito di simboli contenente il simbolo speciale Blank -un nastro di lunghezza infinita diviso in celle, ognina contiene un simbolo dell’alfabeto -una testina in grado di leggere e scrivere le celle e di spostarsi, sempre posizionata sulla cella corrente -un insieme finito di stati (stato iniziale e finale) -un registro di stato che memorizza lo stato corrente -una tabella delle azioni o funzione di transizione Tesi di Church Turing = se una funzione è considerata calcolabile allora esiste una macchina di turing in grado di calcolarla. L’INGEGNERIA DEL SOFTWARE Branca dell’ingegneria che si occupa di sviluppare approcci sistematici e disciplinati allo sviluppo, alla messa in opera e alla manutenzione del software a livello industriale. CICLO DI VITA DEL SOFTWARE = Analisi – scopo produrre un documento di specifica contenente la definizione del problema che il software dovrà risolvere, dei costi, delle caratteristiche. Progettazione – partendo dal doc. specifica tratteggia la struttura del s.w. generando un documento che ne delinea l’architettura. Implementazione o Codifica – realizzazione di programmi Collaudo – sottopone s.w. a dei test per verificare i requisisti dell’analisi. Rilascio o Deployment – installazione del prodotto s.w. presso gli utenti. Manutenzione – attività successive al rilascio.
Anni 40’ calcolatori erano mono programmati cioè in grado di mantenere una memoria centrale ed eseguire un solo programma per volta, non avevano un sistema operativo. Linguaggio macchina codificato su schede perforate organizzate in lotti detti batch. Anni 50’ viene introdotto il monitor, una prima versione di sistema operativo in grado di automatizzare l’avvio dei programmi. Mediante un apposito linguaggio di comando = Job Control Language, si disponeva di un Job = un programma eseguito dal monitor per organizzare l’esecuzione di un certo numero di programmi. Sistemi batch Anni 60’ i calcolatori divennero sistemi multi programmati in grado di tenere in RAM più programmi contemporaneamente. I videoterminali portarono alla scomparsa delle schede perforate introducendo la possibilità per il calcolatore di interagire con l’utente. Nacquero molte applicazioni classificate in: Applicazioni I\O bound – interattive. Applicazioni CPU bound – non interattive. Si collegarono più terminali allo stesso calcolatore – sitema timesharing \ multitasking in grado di offrire un parallelismo virtuale, cioè di simulare per ciascun utente una CPU a lui dedicata. Viene introdotto il concetto di processo un entità dinamica in contrapposizione al programma che, in quanto insieme di istruzioni in linguaggio macchina è un’entità statica. In ogni istante il processo si trova : Pronto In esecuzione In attesa I processi vengono messi nello stato di esecuzione tramite l’operazione di context swapping. LA GESTIONE DELLA MEMORIA CENTRALE \ RAM L’esecuzione di un programma richiede la creazione di un processo a cui è necessario allocare spazi nella RAM. La multiprogrammazione prevede la coesistenza di più processi. Coesistenza porta alla nascita di conflitti serve un gestore per dirimerli che deve essere in grado di:
I sistemi operativi hanno inglobato un gestore con lo scopo di consentire a ogni processo di lavorare su periferiche virtuali : -un processo opera come se la periferica sia a sua completa disposizione