Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.2.Współbieżnośćprocesówwsystemachoperacyjnych
5
(iii)procesywykonywaneprzezodrębne,rozproszoneprocesorypołączoneka-
nałamikomunikacyjnymi.
Przyjmiemy,żedwaprocesywspółbieżne,jeśliistniejemożliwośćichrówno-
ległegowykonania,natomiastprocesytakiewykonywanerównolegle,jeśliwdo-
wolnymmomencieobaznichjednocześniewykonywane.Wtymkontekścietylko
wprzypadkach(ii)oraz(iii)wykonywanieprocesówzachodzirównolegle.Wprogra-
miewspółbieżnym(ang.concurrentprogram)specyfikujesięprocesy,któremogąbyć
wykonywanerównolegle,atakżerozwiązujesięproblemysynchronizacjiikomunikacji
międzyprocesami.To,czyprocesybędąwykonanerzeczywiścierównolegle,zależy
odimplementacji.Jeślidostępnajestwystarczającaliczbaprocesorów,tokażdyproces
wykonywanyjestprzezodrębnyprocesoriprogramwspółbieżnywykonywanyjestjako
programrównoległy(ang.parallelprogram).Programyrównoległewykonywaneprzez
procesoryrozproszone,np.wchodzącewskładklastrówobliczeniowych,określane
mianemprogramówrozproszonych(ang.distributedprograms).Opróczprzypad-
ków(ii)oraz(iii)możliwejestteżwykonywaniewprocesówzapomocąpprocesorów
rzeczywistych,przyczymp<w;wszczególnościmożezachodzićpl1,jak
wprzypadku(i).Wówczasczęśćprocesówlubwszystkieznichmusząbyćwykonywane
metodąprzeplotu.Tensposóbwykonaniamożnauważaćzapseudorównoległy(por.
uwagidoniniejszegorozdziału).
1.2.Współbieżnośćprocesówwsystemachoperacyjnych
Narysunku1.4jestzilustrowanewykonanietrzechprocesówprzezjedenprocesor
rzeczywistymetodąprzeplotu.Oiletakiewykonaniejestmożliwe,otylewpraktycejest
małoefektywne,ponieważprocesorprzyprzejściudowykonywaniaoperacjinastępnego
procesudokonujetzw.przełączeniakontekstu(ang.contextswitching).Przełączenie
topoleganazapamiętaniuniezbędnychdanychdotyczącychstanuprocesu,np.za-
wartościrejestrówarytmetycznych,zawartościrejestruorazlicznikainstrukcjiitp.,tak
abypoprzerwaniujegowykonywaniamożnajebyłowznowićodmiejscaprzerwania.
Przełączaniekontekstujestzregułyczasochłonne4,dlategoprzeplotwewspółczesnych
systemachoperacyjnychrealizowanyjestwformiepodziałuczasu(ang.time-sharing).
Polegaonnaprzydzielaniuprocesora(ów)dowykonywaniawiększejliczbyoperacji
kolejnychprocesówprzezpewienodcinekczasu,omaksymalnejdługościnp.1ms.
Dodatkowo,przydzielającprocesory,uwzględniasiępotrzebyzgłaszaneprzezprocesy.
Wogólnymprzypadkuzadaniawykonywanejakoprocesyniemusząstanowićczęści
jednegoprogramuwspółbieżnego.Mogąonebyćniezależnymi,sekwencyjnymizada-
niamiobliczeniowymi,którenależywykonaćwkomputerze.Rozważmynp.przypadek,
wktórympowinnybyćzrealizowanezadaniaoptymalizacjipewnejfunkcji,drukowania
plikuorazedycjidokumentu.Wykonanietychzadańmożepolegaćnaprzydzielaniu
4Szczególniewprocesorachsuperskalarnychwyposażonychwpotokowejednostkiwykonywania
instrukcjiorazdużepamięcipodręczne(por.podrozdz.5.1).