
Semafori standard Posix1.b
Presentation
•
Computers
•
11th Grade
•
Medium
Emanuela Giaconi
Used 2+ times
FREE Resource
15 Slides • 10 Questions
1
Semafori standard Posix1.b
By Emanuela Giaconi
2
Semafori in C - Posix1.b
Sono una particolare implementazione dei semafori.
Possono svolgere il ruolo di semafori binari o generali n-ari (Dijkstra) a seconda di quale valore viene loro assegnato all'atto della inizializzazione
Semafori in Posix1.b
3
Open Ended
Ripassiamo insieme i vari tipi di semafori ... quali tipi di semafori conosci?
4
Semafori in C - Posix1.b
Semafori named
Permettono di sincronizzare processi anche non imparentati, oltre ai thread.
Identificati da un percorso
Si inizializzano con sem_open
Persistenti e Visibili in tutto il sistema.
Semafori in Posix1.b
5
Semafori in C - Posix1.b
Semafori unnamed
Permettono di sincronizzare processi imparentati e thread.
Condivisi tra thread o tra processi
Si inizializzano con sem_init
I Semafori sono una variable di tipo sem_t
Occorre includere la libreria semaphore.h
OPERANO IN MUTUA ESCLUSIONE, in particolare nell'accesso al contatore che contengono
Semafori in Posix1.b
6
Open Ended
Descrivi i semafori di Dijkstra e le relative primitive P() e V()
7
Inizializzazione semaforo unnamed
#include <semaphore.h>
int sem_init (sem_t *sem, int pshared, unsigned value);
es. sem_init(&nomeSemaforo, 0, valoreIniziale)
inizializza un unnamed semaphore sem
Restituisce 0 in caso tutto vada bene e -1 in caso di fallimento, nel qual caso setta errno
pshared assume valore 0: solo i threads del processo che li crea puo' usare il semaforo, e non-0: altri processi possono usare il semaforo
value: valore iniziale del semaforo
Semafori in Posix1.b
8
P() su semaforo unnamed: sem_wait
#include <semaphore.h>
int sem_wait(sem_t *sem);
es. sem_wait(&nomeSemaforo);
Blocca il thread sul semaforo
controlla il valore del semaforo
se il valore e' minore o uguale a zero si blocca e riparte uscendo dalla wait quando diventa uguale a zero, poi decrementa il valore del semaforo
se il valore e' maggiore di zero prosegue uscendo subito dalla waitp, poi decrementa il valore del semaforo.
Semafori in Posix1.b
9
P() su semaforo unnamed: sem_wait
#include <semaphore.h>
int sem_wait(sem_t *sem);
Restituisce
0 in caso di successo
-1 in caso di errore, setta errno (== EINTR se interrotto da un segnale)
Parametri sem: Target semaphore
sem > 1: decrementa e basta
sem == 1: decrementa e blocca altri thread (thread acquires lock)
sem <= 0: si blocca e quando viene sbloccato decrementa (thread blocks)
Semafori in Posix1.b
10
V() su semaforo unnamed: sem_post
#include <semaphore.h>
int sem_post(sem_t *sem);
es. sem_post(&nomeSemaforo);
Sblocca il seaforo, cioe'
Incrementa di 1 il valore del semaforo
Se il valore diventa > 0 qualche altro thread bloccato sulla sem_wait puo' continuare l'esecuzione
Restituisce
0 in caso di successo
-1 in caso di errore e setta errno
Semafori in Posix1.b
11
Esempio Produttore - Consumatore
Semafori in Posix1.b
12
Esempio Produttore - Consumatore
Un produttore e un consumatore si alternano per un numero di VOLTE nella scrittura/prelievo di un dato in un buffer
Semafori in Posix1.b
13
Esempio Produttore - Consumatore
14
Esempio Produttore - Consumatore
15
Multiple Choice
Permettono di sincronizzare processi anche non imparentati, oltre ai thread
Semafori named
Semafori unnamed
16
Multiple Choice
Si inizializzano con sem_init
Semafori named
Semafori unnamed
17
Multiple Choice
Persistenti e Visibili in tutto il sistema.
Semafori named
Semafori unnamed
18
Multiple Choice
Sono variabili di tipo sem_t
Semafori named
Semafori unnamed
19
Multiple Choice
Inizializzazione di un semaforo standard posix1.b
sem_init(...)
pthread_mutex_init(...)
inizializza(...)
start(...)
20
Multiple Choice
int sem_init (sem_t *sem, int pshared, unsigned value);
pshared valore iniziale del semaforo
inizializza un named semaphore sem
Restituisce 0 in caso tutto vada bene
restituisce -2 in caso di fallimento
21
Multiple Choice
P() su semaforo unnamed
sem_wait()
sem_post()
sem_init()
sem_trywait()
22
Multiple Choice
V() su semaforo unnamed
sem_wait()
sem_post()
sem_init()
sem_trywait()
23
P() non bloccante: sem_trywait
#include <semaphore.h>
int sem_trywait(sem_t *sem);
tenta di acquisire il semaforo ma continua la sua esecuzione se questo è rosso
Semafori in Posix1.b
24
Controllo di semaforo unnamed
#include <semaphore.h>
int sem_getvalue (sem_t sem, int sem_val);
Il valore del semaforo viene ritornato nella variabile *sem_val
Semafori in Posix1.b
25
Distruzione di semaforo unnamed
#include <semaphore.h>
int sem_destroy (sem_t sem);
Il semaforo viene distrutto
Semafori in Posix1.b
Semafori standard Posix1.b
By Emanuela Giaconi
Show answer
Auto Play
Slide 1 / 25
SLIDE
Similar Resources on Wayground
18 questions
Caius Iulius Caesar
Presentation
•
10th - 11th Grade
20 questions
11º B - ECONOMIA A
Presentation
•
10th - 12th Grade
20 questions
Multiplication of Decimals by 10
Presentation
•
12th Grade
21 questions
1 ANO AULA 31 MARKETING DIGITAL
Presentation
•
10th Grade
21 questions
Testimoni del Vangelo - Ieri
Presentation
•
12th Grade
15 questions
Interactive Lesson
Presentation
•
11th Grade
22 questions
POPULISMO NO BRASIL
Presentation
•
11th Grade
22 questions
Português, Redação e Literatura
Presentation
•
KG
Popular Resources on Wayground
10 questions
Main Idea and Supporting Details
Quiz
•
3rd - 6th Grade
20 questions
Math Review
Quiz
•
3rd Grade
14 questions
25-26 SY 8th Grade EOY Benchmark
Quiz
•
8th Grade
15 questions
Fast food
Quiz
•
7th Grade
20 questions
Math Review
Quiz
•
6th Grade
20 questions
Context Clues
Quiz
•
6th Grade
21 questions
EOY Grade 6 Benchmark Assessment - Content Skills
Quiz
•
6th Grade
20 questions
Inferences
Quiz
•
4th Grade
Discover more resources for Computers
8 questions
Writing Equations from Verbal Descriptions
Quiz
•
9th - 12th Grade
50 questions
US History Regents Practice Exam
Quiz
•
11th Grade
30 questions
US History Regents Review #3
Quiz
•
11th Grade
25 questions
US History Regents Review # 1
Quiz
•
11th Grade
14 questions
Attributes of Linear Functions
Quiz
•
9th - 12th Grade
20 questions
Types of Credit
Quiz
•
9th - 12th Grade
90 questions
2nd Semester World History Final Exam (1750-Present) (5/11/26)
Quiz
•
11th Grade
59 questions
Bio Final Exam Sem 2 with marathon runner
Quiz
•
9th - 12th Grade