Il Sistema Operativo Ripasso

Slides:



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

TEORIA DEI SISTEMI OPERATIVI
Il Sistema Operativo.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Sistemi Operativi SCHEDULING DELLA CPU.
Il Sistema Operativo (1)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Il nucleo del Sistema Operativo
Gestione del processore (Scheduler)
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Informatica Generale Marzia Buscemi
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.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Il Sistema Operativo Processi e Risorse
© 2015 Giorgio Porcu - Aggiornamennto 01/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Sistemi.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Hardware e Software Hardware costituito dai componenti materiali, tangibili del computer: tastiera, video, mouse, scheda madre, scheda video, stampante,
D. Talia - UNICAL 1. 1 Sistemi Operativi Domenico Talia Facoltà di Ingegneria Università della Calabria.
Giuditta Cantoni, 4 E S.I.A I DATABASE. Definizione databese In informatica, il termine database, banca dati o base di dati (a volte abbreviato con il.
Sistemi Operativi : Gestione della Memoria Anno Scolastico 2012/2013 Un sistema operativo è un programma o un insieme di programmi che garantisce e permette.
Orientamento. Il Kernel Il Kernel è un programma scritto in linguaggio vicino all'hardware che ha il compito di fornire ai processi in esecuzione sul.
E’ costituita da due blocchi:  Interfaccia di rete  Blocco di simulazione L’ interfaccia di rete fornisce il collegamento elettrico con la rete sotto.
Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità.
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI.
Rappresentazione dell’ Informazione Digitale e Binario
Concetti Di Base Informatica
Corso di Elementi di Informatica
Sistema Operativo Il software può essere diviso in due grandi classi:
PRESENTAZIONE di RICCARDO
Sistemi operativi.
Il Sistema Operativo Gestione dei Processi
Rappresentazione dell’ Informazione Informazione e Comunicazione
I PROCESSI.
Il Sistema Operativo Programmazione Concorrente
Programmazione per la Musica | Adriano Baratè
PNSD - Modulo D1A 27 aprile 2017 Piattaforme di e-­learning e cloud:​ installazione e gestione (azione #22) Prof. Rocca Marcello
Sistema di Analisi e di Acquisizione
Microcontrollori e microprocessori
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Dal problema al processo risolutivo
SISTEMA OPERATIVO - INTERPRETE DEI COMANDI -
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
12. Il Sistema Operativo Ing. Simona Colucci
STRUTTURA GENERALE DI UN ELABORATORE
ai termini e ai principi informatici utili per utilizzare Linux
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
Capitolo 7 Le infrastrutture SoftWare
analizzatore di protocollo
SUBNETTING E SUPERNETTING
Laboratorio Informatico
Il Sistema Operativo.
1.
Corso propedeutico base di informatica
MODULO 1 – Computer essentials
Il Sistema Operativo.
Processi e Thread Meccanismi di IPC (1).
Sistemi Operativi.
Programmare.
Scheduling in Linux (Kernel 2.4 e 2.6)
Processi e thread in Windows 2000
LOGICA DI FUNZIONAMENTO
LINUX: struttura generale
Parti interne del computer
LE PARTI INTERNE DEL COMPUTER
Le distribuzioni live dei sistemi operativi e degli applicativi
Scheduling (Schedulazione)
Transcript della presentazione:

Il Sistema Operativo Ripasso Tipologie di Reti e di Mezzi trasmissivi - Giorgio Porcu Il Sistema Operativo Ripasso Giorgio Porcu www.thegiorgio.it

Sommario Concetti di base Gestione dei Processi Gestione della Memoria Sistema Operativo Risorse Funzioni e Struttura Bootstrap, Kernel, Shell Gestione dei Processi Processo e PCB Algoritmi di Scheduling Gestione della Memoria Caricamento di un Programma

Concetti di base

Definizione Sistema Operativo Software di base, essenziale al funzionamento di un computer: Gestisce l’hardware del computer Consente al software applicativo di interagire con le risorse hardware (interfaccia applicazioni-risorse) Consente all’utente finale di utilizzare il computer senza conoscere i dettagli dell’hardware (interfaccia utente)

Rappresentazione grafica Il funzionamento di un Sistema Operativo può essere rappresentato da un diagramma a livelli: SW applicativo Sistema Operativo Utente HW

Risorse Risorse Elementi HW e SW utilizzabili da un programma. Risorse Hardware Insieme dei dispositivi hardware effettivamente utilizzabili da un programma su un computer. Le risorse hardware sono: Limitate Non sempre accessibili in un certo istante di tempo Ogni programma necessita di qualche risorsa (CPU, Memoria, …) per la sua esecuzione

Principali funzioni Le principali funzioni del Sistema Operativo sono: Gestione dei Processi Gestione della Memoria Gestione dell’I/O (o Gestione delle Periferiche) Gestione del File System Gestione dell’Interfaccia (o Shell) Ogni funzione è realizzata da un modulo software detto gestore, costituito da un insieme di programmi.

Struttura a livelli La struttura logica di un Sistema Operativo può essere rappresentata da un diagramma a livelli in cui ogni livello si occupa di una specifica funzione: Gestione dell’Interfaccia Gestione del File System Gestione dell’I/O Kernel Gestione della Memoria Gestione dei Processi HW

Struttura a cipolla (Onion skin) Una rappresentazione alternativa della struttura di un Sistema Operativo è un diagramma a buccia di cipolla (Onion Skin) equivalente a quello a livelli: Gestione Interfaccia Gestione File System Gestione I/O Gestione Memoria Gestione Processi

Bootstrap Bootstrap Procedura di caricamento del Sistema Operativo. Consta di una serie di fasi attuate all'accensione del computer: Il BIOS, programma di diagnostica e configurazione memorizzato su ROM, esegue una serie di test per verificare il corretto funzionamento dell'hardware. Se i test sono andati a buon fine, il BIOS lancia una routine software che sceglie il dispositivo di boot (di solito il disco rigido) da cui avviare il Sistema Operativo. Il controllo passa al dispositivo di boot che carica il kernel del Sistema Operativo in RAM e lo esegue.

Kernel Kernel Parte più importante del SO costituita dai livelli più vicini all’Hardware che comunicano direttamente con esso. Gestisce le operazioni di basso livello. Il kernel è mantenuto sempre in memoria RAM. Livello N Sistema Operativo Livello N-1 … Kernel HW Livello 2 Livello 1

Gestione della Memoria Funzioni nel kernel La scelta di quanti livelli e quali funzioni costituiscano il Sistema Operativo, e quali tra essi costituiscano il kernel dipende dalle caratteristiche dello specifico sistema. La Gestione dei Processi e la Gestione della Memoria sono sempre parte del kernel poiché fondamentali in ogni Sistema Operativo. Kernel Gestione della Memoria Gestione dei Processi

Shell Shell (Interfaccia utente) Interfaccia di comunicazione tra l'utente e il Sistema Operativo. Consente di selezionare ed eseguire funzioni e comandi. Può essere di tipo: GUI (Graphical User Interface) Interfaccia grafica basata su oggetti (Desktop, Icone). Interfaccia utente standard dei moderni Sistemi Operativi. CUI (Command User Interface) Interfaccia testuale a linea di comando. Standard nei SO più datati, è utilizzabile come opzione anche in quelli recenti (Prompt dei comandi, Terminale).

Gestione dei Processi

Gestione dei Processi La Gestione dei Processi è la funzione più importante del kernel del Sistema Operativo. Realizza l’esecuzione dei programmi e l'assegnazione delle risorse da essi richieste. Affronta problemi quali: La limitatezza delle risorse utilizzate dai programmi L'utilizzo efficiente del processore (CPU) L'esecuzione simultanea di più programmi Programma Programma Programma RISORSE CPU

Processo e PCB Processo Programma in esecuzione (su un processore o CPU). E’ entità dinamica rispetto al programma (insieme statico di istruzioni memorizzato su supporto fisico). Per ogni programma da eseguire su un computer il Sistema Operativo crea uno o più processi. A ogni processo è associato un insieme di risorse HW (Memoria, Periferiche) e SW da esso utilizzate. Le informazioni su ogni processo e le sue risorse sono mantenute in RAM in una struttura dati chiamata descrittore di processo (PCB, Process Control Block).

Multitasking Sistema multitasking Sistema Operativo che consente l'esecuzione contemporanea di più processi. I processi sono eseguiti in pseudoparallelismo: si alternano per breve tempo sul processore dando all’utente l’impressione della contemporaneità. Difatti: Il processore funziona in modo sequenziale, in ogni istante può fisicamente eseguire un solo processo Un computer possiede di norma un solo processore Tutti i moderni SO sono multitasking.

Scheduler Scheduler (Schedulatore) Componente software che gestisce nel tempo l’esecuzione dei processi e l'assegnazione delle risorse da essi richieste seguendo opportune strategie. E' essenziale nel multitasking, ove in ogni istante più processi concorrono all'utilizzo di limitate risorse per la propria esecuzione Utilizza un modello a stati per i processi

Stati di un processo (1/2) Per gestire più processi in contemporanea, a ciascuno di essi è assegnato in ogni istante di vita uno stato che ne descrive la situazione attuale: New (nuovo) Ready (pronto) Running (esecuzione) Wait (attesa) Terminate (terminato) Al lancio di un programma lo scheduler crea un processo New ponendolo in stato Ready in una Coda dei processi. Quando lo scheduler decide che un processo in coda ne ha i requisiti lo manda in effettiva esecuzione (Running).

Stati di un processo (2/2) Un processo in esecuzione può interrompersi per scelta propria (in mancanza di risorse necessarie) o su richiesta esterna dello scheduler ponendosi in stato Wait. L’esecuzione riprenderà in seguito. Terminata l’esecuzione il processo è in stato Terminate. Ready Running New Terminate Wait

Algoritmi di Scheduling (1/4) Algoritmo di scheduling Strategia di scelta del processo da eseguire utilizzata dallo Scheduler per garantire il multitasking. Ne esistono varie tipologie, ciascuna con vantaggi e svantaggi. I principali sono: FCFS (First Come, First Served) SJF (Shortest Job First) Priority Round Robin

Algoritmi di Scheduling (2/4) FCFS (First Come, First Served) I processi sono eseguiti in ordine di arrivo: la Coda dei Processi funziona come una lista FIFO. Semplice da implementare. Un processo lungo può bloccare indefinitamente la CPU. SJF (Shortest Job First) E' eseguito per primo il processo più breve in termini di tempo totale di esecuzione. Richiede una stima dei tempi di utilizzo di CPU da parte dei processi in Coda. Ottimizza il tempo di utilizzo di CPU. Un processo lungo può attendere indefinitamente in coda. E' difficile stimare con esattezza l'utilizzo della CPU.

Algoritmi di Scheduling (3/4) Priority (First Come, First Served) I processi sono eseguiti in ordine di priorità. Richiede una preventiva assegnazione di un livello di priorità a ciascun processo da parte del SO. Ottimizza l'esecuzione. Un processo a bassa priorità può attendere indefinitamente in coda.

Algoritmi di Scheduling (4/4) Round Robin E' assegnato a priori un tempo massimo di esecuzione (time slice). Tutti i processi in Coda sono eseguiti in modo circolare per un time slice; se non è sufficiente, il processo è sospeso e si passa al successivo. E' il più onesto nel condividere il processore. E' difficile scegliere in modo ottimale il time slice in base alle esigenze dei processi. Nessuno tra gli algoritmi previsti è ottimale e tutti presentano svantaggi: nella pratica i SO usano una combinazione di essi

Gestione della Memoria

Gestione della Memoria La Gestione della Memoria è una delle funzioni di base del Sistema Operativo. Consiste nell’assegnare ai processi la porzione di RAM necessaria all’esecuzione e provvedere al loro caricamento. Si occupa di risolvere problemi quali: La limitata dimensione della RAM La corretta strategia di assegnazione dello spazio in RAM La possibilità che la RAM sia insufficiente a contenere tutti i processi da eseguire Processo Programma RAM

Memoria Centrale e di Massa La Memoria del Computer è di due principali tipologie: La Memoria Centrale (RAM) è essenziale per il funzionamento dei programmi ma limitata in dimensioni e utilizzabile solo a computer acceso. La Memoria di massa (Tipicamente: Disco Rigido) memorizza i programmi a lungo termine. Ogni programma è caricato dalla memoria di massa (file eseguibile) in memoria centrale (processo) per l’esecuzione. Memoria di massa RAM

Caricamento di un Programma Per caricare un programma (file eseguibile) in RAM (processo) il Sistema Operativo: Crea un processo associato all'eseguibile Verifica gli indirizzi di memoria indicati sull'eseguibile, espressi di solito in forma relativa (indirizzi logici) Utilizza un dispositivo Hardware detto MMU (Memory Management Unit) per trasformare gli indirizzi logici in forma assoluta (indirizzi fisici). L'operazione è detta address binding. Carica il processo in RAM seguendo una opportuna strategia di ottimizzazione. Questa operazione è detta allocazione della memoria.