Sistemi Operativi.

Slides:



Advertisements
Presentazioni simili
STRUTTURA DEL SISTEMA OPERATIVO
Advertisements

Meccanismi di IPC Problemi classici di IPC
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
Gestione della memoria centrale
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
La struttura fisica e logica di un elaboratore
STRUTTURA DEL PERSONAL COMPUTER
Da Unix a Linux Alessio Coraci V Dp.
Hard disk.
Il Sistema Operativo.
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
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.
Operating System Concepts
Strutture dei Sistemi Operativi
Strutture dei Sistemi Operativi
Silberschatz, Galvin and Gagne Operating System ConceptsIntroduzione Che cosè un Sistema Operativo? Sistemi batch semplici Sistemi batch multiprogrammati.
Realizzazione del file system
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Struttura dei sistemi operativi (panoramica)
I Thread.
Introduzione.
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
Laboratorio di Informatica
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Introduzione Cosa è un Sistema Operativo ?
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Informatica per medici
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
ELETTRONICA DIGITALE (II Parte)
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Silberschatz and Galvin Operating System Concepts CAP. 1 - INTRODUZIONE.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Architettura degli elaboratori
Architettura del calcolatore
Il Sistema Operativo (1)
Threads.
Sistema Operativo (Software di base)
Capitolo 0 : Introduzione al corso CdL in Ingegneria Elettronica e delle Telecomunicazioni: Fondamenti dei S.O. (6CFU) Capitolo 0 : Introduzione al corso.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
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.
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Il Sistema Operativo.
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.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
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.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
Transcript della presentazione:

Sistemi Operativi

Informazioni Daniela Micucci Università di Milano – Bicocca E-mail: micucci@disco.unimib.it Testo per approfondimenti: Sistemi operativi ‐ Concetti ed esempi ‐ 8° Edizione A. Silberschatz ‐ P. Galvin ‐ G. Gagne - Prentice Hall

Introduzione

Outline Una breve storia dei Sistemi Operativi Cos’è un sistema operativo Organizzazione del sistema di calcolo Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file

Outline Una breve storia dei Sistemi Operativi Cos’è un sistema operativo Organizzazione del sistema di calcolo Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file

Prima dei Sistemi Operativi Tra il 1945 e il 1955 gli elaboratori elettronici erano progettati con valvole termoioniche Occupavano intere stanze, erano lentissimi e costosi Soltanto grossi centri di calcolo o Università potevano permetterseli I calcolatori erano molto inaffidabili Le valvole che li componevano si rompevano spesso In questo periodo non esisteva ancora il concetto di Sistema Operativo Il programma da eseguire veniva inserito ad ogni esecuzione in codice binario attraverso dei primitivi lettori di schede perforate e dopo alcune ore il risultato veniva inviato ad una stampante

I primi Sistemi Operativi (anni ‘50) Tra il 1955 e il 1965, grazie ai transistor gli elaboratori (mainframe) divennero abbastanza affidabili da poter essere costruiti e venduti in serie, anche se erano comunque macchine grosse e costosissime Tale operazione era molto dispendiosa in termini di tempo e non permetteva di sfruttare la macchina durante le lunghe fasi di caricamento di dati e programmi Concetto di job Miscela di programmi (in Fortran o Assembler), dati e comandi al SO Un programmatore doveva: Scrivere il proprio programma su carta Trasferirlo su schede Caricarlo nel computer Attendere il termine dell'esecuzione e la stampa del risultato

I primi Sistemi Operativi (anni ‘50) Nasce l’idea dei sistema batch (a lotti) ovvero l'idea di base era quella di dividere i tre lavori, ovvero il caricamento dei dati, il calcolo e la stampa I sistemi operativi tipici per questi elaboratori, per lo più programmati in FORTRAN e in Assembler erano il FMS (Fortran Monitor System) e IBSYS

La multiprogrammazione (anni ‘60) Introduzione dei circuiti integrati -> maggior velocità Necessità di ridurre il tempo idle dovuto alla esecuzione di un solo job alla volta Per la prima volta è introdotta la multiprogrammazione, che rendeva possibile la presenza di più programmi in memoria contemporaneamente Quando un job in esecuzione aveva bisogno di effettuare una operazione di I/O il Sistema Operativo lo sospendeva e al suo posto faceva girare un altro job Nel 1964 IBM presenta una famiglia di computer chiamata IBM System/360, prima realizzazione di una netta distinzione tra architettura e software t job1 job2 job3

La multiprogrammazione (anni ‘60) Sviluppo dei sistemi di telecomunicazione delle reti Nascono i sistemi multiterminale Ogni utente dispone di un dispositivo di ingresso (la tastiera) e un dispositivo di uscita (un monitor o stampante) Si introduce anche il timesharing Ogni utente dispone di un dispositivo di ingresso (la tastiera) e un dispositivo di uscita (un monitor o stampante) Nel 1962 venne realizzato al MIT il primo sistema di timesharing su un IBM 7094: CTSS (Compatible Time Sharing System), La vera rivoluzione si ebbe con il MULTICS (MULTiplexed Information and Computing Service) sviluppato congiuntamente dal MIT, dalla General Electric e dai Bell Labs Ambizione: gestire centinaia di utenti con un 286 

La multiprogrammazione (anni ‘60) Fenomenale crescita dei minicalcolatori, a partire dal PDP-1 del 1961 a motivo dei bassi costi (120.000$: 5% costo di un IBM 7094!!!!) Importante il PDP-7 Su cui Ken Thompson (e Dennis Ritchie e Douglas Mcllroy sempre presso i lab Bell) sviluppò per gioco UNICS (Uniplexed Information and Computing Service): versione ridotta per singolo utente di MULTICS Che divenne poi UNIX Furono sviluppate diverse varianti di UNIX, come System V, BSD (Berkley Software Distribution), Minix (usato in ambito didattico) e successivamente (sulla base di MINIX e UNIX) l'ormai famosissimo Linux sviluppato dallo studente finlandese Linux Torvalds

I personal computer (anni ‘80) Negli anni '80 la tecnologia LSI (Large Scale Integration) porta alla costruzione di chip integrati ed all'abbattimento dei prezzi dell'hardware, facendo sorgere l'era del Personal Computer (chiamati inizialmente microcalcolatori) I primi modelli erano dotati di Sistemi Operativi Monoutente Con accesso interattivo e Alcuni con supporto al timesharing Il più importante tra i primi Sistemi Operativi per Personal computer era il CP/M-80 (Control Program for Microcomputer) della Digital Research MS-DOS (o PC-DOS da IBM) era originariamente basato proprio sul CP/M-80

I personal computer (anni ‘80) Negli anni ‘80 la Apple era uno dei pochi che credeva nell'idea Personal Computer All'epoca era difficile immaginare cosa potesse farsene una persona di un computer in casa La Xerox lancia il primo Sistema Operativo con interfaccia grafica La Apple prende in “prestito” questa idea e lancia nel 1984 il Mac OS, primo sistema operativo per Personal Computer Successivamente la Microsoft avrebbe commercializzato Windows (20 novembre 1985)

I Sistemi Operativi oggi Oggigiorno è disponibile una grande varietà di sistemi di elaborazione dalle più disparate dimensioni e performance a costi contenuti Tutte queste innovazioni hanno portato allo sviluppo di sistemi operativi per le più svariate architetture, in particolare per dispositivi handheld come cellulari (tra i quali il Symbian OS, Android) e PDA (con Windows Mobile e Palm OS) Per qualunque architettura venga sviluppato un Sistema Operativo moderno esso deve fornire il supporto, oltre a quanto visto sinora, a molteplici esigenze quali: Streaming audio/video (trasmissione ed elaborazione continua di dati multimediali) Supporto alle più diverse tecnologie di interconnessione (ad esempio Ethernet, Bluetooth e Wireless LAN) Integrazione di tecnologie per la fruizione di contenuti su Internet Gestione efficiente dell'energia

Outline Una breve storia dei Sistemi Operativi Cos’è un sistema operativo Organizzazione del sistema di calcolo Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file

Cos’è un sistema operativo? Un Sistema Operativo è un insieme di programmi che: Gestisce gli elementi fisici del calcolatore Fornisce una piattaforma ai programmi applicativi Agisce da intermediario tra l’utente e la struttura fisica del calcolatore Scopi del sistema operativo: Eseguire i programmi, supportando l’utente nel “risolvere problemi” Rendere agevole l’interfaccia fra l’uomo e la macchina il sistema di calcolo è “conveniente” da usare Gestire in modo efficiente le risorse (hardware/software) del sistema di calcolo

Organizzazione del sistema di calcolo Il sistema di calcolo si suddivide in quattro componenti principali: Hardware Fornisce le risorse fondamentali di calcolo e.g., CPU, memoria, device di I/O Sistema operativo Controlla e coordina l’utilizzo delle risorse hardware da parte dei diversi programmi di sistema e applicativi Programmi applicativi Definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti e.g., Word processor, compilatori, web browser, sistemi per basi di dati, video game Utenti Persone, macchine, altri computer Dove si pone il S.O. rispetto al sistema di calcolo

Le componenti di un sistema di calcolo

Definizione di sistema operativo - 1 Il Sistema Operativo (SO) è un assegnatore di risorse Gestisce tutte le risorse hardware/software del sistema di calcolo Arbitra i conflitti per l’allocazione di risorse in base ad una politica equa ed efficiente Il SO è un programma di controllo Controlla l’esecuzione dei programmi utente per prevenire errori e/o uso improprio delle risorse del sistema

Definizione di sistema operativo - 2 Non esiste una definizione universalmente accettata Un’altra possibile definizione: «tutto quello che il vostro rivenditore vi fornisce quando ordinate un sistema operativo» Un’altra ancora: «il Sistema Operativo è il solo programma sempre in esecuzione quando il computer è acceso - detto kernel» Il resto sono solo programmi applicativi

SO come gestore risorse – 1 Si consideri un ristorante con un capo cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti: I clienti scelgono un piatto dal menù Un cameriere prende l’ordine e lo consegna al capo cuoco Il capo cuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piatto Ogni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverse Il capo cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili

SO come gestore risorse – 2 Il capo cuoco è il sistema operativo! I clienti sono gli utenti Il menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non) Le ricette associate ai piatti sono i programmi Gli aiutanti sono i processi La cucina è il computer; pentole, fornelli, etc., sono le componenti hardware

SO come gestore risorse – 3 Problemi del capo cuoco Esecuzione fedele delle ricette Allocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento degli aiutanti Licenziamento degli aiutanti che non si comportano secondo le regole Problemi del sistema operativo Esecuzione dei programmi utente Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.) Coordinamento dei processi Protezione nell’uso delle risorse

Outline Una breve storia dei Sistemi Operativi Cos’è un sistema operativo Organizzazione del sistema di calcolo Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file

Organizzazione di un calcolatore Un sistema di calcolo può essere descritto attraverso i seguenti elementi Modello o funzionamento del sistema di calcolo Struttura della memoria Fatto in architetture Struttura di I/O

Modello del sistema Un sistema di calcolo è composto da una o più CPU, alcuni controllori di dispositivi di I/O (device) connessi attraverso un bus alla memoria Questi dispositivi operano in maniera concorrente per ottenere cicli di accesso alla memoria

Startup Normalmente in un sistema di calcolo dopo l’accensione la prima fase è il bootstrap program (programma di avviamento) Tipicamente è memorizzato in una ROM o in una EPROM e viene identificato con il termine firmware Inizializza ogni aspetto del sistema Registri della CPU, controllori dei diversi dispositivi Carica nella memoria il kernel del sistema operativo Il Sistema Operativo avvierà normalmente il primo processo (ad esempio sotto Linux è init) Questo processo una volta avviato si metterà in attesa di un evento o di ulteriori istruzioni

Gestione dei dispositivi di I/O La CPU e i device di I/O possono eseguire operazioni concorrenti Ogni dispositivo di I/O ha un controllore che gestisce le operazioni del dispositivo attraverso un buffer locale La CPU sposta i dati da/verso la memoria principale verso/da i buffer locali Il dispositivo di I/O fornisce normalmente nuovi dati all’interno di questo buffer locale Ogni qualvolta che un dispositivo ha nuovi dati causa un interrupt per richiamare l’attenzione della CPU

Gli interrupt Un interrupt generalmente trasferisce il controllo ad una routine di servizio Normalmente esiste una sequenza di indirizzi, detta vettore delle interruzioni, che punta alle diverse routine di servizio Il Sistema Operativo deve salvare l’indirizzo dell’istruzione appena interrotta per poterla continuare ad eseguire successivamente Ulteriori interrupt sono normalmente disabilitati per non causare incoerenze nella normale esecuzione dell’interrupt corrente Un trap (o eccezione) è normalmente un interrupt generato via software a seguito di un errore oppure da una richiesta utente Ad esempio una divisione per zero Un sistema operativo è quindi anche un gestore di interrupt

Timeline delle interruzioni

Interrupt di I/O Dopo l’inizio dell’operazione di I/O, il flusso di esecuzione può seguire due percorsi distinti: I/O sincrono: si restituisce il controllo al processo utente solo dopo il completamento dell’operazione di I/O I/O asincrono: si restituisce immediatamente il controllo al processo utente in questo modo l’I/O può proseguire mentre il sistema esegue altre operazioni

Outline Una breve storia dei Sistemi Operativi Cos’è un sistema operativo Organizzazione del sistema di calcolo Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file

Struttura del Sistema Operativo I Sistemi Operativi possono essere progettati utilizzando diversi criteri, i più comuni sono: Multiprogrammazione Timesharing (o multitasking)

Multiprogrammazione La multiprogrammazione consente di aumentare l’efficienza della CPU e dei dispositivi di I/O, infatti: Un singolo utente non può tenere occupato la CPU e i dispositivi di I/O per tutto il tempo La multiprogrammazione organizza i lavori (o job) in modo tale da tenere sempre la CPU occupata Più job (un sottoinsieme dei totali) del sistema risiedono in memoria Un solo job alla volta è selezionato per essere mandato in esecuzione attraverso un algoritmo di scheduling Quando un job è in attesa di un I/O il Sistema Operativo può passare all’esecuzione di un altro job

Time sharing (o multitasking) Il timesharing (o multitasking) è una estensione logica della multiprogrammazione La CPU esegue per un istante un job per poi passare all’esecuzione di un altro job e così via La sensazione è che la CPU sta eseguendo diversi job in parallelo Il tempo di risposta deve essere inferiore di 1 secondo Ogni utente ha almeno un programma «in esecuzione» in memoria chiamato processo Se diversi processi sono pronti per essere eseguiti nello stesso istante la CPU decide attraverso degli algoritmi di scheduling chi deve essere mandato in esecuzione Se la memoria non è sufficiente a contenere tutti i processi, mediante swapping, i processi vengono spostati fuori/dentro la memoria principale in base al loro stato di esecuzione effettivo La memoria virtuale permette l’esecuzione di processi che non sono completamente in memoria

Multiprogrammazione e memoria

Outline Una breve storia dei Sistemi Operativi Cos’è un sistema operativo Organizzazione del sistema di calcolo Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file

Doppia modalità di funzionamento Processi condividono il sistema I processi possono tentare di modificare lo spazio di memoria dedicato ad altri processi o al SO La modalità operativa dual-mode permette al SO di proteggersi e di proteggere le varie componenti del sistema di calcolo User mode e kernel mode Mode bit cablato in hardware Il valore assunto dal mode bit distingue le due situazioni in cui il sistema esegue codice utente o codice kernel; Le istruzioni privilegiate possono essere eseguite soltanto in modalità kernel Una system call effettua il passaggio in modalità kernel; il ritorno dalla chiamata riporta il sistema in modalità utente

Transzione da modalià User a Kernel

Timer Per prevenire processi che eseguano cicli infiniti senza più restituire il controllo al SO -> Timer Emissione di un interrupt dopo un dato periodo di tempo, mediante l’uso di un generatore di impulsi e di un contatore Il SO inizializza il contatore al tempo massimo (stimato) di esecuzione del processo Il contatore viene decrementato ad ogni impulso Quando il contatore ha valore zero, si genera un interrupt

Gestione dei processi - 1 Un processo è un programma in esecuzione È una unità di lavoro del sistema Il programma è un’entità passiva, il processo è un’entità attiva Un processo necessità di risorse per poter compiere il proprio lavoro CPU, memoria, I/O, file Al termine dell’esecuzione il processo rilascia tutte le risorse utilizzate

Gestione dei processi - 2 Nei processi single‐threaded il program counter tiene traccia della prossima istruzione da eseguire Il processo esegue una singola istruzione per volta sino al suo termine Nei processi multi‐threaded ogni thread ha un suo program counter Un sistema solitamente ha diversi processi assegnati a diversi utenti e verranno eseguiti in maniera concorrente su una o più CPU Le CPU sono risorse da utilizzare per eseguire i processi/thread

Attività del gestore dei processi Il Sistema Operativo attraverso il gestore dei processi ha il compito di: Create e rimuovere i processi degli utenti e di sistema Sospendere e riprendere l’esecuzione dei processi Fornire dei meccanismo per la sincronizzazione dei processi Fornire dei meccanismo per la comunicazione tra processi Fornire dei meccanismo per la gestione dei deadlock

Gestore della memoria Il gestore della memoria si occupa di cosa tenere allocato in memoria in ogni istante È un importante modulo della Sistema Operativo in quanto rende più efficiente l’utilizzo della CPU Alcune attività del gestore della memoria sono: Tenere traccia di quale parte della memoria è occupata e da chi è usata Decidere quali processi e dati spostare dentro o fuori la memoria Allocare e deallocare blocchi di memoria quando è richiesto

Gestione del file system Il Sistema Operativo garantisce una visione uniforme e logica delle informazioni memorizzate sulle memorie di massa Il Sistema Operativo Astrae dalle caratteristiche fisiche dei dispositivi per definire un’unità di memorizzazione logica, il file Grazie ai device driver (che controllano la periferica), nasconde all’utente le caratteristiche fisiche variabili dell’hardware Permette di organizzare i file in directory Permette di controllare l’accesso per determinare quali utenti possono accedere e come a quali risorse (file) Le attività includono: Creazione e cancellazione di file e directory Fornire primitive elementari per la gestione di file e directory Associare file ai dispositivi di memoria di massa

Gestione della memoria di massa La memoria centrale è volatile e troppo piccola per contenere permanentemente tutti i dati: Il sistema operativo deve consentire l’archiviazione secondaria, per salvare i contenuti della memoria centrale La maggior parte dei moderni sistemi impiega i dischi come principale mezzo di memorizzazione La gestione efficiente della memoria secondaria è fondamentale per le prestazioni del sistema, che risentono fortemente della velocità del sottosistema di gestione dei dischi e della bontà degli algoritmi di scheduling Il SO è responsabile delle seguenti attività: Gestione dello spazio libero Allocazione dello spazio Scheduling del disco

Gestione della memoria terziaria I dispositivi di memoria terziaria non devono essere particolarmente veloci Le memorie terziarie includono i dischi ottici ed i nastri magnetici Devono comunque essere gestite in modo efficiente Variano tra memorie WORM (write-once, read-many) e RW (read-write) Supporto del SO: installazione/rimozione dei media, allocazione dei dispositivi ai processi che ne richiedono l’uso

Performance dei vari livelli di storage Complementary metal–oxide–semiconductor (CMOS)

Sottosistema di I/O Uno degli scopi del SO consiste nel nascondere all’utente le caratteristiche dei dispositivi hardware Il sottosistema di I/O è responsabile della gestione della memoria dell’I/O includendo: il buffering (la memorizzazione temporanea di dati in memorie locali alle periferiche, durante il trasferimento) il caching (la memorizzazione parziale dei dati in memorie ad accesso rapido) lo spooling (per la realizzazione della memoria virtuale) Fornisce un’interfaccia generale per i driver dei dispositivi Contiene i driver per i dispositivi specifici presenti nel sistema di calcolo

Protezione e Sicurezza In un Sistema Operativo sono necessari dei meccanismi di Protezione: meccanismo usato per controllare l’accesso da parte di processi o utenti a risorse del sistema di calcolo Sicurezza: meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni Un sistema operativo normalmente distingue i diversi utenti in modo da poter determinare chi può fare cosa Normalmente ad ogni utente corrisponde un user ID Ogni userID ha quindi i permessi su quali file accedere e su quali file mandare in esecuzione Il group ID identifica un insieme di utenti che hanno permessi su alcune risorse

Sistemi ad orientamento specifico Sistemi integrati real‐time Sono progettati imponendo dei forti vincoli sui tempi di risposta a carico del processore e del flusso dei dati Sistemi multimediali Progettati tenendo conto flussi di dati video o audio che devono essere disponibili a velocità costanti Sistemi palmari Sono progettati tenendo in considerazione le scarse risorse Le limitazioni delle periferiche di I/O …e del consumo della batteria!

Open-Source Operating Systems Disponibili in formato sorgente anziché come codice binario compilato Vantaggi Nessuna necessità di effettuare processi di reverse engineering per comprendere il funzionamento del sistema Costituzione di una comunità di programmatori interessati e non retribuiti che contribuiscono allo sviluppo, al debugging ed all’assistenza e al supporto gratuito agli utenti Codice più sicuro e privo di bug Esempi: GNU/Linux and BSD UNIX (includendo il coreb core of Mac OS X), and many more

Fine Introduzione