Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
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


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Il presidente di Sony ha venduto il 56,5...
Nuova vulnerabilità per il kernel...
Fallout Stagione 2: 10 le nomination agl...
IQM porterà il quantum computer L...
2 MB di memoria RAM sono sufficienti per...
Incendio a Bovisa: cosa succede quando u...
AMD lancia 11 nuovi processori tra Ryzen...
IBM tra IA, sovranità digitale e ...
Blocco dei social sotto i 14 anni. A chi...
Nothing Ear (3a): la recensione delle cu...
DENZA BAO 5, il primo SUV del marchio BY...
Addio cavi in auto: Ottocast a IFA con C...
HONOR "Summer Essentials": l'e...
IBM fa la cura dimagrante ai mainframe z...
DENZA Z, la supercar con 3 motori elettr...
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: 19:33.


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