Tytuł szkolenia: Programowanie współbieżne w języku C na system
Transkrypt
Tytuł szkolenia: Programowanie współbieżne w języku C na system
Tytuł szkolenia: Programowanie współbieżne w języku C na system UNIX Kod szkolenia: C-IPC Wprowadzenie Tr udno o b ecnie o nietr y wialną aplikację nie ko r z y s tającą w żaden s po s ó b z e ws pó łb ieżno ś ci. N ietr y wialne aplikacje s y s tem o we, jak i ws z elkie r o z wiąz ania na s ty ku aplikacji z s y s tem em o per acy jny m (s ter o wniki, b ib lio teki) wy m agają uwz ględnienia inter akcji m iędz y po s z cz egó lny m i pr o ces am i i o dpo wiedniej ich s y nchr o niz acji. W iele aplikacji, nie wy łącz ając z wy kły ch aplikacji uży tko wy ch, dla wy go dy i dla wy ko r z y s tania w pełni m o cy wielo pr o ces o r o wy ch m as z y n pr o jektuje s ię z ko lei jako aplikacje wielo wątko we. N atur alne jes t też, że pr o gr am y ko m unikują s ię m iedz y s o b ą pr z ez s ieć alb o uży wając inny ch m echaniz m ó w. Dla ws z y s tkich ty ch z as to s o wań is tnieją pewne z as ady po pr awnego pr o gr am o wania, któ r e pr z eno s z ą s ię na do wo lne platfo r m y i techno lo gie. Sy s tem UN IX b y ł o d po cz ątku pr o jekto wany jako s y s tem wielo pr o ces o wy i jes t pier ws z y m s z er o ko s to s o wany m s y s tem em tego ty pu. O b ecnie wiele s y s tem ó w o par ty ch o UN IX-a, w ty m Linux , po z wala ko r z y s tać z uks z tałto wany ch pr z ez lata r o z wo ju tej r o dz iny s y s tem ó w m echaniz m ó w ko m unikacji i s y nchr o niz acji m iędz y pr o ces o wej (IPC – inter -pr o ces s co m m unicatio n ). W ątki w s y s tem ie UN IX i po cho dny ch po jawiły s ię pó ź niej. Spo ś r ó d do s tępny ch b ib lio tek po z walający ch ko r z y s tać z wątkó w najb ar dz iej po pular ną dla cz y s tego jęz y ka C jes t pthr eads . Adresaci szkolenia Adr es atam i s z ko lenia s ą pr o gr am iś ci pr agnący po z nać m echaniz m y s y s tem u UN IX (i po cho dny ch, np. Linux ) s łużące do r ealiz acji wielo pr o ces o wo ś ci i wielo wątko wo ś ci. Sz ko lenie po lecam y pr z ede ws z y s tkim pr o gr am is to m pr z y go to wujący m s ię do pr acy w pr o jektach wy m agający ch s ko r z y s tania z techno lo gii b ędący ch pr z edm io tem s z ko lenia. Mo że o no b y ć także ko lejny m kr o kiem w natur alny m r o z wo ju pr o gr am is ty jęz y ka C platfo r m y UN IX, któ r y po z wo li lepiej r o z um ieć i w więks z y m s to pniu wy ko r z y s ty wać m o żliwo ś ci s y s tem u (po lecam y w ty m m iejs cu cy kl s z ko leń C - PD → C - IPC → C - T C P). Techno lo gie pr ez ento wane na s z ko leniu m o żna po tr akto wać do s ło wnie i ko r z y s tać z nich b ez po ś r ednio w pr acy po d s y s tem em UN IX/Linux lub ty lko jako pr z y kłado wą r ealiz ację m echaniz m ó w IPC , któ r e w inny ch s y s tem ach (np. W indo ws , Andr o id) s ą po do b ne w idei, ale r ó żne jeś li cho dz i o s z cz egó ły i API. W y m agania ws tępne: programowanie w jęz yku C (np. dz ięki sz koleniu C-P D ) lub ewentualnie w C++. W iedz a i um iejętno ś ci, któ r e m o gą po dnieś ć efekty wno ś ć tego s z ko lenia: z najomość podstawowych pojęć i z asad programowania współbieżnego, z najomość mechaniz mów IPC lub wielowątkowości z innych jęz yków i platform. Vavatech Sp. z o.o., ul. Olesińska 21, 02-548 Warszawa, tel. (+48 22) 845 09 70, fax (+48 22) 213 81 27 e-mail: [email protected], www.vavatech.pl Cel szkolenia Sz ko lenie, pr o wadz o ne na platfo r m ie Linux , o b ejm uje te m echaniz m y pr o gr am o wania ws pó łb ieżnego , któ r e s ą o b ecnie uważane z a s tandar do we i s ą pr z eno ś ne m iędz y r ó żny m i wer s jam i s y s tem ó w o par ty ch o UN IX. Gdz ie m o żliwe, o pier am y s ię o s tandar d PO SIX. O m awiane s ą także po ds tawo we z as ady po pr awnego pr o gr am o wania ws pó łb ieżnego , a także ty po we b łędy i z agr o żenia. Pr ez ento wane jes t po ds tawo we API m echaniz m ó w, do s tępne z jęz y ka C i ko r z y s tające b ez po ś r ednio z o dpo wiednich z as o b ó w i funkcji s y s tem o wy ch. Uży wanie ich w ten s po s ó b daje najwięks z ą pr z eno ś no ś ć r o z wiąz ań i najwięks z ą ko ntr o lę nad s z cz egó łam i. Po z ako ńcz eniu s z ko lenia akty wny ucz es tnik po tr afi: tworz yć i z amykać procesy, a także uruchamiać na różne sposoby nowe programy, tworz yć procedury obsługi sygnałów oraz maskować sygnały, współbieżnie korz ystać z plików używając takich mechaniz mów jak blokowanie plików cz y mapowanie plików do pamięci, tworz yć proste roz wiąz ania wieloprocesowe w modelu roz prosz onym oparte o komunikację z a pomocą łącz naz wanych i nienaz wanych, tworz yć proste roz wiąz ania wieloprocesowe w modelu scentraliz owanym oparte o współdz ielenie pamięci i synchroniz ację z a pomocą semaforów, korz ystać z kolejek komunikatów, tworz yć proste aplikacje wielowątkowe w oparciu o bibliotekę pthreads, wykorz ystywać do synchroniz acji międz y wątkami mutexy i z mienne warunkowe. Sz ko lenie nie o b ejm uje m .in. nas tępujący ch tem ató w: komunikacja sieciowa (patrz sz kolenie C-TCP ), analogicz ne mechaniz my w innych systemach operacyjnych, w sz cz ególności Windows, opakowanie poz nawanych tu mechaniz mów systemowych w nakładki jęz yka C++. Czas i forma szkolenia 21 godz in (3 dni x 7 godz in), w tym wykłady i warsz taty praktycz ne. Vavatech Sp. z o.o., ul. Olesińska 21, 02-548 Warszawa, tel. (+48 22) 845 09 70, fax (+48 22) 213 81 27 e-mail: [email protected], www.vavatech.pl Plan szkolenia 1. Procesy w systemie UNIX. a. Tworz enie nowych procesów: funkcja fork, hierarchia procesów. b. Kończ enie procesów, funkcja wait, procesy z ombie . c. Ł adowanie nowych programów, grupa funkcji exec_. 2. Sygnały. a. Wysyłanie sygnałów. b. Rejestrowanie kodu obsługi sygnału. c. Maskowanie sygnałów. 3. Komunikacja międz y procesami z a pomocz ą plików. a. Deskryptory plików a funkcje fork i exec. b. Ocz ekiwanie na z darz enia wejścia/wyjścia – funkcje select i poll. c. Blokowanie dostępu do pliku (do całości, do cz ęści). d. Mapowanie plików do pamięci. 4. Komunikacja międz y procesami z a pomocz ą łącz . a. Ł ącz a nienaz wane („pipe”). b. Duplikowanie otwartych deskryptorów i podmiana standardowego wejścia i wyjścia. c. Ł ącz a naz wane („fifo”). 5. Synchroniz acja międz y procesami z a pomocą semaforów. a. Definicja teoretycz na i dz iałanie semaforów. b. Semafory standardu POSIX. c. Zastosowanie semaforów do synchroniz acji międz y procesami. 6. Mechaniz my IPC Systemu V. a. Wspólne podstawy. b. Tablice semaforów („sem”). c. Segmenty pamięci dz ielonej („shm”). d. Kolejki komunikatów („msg”). 7. Tworz enie aplikacji wielowątkowych z a pomocą biblioteki pthreads. a. Uruchamianie wątków. b. Kończ enie wątków, wątki detached i joinable. c. Anulowanie wątków, wstrz ymywanie anulowania i stos bloków cz ysz cz ących. d. Synchroniz acja wątków z a pomocą mutexów. e. Synchroniz acja wątków z a pomocą z miennych warunkowych. Vavatech Sp. z o.o., ul. Olesińska 21, 02-548 Warszawa, tel. (+48 22) 845 09 70, fax (+48 22) 213 81 27 e-mail: [email protected], www.vavatech.pl