|
Rinnakkaisalgoritmit edustavat erästä algoritmien erityisluokkaa, ne
perustuvat useisiin samanaikaisesti suorittuviin prosesseihin. Alkeisrutiinien
tasolla nämäkin usein perustuvat syöte-käsittely-tuloste -mallin mukaisiin
algoritmeihin - moduleihin, joissa tietosisällön muutokset heijastelevat niihin
sovellettuja käsittelyjä.
Proseduraalisten ohjelmointikielten kehitys ja leviäminen liittyi algoritmien
tutkimuksen suosioon. Pienimuistisissa ja yksiprosessorisissa (merkkipohjaisissa)
tietokoneympäristöissä hyvin määriteltyjen algoritmien pohjalta ohjelmoidut
proseduurit olivat riittävän pelkistettyjä, jotta niiden tila- ja aikavaatimukset
olivat arvioitavissa ja jopa todistettavissa. Proseduraalisen ohjelmoinnin
tekniikat kehittyivät niin, että ohjelmat voitiin osittaa itsenäisiksi
prosesseiksi, joilla oli omaan suoritusaikaansa sidottuja tietorakenteita
ulkoisten, parametreina välitettävien syötteiden ja tulosteiden lisäksi, (kuva
2). Proseduraalisen ajattelun joustavuutta osoittaa se, että ensimmäiset
rinnakkaisohjelmointikielet perustuivat rinnakkaisiin keskenään tietorakenteiden
välityksellä kommunikoiviin prosesseihin.
Esimerkkinä modulaarisen suunnittelun voimasta Unix -
käyttöjärjestelmäfilosofia, joka on rakennettu peruspalvelut toteuttavan ytimen
ympärille organisoiduille proseduurikirjastoille. Kunkin käyttäjän sovellukset
rakennetaan peruspalveluiden ja kirjastojen päälle omaksi ohjelmakerroksekseen -
pyrkimyksenä maksimaalinen siirrettävyys. Eri järjestelmiin kirjastot on voitu
toteuttaa laitteiston vaatimukset ja mahdollisuudet huomioiden. Kirjastojen
kehittäminen ja ylläpito voidaan hallita, kun ositus on sopivalla karkeustasolla.
|