Assieme al processore, con cui è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Assieme al processore, con cui è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione."

Transcript

1 Gestione strutturata del sistema operativo Modulo 3 EiPass Progressive Sistema operativo In informatica il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un particolare software, installato su un sistema di elaborazione, che ne garantisce l'operatività di base coordinando le risorse hardware di processamento, memorizzazione e le periferiche e senza il quale quindi non sarebbe possibile l'utilizzo di altri software più specifici, come applicazioni o librerie software, e quindi in ultimo del computer stesso. Esso funge quindi da "base" al quale si appoggiano gli altri software, che dunque dovranno essere progettati in modo da essere riconosciuti e supportati da quel particolare sistema operativo. Per sistema operativo intendiamo quindi l'insieme dei componenti software che hanno il duplice scopo di gestire le risorse hardware e software del computer, e fare da interfaccia tra l'utente e l'hardware. Assieme al processore, con cui è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione. Funzioni principali Secondo una definizione più rigorosa, il sistema operativo è un insieme di subroutine e strutture dati responsabili: del controllo e della gestione delle componenti hardware che costituiscono il computer (processi di input/output da e verso le periferiche collegate al sistema) dell'esecuzione dei programmi (processi) che su di esso vengono eseguiti. [1]. Se il sistema di elaborazione prevede la possibilità di memorizzazione aggiuntiva dei dati su memoria di massa, come accade nei computer general purpose, esso ha anche il compito di: gestire l'archiviazione e l'accesso ai file. I programmi possono gestire l'archiviazione dei dati su memoria di massa (ottenendo strutture complesse, come un database), servendosi delle procedure messe a disposizione del sistema operativo. La componente del SO che si occupa di tutto ciò viene chiamata file system. Infine, se è prevista interazione con l'utente, viene solitamente utilizzata allo scopo un'interfaccia software (grafica o testuale) per accedere alle risorse hardware (dischi, memoria, I/O in generale) del sistema. D'altra parte, un sistema operativo può essere utilizzato anche su una macchina che non preveda interazione diretta con un essere umano (per un esempio, vedi smart card o determinati sistemi embedded) spesso dunque più leggero e semplificato. Solitamente un sistema operativo installato su computer fornisce anche degli applicativi di base per svolgere elaborazioni di diverso tipo. Sebbene molte delle funzionalità sopraddette non siano spesso immediatamente visibili/percepibili dall'utente, l'importanza del sistema operativo di un calcolatore è cruciale: oltre alla necessità di gestione delle funzionalità di base sopraddette, al di là delle prestazioni massime offerte dall'hardware 1

2 dell'elaboratore stesso, il sistema operativo determina di fatto efficienza e buona parte delle prestazioni effettive di funzionamento dell'intero sistema ad esempio in termini di latenze di processamento, stabilità, interruzioni o crash di sistema. Struttura Un generico sistema operativo moderno si compone di alcune parti standard, più o meno ben definite. Il kernel un gruppo di funzioni fondamentali, strettamente interconnesse fra loro e con l'hardware, che vengono eseguite con il privilegio massimo disponibile sulla macchina ossia in modalità kernel; il kernel fornisce le funzionalità di base per tutte le altre componenti del sistema operativo, che assolvono le loro funzioni servendosi dei servizi che esso offre. Il gestore di file system si occupa di esaudire le richieste di accesso alle memorie di massa. Viene utilizzato ogni volta che si accede a un file sul disco, e oltre a fornire i dati richiesti tiene traccia dei file aperti, dei permessi di accesso ai file. Inoltre si occupa anche e soprattutto dell'astrazione logica dei dati memorizzati sul computer (directory, ecc). Un sistema di memoria virtuale che alloca la memoria richiesta dai programmi e dal sistema operativo stesso, salva sulla memoria di massa le zone di memoria temporaneamente non usate dai programmi e garantisce che le pagine swappate vengano riportate in memoria se richieste. Uno scheduler che scandisce il tempo di esecuzione dei vari processi e assicura che ciascuno di essi venga eseguito per il tempo richiesto. Normalmente lo scheduler gestisce anche lo stato dei processi e può sospenderne l'esecuzione nel caso questi siano in attesa senza fare nulla (esempio classico è la richiesta di dati da disco). Nei sistemi operativi realtime lo scheduler si occupa anche di garantire una timeline, cioè un tempo massimo di completamento per ciascun task in esecuzione, ed è notevolmente più complesso. Uno spooler che riceve dai programmi i dati da stampare e li stampa in successione, permettendo ai programmi di proseguire senza dover attendere la fine del processo di stampa. Una interfaccia utente (Shell) che permette agli utenti di interagire con la macchina. A seconda dei casi, un particolare sistema operativo può avere tutti questi componenti o solo alcuni. DOS (Disk Operating Systems) Un computer diventa molto più utile ed efficace se dotato di una memoria di massa: per gestirla serve un gestore di file system, cioè un software che in sintesi è composto da un insieme di funzioni che permetta di organizzare e gestire (accesso o lettura, scrittura o memorizzazione, ordinamento) i dati sulla superficie dei mezzi di memorizzazione secondo una struttura ben precisa. I sistemi operativi che risiedevano su disco e capaci di gestire un file system sono detti genericamente Disk Operating System, cioè DOS appunto. L'esemplare più famoso è senz'altro l'ms-dos di Microsoft, oggi non più in uso, ma che era alla base dei 2

3 sistemi operativi Windows 95/98/Me. Ne esiste anche una versione libera compatibile con i suoi programmi, il FreeDOS, ed altre versioni come il DR-DOS. Processi Programmi e processi Un programma è costituito dal codice oggetto generato dalla compilazione del codice sorgente, ed è normalmente salvato sotto forma di uno o più file. Esso è un'entità statica, che rimane immutata durante l'esecuzione. Il processo è l'entità utilizzata dal sistema operativo per rappresentare una specifica esecuzione di un programma. Esso è quindi un'entità dinamica, che dipende dai dati che vengono elaborati, e dalle operazioni eseguite su di essi. Il processo è quindi caratterizzato, oltre che dal codice eseguibile, dall'insieme di tutte le informazioni che ne definiscono lo stato, come il contenuto della memoria indirizzata, i thread, i descrittori dei file e delle periferiche in uso. Processi e thread Il concetto di processo è associato, ma comunque distinto da quello di thread (abbreviazione di thread of execution, filo dell'esecuzione) con cui si intende invece l'unità granulare in cui un processo può essere suddiviso (sottoprocesso) e che può essere eseguito a divisione di tempo o in parallelo ad altri thread da parte del processore. In altre parole, un thread è una parte del processo che viene eseguita in maniera concorrente ed indipendente internamente allo stato generale del processo stesso. Il termine inglese rende bene l'idea, in quanto si rifà visivamente al concetto di fune composta da vari fili attorcigliati: se la fune è il processo in esecuzione, allora i singoli fili che la compongono sono i thread. Un processo ha sempre almeno un thread (se stesso), ma in alcuni casi un processo può avere più thread che vengono eseguiti in parallelo. Una differenza sostanziale fra thread e processi consiste nel modo con cui essi condividono le risorse: mentre i processi sono di solito fra loro indipendenti, utilizzando diverse aree di memoria ed interagendo soltanto mediante appositi meccanismi di comunicazione messi a disposizione dal sistema, al contrario i thread di un processo tipicamente condividono le medesime informazioni di stato, la memoria ed altre risorse di sistema. L'altra differenza sostanziale è insita nel meccanismo di attivazione: la creazione di un nuovo processo è sempre onerosa per il sistema, in quanto devono essere allocate ovvero assegnate risorse necessarie alla sua esecuzione (allocazione di memoria, riferimenti alle periferiche, e così via, operazioni tipicamente onerose); il thread invece è parte di un processo e quindi una sua nuova attivazione viene effettuata in tempi ridottissimi a costi minimi. Le definizioni sono le seguenti: Il processo è l'oggetto del sistema operativo a cui sono assegnate tutte le risorse di sistema per l'esecuzione di un programma, tranne la CPU. Il thread è l'oggetto del sistema operativo o dell'applicazione a cui è assegnata la CPU per l'esecuzione. 3

4 In un sistema che non supporta i thread, se si vuole eseguire contemporaneamente più volte lo stesso programma, è necessario creare più processi basati sullo stesso programma. Tale tecnica funziona, ma è dispendiosa di risorse, sia perché ogni processo deve allocare le proprie risorse, sia perché per comunicare tra i vari processi è necessario eseguire delle relativamente lente chiamate di sistema, sia perché la commutazione di contesto tra thread dello stesso processo è più veloce che tra thread di processi distinti. Avendo più thread nello stesso processo, si può ottenere lo stesso risultato allocando una sola volta le risorse necessarie, e scambiando i dati tra i thread tramite la memoria del processo, che è accessibile a tutti i suoi thread. Un esempio di applicazione che può far uso di più thread è un browser Web, che usa un thread distinto per scaricare ogni immagine in una pagina Web che contiene più immagini. Un altro esempio è costituito dai processi server, spesso chiamati servizi o daemon, che possono rispondere contemporaneamente alle richieste provenienti da più utenti. In un sistema multiprocessore (SMP), si possono avere miglioramenti prestazionali, grazie al parallelismo fisico dei thread. Tuttavia, l'applicazione deve essere progettata in modo tale che essa suddivida tra i thread il carico di elaborazione. Tale progettazione è difficile e soggetta a errori, e il programma risultante, se eseguito su un sistema monoprocessore, potrebbe essere più lento di uno con un solo thread; pertanto oggi sono ancora pochi i software che usano i thread per sfruttare i sistemi SMP. Supporto del sistema operativo I sistemi operativi si classificano nel seguente modo in base al supporto che offrono a processi e thread: Monotasking: non sono supportati né processi né thread; si può lanciare un solo programma per volta. Multitasking cooperativo: sono supportati i processi, ma non i thread, e ogni processo mantiene la CPU finché non la rilascia spontaneamente. Multitasking preventivo: sono supportati i processi, ma non i thread, e ogni processo mantiene la CPU finché non la rilascia spontaneamente o finché il sistema operativo sospende il processo per passare la CPU a un altro processo. Multithreaded: sono supportati sia i processi, sia i thread. Multitasking embedded: sono supportati i thread, ma non processi, nel senso che si può eseguire un solo programma per volta, ma questo programma può avere più thread (solitamente detti task). Sistema multi task I programmi non hanno sempre realmente bisogno della CPU: a volte, invece di eseguire istruzioni, stanno aspettando che arrivino dei dati da un file, o che l'utente prema un tasto della tastiera. Quindi si può, in linea di principio, usare questi tempi "morti" per far eseguire un altro programma. Questa idea, sorta fin dai primi anni cinquanta, si concretizzò nei sistemi operativi multitasking, cioè dotati di uno scheduler che manda in esecuzione più processi (esecuzioni di programmi), assegnando a turno la CPU a ognuno e sospendendo l'esecuzione dei programmi in attesa di un evento esterno (lettura/scrittura sulle memorie di massa, stampa, input utente ecc.) finché questo non si verifica. 4

5 Dovendo ospitare in memoria centrale più programmi nello stesso tempo, i sistemi multitask hanno bisogno di più memoria rispetto a quelli monotask: perciò questo tipo di sistemi operativi è quasi sempre dotato di un gestore di memoria virtuale. Inoltre, con più programmi simultaneamente attivi, il controllo delle risorse hardware diventa una reale necessità e non è più possibile farne a meno. Esistono sostanzialmente due modi di implementare il multitasking: cooperative e preemptive multitasking. Nel primo sono i programmi che, spontaneamente, cedono il controllo al sistema non appena hanno terminato la singola operazione in corso; nel secondo è lo scheduler che ferma i programmi allo scadere del tempo assegnato e trasferisce il controllo dall'uno all'altro. Il cooperative multitasking assorbe meno risorse di calcolo e non ha (quasi) ritardo di commutazione per il cambio di task, e inoltre non richiede nessuna struttura hardware dedicata, il che rende possibile implementarlo su qualunque calcolatore; per contro è molto vulnerabile a errori nei programmi (in genere il crash di un programma fa cadere l'intero sistema) e l'isolamento fra processi è molto debole. È il modello utilizzato da Mac OS 9, Windows 3.0 e precedenti. Il preemptive multitasking necessita di CPU che implementino in hardware sia dei livelli di privilegio per l'esecuzione del codice, sia una logica specifica per il context switch, il cambio di task eseguito dallo scheduler. Poiché l'interruzione dei programmi è arbitraria, al cambio di task il sistema operativo è costretto a salvare tutti o quasi i registri della CPU e ricaricarli con quelli salvati dal task che subentra, perdendo molto tempo. A fronte di queste maggiori richieste, il preemptive multitasking offre una sicurezza del sistema molto maggiore e una (virtuale) immunità ai crash di sistema causati da errori nei programmi. È il modello utilizzato dai moderni sistemi operativi. Stati di un processo In un sistema operativo multitasking, ci sono più processi contemporaneamente in esecuzione. Di questi, al massimo un numero pari al numero di processori può avere effettivamente il controllo di un processore in un dato istante. I diversi processi possono quindi utilizzare il processore per un periodo limitato di tempo cioè a divisione di tempo, per questo motivo i processi vengono interrotti, messi in pausa e richiamati secondo i noti algoritmi di schedulazione, dando l'impressione all'utente di un processamento parallelo di questi. Gli stati in cui un processo si può trovare sono: esecuzione (running): il processo ha il controllo di un processore; pronto (ready): il processo è pronto ad essere eseguito, ed è in attesa che lo scheduler lo metta in esecuzione; in attesa o sospeso o bloccato (suspended o blocked): il processo ha eseguito una chiamata di sistema ed è fermo in attesa del risultato; Con commutazione di contesto (Context switch) si indica il meccanismo tramite il quale un processo in esecuzione viene fermato (perché ha eseguito una chiamata di sistema o perché lo scheduler ha deciso di eseguire un altro processo), e un altro pronto viene messo in esecuzione. Algoritmo Schedulazione: First Come First Served L'algoritmo FCFS (First Come First Served) è un tipo di algoritmo FIFO: esegue i processi nello stesso ordine in cui essi vengono sottomessi al sistema. Il primo processo ad essere eseguito è esattamente quello che per primo richiede l'uso della CPU. Quelli successivi vengono serviti non appena questo ha terminato la 5

6 propria esecuzione, e così avviene successivamente per tutti gli altri posti in coda. Questo tipo di algoritmo è molto semplice da implementare ma solitamente è anche poco efficiente, almeno considerando il tempo medio d'attesa. Algoritmo Schedulazione: Round Robin L'algoritmo di scheduling RR (Round Robin) è un particolare algoritmo di tipo preemptive che esegue i processi nell'ordine d'arrivo, come il FCFS, ma esegue la prelazione del processo in esecuzione, ponendolo alla fine della coda dei processi in attesa, qualora l'esecuzione duri più del quanto di tempo stabilito, e facendo proseguire l'esecuzione al successivo processo in attesa. Ad esempio nell'ipotesi che vi siano i seguenti processi in coda con relativa durata in millisecondi, e quanto di tempo stabilito di 20 ms: p1 30 p2 15 p3 60 p4 45 Verranno eseguiti nel seguente ordine: p1 (interrotto dopo 20 ms, ne rimangono altri 10) p2 (termina la propria esecuzione perché dura meno di 20 ms) p3 (interrotto dopo 20 ms, ne rimangono altri 40) p4 (interrotto dopo 20 ms, ne rimangono altri 25) p1 (termina la propria esecuzione perché necessitava di meno di 20 ms) p3 (interrotto dopo 20 ms, ne rimangono altri 20) p4 (interrotto dopo 20 ms, ne rimangono altri 5) p3 (termina la propria esecuzione perché necessitava di esattamente 20 ms) p4 (termina la propria esecuzione) Le prestazioni di quest'algoritmo sono dunque influenzate dal tempo medio d'attesa sebbene consenta a tutti i processi di ottenere il controllo della CPU ed evita quindi il problema dell'attesa indefinita (starvation). È inoltre da tenere in considerazione l'impatto dovuto ai frequenti context switch effettuati. È necessario quindi calcolare correttamente la durata ottimale del quanto di tempo per far sì che l'incidenza dei cambi di contesto sia abbastanza limitata come anche i tempi di attesa. Algoritmo Schedulazione: Shortest Job first Gli algoritmi SJF (Shortest job first), non potendo conoscere il tempo per il quale il job occuperà il processore (per il Teorema della fermata), il sistema operativo utilizzerà i dati di precedenti elaborazioni. Sistema multiutente Se un computer può far girare più programmi contemporaneamente, allora può anche accettare comandi da più utenti contemporaneamente: in effetti dal multitasking alla multiutenza o timesharing il passo è tecnicamente molto breve, ma fa sorgere una serie di nuovi problemi dal punto di vista della sicurezza dei sistemi operativi: come distinguere i vari utenti tra loro, come accertarsi che nessun utente possa causare danni agli altri o alla macchina che sta usando. Questi problemi di sicurezza informatica si risolvono assegnando un account univoco per ciascun utente, assegnando un proprietario ai file ed ai programmi e gestendo un sistema di permessi per l'accesso ad essi, e prevedendo una gerarchia di utenti (cioè di account) per cui il sistema rifiuterà tutti i comandi potenzialmente "pericolosi" e li accetterà soltanto se impartiti da un utente in cima alla gerarchia, che è l'amministratore del sistema (generalmente l'account root nei sistemi Unix, Administrator nei sistemi Windows). 6

7 Sistema operativo on-line Mediante opportuni software, il sistema operativo può avere la funzionalità di desktop remoto, che consente tramite una connessione internet l'accesso al proprio elaboratore e a tutti gli applicativi e dati salvati in uno specifico momento. Tramite accesso remoto sono possibili le stesse operazioni che si possono fare stando davanti al proprio elaboratore. L'accesso è protetto da user e password che possono essere al limite condivisi da una comunità di utenti. In questo caso, il desktop remoto è un'evoluzione della tradizionale cartella condivisa. La cartella condivisa già permetteva la comunicazione di qualsiasi file, dunque anche di eseguibili, installabili da remoto in locale, oltreché di dati. Storia L'arrivo del personal computer (anni ottanta) Verso gli anni ottanta, grazie alla tecnologia LSI (large scale integration) la costruzione di chip integrati divenne massiccia e portò all'abbattimento dei prezzi dell'hardware, facendo sorgere l'era dell'elaboratore personale o personal computer. Queste macchine erano piccole, economiche ed avevano prestazioni simili a quelle dei calcolatori medio-grandi di anni prima. I primi modelli erano dotati di sistemi operativi monoutente con accesso interattivo e supporto al time-sharing. Il più importante tra i primi sistemi operativi per personal computer era il CP/M-80 della Digital Research per le CPU 8080, 8085 e Z-80. Era basato sui sistemi operativi della Digital Equipment Corporation specialmente quelli per l'architettura PDP- 1. MS-DOS (o PC DOS quando fornito da IBM) era originariamente basato proprio sul CP/M-80. Microsoft contro Apple Steve Jobs era uno dei pochi che credeva nell'idea del personal computer. All'epoca era difficile immaginare cosa potesse farsene una persona di un computer in casa. Egli invece continuò per la sua strada fondando Apple Computer Inc. il 1º aprile 1976 assieme a Steve Wozniak e Ronald Wayne. Jobs era convinto che il futuro del personal computer sarebbe stato legato all'interfaccia grafica. E così, ispirandosi a quella sviluppata da Xerox Corporation qualche anno prima, Apple lanciò nel 1984 Mac OS il primo sistema operativo per personal computer con interfaccia grafica. Questa fu una vera rivoluzione tanto che nello stesso anno sarebbe nato l'x Window System in ambiente Unix e il 20 novembre 1985 Microsoft avrebbe commercializzato Windows. All'inizio Windows non era definibile come un sistema operativo: era piuttosto un'estensione di MS-DOS. Fu con il rilascio di Windows 3.0, nel 1990, che Microsoft si impose sul mercato. Oltre alle maggiori performance che garantiva alle applicazioni rispetto alle versioni precedenti, Windows 3.0 forniva un ambiente multitasking migliorato rispetto alle precedenti versioni di MS-DOS, grazie all'introduzione del supporto alla memoria virtuale, e divenne così un degno rivale dell'macintosh (su cui girava Mac OS) di Apple. A partire da Windows 3.1 fu introdotto il supporto alla multimedialità (perfezionato via via nelle successive release), mentre con l'introduzione di Windows 95 si passò definitivamente dal calcolo a 16 bit a quello a 32 bit. 7

8 I sistemi operativi di rete e il fenomeno Linux A fianco di Microsoft ed Apple il mercato delle workstation e dei grandi elaboratori era comunque dominato da UNIX. Un fenomeno interessante che iniziò a prendere piede da metà degli anni ottanta fu lo sviluppo delle reti di calcolatori, fenomeno che ha poi portato all'incredibile crescita di Internet. Nacquero così i "sistemi operativi di rete" e i "sistemi operativi distribuiti". I primi altro non sono che normali sistemi operativi ai quali vengono aggiunti i software per il collegamento a macchine remote e quindi alle relative risorse condivise come file e stampanti. I secondi sono sistemi operativi che girano su sistemi a più processori oppure che inviano i processi da elaborare ad altri computer della rete. Essi sono dotati di particolari politiche di scheduling che permettono una efficace allocazione dei processi tra le CPU disponibili. Inoltre anche il sistema di archiviazione (il file system) è unico, anche se in realtà è distribuito tra vari nodi della rete. Esempi della prima classe di sistemi di rete sono tutte le versioni di Windows dalla "Windows for Workgroups 3.1" e dalla "NT" in poi, mentre UNIX e derivati fanno parte di entrambe le categorie in quanto supportano entrambe le tecnologie. Nel 1991 Linus Torvalds sviluppò un kernel Unix-like, capace però di girare sulla piattaforma x86. Così nacque Linux. Fu quando venne abbinato al progetto GNU di Richard Stallman, portavoce della filosofia del software libero, che iniziò la fortuna di GNU/Linux in quanto la combinazione risultava, e lo è tuttora, un sistema operativo efficiente ed affidabile. 8

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

Dettagli

Gestione del processore e dei processi

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

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

Il software. la parte contro cui si può solo imprecare. Il software Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

PARTE 4 La Macchina Software

PARTE 4 La Macchina Software PARTE 4 La Macchina Software 94 Macchina Hardware e Macchina Software applicativi sistema operativo macchina hardware Agli albori dell'informatica, si programmava in binario, cioe` in linguaggio macchina,

Dettagli

Informatica: il sistema operativo

Informatica: il sistema operativo pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 6 ottobre 2006 Il software Il software è l insieme dei programmi che operano sul calcolatore Software

Dettagli

CdL in Medicina Veterinaria - STPA AA 2007-08

CdL in Medicina Veterinaria - STPA AA 2007-08 CdL in Medicina Veterinaria - STPA AA 2007-08 Il Sistema Operativo Architettura del Software Software = insieme (complesso) di programmi. Organizzazione a strati, ciascuno con funzionalità di livello più

Dettagli

1.2.1.1 DEFINIZIONE DI SOFTWARE

1.2.1.1 DEFINIZIONE DI SOFTWARE Software 1.2 1.2.1.1 DEFINIZIONE DI SOFTWARE Il computer non è in grado di svolgere alcun compito autonomamente Esso può eseguire svariati compiti soltanto se viene opportunamente istruito Ciò avviene

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi. Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 4-Panoramica delle generazioni 1 Prerequisiti Monoprogrammazione e multiprogrammazione Multielaborazione Linguaggio macchina Linguaggi di programmazione e compilatori Struttura

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

Scheduling. Lo scheduler è la parte del SO che si occupa di

Scheduling. Lo scheduler è la parte del SO che si occupa di Scheduling Lo scheduler è la parte del SO che si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L algoritmo di scheduling (la politica utilizzata dallo scheduler) ha impatto

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

TITLE Sistemi Operativi 1

TITLE Sistemi Operativi 1 TITLE Sistemi Operativi 1 Cos'è un sistema operativo Definizione: Un sistema operativo è un programma che controlla l'esecuzione di programmi applicativi e agisce come interfaccia tra le applicazioni e

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1 Il software Capitolo 3 La potenza non è nulla senza il software 1 Domande chiave 3.1 Quali sono le tendenze nel campo del software online? 3.2 Quali sono i tre componenti del software di sistema; che cosa

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU Simulazione in linguaggio Java Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

MODULO 02. Iniziamo a usare il computer

MODULO 02. Iniziamo a usare il computer MODULO 02 Iniziamo a usare il computer MODULO 02 Unità didattica 01 Conosciamo il sistema operativo In questa lezione impareremo: a conoscere le caratteristiche del sistema operativo a cosa servono i sistemi

Dettagli

Sistema operativo: Gestione dei processi

Sistema operativo: Gestione dei processi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: attivita` di allocazione della risorsa CPU ai processi. Scheduler

Dettagli

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete Sistemi Operativi di Rete Estensione dei Sistemi Operativi standard con servizi per la gestione di risorse in rete locale Risorse gestite: uno o più server di rete più stampanti di rete una o più reti

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo L2 1.1-Introduzione 1 Prerequisiti Concetto intuitivo di applicazione per computer Uso pratico elementare di un sistema operativo 2 1 Introduzione Uno dei compiti di un sistema

Dettagli

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2010-11 Architettura di un sistema operativo Progr 1 Progr 2 Progr

Dettagli

Hardware delle reti LAN

Hardware delle reti LAN Hardware delle reti LAN Le reti LAN utilizzano una struttura basata su cavi e concentratori che permette il trasferimento di informazioni. In un ottica di questo tipo, i computer che prendono parte allo

Dettagli

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Threading T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Caratteristiche principali dei thread Consentono di eseguire elaborazioni simultanee in un programma scritto in C#. Possono essere

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

Scheduling. Scheduling 14/12/2003 1/7

Scheduling. Scheduling 14/12/2003 1/7 Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling

Dettagli

Complementi di Informatica. Sistemi Operativi

Complementi di Informatica. Sistemi Operativi Complementi di Informatica Sistemi Operativi Definizione Uno speciale insieme di programmi che gestisce le risorse di un elaboratore (memorie periferiche, programmi, dati ecc.) e tutte le operazioni di

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Sistemi Operativi. Conclusioni e nuove frontiere

Sistemi Operativi. Conclusioni e nuove frontiere Sistemi Operativi (modulo di Informatica II) Conclusioni e nuove frontiere Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Definizione di sistema operativo Evoluzione futura

Dettagli

Processo - generalità

Processo - generalità I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere

Dettagli

VMware. Gestione dello shutdown con UPS MetaSystem

VMware. Gestione dello shutdown con UPS MetaSystem VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese Introduzione al sistema operativo Laboratorio Software 2008-2009 C. Brandolese Che cos è un sistema operativo Alcuni anni fa un sistema operativo era definito come: Il software necessario a controllare

Dettagli