On Sun, 16 Jul 2017 21:47:41 +0000, Tapio Väättänen wrote:
> On 2017-07-08, Ari Saastamoinen <
oh3mq...@hyper.fi> wrote:
>> Reijo Korhonen <reijo.k...@invalid.invalid> writes:
>>
>>> Mutkun sinun linkkisikin puhui termistä "multitasking", joka on eri
>>> asia kuin "parallel", siis rinnakkaisuus, jossa asioita tehdään
>>> rinnakkain,
>>
>> Hmmm... mun mielestäni tässä keskustelussa ei ole kukaan puhunut
>> rinnakkaisajosta ennen sinua,
Asiahan oli esillä otsikossa, joka ei vastannut viestin sisältöä. Puhuin
tästä ristiriidasta jonka sinä yhmmärsit eli ymmärsit viestini ihan
oikein.
> joten mitä merkitystä sillä on, että
>> moniajo ja rinnakkaisajo ei olekaan ihan täsmälleen samoja asioita.
Kysymysmerkki puuttuu. Merkitseekö se sitä, että vastaat omaan
kysymykseesi itse? Katsotaanpa.
> Parallel processing ja multitasking on toki *ihan* eria asioita.
Merkitsee. Vastaat kysymykseesi itse. Näin se on.
> Olen samaa mieltä, että kukaan ei puhunut rinnakkaislaskennasta (?),
> ennen kuin Reijo otti asian puheeksi.
Tämä on toistoa. Asia tulee selväksi jo yllä.
> Itse käsittäisin että multitasking on koko lailla sama kuin time
> sharing. Jollain tasolla. Siinä on kaksi ulottuvuutta. Aito monen
> käyttäjän ympräristö, jolle moniajo on edellytys.
Time sharing, time slicing, Yksi palvelupiste, jossa palvellaan
jonottavia olioita. Jonotusteoria on keksitty jo viime vuosituhannella ja
sieltä saa yksikäsitteidet käsitteet ja mallinnuksen.
> Nykyiset kännykät ovat kuitenkin hyvä esimerkki yhden käyttäjän
> systeemistä,
Yhden tai monen käyttäjän systeemien tarkastelu vie ihan eri
ongelmatiikkaan. Kännykät ovat oikeasti tietokoneita joten kännykkä ei
ole edes tietokoneesta erikoistapaus. Kännykässä on ajoaikaisesti kaksi
käyttäjää, pääkäyttäjä (root) ja käyttäjä (user). Kännyköiden
käyttöjärjestelmissä Unix-peräiset laitteet ovat jo lähes 100%:n
markkiosuudessa. Unix on lähtökohtaisesti monen käyttäjän järjestelmä.
Kun puhutaan käyttäjistä, puhutaan käyttöoikeuksista eri resursseihin. Se
on täysin eri asia kuin moniajo.
Jos käytöoikeudet laitteessa on rataksitu, niin silloin on olemassa
kirjanpito siitä kuka omistaa minkäkin resursin ja mitkä ovat säännöt
joilla noita resursseja jaetaan toisten käytäjien käyttöön.
Käyttöoikeuskeskustelu vie ihan toiseen ongelmatiikkaan kuin moniajo ja
nykyisin resurssit ovat nähtävissä verkon kautta. Kuka saa nähdä mitäkin
ei ole enää edes käyttäjän omassa laitteessa oleva ongelma, vaan pääosin
se on verkossa majaileva ongelma, jossa käyttäjä ei voi edes tietää tai
hallita sitä laitetta joka hänen resurssiensa käytön ratkaisee. Kaikki
tapahtuu "verkon perillä".
> joka ei välttämättä oikeasti edes osaa aitoa moniajoa, koska usein yksi
> prosessi kerrallaan oikeasti on käynnissä. Tällainen oli tilanne ehkä
> 2007 iOS:ssä. Nykyisin lienee toisin.
Aivan. Kuten tietokoneissa yleensäkin. Kännyköissä on ytimiä ainakin yhtä
monta kuin tietopkoneissakin tuppaa olemaan eli neljä tai enemmän. Neljä
asiaa saattaa siis kännykässäkin tapahtua yhtä aikaa kellolla mitaten tai
useampikin. Mutta kellä on oikeaa käyttöä tälläiselle rinnakkaisuudella,
se on eri asia.
> Yhden käyttäjän ympäristökin voi hallita moniajon. Ehkä OS/2 olisi tästä
> kohtuullinen esimerkki. Useampi prosessi etenki saman aikaisesti, mutta
> kaikki oli yhden käyttäjän alla.
>
> Parellel computing taas tarkoittaa käytännössä yhden "työn" jakamista
> usealla ytimelle tai tietokoneelle.
Aivan, mutta tuo työn ajaminen usealle tietokoneelle on jäänyt huonosti
toteutetuksi. Useimmiten kyllä nykyisin käyttäjän työ jaetaab nimenomaan
usealle tietokonneelle elikkä omalle työasemalle tai päätelaitteelle ja
verko perillä oleville paövelimille mutta asiat eivät tapahdu juurikaan
rinnakkain, vaan päätelaite aina joutuu odottamaan vrkon perillä olevien
palvelimien vastauksia. "Verkko lagaa" on nuorten yleisin sanonta ;-)
> Shared nothing architecture lienee
> tästä paras esimerkki. Jokainen laskentayksikkö hoitaa oman osansa ja
> palauttaa tuloksen. Hadoop lienee tästä kohtuullinen esimerkki.
En usko että esimerkkisi selventää asiaa.
Elikkä historia johti vuoropalvelusta "Time sharing" ...
> Tästä lopulta syntyi Multics, jonka puutteiden vuoksi kehitettin UNIX,
> joka kuten tiedetään, toimi Linuxin innoittajana ja esimerkkinä.
... moniajoon "parallel processing" joka on tänä paivänä "vaiheessa",
kuten asiat tuppaavat olemaan. Prosessorien viivaleveyttä on prosessorien
nopeuttamiseksi pienennetty äärimmilleen ja sitä ei juurikaan voi enää
pienentää etteivät elektronit hyppää vääriin paikkoihin ja
ylikuumenmisongelmat kaada koko systeemiä. Silloin ytimien lisäys on
ainoa keino nopeuttaa koneita ja silloin rinnakkaisuuden lisääminen
tehtävissä on ainoa keinoa nopeuttaa asioiden tapahtumista kellolla
mitaten. Tämä on kuitenkin vaikea ongelma. Me ihmiset halitsemme
parhaiten peräkkäin tapahtuvat asiat.
Heti kun asioita alkaa tapahtua rinnakkain ja satunnaisessa
järjestyksessä, olomme tulee sekavaksi ja hallinnan tunne menee. Siksi
rinnakkaisuuden tuominen tehtävien ratkaisemiseen on vielä aika
alkeellisella tasolla. Kaikki tahtoo olla vielä "time sharing" tasolla
jopa niin, että että suosiota on tullut ohjelmointikielille ja
arkkitehtuureille, joissa nimenomaan ei ole minkäänlaista rinnakkaisuutta
asioille. Että kaikki menisi oikein.
Kun ei osata miettiä asioita ja ehtoja, joilla homma voisi edetä kun
joitakin osatehtäviä on saatu tehtyä jossakin järjestyksessä. Mitä
seuraavaksi voidaan tehdä kun tämä on tehty. Talotkin tupataan tekemään
jossakin järjestyksessä. Ainakin lattia on olemassa ennen seiniä. Ennen
seiniä ei voi asentaa keittiön kaapistoja, kolmoskerrosta ei voi tehdä
ennen ykköskerrosta. Betonivalun pitäisi kuivua ennen kuin lattiamaton
voi liimata siihen. Vaikka tuntuu että nykyisin tätä rinnakkaisuutta
yritetään tosielämässäklin tilanteissa joissa sitä ei ainakaan niin kuin
ihminen ne tekee nyt voi oikeasti tehdä. Siloin ihan fyysiset asiat
homehtuvat. Atk-maailmassa saa asiat sotkuun virtuaalisilla asioilla
vieläkin helpommin.
--
Re...@iki.fi.nospam.invalid
http://www.iki.fi/Reijo