INTRODUZIONE Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 A cura di Prò Giuseppe DEFINIZIONE SISTEMA OPERATIVO Un sistema operativo (SO) è: Un componente software di un sistema di elaborazione Compiti principali del SO: Controllare l’esecuzione dei programmi applicativi Agire come intermediario tra questi e la macchina Scopi del SO: Facilitare l’uso delle risorse fisiche dell’elaboratore Garantire che tale uso sia effettuato in maniera efficace ed efficiente Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 EVOLUZIONE DEI SISTEMI OPERATIVI Primi sistemi di elaborazione Primi sistemi batch Sistemi batch multiprogrammati Sistemi time sharing Sistemi in tempo reale Sistemi operativi per Personal Computer Sistemi operativi per sistemi paralleli e distribuiti Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 SERVIZI DI UN SISTEMA OPERATIVO Esecuzione di programmi: capacità di caricare in memoria un programma ed eseguirlo Operazioni di I/O: poiché i programmi non possono eseguire direttamente le operazioni di I/O il sistema operativo deve fornire meccanismi per le operazioni di I/O. Gestione del file system: fornire ai programmi modalità per leggere , scrivere , creare e cancellare file. Comunicazioni: scambio di informazioni tra processi in esecuzione sullo stesso computer o su computer connessi in rete Scoperta di errori: rilevamento di errori nella CPU, nella memoria, nell’I/O o nei programmi utente. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 ARCHITETTURA A LIVELLI DEL SISTEMA OPERATIVO Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 GESTORE DEI PROCESSI Processo : concetto connesso con l’attività di un programma in esecuzione. Un processo ha bisogno di un certo numero di risorse per svolgere il suo compito: CPU , memoria , file , e dispositivi di I/O. Il sistema operativo è responsabile delle seguenti attività per la gestione dei processi: Creazione e terminazione dei processi Sospensione e ripristino dei processi Meccanismi per: Sincronizzazione di processi, Comunicazione tra processi, Gestione dello stallo. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 GESTORE DELLA MEMORIA PRINCIPALE Il sistema operativo che si occupa della gestione della memoria principale è responsabile di: Tenere traccia di quali parti della memoria sono correntemente usate e da chi Decidere quali processi caricare quando la memoria si rende disponibile Allocare e deallocare lo spazio di memoria Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 GESTORE DEI DISPOSITIVI PERIFERICI Il sistema operativo che si occupa della gestione dei dispositivi periferici è responsabile delle seguenti attività: Virtualizzazione dei dispositivi Gestione dei conflitti Gestione delle anomalie Scheduling dei dispositivi Ottimizzazione dell’uso dei dispositivi Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 GESTORE DEGLI ARCHIVI Il sistema operativo che si occupa della gestione degli archivi è responsabile delle seguenti attività: File system Virtualizzazione dei file Localizzazione dei file Condivisione e protezione dei file Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 GESTORE DELLE COMUNICAZIONI Il sistema operativo che si occupa della gestione delle comunicazioni è responsabile delle seguenti attività: Virtualizzazione dei dispositivi di comunicazione Porte di comunicazione Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 INTERPRETE DEI COMANDI Il sistema operativo riceve continuamente comandi tramite istruzioni di controllo che riguardano: Creazione e gestione di processi Gestione dell’I/O Gestione della memoria secondaria Gestione della memoria centrale Accesso al file system Protezione Networking E’ necessario per il sistema interpretare i comandi ricevuti Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 INTERPRETE DEI COMANDI Il programma che legge e interpreta i comandi viene chiamato : Interprete dei comani o shell (in UNIX) La sua funzione è di ricevere il comando, controllarne la correttezza , gestire la sua esecuzione da parte dei diversi livelli del sistema e mostrare i risultati. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 PRINCIPALI MODELLI STRUTTURALI Struttura monolitica Struttura modulare Struttura stratificata Struttura a microkernel Struttura client-server Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 STRUTTURA MONOLITICA Un unico kernel contiene tutti i componenti (esempio Linux) Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 STRUTTURA MODULARE Sistema suddiviso in moduli, ciascuno destinato a fornire una specifica funzionalità. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 STRUTTURA STRATIFICATA Definizione di livelli di astrazione successivi con complessità organizzata in gerarchie. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 STRUTTURA A MICROKERNEL Struttura in cui per ogni componente si separano i meccanismi (basso livello) dai criteri (livello più astratto. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 SISTEMI CLIENT-SERVER Sistema che fa uso delle risorse mediante scambio di messaggi. Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 INTRODUZIONE Docente Prò Giuseppe - Corso “PENTEST MIND PROJECT” ©2016 A cura di Prò Giuseppe