• Non ci sono risultati.

UNIVERSITÀ DEGLI STUDI DELLA BASILICATA. Corso di Sistemi Operativi A.A. 2019/20. Processi. Docente: Domenico Daniele Bloisi.

N/A
N/A
Protected

Academic year: 2022

Condividi "UNIVERSITÀ DEGLI STUDI DELLA BASILICATA. Corso di Sistemi Operativi A.A. 2019/20. Processi. Docente: Domenico Daniele Bloisi."

Copied!
56
0
0

Testo completo

(1)

Processi

Ot tobre 2019

Corso di Sistemi Operativi A.A. 2019/20

UNIVERSITÀ DEGLI STUDI DELLA BASILICATA

Docente:

Domenico Daniele

Bloisi

(2)

• Ricercatore RTD B

Dipartimento di Matematica, Informatica ed Economia

Università degli studi della Basilicata http://web.unibas.it/bloisi

• SPQR Robot Soccer Team

Dipartimento di Informatica, Automatica e Gestionale Università degli studi di

Roma “La Sapienza”

http://spqr.diag.uniroma1.it

Domenico Daniele Bloisi

(3)

• In aula, subito dopo le lezioni

• Martedì dalle 11:00 alle 13:00 presso:

Campus di Macchia Romana

Edificio 3D (Dipartimento di Matematica, Informatica ed Economia)

II piano, stanza 15

Email: domenico.bloisi@unibas.it

Ricevimento

(4)

• Introduzione ai sistemi operativi

• Gestione dei processi

• Sincronizzazione dei processi

• Gestione della memoria centrale

• Gestione della memoria di massa

• File system

• Sicurezza e protezione

Programma – Sistemi Operativi

(5)

Il concetto di processo

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Un processo è un programma in esecuzione. La struttura di un processo in memoria è generalmente suddivisa in più sezioni.

Sezione di testo contenente il codice eseguibile

Sezione dati contenente le variabili globali

Heap memoria allocata dinamicamente durante l’esecuzione del

programma

Stack memoria

temporaneamente

utilizzata durante le

chiamate di funzioni

(6)

Stato del processo

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Nuovo. Si crea il processo Esecuzione (running). Le sue istruzioni vengono eseguite.

Attesa (waiting). Il processo attende che si verifichi

qualche evento.

Pronto (ready). Il processo attende di essere assegnato a un’unità d’elaborazione.

Terminato. Il processo ha

terminato l’esecuzione.

(7)

Process control block (PCB)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Ogni processo è rappresentato nel sistema operativo da un blocco di controllo

(process control block, PCB, o task control

block, TCB) contenente molte informazioni

connesse a un processo specifico.

(8)

Process control block (PCB)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Stato del processo  nuovo, pronto, esecuzione, attesa, arresto

Contatore di programma che contiene l’indirizzo della successiva istruzione da eseguire per tale processo.

Registri della CPU  accumulatori, registri indice, puntatori alla cima

dello stack (stack pointer), registri d’uso generale e registri contenenti i codici di

condizione (condition codes) Informazioni sullo scheduling di CPU

Informazioni sulla gestione della memoria

Informazioni di accounting e sullo stato dell’I/O

(9)

Scheduling dei processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Lo scheduler dei processi seleziona un processo da eseguire dall’insieme di quelli disponibili.

Processo I/O bound  impiega la maggior parte del proprio tempo nell’esecuzione di operazioni di I/O

 Processo CPU bound  impiega la maggior parte del proprio tempo nelle elaborazioni

 Ogni processo è inserito in una coda di processi pronti e in attesa d’essere eseguiti, detta coda dei

processi pronti (ready queue).

(10)

Scheduling dei processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

 I processi in attesa di un determinato evento vengono

collocati in una coda di attesa, o wait queue

(11)

Diagramma di accodamento

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Una comune rappresentazione dello scheduling dei processi è data da un

diagramma di accodamento

(12)

Context switch

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

 In presenza di una interruzione (evento comune), il sistema deve salvare il contesto del processo corrente, per poterlo poi ripristinare quando il processo

stesso potrà ritornare in esecuzione.

 Si esegue un salvataggio dello stato e, in seguito, un corrispondente ripristino dello stato.

 Tale procedura è detta cambio di

contesto

(13)

Operazioni sui processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Creazione dei processi

Processo genitore o

padre

Processo

figlio Albero dei

processi

Identificatore del processo

o pid

(14)

Albero dei processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(15)

fork() - UNIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(16)

fork() - UNIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(17)

fork() - UNIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(18)

createProcess() Windows

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(19)

createProcess() - Windows

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(20)

Terminazione dei processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Un processo termina quando finisce l’esecuzione della sua ultima

istruzione e inoltra la richiesta al sistema operativo di essere cancellato usando la chiamata di sistema exit().

Un processo genitore può porre termine all’esecuzione di uno dei suoi processi figli per diversi motivi:

Il processo figlio ha ecceduto nell’uso di alcune tra le risorse che

gli sono state assegnate.

Il compito assegnato al processo figlio non è più

richiesto.

Il processo genitore termina e il sistema operativo non consente

a un processo figlio di continuare l’esecuzione

in tale circostanza

(21)

Gerarchia dei processi Android

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Processo in primo piano

Processo visibile

Processo di servizio

Processo in background

Processo

vuoto

(22)

Interprocess communication (IPC)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Un ambiente che consente la comunicazione tra processi (IPC, Interprocess

Communication) può essere utile per diverse ragioni.

Condivisione d’informazioni Velocizzazione del calcolo Modularità

I modelli

fondamentali della comunicazione tra processi

a memoria condivisa a scambio di messaggi

 Nei sistemi operativi sono diffusi entrambi i modelli; spesso coesistono in

un unico sistema.

(23)

Modelli di comunicazione

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(24)

IPC in sistemi a memoria condivisa

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

PROBLEMA DEL PRODUTTORE/CONSUMATORE Utile per illustrare il concetto di cooperazione tra processi Un processo produttore produce informazioni che sono consumate da un processo consumatore

https://youtu.be/VXJSJ6c3ZIs

(25)

Produttore con memoria condivisa

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(26)

Consumatore con memoria condivisa

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(27)

IPC in sistemi a scambio di messaggi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Lo scambio di messaggi è un meccanismo che permette a due o più processi di

comunicare e di sincronizzarsi senza condividere lo stesso spazio di indirizzi.

È una tecnica particolarmente utile negli ambienti distribuiti, dove i processi

possono risiedere su macchine diverse connesse da una rete  web chat

canale di comunicazione

comunicazione diretta o

indiretta

comunicazione sincrona o

asincrona gestione

automatica o esplicita del

buffer

(28)

Sincronizzazione tra processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Lo scambio di messaggi può essere

• sincrono (o bloccante)

• asincrono (o non bloccante)

Invio sincrono Invio asincrono Ricezione sincrona Ricezione asincrona

La comunicazione tra processi avviene attraverso chiamate

delle primitive send() e receive()

(29)

Produttore con scambio di messaggi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(30)

Consumatore con scambio di messaggi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(31)

Code di messaggi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

I messaggi scambiati tra processi comunicanti risiedono in code temporanee. Esistono tre modi per realizzare queste code.

Capacità zero o sistema a scambio di messaggi

senza buffering

Capacità limitata o sistemi con buffering

automatico

Capacità illimitata o sistemi con buffering

automatico

(32)

Esempi di sistemi IPC (comunicazione tra processi)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

1. La API POSIX basata sulla

memoria condivisa

2. Lo scambio di messaggi nel

sistema

operativo Mach 3. La

comunicazione fra processi in

Windows

4. Le pipe, canali comunicazione di

tra processi

(33)

Codice POSIX produttore/consumatore

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Vedremo ora il codice POSIX di due programmi che usano la memoria condivisa per implementare il modello produttore- consumatore.

Il produttore definisce un oggetto memoria condivisa e scrive sulla

memoria condivisa, il consumatore legge dalla memoria condivisa.

(34)

Produttore - memoria condivisa - POSIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(35)

Produttore - memoria condivisa - POSIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(36)

Produttore - memoria condivisa - POSIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(37)

Consumatore - memoria condivisa - POSIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(38)

Consumatore - memoria condivisa - POSIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(39)

Consumatore - memoria condivisa - POSIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(40)

Esempio - scambio messaggi - Mach

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(41)

Esempio - scambio messaggi - Mach

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(42)

Windows – Comunicazione tra processi

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

La funzione di scambio di messaggi di Windows è detta chiamata di

procedura locale avanzata (advanced local procedure call, ALPC)

(43)

Pipe convenzionali – Named pipe

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Una pipe agisce come canale di comunicazione tra processi.

Le pipe convenzionali permettono a due processi di comunicare

secondo una modalità standard chiamata del produttore-consumatore

(44)

Pipe convenzionali UNIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

In questo programma, il processo padre crea una pipe e in seguito esegue una chiamata fork(),

generando un processo

figlio.

(45)

Pipe convenzionali UNIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(46)

Pipe convenzionali UNIX

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(47)

Pipe anonime Windows

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

In questo programma, il

processo padre crea una pipe

anonima per comunicare con

il proprio figlio.

(48)

Pipe anonime Windows (padre)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(49)

Pipe anonime Windows (padre)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(50)

Pipe anonime Windows (figlio)

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(51)

Socket

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Una coppia di processi che comunica attraverso una rete usa una coppia di socket, una per ogni processo.

Ogni socket è identificata da un indirizzo IP concatenato a un numero di porta.

Le socket

generalmente impiegano

un’architettura

client-server

(52)

Socket in Java

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

Useremo il linguaggio Java per implementare le socket,

poiché Java offre un’interfaccia alle socket più semplice e

dispone di una ricca libreria di

utilità di networking.

(53)

Server

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(54)

Client

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(55)

Chiamate di procedure

remote

© Pearson Italia S.p.A. – Silberschatz, Galvin, Gagne, Sistemi operativi

(56)

Processi

Ot tobre 2019

Corso di Sistemi Operativi A.A. 2019/20

UNIVERSITÀ DEGLI STUDI DELLA BASILICATA

Docente:

Domenico Daniele

Bloisi

Riferimenti

Documenti correlati

- Può gestire uno spazio d’indirizzi a 24 bit, che è alla base delle storage area network (SAN), nelle quali molti host sono connessi con altrettante unità di

r più processi possono trovarsi negli stati ready e waiting. necessità di strutture dati per mantenere in memoria le informazioni su processi

Starvation: si verifica quando uno o più processi di priorità bassa vengono lasciati indefinitamente nella coda dei processi pronti, perchè vi è sempre almeno un processo pronto

Il descrittore viene inserito nella coda dei processi pronti se il processo è stato sospeso perché è terminato il suo quanto di tempo e quindi passa dallo stato di esecuzione

Oltre al kernel vi sono due tipi di programmi: i programmi di sistema, associati al sistema operativo, ma che non fanno necessariamente parte del kernel, e i programmi applicativi,

processo padre crea una pipe anonima per comunicare con il proprio figlio... Pipe anonime

A partire dalla posizione corrente della testina, si calcolino quali sono le distanze totali (in cilindri) che devono essere coperte dal braccio dell’hard disk per esaudire tutte

Con PAE è stata inoltre aumentata la dimensione degli elementi della directory delle pagine e della tabella delle pagine, che passa da 32 a 64 bit, permettendo di estendere