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

Podobne dokumenty