watki_c.pdf
(
97 KB
)
Pobierz
11674078 UNPDF
Unix:programowaniezu˙zyciemw¸atk´ow
WitoldPaluszy´nski
witold@ict.pwr.wroc.pl
http://sequoia.ict.pwr.wroc.pl/
»
witold/
Copyrightc
°
1999–2004WitoldPaluszy´nski
Allrightsreserved.
NiniejszydokumentzawieramateriaÃlydowykÃladunatematprogramowania
zu˙zyciemw
,
atk´ownormyPOSIXwsystemieUnix.Jestonudost
,
epniony
podwarunkiemwykorzystaniawyÃl
,
aczniedowÃlasnych,prywatnychpotrzebi
mo˙zeby´ckopiowanywyÃl
,
aczniewcaÃlo´sci,razemzniniejsz
,
astron
,
atytuÃlow
,
a.
W
,
atki:wprowadzenie
²
W
,
atek(ang.
thread
)jestsekwencj
,
aoblicze´nrealizowan
,
awramach
jednegoprocesu.Zestaww
,
atk´ownale˙z
,
acydojednegoprocesuwykonuje
si
,
er´ownoleglewramachjegoprzestrzeniadresowej.
²
Ponadtow
,
atkiwsp´oÃldziel
,
anast
,
epuj
,
acecechy:
±
identyfikatoru˙zytkownikaigrupy
±
bie˙z
,
ac
,
akartotek
,
edyskow
,
a
±
otwartepliki
±
handlerysygnaÃl´owiichdeklaracje
²
Natomiastka˙zdyw
,
atekmasw´ojunikalnyidentyfikator,indywidualny
zestawatrybut´ow,mask
,
esygnaÃl´ow,priorytetitzw.konteks
obliczeniowy,tzn.stoswywoÃla´nprocedur,zestawrejestr´ow,itp.
²
W
,
atektworzysi
,
efunkcj
,
a
pthread_create()
jakowywoÃlaniejakiej´s
funkcjiu˙zytkownika.
Unix:programowaniezw¸atkami
1
serwerwieloprocesowy:
serwerwielow
,
atkowy:
voidserve_client(intsock);
void*serve_client(void*);
voidmain(void){
intsockS,sockC;
structsockaddr_unadd;
voidmain(void){
intsockS,sockC;
structsockaddr_unadd;
pthread_tt;
sockS=socket(PF_INET,
SOCK_STREAM,0);
add.sun_family=AF_INET;/*...*/
bind(sockS,
(structsockaddr*)&add,
sizeof(add));
listen(sockS,5);
sockS=socket(PF_INET,
SOCK_STREAM,0);
add.sun_family=AF_INET;/*...*/
bind(sockS,
(structsockaddr*)&add,
sizeof(add));
listen(sockS,5);
while(1){
sockC=accept(sockS,0,0);
if(fork()==0){/*potomek*/
close(sockS);
serve_client(sockC);
exit(0);
while(1){
sockC=accept(sockS,0,0);
pthread_create(&t,NULL,
serve_client,
(void*)&sockC);
/*watkiniezamykajagniazdek*/
/*-satowspolnedeskryptory*/
}
close(sockC);/*rodzic*/
}
}
}
}
Unix:programowaniezw¸atkami
2
Ko´nczeniepracyw
,
atk´ow
²
W
,
atekko´nczysi
,
egdy:
±
zako´nczysi
,
efunkcjarealizuj
,
acago
±
w
,
atekwywoÃlafunkcj
,
e
pthread_exit()
±
w
,
atekzostanieanulowanyfunkcj
,
a
pthread_cancel()
±
jedenzw
,
atk´owwykonafunkcj
,
e
exec...
±
zako´nczysi
,
eprocesmacierzystyw
,
atku
²
Wchwilizako´nczeniaw
,
atkuzwalnianes
,
ajegoindywidualnestruktury
danych(np.stos),alenieglobalnestrukturyprocesu.
²
Wchwilizako´nczeniaw
,
atkigeneruj
,
astatus,kt´orymo˙zeby´codczytany
przezw
,
atekmacierzysty,podobniejaktojestzprocesami.
²
Je´slizako´nczysi
,
efunkcjagÃl´ownaw
,
atkutoskutekjesttakijakgdyby
w
,
atekwywoÃlaÃlfunkcj
,
e
pthread_exit()
zezwr´ocon
,
awarto´sci
,
ajako
argumentem.Wtenspos´obwszystkiejawnietworzonew
,
atkir´o˙zni
,
asi
,
e
odgÃl´ownegow
,
atkuprocesu,kt´oregozako´nczeniefunkcjigÃl´ownej
(main)jestr´ownowa˙znewywoÃlaniufunkcji
exit()
.
Unix:programowaniezw¸atkami
3
Plik z chomika:
ekirdwasto
Inne pliki z tego folderu:
rklibavr_doc_20060316.tgz
(66 KB)
Exploring C for Microcontrollers.pdf
(4405 KB)
Joe Pardue - C Programming for Microcontroller.pdf
(4444 KB)
Kurs C AVR.pdf
(670 KB)
WinAVR-20080610-install.exe
(22883 KB)
Inne foldery tego chomika:
AVR
AVR-y i ARM-y
Elektronika dla wszystkich
Elektronika Praktyczna
Mikrokontrolery
Zgłoś jeśli
naruszono regulamin