Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-02-2007, 10:25   #1
LOVE85
Member
 
Iscritto dal: Jun 2006
Messaggi: 86
[Ansi C] - Programmazione Concorrente : Bar Sport

Salve io vorrei solo capire swe ho capito bene come devo fare conquesto progetto:

Realizzare due implementazioni in C che realizzino con Semafori e Monitor una soluzione
concorrente al seguente problema:
Il Bar Sport
�� Nel bar Sport il barista prepara i caffè posizionando le tazzine piene sul bancone del bar in attesa dei clienti (che sono M).

�� Sul bancone al massimo possono essere posizionate N tazzine (N<M).

�� Quando il bancone è pieno di tazzine di caffè il barista si sospende mettendosi a leggere la Gazzetta dello Sport.

�� Man mano che arrivano, i clienti prendono una tazzina di caffè, ma prima di berlo devono zuccherarlo e una sola zuccheriera è disponibile.

�� Una volta zuccherato e bevuto il caffè, i clienti escono dal bar per fumarsi una sigaretta.

�� Una volta terminata la sigaretta i clienti tornano dentro al bar per prendere un altro caffè

�� Il cliente che beve l’ultima tazzina di caffè sveglia il barista, interrompendo la sua lettura.
�� I clienti che nel frattempo arrivano al bar e vogliono bere il caffè si sospendono in attesa che il barista abbia finito di riempire il bancone di tazzine di caffè.

�� Quando il barista ha riempito il bancone allora si occupa di svegliare i clienti in attesa
del caffè.

La soluzione proposta deve assicurare il massimo grado di parallelismo, non deve usare
busy waiting, ne’ generare deadlock o starvation. Commentare in modo chiaro il codice.

Il mio algoritmo pensato è:

#define tazzine 5

MEX: Sono le ore 7:00 e il barista sta aprendo il bar
SLEEP: 5 sec
MEX: Il barista ha aperto il bar.
SLEEP: 5 sec
MEX: Il barista inizia a prepare le tazzine
CICLO:
FOR (I=0; I<TAZZINE I++)
{
IF (TAZZINE<2)
IL BARISTA HA PREPARATO %d TAZZINA (%d = tazzINE)
ELSE
IL BARISTA HA PREPARATO %d taZZINE (%d = tAZZINE)
tazzine++;
sleep 5 secondi
}
MEX: Fatto! il barista ha posizionato %D TAzzine sul bancone. Ora va a leggere la gazzetta dello sport. (stato di waiting)
MEX: Dopopochi secondi arrivano con la random m clienti (FARei una random tra 1,3,6 clienti...
MEX: I clienti sono seduti davanti al bancone
CICLO:
FOR I=0; I<CLIENTI; I++)
{
CLIENTE numero %D prende zuccheriera.
SLEEP 2 SEC
CLIENTE HA ZUCCHERATO IL SUO CAFFE'
cliente++;
CLIENTE numero %D (clIENTE-1) passa la zuccheriera al cliente numero %D (cliente successivo)
}
MEX: dopo che tutti hanno finito di bere il caffè
Vanno a fumarsi la sigaretta
CICLO: simile a quello di prima solo che si accendo la sigaretta uno ogni tanto...penso che sia così no?

Però come faccio a dire che l'ultimo cliente che ha bevuto la tazzina attiva dallo stato di wait del barista per far in modo che il barista prepari altro caffè?
Come faccio a mettere in waiting gli altri clienti affincè il barista non ha riposizionato n tazzine? Con un if? I semafori e monitor come li implemento?
Vorreei solo sapere se l'algoritmo va bene ecome fare l'implementazione dei semafori.

Grazie
Cordiali Saluti
Non voglio mica farvi impazzire con sta roba che a me hanno fatto impazzire!!!
LOVE85 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2007, 14:39   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Beh non è prorpio così. Nel mezzo credo che tu ci debba mettere thread, mutex, condition e semaphore.

La sincronizzazione fra barista e clienti è un problema di produttore consumatore, la risorsa condivisa è il bancone (un intero), da accedere in mutua esclusione.
Nel caso in cui il bancone sia pieno il produttore (barista) si mette in attesa su una condition. Il consumatore (cliente) che preleva l'ultimo caffè (l'intero va a zero dopo il prelievo) sveglia il barista liberando la mutex. Nel caso il bancone sia vuoto i clienti si mettono in attesa su una condition. (che il bancone sia pieno)

La zuccheriera è una semplice risorsa in mutua esclusione.

La sigaretta è una sleep.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2007, 10:12   #3
LOVE85
Member
 
Iscritto dal: Jun 2006
Messaggi: 86
E quindi...

E quindi come lo impostereste? Io entro la prox sett devo averlo finito...Ce l'hanno dato all'ultimomomento....e noi del gruppo dobbiamo dare esami diversi...come facciamo? Siamo nell'assoluta merda....vi prego di darci una mano magari a creare solo questo programma...e questa è l'ultima cosa che vi chiediamo ok?
LOVE85 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Hisense QLED 58'' a 369€: un televisore ...
Raddoppiano le prestazioni AI, ma i cons...
La crisi delle memorie frena anche il se...
Commodore 77, il C64 Ultimate che omaggi...
Falso rimborso INPS da 730 euro: la truf...
NVIDIA DGX Spark diventa il PC per gli a...
OpenAI mostra le prestazioni di Jalape&n...
Claude unifica la memoria fra chat e Cow...
Il migliore dei MacBook Pro M5 Max &egra...
Oggi Smart TV LG QNED 50" serie QNE...
SpaceX non lancerà più Sta...
EHA Reader Awards 2026: i migliori prodo...
NVIDIA ha insegnato all'IA a ricostruire...
Rimosso un raro tumore grazie alla simul...
ASUS alza l'asticella del gaming: ecco i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v