[OSDev] IPC

0

Witam.
Przeglądałem źródełka linux'a 0.1 i nigdzie nie widzę czegoś przypominającego IPC.
Dochodze teraz w moim osie to konieczność zaimplementowania czegoś takiego. Jakieś pomysły???

0

Takie dwie powszechne metody:

  1. Usypiasz proces ktory wyslasz wiadomosc do czasu wywolania jakiegos GetMessage w procesie do ktorego kierowana jest wiadomosc. Zaleta jest taka, ze jest to stosunkowo proste bo nie potrzebujesz tworzyc zadnych kolejek, zadnych stron na te komunikaty itp, za to jest dosc duza wada, jesli proces nie wywola GetMessage to ten pierwszy bedzie dalej spal. Oczywiscie zawsze mozna zrobic jakiegos timeouta, takze imo to dobre rozwiazanie.

  2. Deklarujesz sobie jakas przestrzen w aplikacji jako MessageBox i tam wrzucasz komunikaty w postaci listy czy czegos tam (ale raczej FILO). Wada jest taka, ze musis deklarowac pamiec a nie wiadomo ile bedzie jej trzeba za to zaden proces nie musi byc uspiony.

Mowa tu o malych porcjach danych, jak chcesz przekazac cos duzego (np dane do sterownika) to juz musisz mapowac, tj nie musisz ale chyba nie chcesz kopiowac tego w syscallu (no bo chyba jest nieprzerywalny :)).

1 użytkowników online, w tym zalogowanych: 0, gości: 1