Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1
Procesywspółbieżne
1.1.Pojęciapodstawowe
Programsekwencyjnyopisujesposóbrozwiązaniaproblemuobliczeniowegowkom-
puterzesekwencyjnym.Przykłademmożebyćproblemkomiwojażera,wktórymdane
liczbamiastorazodległościpomiędzykażdąichparą.todanewejściowe,na
podstawiektórychwyznaczanedanewyjściowe,czyliwynikrozwiązaniaproblemu.
Wynikiemdlapodanegoprzykładujestzamkniętamarszrutakomiwojażeramającami-
nimalnądługośćiprzechodzącaprzezkażdemiastojednokrotnie.Mówiącniecościślej,
programsekwencyjnyjestciągieminstrukcjirozwiązującychpostawionyproblem,tj.
prowadzącychdoprzekształceniadanychwejściowychwwyjściowe.Przyjmujesię,że
programsekwencyjnywykonywanyjestprzezjedenprocesor.
Jeślidorozwiązaniaproblemuchcemyużyćwiększejliczbyprocesorów,toproblem
trzebapodzielićnapewnąliczbępodproblemów,któremożnarozwiązywaćrównolegle.
Wynikirozwiązańpodproblemówskładająsięnarozwiązanieproblemuoryginalnego.
Podproblemyrozwiązywaneprzezodrębnekomponentystanowiąceskładowepro-
gramuwspółbieżnego.Każdyzkomponentówmacharaktertradycyjnegoprogramu
sekwencyjnegoinazywanyjestzadaniemobliczeniowym,wskróciezadaniem(ang.
task).Programwspółbieżny(ang.concurrentprogram)składasięzpewnejliczby
zadańopisującychobliczenia,któremogąbyćwykonywanerównolegle.Wprogramie
współbieżnympodajesię,wjakisposóbzadaniawspółpracujązesobą,korzystając
zuzyskanychwynikówobliczeń,atakżewjakisposóbsynchronizująswojedziałania.
Zadaniawykonywanewkomputerzerównoległympodnadzoremsystemuope-
racyjnego.Pojedynczezadaniewykonujesięjakoprocessekwencyjny(ang.sequ-
ential/serialprocess)będącyciągiemoperacjiobliczeniowychrealizowanychprzez
umownyprocesor,którynazwiemyprocesoremwirtualnym.Wprocesiesekwencyj-
nym,będącymwynikiemwykonaniapojedynczegociąguinstrukcji,kolejnaoperacja
rozpoczynasiędopieropozakończeniupoprzedniejoperacji.Tymsamymkolejność