Sistema Operativo (Software di base)

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
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.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Gestione dei processi A. Ferrari.
TEORIA DEI SISTEMI OPERATIVI
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
Elaboratore e Sistemi Operativo
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
12. Il Sistema Operativo Ing. Simona Colucci
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Sommario Il sistema operativo Introduzione
Il sistema 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.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Sistema Operativo e Compilatore
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
Sistemi Operativi SCHEDULING DELLA CPU.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
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.
I processi.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Gestione del Processore (Scheduling)
INFORMATICA TECNOLOGIE INFORMATICHE INFORmazione autoMATICA
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.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 William Fornaciari Architetture di calcolo.
Sistemi Elettronici Programmabili
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
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.
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
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.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
I primi elaboratori Anni ‘50 Rigidamente sequenziali
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
IL NUCLEO Le funzioni del nucleo sono: Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso indici I sistemi operativi sono organizzati a strati Strato = macchina virtuale che maschera la macchina fisica (hardware)

Funzionalità Possiamo identificare 5 strati tra macchina fisica e utente Gestore dei processi Gestore della memoria Gestore delle periferiche File system Interprete dei comandi

Gestore dei processi Gestisce l’esecuzione dei programmi Le unità di esecuzione vengono chiamate processi Per eseguire un programma occorre mantenere il corrispondente processo attivo nella CPU In ambiente multi-utente il gestore deve decidere a quale processo assegnare la CPU Inoltre deve reagire agli eventi esterni (le interruzioni provenienti dalle periferiche)

Cos’e’ un processo? Programma = lista di istruzioni = nozione statica Processo = programma in esecuzione = programma + stato corrente variabili = nozione dinamica Stato corrente= valori in memoria centrale valori nei registri della CPU In un PC un solo processo in esecuzione alla volta

Gestore della memoria Il gestore della memoria deve allocare la memoria partizionarla tra i processi che la richiedono Grazie al gestore della memoria gli strati superiori hanno l’illusione che ogni processo abbia una memoria dedicata

Gestore delle periferiche Maschera le caratteristiche hardware delle periferiche Gestisce le operazioni di input e output Fornisce procedure ad alto livello ad esempio per la lettura, scrittura di dati su memorie secondarie scrittura su stampanti, ecc

File System Gestisce i dati in memoria di massa Struttura i dati in modo gerarchico utilizzando file e directory Fornisce operazioni di alto livello per la gestione di file ad esempio creazione di un nuovo documento, directory ecc Protegge i dati da accessi esterni Garantisce la condivisione sicura dei dati

Interprete dei comandi Consente all’utente di attivare i programmi Sfrutta le funzionalità degli strati inferiori per cercare in memoria il programma invocato allocare la memoria richiesta dal programma attivare un processo per eseguire il programma

Evoluzione dei Sistemi Operativi Sistemi batch con schede (50’s-60’s) System/360 IBM compatibili (65-70’s) Sistemi operativi UNIX e DOS (80’s) WINDOWS (90’s)

Uno sguardo da vicino Gestione dei Processi Gestione della Memoria Centrale File System Gestione delle Periferiche

Ciclo di vita dei processi L’esecuzione di un programma può comportare l’alternarsi di processi utente e di sistema all’interno della CPU Processo utente deriva da un programma applicativo Processo di sistema deriva da un programma del sistema operativo Processi kernel (nucleo) Gestori interruzioni L’esecuzione di un processo puo’ essere interrotta! Ricordate sempre che un processo corrisponde ad un programma + stato corrente della memoria centrale e dei registri

Interruzione interna L’esecuzione di un processo attivo si interrompe ad es. per operazioni di input/output (operazioni costose in termini di tempo) Lo stato corrente (contenuto registri ecc) del processo interrotto viene salvato in memoria Il processo passa allo stato in attesa Il controllo passa ad un processo di sistema che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU)

Interruzioni interne Inizio Ripristina stato attivo pronto Fine Acknowledg. operazione Salva stato attesa

Interruzioni esterne Una periferica segnala la fine di un operazione L’esecuzione del processo corrente viene interrotta (il processo passa allo stato pronto) e passa al gestore delle interruzioni Quindi interruzioe esterna perche’ riguarda le operazioni di un’altro processo! Il gestore delle interruzioni provvede a trasferire dati in memoria e risvegliare il processo in attesa che passa allo stato pronto Il controllo passa poi al nucleo che manda in esecuzione uno dei processi in stato pronto Il gestore lavora con interruzioni disabilitate

Interruzioni esterne Inizio Ripristina stato attivo pronto Fine Salva

Scheduling dei processi Il sistema operativo può interrompere i processi per assicurare una politica fair di esecuzione Scheduler = quella parte del sistema operativo che seleziona il processo da mandare in esecuzione Due possibili politiche di scheduling: Round robin Con Priorità Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc

Round Robin Gestione dei processi in attesa tramite coda Cioe’ FIFO = first-in first-out Ogni processo ha un quanto di tempo di esecuzione dopo il quale torna in attesa Quanto >> Tempo per salvare/ripristinare stato (context switching) Quanto << Tempo di esecuzione del programma (per assicurare fairness)

Priorità Si assegna una priorità ad ogni processo e si manda in esecuzione il processo con priorità più alta La priorità può essere assegnata staticamente ed essere ridotta durante l’esecuzione: se risulta più bassa di un processo in attesa si effettua la fase di context switching dinamicamente: a seconda delle operazioni effettuate dal processo (ad es. seleziona subito processi con operazioni I/O)

Gestione Memoria Centrale I processi si alternano durante l’esecuzione nella CPU Per ragioni di efficienza dobbiamo mantenere più programmi in memoria centrale Cio’ comporta il partizionamento della memoria centrale e del suo spazio di indirizzi. Possibili tecniche: Segmentazione paginazione

Il Problema della Rilocazione Supponiamo che la memoria venga assegnata dinamicamente (con qualche strategia) ai programmi in esecuzione Come possiamo trasformare gli indirizzi logici contenuti all’interno del programma (ad es in linguaggio ad alto livello oppure in linguaggio macchina) in indirizzi fisici (cioe’ indirizzi della RAM)? Questo problema e’ chiamato: rilocazione dei programmi

Compilatore, linker e loader Compilatore e Linker Traducono programmi scritti in linguaggio ad alto livello in programmi in linguaggio macchina che accedono dati (variabili ecc) utilizzando indirizzi logici indipendenti dalla posizione in memoria centrale (Linker: si utilizza per compilare programmi divisi in moduli) Loader carica il programma compilato in memoria centrale.

Rilocazione Statica Dinamica il loader trasforma indirizzi logici in indirizzi assoluti durante il caricamento in memoria centrale Dinamica il loader carica il programma con indirizzi logici. Il programma compilato deve pero gestire l’indirizzamento tramite un registro speciale chiamato registro base Il Registro base mantiene l’indirizzo assoluto della parte di memoria dove si trova il programma

Come opera il loader sulla RAM? Segmentazione dello spazio di indirizzamento della RAM Paginazione Memoria virtuale

Segmentazione La memoria centrale viene suddivisa in segmenti di lunghezza variabile contenenti i programmi Registro base indirizzo della prima cella del segmento contenente il programma in esecuzione Registro frontiero ultima cella contenente il programma in esecuzione Rilocazione: indirizzo assoluto = indirizzo logico + cont. reg. base Problema = frammentazione della memoria

Paginazione La memoria centrale e i programmi vengono suddivisi in pagine di lunghezza fissa I programmi vengono caricati in memoria anche in pagine non contigue La tabella delle pagine mantiene la corrispondenza tra pagine dei programmi e pagine in memoria centrale Problema= ridurre il numero di caricamenti di pagine

Paginazione: rilocazione Se il registro indirizzi ha k bit e una pagina ha 2**p celle, vi sono q=k-p pagine in memoria centrale I primi q bit di indirizzo logico indicano una pagina (logica) nella tabella (la tabella mappa pag. logiche in pag. fisiche) Gli ultimi p bit indicano l’indirizzo relativo all’interno della pagina Rilocazione: tramite i primi q bit si recupera l’indirizzo della pagina fisica poi lo si concatena con gli ultimi p bitin modo da ottenere l’indirizzo assoluto su k bit!

Memoria Virtuale Con la suddivisone del programma in pagine non è necessario mantenere tutto il programma in memoria centrale Paginazione a richiesta: Se la pagina del programma che contiene la prossima esecuzione da eseguire non è in memoria si carica da disco (page swapping) occorre trovare spazio in memoria e nella tabella (dobbiamo uccidere altre pagine) Indirizzi nei programmi diventano virtuali infatti la tabella può contenere le pagine in ordine sparso

Gestione dei File Memoria di massa server per gestire grandi quantità di dati Persistentenza Sicurezza Classificazione Soluzione I dati vengono organizzati logicamente in file e gestiti dal sistema operativo

File Nome: Struttura: Tipo: Attributi: Identifica il file spesso con una estensione che indica il tipo di file es. Tesi.doc oppure somma.exe Struttura: Sequenza di byte Sequenza di blocchi (record) di byte Tipo: File di caratteri e binari (eseguibili) Directory Attributi: nome, diritti di accesso,proprietario

Operazioni su File Il file system consente di effettuare le seguenti operazioni: creare, cancellare, spostare, recuperare, modificare documenti in memoria di massa (memoria persistente) Modificare gli attributi di un file Ridenominare i file

Directory E’ un file di tipo speciale che mantiene informazioni su altri file permette di strutturare insiemi di file (dati) in maniera gerarchica contiene la lista dei nomi e attributi dei file e directory al suo interno Quinid: il file system ha una struttura ad albero Radice = radice del’intero file system Nodi interni = directory Foglie = documenti/programmi

Path names In un’organizzazione ad albero i nomi devono contenere informazioni sui cammini sui quali si trovano i corrispondenti file Nomi relativi: relativi ad una particolare directory Nomi assoluti: specificano il cammino a partire dalla radice (root) del file system (mai ambigui)

File System in DOS Disco fisso indicato con C: Dischetto indicato con A: Es Comandi: ‘dir’ = lista file dir corrente ‘cd nome’=si posiziona nella dir nome ‘md nome’=crea dir nome sotto dir. Corrente ‘rd nome’=rimuove dir nome

Gestione File System File possono venire memorizzati con Allocazione continua di blocchi di byte Allocazione collegata (un blocco contiene l’indirizzo del prossimo) Allocazione con indice (si mantiene una tabella in memoria per recuperare i blocchi) – DOS - I-node: tabella con puntatori ad altre tabelle (combina le ultime due) – UNIX –

Gestione delle periferiche Driver fisici (hardware) per trasferire e manipolare Driver logici (software) parte del sistema operativo che fornisce funzionalità ad alto livello che riguardano le periferiche

Driver fisico Il device controller controlla i meccanismi fisici dell’apparecchiatura (es. unità di lettura di floppy disk) Il device controller dialoga con la CPU attraverso registri e attraverso una memoria dedicata alle operazioni I/O chiamata DMA (Memoria ad accesso diretto) La DMA memorizza informazioni che il device controller puo usare per scrivere in memoria direttamente senza passare attraverso la CPU

Driver logico Software che maschera i device fisici Gestisce gli errori in lettura/scrittura Gestisce i nomi del device driver Gestisce i demoni per code di attesa per l’utilizzo di device ad es code di stampa

Memoria di Massa Memoria persistente e di accesso lento Hard disk = disco fisso Floppy disk = dischetto CD Rom

Disco Fisso Vari piatti sovrapposti, ogni piatto ha 2 superfici magnetiche sulle quali vengono memorizzati i dati Superfice suddivisa in tracce e settori Cilindro=tracce nella stessa posizione Indirizzo dei dati memorizzati: sup-traccia-settore Driver fisico piatti+testine (una per sup.) Driver logico software di sistema che gestisce disco fisso (C: in DOS)

Memoria di Massa: Floppy Unico disco con 2 superfici magnetiche Vanno formattati cioè il sistema operativo determina numero settori, densità bit sul dischetto Driver fisico unità di lettura con 2 testine una per ogni superficie Driver logico software che gestisce trasferimento dati da floppy (driver A: in DOS)