Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

pamięć współdzielona IPC czy POSIX ?

Ostatnio zmodyfikowano 2012-07-28 10:59
Autor Wiadomość
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ć ?
P-61138
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.
P-61142
Badman
Temat założony przez niniejszego użytkownika
» 2012-07-26 13:39:00
Tak, tyle że POSIX to standard...
P-61156
m4tx
» 2012-07-26 13:55:34
To użyj POSIX-a :P
P-61157
DejaVu
» 2012-07-26 22:08:41
Jak mam być szczery to nie widzę uzasadnienia do używania mechanizmu pamięci współdzielonej tylko po to aby rysować 'wykresy'. Wystarczy zastosować event-a blokującego jeżeli dane są modyfikowane, a tak to dajesz swobodny dostęp wszystkim wątkom do danego obszaru pamięci.

/edit:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx
P-61212
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.
P-61222
DejaVu
» 2012-07-27 17:32:23
Od siebie dodam, że wątek jest również ciągnięty na drugim forum :)

http://forum.4programmers.net/C_i_C++/202008-pamiec_wspoldzielona_ipc_czy_posix
P-61260
Badman
Temat założony przez niniejszego użytkownika
» 2012-07-28 10:59:27
Tam też nie otrzymałem odpowiedzi :)
P-61286
« 1 »
  Strona 1 z 1