Anteprima
Vedrai una selezione di 5 pagine su 16
Sistemi Operativi Mobili - Tesi Pag. 1 Sistemi Operativi Mobili - Tesi Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Sistemi Operativi Mobili - Tesi Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Sistemi Operativi Mobili - Tesi Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Sistemi Operativi Mobili - Tesi Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

(N.B.

quando c’è stata una richiesta di input/output e il processo attende la

∼ Attesa, risposta della periferica

quando il processo ha completato le operazioni e può essere

∼ Terminazione, rimosso dalla RAM

Il passaggio da uno stato ad un altro avviene attraverso l’invio di un segnale elettrico

alla CPU (segnale di interrupt); un particolare processo (interrupt si occupa

handler)

della gestione di queste interruzioni salvando lo stato corrente del processo che era

in esecuzione, sulla memoria RAM e indicando alla CPU quale sarà il prossimo.

Le interruzioni possono essere:

Asincrone

Sono generate solo dall’hardware e segnalano alla CPU eventi non correlati al

 suo orologio interno (clock di sistema) (es. fine di una stampa, fine di una

scrittura su disco) Enrico Siboni 5

Sincrone

Generate dall’hardware: segnalano eventi accaduti in relazione all’orologio

 interno, ma non previste dalle istruzioni del processo (es. fine del tempo

massimo di permanenza in esecuzione del processo)

Generate dal software: sono interruzioni previste dal processo per accedere a

 funzioni particolari (es. richiesta di I/O)

Nell’ambito della multiprogrammazione il tempo della CPU deve essere suddiviso tra i

processi da eseguire, in modo da far credere all’utente che le proprie applicazioni

siano eseguite tutte contemporaneamente. Si dice quindi che il processore è gestito

dal SO in cioè suddividendo il tempo CPU in fette (time da

time sharing, slices)

assegnare ad ogni processo, che non può restare in esecuzione per più di quel tempo

prestabilito.

Quando il programmatore di SO decide la durata del time slice, non deve assegnarne

né una troppo lunga, perché l’utente vedrebbe le proprie applicazioni procedere a

scatti, né una troppo corta, perché si sprecherebbe troppo tempo CPU a causa dei

continui riassegnamenti dei processi; inoltre deve anche essere considerata la

velocità del processore dei dispositivi su cui il SO sarà installato.

Il processo che si occupa di assegnare gli altri processi da eseguire alla CPU

(scheduler) mette in atto le cosiddette “politiche di scheduling”, cioè politiche di

scelta. Fra esse la più semplice è il round robin, che consiste nel mettere in una coda

FIFO i processi pronti all’esecuzione. Raffinando questa tecnica si può implementare

la possibilità di distinguere i processi con differenti priorità di esecuzione (alta,

normale, bassa).

I processi a priorità più elevata possono essere favoriti in diversi modi:

Assegnando loro time slices più lunghi

∼ Scegliendoli più spesso dalla coda

Un altro metodo per favorire la priorità elevata è utilizzare il meccanismo della

(prelazione): quando un processo a bassa priorità è in esecuzione e un

preemption

processo a priorità più alta torna da un’operazione di I/O, il primo processo viene

interrotto per lasciare immediatamente il posto al secondo.

Per ottimizzare l’utilizzo del tempo CPU si può ricorrere all’esecuzione parallela di

parti di processi suddividendoli quindi in più che sono una sequenza di

thread,

istruzioni in corso di esecuzione. In un ambiente multithread, mentre uno o più

thread sono in attesa di una risorsa, gli altri possono continuare nella loro esecuzione

in modo da accorciare il tempo finale di esecuzione dell’intero processo; inoltre un

altro vantaggio è che i thread che ne fanno parte possono condividere le informazioni

riservate, cosa che non è possibile tra processi diversi.

Enrico Siboni 6

Il SO deve anche gestire le interferenze tra i processi, evitando perdite di dati e

garantendo la protezione delle rispettive aree di lavoro. Se quindi abbiamo un

processo che sta eseguendo operazioni su un file, il SO lo renderà non disponibile per

altri processi, fino a che l’operazione del primo non è terminata: si dice che agisce

come un “semaforo”.

Altre situazioni che il SO deve evitare sono:

Starvation (inedia): quando uno o più processi non riescono ad accedere a una

risorsa da molto tempo (ad es. lo scheduler non li sceglie perché ci sono sempre

processi con priorità più alta), il SO deve intervenire concedendo l’accesso

Deadlock (punto morto): quando si crea una situazione nella quale i processi

sono in attesa di una condizione che non si verificherà mai.

V. Gestione RAM

(memoria volatile) è il componente hardware che contiene il SO, caricatovi in

La RAM

fase di avvio, e tutti i processi che sono stati lanciati dall’utente durante l’utilizzo del

dispositivo e ancora non terminati.

Il SO viene caricato in RAM dalla ROM (Read Only Memory), che è una memoria non

volatile, attraverso il procedimento di che consiste nell’esecuzione dell’IPL

bootstrap,

(Initial Program Loader), il quale ha il compito di assumere il controllo della CPU e di

caricare il resto del SO.

La gestione della memoria può avvenire con diversi criteri:

Considerando di caricare interamente il processo in RAM

Metodo a partizioni fisse: la memoria viene suddivisa in blocchi fissi (limitando

 quindi anche il numero di applicazioni che si possono lanciare) e i processi

occupano tutto un blocco, anche se sarebbe sufficiente uno spazio inferiore;

questo genera ovviamente molti sprechi

Metodo a partizioni variabili: i processi sono caricati in memoria per la

 dimensione effettiva che occupano, fino a saturazione della RAM; questo

metodo è migliore del precedente, però c’è il problema che quando un

processo è scaricato dalla memoria lascia uno spazio che varia ogni volta in

base alla sua dimensione e quindi i processi che potranno andare ad occupare

quello spazio, dovranno essere di dimensioni minori o uguali a quella; ne

consegue che si creeranno a lungo andare piccoli spazi inutilizzati, i quali

porteranno ad una saturazione più veloce rispetto alle reali capacità della RAM

Considerando di caricare in RAM solo la parte di processo utilizzata

Metodo della Paginazione: ogni processo viene considerato suddiviso in

 pagine logiche di uguali dimensioni e la memoria viene suddivisa in pagine

fisiche sempre delle stesse dimensioni. Quando deve essere eseguita una

Enrico Siboni 7

istruzione si controlla se la pagina logica che la contiene è già in memoria,

altrimenti viene caricata, mentre quando la memoria è satura, il SO scarica la

pagina logica usata meno di recente e carica quella richiesta. Il difetto di

questo metodo è che la suddivisione in pagine logiche avviene in modo

arbitrario dal SO (quindi senza considerare se ad esempio una istruzione inizia

alla fine di una pagina e finisce all’inizio di un’altra, comportando la

compresenza di quelle pagine in memoria, quando la suddetta funzione viene

richiamata)

Metodo della segmentazione: con questo metodo viene risolto il problema

 principale della paginazione, in quanto la suddivisione di ogni processo ora

avviene in segmenti di lunghezza variabile stabilita dal programmatore; con

questo metodo si ripresenta il problema della frammentazione della memoria,

che può però essere risolto mediante l’introduzione di routine che compattino

le aree di memoria libere (garbage collection)

VI. Gestione Memoria di Massa e Files

Le memorie di massa sono i dispositivi hardware che consentono la memorizzazione

di qualsiasi tipo di dato.

Tutto ciò che viene registrato su memoria di massa prende il nome di (es. testo,

file

applicazione, immagine, filmato, suono, ecc.).

Il è un meccanismo con il quale i file sono posizionati e organizzati sulla

file system

memoria di massa. Questo consente all’utente, e in particolare al programmatore, di

riferirsi ai file attraverso nomi simbolici di identificazione, senza preoccuparsi degli

aspetti riguardanti la gestione del supporto di memoria di massa, o della

registrazione fisica dei dati sul supporto.

La struttura del file system, nei SO più diffusi come Windows e Linux, è ad albero;

abbiamo una directory (cartella) di livello più elevato di tutte le altre, chiamata root

(radice), che è da considerarsi la cartella delle cartelle, in quanto le contiene tutte; la

struttura ad albero risulta poi composta da nodi non terminali (directory) e da nodi

terminali (foglie) che sono i file veri e propri.

Per individuare un file in modo assoluto all’interno della memoria di massa si deve

indicare il suo che consiste nel cammino che si deve fare partendo dalla

pathname,

root fino ad arrivare al file.

VII. Interprete dei comandi

L’interprete dei comandi (o è la parte del sistema operativo più vicina

shell)

all’utente, ed è quel programma che rende possibile l’interazione tra l’utilizzatore,

molto spesso non esperto di informatica, e il dispositivo.

Enrico Siboni 8

Le prime shell erano testuali, e quindi non proprio semplici da utilizzare, ma con

molto più

l’introduzione di icone, finestre e puntatori si è passati alle shell grafiche,

intuitive per i principianti.

Ancora più recentemente, con la tecnologia touch, si sono potuti sostituire i

puntatori con le dita, portando un’ulteriore semplificazione nell’uso e una maggiore

intuitività.

4 – Differenze tra i principali SO mobili

Con le potenzialità offerte dall’hardware dei dispositivi sul mercato, la scelta di un

sistema operativo rispetto ad un altro può comportare differenze significative. Per

questo motivo, nella decisione dell’acquisto, gli utenti cominciano sempre più a

considerare non solo l’estetica e il budget a disposizione, ma anche il sistema

operativo più congeniale, a seconda dell’uso che pensano di doverne fare.

I principali sistemi operativi mobili sono:

Apple iOS

Android

BlackBerry OS

Windows Phone

Symbian OS

Apple iOS

iOS è il sistema operativo sviluppato da Apple per iPhone, iPad e iPod touch. Grazie

allo schermo interamente touch screen, il successo sul mercato è stato immediato. Si

tratta di un sistema veloce, stabile e facile da utilizzare. L’unico “svantaggio” si trova

nei limiti di personalizzazione, in quanto si tratta di un sistema operativo piuttosto

chiuso: la prima versione, infatti, non supportava l’installazione di applicazione di

terze parti, a favore però di una maggiore sicurezza. Questa lacuna fu colmata nella

versione successiva con la creazione dell’App Store, un “negozio virtuale” di

applicazioni realizzate da sviluppatori indipendenti da Apple. Con più di 500.000 app

di ogni

Dettagli
Publisher
A.A. 2012-2013
16 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher siboXD di informazioni apprese con la frequenza delle lezioni di Elementi di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Carbonaro Antonella.