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 » |