Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.

Slides:



Advertisements
Presentazioni simili
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Il Software.
Gestione della memoria centrale
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.
Gestione Input Output A. Ferrari.
STRUTTURA DEL PERSONAL COMPUTER
INFORMATICA Trattamento automatizzato dellinformazione.
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.
Il Sistema Operativo.
Elaboratore e Sistemi Operativo
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
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.
SOFTWARE Lhardware è la parte che si può prendere a calci; il software quella contro cui si può solo imprecare. SOFTWARE E linsieme dei dati e dei programmi.
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Introduzione Cosa è un Sistema Operativo ?
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I SISTEMI OPERATIVI.
Informatica per medici
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
STRUTTURA GENERALE DI UN ELABORATORE
SISTEMA OPERATIVO..
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Introduzione all'uso del PC
Il Sistema Operativo (1)
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Il Software Programmare direttamente la macchina hardware è molto difficile: l’utente dovrebbe conoscere l’organizzazione fisica del computer e il suo.
1 Nomi di Unità n I sistemi sono dotati di più unità di memoria n DOS e Windows usano nomi di unità per distinguerle n In UNIX la gestione è trasparente.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
STRUTTURA DI UN COMPUTER
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Concetti di base Computer, HW e SW
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Il modello di Von Neumann
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
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:

Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer e il suo linguaggio macchina; ogni programma dovrebbe essere scritto utilizzando sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso.

Questo non è accettabile ed è necessario fornire allutente un meccanismo per: astrarre dallorganizzazione fisica della macchina; usare nello stesso modo, o in modo molto simile, macchine leggermente diverse dal punto di vista hardware o, al limite, macchine con hardware profondamente differente; avere un linguaggio di interazione semplice con la macchina; linguaggi semplici e ad alto livello per programmare la macchina; avere un insieme di programmi applicativi per svolgere diversi compiti (videoscrittuta, fogli di calcolo, database, etc…)

Nei moderni sistemi di elaborazione questi obiettivi vengono raggiunti grazie alla definizione di macchine virtuali che vengono realizzate al di sopra della macchina hardware reale HW macchina virtuale Utente

Macchine Virtuali Ogni macchina reale ha un suo linguaggio macchina L 0 le cui istruzioni sono direttamente eseguibili dai circuiti elettronici (HW) Al di sopra di questo linguaggio è possibile definire una gerarchia di linguaggi L i e fornire delle regole per tradurne le istruzioni in opportune sequenze di istruzioni in linguaggio macchina Linsieme di queste nuove istruzioni definisce una macchina virtuale in quanto non esiste fisicamente ma viene realizzata mediante il software La macchina virtuale si occupa della traduzione delle istruzioni al livello L i nell'opportuna sequenza di istruzioni di livello L i-1 che realizza la stessa funzione

Machine virtuali Hardware - Linguaggio macchina L0 Macchina virtuale N - sistema di comandi LN Utente Interprete dei comandi Interfaccia Macchina virtuale 1 - sistema di comandi L1

supponiamo che l'utente voglia stampare un documento doc1 (un file). A livello fisico questa operazione è complessa e richiede operazioni di trasferimento dati dal disco alla stampante (via memoria principale) La macchina virtuale può fornire all'utente un semplice comando di stampa del tipo: > print doc1 mediante il quale può richiedere la stampa delle informazioni contenute nel file di nome doc1 Esempio esecuzione di un comando virtuale

La macchina virtuale deve innanzitutto verificare se si tratta di un comando valido Poi tradurlo nellopportuna sequenza di istruzioni a basso livello per la macchina fisica Una volta eseguito il comando, la macchina virtuale si pone in attesa di un nuovo comando da parte dell'utente Grazie a questo livello software si può astrarre dalle caratteristiche fisiche della macchina e della periferica (la stampante)

Si può anche fare in modo che macchine differenti siano usabili in modo simile: si tratta, infatti, di costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale Per ogni comando della macchina virtuale si dovranno però avere diversi programmi di traduzione, uno per ogni tipo di hardware

Software di base Strumenti per luso di linguaggi ad alto livello: –Interpreti e compilatori –Strumenti per lesecuzione di programmi Sistema Operativo: insieme di programmi che interagiscono e cooperano tra di loro per realizzare due obiettivi fondamentali: –gestire efficientemente il computer e le sue periferiche, cercando di sfruttare al massimo tutte le componenti hardware –creare un ambiente virtuale per facilitare l'interazione uomo-macchina

Compiti del Sistema operativo Configurazione e accensione macchina Gestione del processore Gestione della memoria principale Gestione di informazione su memoria secondaria => FILE SYSTEM

Gestione delle risorse –uso semplificato e astratto risorse per utente, es. stampanti, dischi, nastri... –uso ottimale a seconda del sistema Interazione utente macchina: interfaccia e interprete comandi Protezione dei dati (sicurezza) supporto per lesecuzione dei programmi applicativi Il Sistema Operativo fornisce i servizi che sono necessari a tutti gli altri programmi in esecuzione

Struttura del sistema operativo nucleo gestione memoria processore, risorse interfaccia comandi

Tipi di sistemi operativi Esistono diversi tipi di sistemi operativi per diverse classi di computer Primi sistemi operativi (anni 60) avevano lo scopo di semplificare interazione con il computer Distinzioni tradizionali –sistemi mono-utente - sistemi multi-utente –sistemi interattivi - sistemi batch

Il Sistema Operativo Sistemi mono-utente interattivi pensati per Personal Computer –IBM PC - Compatibili (DOS - Windows) –Macintosh Due diversi tipi di interazione utente/computer: –interazione testuale (es. MS-DOS per PC-IBM) –interazione grafica (es. Macintosh, Windows )

Sistemi operativi multi-utente: UNIX (Workstation, PC: LINUX) –Utilizzato per computer collegati in rete –supporta varie interfacce grafiche (a finestre) Windows NT –Utilizzato per computer collegati in rete

Il Sistema Operativo: Esempio Eseguiamo il programma che permette di ottenere una finestra MS-DOS

Immettiamo il comando date

Premendo il tasto Enter si ottiene

Lesecuzione di un comando semplice come date provoca lesecuzione di una decina (o anche più) di funzionalità del S.O. Le operazioni effettuate provocano una serie di eventi in cui vengono coinvolte sia risorse hardware che risorse software Il coordinamento e la gestione delle varie risorse viene effettuato dal Sistema Operativo

¶ Per ogni carattere immesso tramite la tastiera viene inviato un codice corrispondente al computer · Il codice viene ricevuto dal controller della tastiera ¸ Il codice viene memorizzato in unarea di memoria riservata (buffer) e viene inviato un segnale alla CPU (interrupt) ¹ Quando la CPU riceve un interrupt dalla tastiera attiva un modulo (un piccolo programma) chiamato terminal driver º Il terminal driver invia al monitor una copia del codice del carattere immesso per visualizzare il carattere

» Il codice corrispondente al carattere Enter indica che il comando immesso (date) è completo ¼ Il terminal driver attiva un altro modulo chiamato listener (perchè attende i comandi provenienti dagli utenti) ½ Il listener legge i caratteri dal buffer della tastiera e ricerca un programma chiamato date, lo carica in memoria centrale e lo esegue ¾ Il programma date va a leggere un orologio (un contatore che tiene conto dello scorrere del tempo) e passa linformazione letta al terminal driver ¿ Il terminal driver trasmette la data al monitor che la visualizza

Ognuno di questi eventi può essere descritto in dettaglio, per esempio: –prima che il programma listener carichi il programma date in memoria deve localizzare la directory dove tale comando si trova, ecc. –La fase di caricamento del programma comprende una fase di lettura dal disco rigido

Esempio Ogni carattere dato in input dalla tastiera viene ricevuto dal terminal driver che lo invia al monitor per la visualizzazione listener directory manager terminal driver disk driver file manager Disco rigido BUFFER Tastiera BUFFER Monitor timer dat MEMORIA CENTRALE

Esempio Quando viene immesso il carattere Enter il terminal driver passa la stringa date al programma listener che interpreta il comando listener directory manager terminal driver disk driver file manager Disco rigido BUFFER Tastiera BUFFER Monitor date MEMORIA CENTRALE timer

Esempio Il listener richiede al directory manager di cercare (nella directory dei comandi) date. Il programa directory manager richiede al programma file manager, che a sua volta si avvale del programma disk driver, di localizzare sul disco rigido il programma date Tastiera listener directory manager terminal driver disk driver file manager Disco rigido BUFFER Monitor MEMORIA CENTRALE timer

Esempio Quando il comado date è stato localizzato (è un file eseguibile) il listener (mediante il file manager) lo carica in memoria. Per fare questa operazione il file manager utilizza il disk driver Tastiera date listener directory manager terminal driver disk driver file manager Disco rigido BUFFER Monitor MEMORIA CENTRALE timer

Esempio Il listener manda in esecuzione il programma date che legge il timer ed effettua delle operazioni di conversione per trasformare il valore letto nella data del giorno Tastiera date listener directory manager terminal driver disk driver file manager Disco rigido BUFFER Monitor MEMORIA CENTRALE timer

Esempio Il programma date tramite il terminal driver visualizza sul monitor la data Tastiera date listener directory manager terminal driver disk driver file manager Disco rigido BUFFER Monitor MEMORIA CENTRALE 27/03/02 timer

La gestione dei vari eventi è compito del sistema operativo E necessario avere una gerarchia di livelli di astrazione. Le funzionalità presenti ad ogni livello possono ignorare i dettagli sulle funzionalità offerte da altri livelli Al livello più alto della gerarchia di funzionalità si trova lutente del sistema

lutente è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori della gerarchia Lutente ha conoscenza solo delle operazioni che è interessato ad effettuare (Nellesempio di precedente lutente è interessato alla data e conosce solo il comando che serve per ottenere tale informazione)

Compiti del Sistema operativo Configurazione e accensione macchina Gestione del processore Gestione della memoria principale Gestione di informazione in memoria secondaria (File System) Gestione delle periferiche Interazione utente macchina: interfaccia e interprete comandi Protezione dei dati (sicurezza)

Avviamento del computer Fase di bootstrap: Verifica delle risorse hardware e inizializzazione dei programmi relativi di gestione diagnostica (antivirus) caricamento completo e mantenimento del sistema operativo

BIOS (Basic Input-Output System) E la parte piu interna del SO risiede su un chip di memoria RAM permenente (e ROM) gestisce direttamente le risorse hardware (terminal driver) gestisce anche il caricamento (avviamento) del sistema operativo (ad es. Windows o DOS)

Gestione del processore e dei processi Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore è quello di eseguire programmi Si chiama processo un programma in esecuzione

Processore e processi La gestione del processore è in modo: mono-tasking: esegue un processo per volta (DOS) multi-tasking: esegue più processi contemporaneamente (Windows varie versioni dal 95, Macintosh, UNIX)

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 unoperazione di input di dati oppure in attesa di poter usare una risorsa in quel momento occupata mentre il processo è bloccato in attesa di eventi esterni, il processore rimane inattivo, in uno stato chiamato idle, e risulta pertanto sotto-utilizzato Limite del mono-tasking

I tempi di lavoro delle periferiche di input/output, o addirittura i tempi di reazione umani sono maggiori di molti ordini di grandezza della velocità del processore (quindi del tempo in cui un processo è in esecuzione)

Multi-tasking Come è possibile eseguire più programmi contemporaneamente sullo stesso processore? Ad ogni istante vi è un solo processo attivo Il processore alterna lesecuzione dei vari programmi Il tempo di lavoro della CPU viene suddiviso tra i vari programmi Se l'alternanza tra i processi è frequente (ad es.10 millisecondi), l'utente ha l'impressione che l'esecuzione dei programmi sia simultanea

A livello macroscopico si ha quindi l'impressione della contemporaneità, mentre a livello microscopico si ha una semplice alternanza sequenziale molto veloce Il tempo di esecuzione, cioè il tempo che intercorre tra l'inizio e la fine del processo, risulta aumentato rispetto al caso mono-tasking a causa dellalternanza con gli altri processi

Un processo può trovarsi in tre diversi stati: in esecuzione, quando sta utilizzando il processore; in attesa (bloccato), quando è in attesa del verificarsi di un evento esterno (terminazione di unoperazione di input/output o altro) pronto, quando è potenzialmente in condizione di utilizzare il processore che è occupato da un altro processo

Gestione del processore e dei processi I/O terminato o risorsa disponibile in_esecuzione prontoin_attesa creazione terminazione richiesta I/O o risorsa scambio esecuzione

Il sistema operativo stabilisce quale processo deve avere il controllo della CPU adottando una politica di scheduling tutte le informazioni relative ad un processo attivo vengono salvate in una tabella dei processi ogni volta che un processoP1 viene sospeso dallesecuzione vengono salvate le informazioni relative (il contenuto dei registri) nella tabella dei processi. Se un processo P2 viene ammesso allesecuzione si caricano nei registri le informazioni relative a P2 contenute nella tabella Lo scambio di controllo del processore tra P1 e P2 viene chiamato context switch

Gestione della memoria principale Nel caso multi-tasking la memoria deve essere condivisa da piu programmi la memoria viene suddivisa in blocchi, ad ogni programma viene assegnato un certo numero di blocchi (non necessariamente contigui) di memoria Meccanismi di partizione: –paginazione: blocchi di dimensione costante: –segmentazione: blocchi di dimensione variabile

Indirizzi fisici e indirizzi logici indirizzi logici: gli indirizzi presenti nei programmi indirizzi fisici: gli indirizzi RAM assegnati al programma quando viene caricato dal disco Per poter essere caricato a blocchi il programma viene suddiviso in blocchi logici e il SO si occupa di assegnare a ciascun blocco logico un blocco fisico facendo corrispondere gli indirizzi logici a quelli fisici

Corrispondenza tra blocchi logici e fisici RAM P1/2 P2/1 P2/2 P1/3 P3/1 P3/2 P1/1 P1/2 P1/3 P3/1 P2/1 P2/2 P2/3 P3/2 P1/1

Memoria virtuale Come è possibile eseguire uno o più progammi contemporaneamente che richiedono piu memoria di quanta sia disponibile? Per eseguire un programma non è necessario caricarlo completamente in memoria È sufficiente caricare in memoria principale solo quelle parti del programma e dei dati che servono durante una certa fase dellesecuzione; le altre parti possono essere tenute su un supporto di memoria secondaria

Per gestire la memoria in modo virtuale, si usa: La memoria principale in cui tenere solo i programmi, o i pezzi di programmi, che servono in un certo istante. Un supporto di memoria secondaria in cui mantenere tutte le informazioni relative ai processi (programma e dati). Si utilizzano i dischi rigidi perché sono abbstanza veloci e hanno accesso diretto)

Le pagine vengono caricate nella RAM indipendentemente, quando sono richieste per lesecuzione (on demand) Il SO stabilisce quali pagine scaricare o eliminare dalla RAM per far posto a nuove pagine di processi in esecuzione. Se le pagine sono state modificate devono essere ricopiate sul disco La gestione della memoria virtuale può essere costosa in termini di tempo e rallenta lesecuzione di un programma Demand paging

Esempio: la RAM non è sufficiente a contenere P1, P2 e P3 RAM P1/2 P2/1 P2/2 P1/3 P3/1 P3/2 P1/1 P1/2 P1/3 P3/1 P2/1 P2/2 P2/3

Visione astratta della memoria: un programma non deve conoscere la configurazione e le dimensioni della memoria reale e può essere eseguito su computer con dotazioni di memoria differenti