Demo 6, tehtävä 2 ----------------- Muuta edellisten demojen tehtävää 5 siten, että ohjelma käynnistää vain yhden laskentaprosessin, mutta jos sen jättää taustalle, uuden voi käynnistää odottamatta sen päättymistä, ja jokainen prosessi tulostaa sekä oman tuloksensa erikseen että kaikkien siihen mennessä päättyneiden ajojen yhteistuloksen. Argumentteina kierrosten määrä ja siemen; jos kierrosluvuksi annetaan 0, tulostetaan vain tähänastinen kokonaistulos. Talleta globaali summa jaettuun muistiin ja varmista, että ohjelma toimii oikein vaikka niitä käynnistettäisiin useita yhtaikaa (käytä semaforia). Välitä jaetun muistiolion nimi ympäristömuuttujassa MONTEMEM. Esimerkkiajo (bashilla - tcsh:n käyttäjille export -> setenv): $ export MONTEMEM=/tt_montecarlo1 $ ./montecarlo 10000000 1 & $ ./montecarlo 10000000 2 & $ ./montecarlo 10000000 3 & $ ./montecarlo 10000000 4 & seed 1 result 7852825:10000000 -> 3.141130, total 7852825:10000000 -> 3.141130 seed 2 result 7854754:10000000 -> 3.141902, total 15707579:20000000 -> 3.141516 seed 3 result 7852540:10000000 -> 3.141016, total 23560119:30000000 -> 3.141349 seed 4 result 7855613:10000000 -> 3.142245, total 31415732:40000000 -> 3.141573 $ ./montecarlo 0 total 31415732:40000000 -> 3.141573