[pso] Dimensiune buffer si sincronizare prin MCR - MSR

Bogdanutz pso@cursuri.cs.pub.ro
Sat, 17 Apr 2004 14:30:11 -0700 (PDT)


Situatia:
Pentru fiecare port am un buffer pentru write si unul
pentru read, ambele de dimensiune BUF_LEN.
Daca modulul primeste o cere de scriere de dimensiune
mai mare, sa zicem 3*BUF_LEN, el se comporta astfel:
scrie in bufferul de write pana ce acesta se umple,
dupa care trimite datele pe port pentru a goli
bufferul. Acum bufferul de read al celuilalt port se
umple. Sa zicem ca nimeni nu citeste datele din
bufferul portului care a primit datele. La urmatoarea
scriere in bufferul initial, urmand aceiasi pasi
descrisi mai sus se vor pierde date.

Vad cateva rezolvari la aceasta situatie si as dori sa
stiu care e cea de urmat:

1) Bufferul va avea dimensiunea 2048 ( am vazut ca in
prog de test nu se trimit date mai mari- desi ma cam
indoiesc ca asta e solutia :D)

2) Se folosesc MCR si MSR : portul care trimite va
verifica MSR pentru a avea permisiunea de trimite
date,
iar portul care primeste va seta MCR. Asta presupune
sa conectam si celelalte fire ale cablului null modem
(in momentul de fata eu nu folosesc decat 2-3 3-2).

3) Ma folosesc de conexiunile existente, iar portul
care trimite verifica dupa fiecare scriere daca
celalalt port ii da permisiunea sa scrie (dezavantajos
pentru ca se citeste de 2 ori mai mult si nu pot avea
o conexiune in ambele sensuri in acelasi timp)

Daca mai exista si alta solutie as vrea sa stiu si eu.
(ar fi destul de important sa stiu cum sa procedez
pentru ca diferentele dintre solutii sunt destul de
mari)

Multumesc


	
		
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25¢
http://photos.yahoo.com/ph/print_splash