Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
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


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
AI Agent Traps: il paper DeepMind che ca...
Addio licenza proprietaria: Gemma 4 pass...
LG OLED in offerta su Amazon: quattro TV...
Amazon punta a Globalstar per sfidare St...
Successo immediato per The Super Mario G...
Raspberry Pi alza ancora i prezzi: Pi 5 ...
Solo 9 esemplari al mondo: ecco l'iPhone...
Hisense QLED 4K da 98 e 85 pollici: i pr...
L'equipaggio di Artemis II ha avuto prob...
Apple punta a dominare il mercato delle ...
TSMC: fino a mezzo trilione di dollari e...
Google inizia a modificare il sistema di...
Acer Nitro Blaze 7: la console portatile...
Il caro carburante colpisce Amazon: scat...
I futuri iPhone 18 Pro non saranno dispo...
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: 10:16.


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