Hajautetut ja samanaikaiset järjestelmät 7.3.2008 Harjoitus 1 Nämä ensimmäiset harjoitukset on tehdään lähinnä maalais/kaupunkilaisjärjen (ja aiemman tkt-osaamisen) pohjalta, ei niinkään ensimmäisen viikon luentojen tai luentomateriaalin avulla. Tarkoitus on herättää ajatuksia ja suunnata ajattelua rinnakkaisiin, hajautettuihin ja samanaikaisiin järjestelmiin, ei vielä hakea oikeita tai täsmällisiä ratkaisuja. Piirrä kuva kustakin tehtävästä. 1) Saatte tehtäväksenne käsipelissä lajitella A4-arkkeja arkilla olevan nimen mukaan aakkosjärjestykseen. Millä taktiikalla/menetelmällä ryhtyisitte toimeen kun lajiteltavia arkkeja on a) 10 b) 100 c) 1000 d) 10000 ja käytössäsi on 10 apulaista. Käytä sellaista menetelmää jota oikeasti käyttäisitte käsityönä (ei siis tietokonealgoritmeja sellaisenaan). Miten käytät apulaisia hyväksesi? Pyri jakamaan työ mahdollisimman hyvin ja siten nopeaan kokonaisaikaan. Arvioi kuinka paljon kunkin pinon lajitteluun kuluu aikaa (minuutteina, tai muuna sopivana aikayksikkönä). Yritä laskea aika perustellen käyttämästäsi menetelmästä. Ajan arviointi on helpointa kun arvioit kuhunkin yksinkertaiseen toimenpiteeseen (yhden paperin käsittely) kuluvan ajan ja lasket kuinka monta kutakin yksinkertaista operaatiota tarvitaan kussakin vaiheessa. 2) Jatka edellistä tehtävää parantamalla algoritmi 100 apulaiselle 1000 ja 10000 arkin tapauksissa sekä 1000 apulaiselle 10000 arkin tapauksessa. Arvioi jälleen tarvittavat ajat. 3) Suomessa on noin 6 miljoonaa matkapuhelinliittymää ja niistä soitetaan arviolta 20 miljoonaa puhelua päivässä (?). Koska kohdenumerosta ei enää voi päätellä kohdeoperaattoria, on jokaisen operaattorin pystyttävä nopeasti selvittämään, mille vastaanottajalle kukin puhelu ohjataan. Arvioi/hahmottele, minkälainen (miten järeä, miten hajautettu) järjestelmä tarvitaan oikean kohdeoperaattorin selvittämiseen. Huomioi myös, että vuosittain noin puoli miljoona puhelinnumeroa vaihdetaan operaattorilta toiselle. Mieti, miten nämä päivitykset tehdään? 4) Suunnitellaan henkilöiden maapallonlaajuinen henkilötunnusjärjestelmä. Jokaiselle syntyvälle ihmiselle annettaisiin tunniste mahdollisimman pian (huomioiden paikalliset olosuhteet ja mahdollisuudet). Numeroita olisi siis miljardeja, järjestelmän käyttäjiä jopa miljoonia. Järjestelmän tulisi myös pystyä tallentamaan kunkin henkilön (lyhyet) henkilötiedot ja siitä pitäisi pystyä tehokkaasti hakemaan annettua tunnistetta. Mieti minkälaisen infrastruktuurin järjestelmä edellyttäisi? Miten tunnuksia jaettaisiin niin, ettei kahdelle tulisi samaa numeroa? 5) Oletetaan rajattu kaveripiiri (esim. 5) joiden olisi sovittava tapaamisajasta keskenään GSM tekstiviestein. Kullakin on omat rajoituksensa (esim. soveltuvien tai soveltumattomien aikojen lista) ja kuka vain voi käynnistää ajansopimisen. Miten järjestäisit ajan sopimisen? (Minkälainen "algoritmi", millaisia viestejä?). Voit olettaa kaikkien pitävän puhelinta aina päällä ja reagoivan kohtuullisen ajan kuluessa. Pyri pitämään viestien määrä pienenä. Montako tekstiviestiä tarvitaan? 6) Jatketaan tehtävän 5 ajansopimista oletuksella, että kuka tahansa henkilöistä voi sammuttaa puhelimensa millä hetkellä tahansa, mutta viestejä ei edelleenkään katoa. Ko. puhelimen sammuttaneen henkilön ei tarvitse hyväksyä sovittua aikaa, mutta muiden on edelleen pystyttävä sopimaan. Miten sopimusmenettelyä on nyt muutettava?