pamięć współdzielona IPC czy POSIX ?
Ostatnio zmodyfikowano 2012-07-28 10:59
Badman Temat założony przez niniejszego użytkownika  | 
pamięć współdzielona IPC czy POSIX ? » 2012-07-26 11:51:08 Planuję napisanie programu rysującego wykresy pod systemy linuksowe, który dane pobierał by z "pamięci współdzielonej". Pod windows jest choćby protokół DDE, w przypadku linuksa mam do wyboru IPC i POSIX. Troszkę już skrobałem kodu używając IPC, o POSIX'owej pamięci współdzielonej tylko czytałem.
 Co wybrać ?  | 
 | 
pekfos  | 
» 2012-07-26 12:05:00 | Troszkę już skrobałem kodu używając IPC, o POSIX'owej pamięci współdzielonej tylko czytałem.  |  
 To użyj IPC.  | 
 | 
Badman Temat założony przez niniejszego użytkownika  | 
» 2012-07-26 13:39:00 Tak, tyle że POSIX to standard...  | 
 | 
m4tx  | 
» 2012-07-26 13:55:34 To użyj POSIX-a :P  | 
 | 
DejaVu  | 
» 2012-07-26 22:08:41  | 
 | 
Badman Temat założony przez niniejszego użytkownika  | 
» 2012-07-27 08:46:40 Tak wiem, dla wątków stosuje się mutex'y zabezpieczające sekcje krytyczną. Nie ma z tym najmniejszego problemu, choćby pod linuksem biblioteka GLib i jej GMutex.
 
Ależ jest uzasadnienie: Jest sobie sterownik automatyki, do którego podpięte są różnego rodzaju przetworniki. Sterownik dane pobrane z przetworników przekazuje do komputera poprzez któryś z interfejsów (RS-232, Ethernet, USB, ...) w celu wizualizacji ich na ekranie komputera. Akurat wizualizacja danych w czasie ma być przedstawiona za pomocą wykresu.
 Oczywiście można napisać program, pod konkretny sterownik i znaną ilość przesyłanych danych. Jednak kiedy zostanie wymieniony sterownik na inny rodzaj lub zmieni się ilość danych (choć tutaj można się z tym uporać) to najprawdopodobniej należy napisać nowy program przystosowany do konkretnego sterownika.
 Ja chcę napisać "programik" typu  SCADA :)
 Dlatego potrzebuję korzystać z pamięci współdzielonej. W programie rysującym wykres definiowało by się jakie zmienne i jakiego typu będą wyświetlane. Znając te zmienne program rysujący pobierał by je z pamięci współdzielonej. Natomiast zadaniem programu sterownika byłoby umieszczenie danych w zmienny w pamięci współdzielonej.
 Takie podejście gwarantuje, że program rysujący pozostaje bez zmian kiedy nastąpi zmiana rodzaju sterownika, wtedy należy tylko napisać program sterownika.
 To tak jak z API drukarek. Obojętnie jakiego producenta drukarke podłączysz do komputera to API pozostaje bez zmain, tylko program sterownika drukarki się zmienia.  | 
 | 
DejaVu  | 
» 2012-07-27 17:32:23  | 
 | 
Badman Temat założony przez niniejszego użytkownika  | 
» 2012-07-28 10:59:27 Tam też nie otrzymałem odpowiedzi :)  | 
 | 
|  « 1 »  |