Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 19. 03. 2010 16:38

Ginco
Místo: Aš
Příspěvky: 617
Reputace:   
 

vyrovnávací paměť

ahoj všem, chtěl bych se zeptat, zda by někdo nevěděl o dobrých materiálech na téma paměti, konkrétně potřebuji Vyrovnávací paměti

dekuji

Offline

  • (téma jako vyřešené označil(a) byk7)

#2 19. 03. 2010 18:03 — Editoval hradecek (19. 03. 2010 18:06)

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: vyrovnávací paměť

Ako si na tom s angličtinou ? Hladaj buffer alebo cache...


Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#3 19. 03. 2010 22:46

Ginco
Místo: Aš
Příspěvky: 617
Reputace:   
 

Re: vyrovnávací paměť

↑ hradecek:

angličtina? bída, ale asi mi stejně nic jiného nezbyde...díky za tip

Offline

 

#4 28. 03. 2010 18:27 — Editoval jardasmid (28. 03. 2010 18:29)

jardasmid
Příspěvky: 65
Reputace:   
 

Re: vyrovnávací paměť

Pokud řešíš např. vícevláknově kruhový buffer/cache:

Code:

PrvekCache prvky[pocetPrvku];

Máš 2 posixové semafory:

Code:

sem_t prazdnychPrvku;
sem_t plnychPrvku;

A nějaké proměnné s aktuálním čtecím a zapisujícím prvkem

Code:

size_t indexCteni;
size_t indexZapisovani;

Nejprve inicializuješ:

Code:

sem_init(&prazdnychPrvku, 0, pocetPrvku);
sem_init(&plnychPrvku, 0, 0);
indexCteni = indexZapisovani = 0;

A potom v zapisujícím vlákně v cyklu

Code:

sem_wait(&prazdnychPrvku);
// tady zapíšeš do cache
prvky[indexZapisovani] = hodnota;
indexZapisovani = (indexZapisovani + 1) % pocetPrvku;
sem_post(&plnychPrvku);

A ve čtecím vlákně v cyklu

Code:

sem_wait(&plnychPrvku);
PrvekCache *p = prvky +  indexCteni;
indexCteni = (indexCteni + 1) % pocetPrvku;
// ... tady něco uděláš s tím prvkem
sem_post(&prazdnychPrvku);

A ještě by to chtělo přidat nějaké ukončující podmínky

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson