Tietokone ja käyttöjärjestelmä -luentomoniste v Jyry Suvilehto

Koko: px
Aloita esitys sivulta:

Download "Tietokone ja käyttöjärjestelmä -luentomoniste v. 0.93. Jyry Suvilehto"

Transkriptio

1 Tietokone ja käyttöjärjestelmä -luentomoniste v Jyry Suvilehto

2 Esipuhe Tämä luentomoniste on tarkoitettu itseopiskelumateriaaliksi kurssille T Tietokone ja käyttöjärjestelmä. Moniste ei missään tapauksessa ole valmis. Korjausehdotuksia ja rakentavaa kritiikkiä otetaan mielellään vastaan. Moniste on jaettu 7 lukuun, joista jokainen käsittelee samaa aihealuetta kuin yksi kurssin T luennoista. Jokaisen luvun alussa on lyhyt top-down katsaus luennon sisältöön. Liite-osiossa kerrotaan pikaisesti asioita, jotka eivät välttämättä tule opinnoissa vastaan henkilöille, jotka eivät opiskele tietotekniikan tutkinto-ohjelmassa. Luennoilla ja monisteessa ei välttämättä käsitellä aivan samoja asioita. Moniste on laadittu siten, että sitä lukemalla on mahdollista saavuttaa kurssin keskeiset oppimistavoitteet. Joitakin syventäviä tavoitteita ei voi saavuttaa pelkästään monistetta lukemalla, vaan opiskelijalta vaaditaan omaaloitteisuutta. Monisteen kuvitus on varsin korutonta. Syy tähän on yksinkertainen: kaikki kuvat on tekijänoikeussyistä tehty itse. Monisteessa ei ole harjoitustehtäviä, vaan ne tarjotaan kurssilla toista kautta. Ideoita harjoitustehtävistä saa kuitenkin antaa. c 2009 Jyry Suvilehto Lisenssi: Creative Commons Nimeä-Epäkaupallinen-Tarttuva 1.0 Suomi i

3 Kiitokset Ilman Vesa Hirvisaloa, Sami Kiminkiä, Juho Äyräväistä, Marjukka Kokkosta, Jaakko Kotimäkeä ja Timo Töyryä tämä luentomoniste olisi paljon ikävämpää luettavaa. Ilman Sanna Suorantaa ja Aleksi Aaltoa monisteessa olisi paljon vähemmän pilkkuja. Kiitokset myös Axel Eirolalle, Juha Kurjoselle, Ville Immoselle, Jarno Hilveniukselle, Paav-o Leinoselle ja Tero Paloheimolle korjausehdotuksista ensimmäisen toteutuskerran perusteella. Erityiskiitos Jeff Beardille (Wikipedian käyttäjä jjbeard), jonka Public Domainiin julkaisemia SVG-kuvia logiikkaporteista käytetään luvussa 2. Kiitos myös Graphviz-työkalun kehittäjille. Kirjassa olisi huomattavasti vähemmän kuvia ja enemmän puuduttavaa tekstiä ilman kyseistä ohjelmistoa. ii

4 Sisältö Esipuhe Kiitokset i ii 1 Johdanto Systeemit ja insinööritieteen perusteet Systeemi ja tietotekniikka Modernin tietokoneen rakenne Käyttöjärjestelmän rakenne Bitistä summaimeen Lukujärjestelmät Binäärilukujärjestelmä Oktaali- ja heksadesimaalijärjestelmät Negatiiviset luvut Etumerkkibitti Yhden komplementti Kahden komplementti Reaalilukujen esitys tietokoneessa Kiinteän pilkun luvut Liukuluvut Tietokoneiden äärellisyydestä Merkistöt American Standard Code for Information Interchange (ASCII) ISO ja ISO Unicode ja UTF Boolen algebra Piirisuunnittelu Boolen algebralla Puolisummain Kokosummain iii

5 2.9 Virheentarkistus Pariteettibitti Syklinen redundanssitarkastus (CRC) Hammingin etäisyys ja koodaus Ohjelmoitavat tietokoneet Erityislaskimista ohjelmoitavaan tietokoneeseen Von Neumann -arkkitehtuuri Väylä Muisti Siirräntäyksikkö Suoritusyksikkö Käskykierros Käskykanta-arkkitehtuuri Ohjelmien kääntäminen, kirjastot ja linkitys Muistihierarkia Lokaalius Välimuisti Muistihierarkia Keskeytyksistä käyttöjärjestelmään Keskeytykset Alkeelliset prosessit Tiedonsiirtotekniikat Ohjelmoitu tiedonsiirto Keskeytyksillä toteutettu tiedonsiirto Suora muistisiirto (DMA) Virtuaalimuisti Kohti käyttöjärjestelmää Ydin Käyttöjärjestelmätyypit Käyttöjärjestelmän rakennuspalikat Putket Standardivirrat Tiedostot ja hakemistorakenne Tiedosto Tiedostotyypit Hakemistorakenne Tiedostojärjestelmä FAT iv

6 5.4.2 Unix-tiedostojärjestelmät Modernit tiedostojärjestelmät Kiintolevyn osiot Linkit Lisälaitteet Everything s a file (Unixin tiedostojärjestelmä ja lisälaitteet) Asiakas-palvelin -malli (Windowsin tiedostojärjestelmä ja lisälaitteet) Käyttäjänhallinta Autentikaatiotietueet Tiedosto-oikeudet Käyttöjärjestelmä Symmetrinen moniprosessointi ja moniydinprosessointi Säikeet Käyttöjärjestelmäytimien tavoitteet ja tehtävät Monoliittiset ytimet Mikroytimet Hybridiytimet POSIX ja shell POSIX The Unix Programmer s Manual man Komentotulkki Ympäristömuuttujat Säännölliset lausekkeet Yksinkertaiset säännölliset lausekkeet (BRE) Laajennetut säännölliset lausekkeet (ERE) Perl ja Python POSIX-apuohjelmat Putket Prosessinhallinta Tiedostonhallinta Tiedostojärjestelmä ja lisälaitteet Tekstinkäsittely Skriptit A Liitteet 104 A.1 Turingin kone A.2 Pino ja Jono v

7 Viitteet 108 Hakemisto 108 vi

8 Luku 1 Johdanto Ensimmäisen luvun aluksi käsittelemme insinööritieteessä usein esiintyviä korkean tason filosofisia käsitteitä. Nämä käsitteet on hyvä pitää mielessä loppukurssin ja oikeastaan koko opintojen aikana. Alun systeemikäsite jätetään tarkoituksella varsin avoimeksi. Systeemejä on monenlaisia, ja niitä pääseekin opiskelemaan TKK:lla esimerkiksi Matematiikan ja systeemianalyysin Mat-2 -alkuisilla kursseilla, BECS 1 -huippuyksikön kursseilla ja monissa eri koulutusohjelmien pääaineissa. Tietyt perustermit ja -ajattelumallit ovat yhteisiä, mutta systeemilähestymiseen liittyy aina myös paljon sovellusalakohtaista tietoa. Tämä luentomoniste käsittelee tietokonejärjestelmiä. Tietokonejärjestelmään kuuluu sekä fyysinen, piiriaspekti että tietokonetta hallitseva ohjelmisto, käyttöjärjestelmä. Luvun lopussa esitellään sekä tietokonetta että käyttöjärjestelmää nopeasti top-down -lähestymistavalla, jotta top-down oppijoiden on helpompi rakentaa kokonaiskuva kurssin asiasisällöstä. Luentomoniste on muuten rakennettu esittelemään asiat bottom-up, joten ensimmäisen luvun esittelyllä pyritään tasapainottamaan tätä rakennetta. Mikäli termit top-down ja bottom-up eivät ole tuttuja, ne esitellään seuraavaksi systeemien yhteydessä. 1.1 Systeemit ja insinööritieteen perusteet Insinööritiede (engineering) tarkoittaa (Merriam-Webster -sanakirjasta vapaasti käännettynä) joko 1. tieteen ja matematiikan soveltamista siten, että aineiden ominaisuudet ja luonnossa oleva energia valjastetaan ihmisten hyödyksi 1 department of Biomedical Engineering and Complex Systems 1

9 LUKU 1. JOHDANTO 2 2. monimutkaisten järjestelmien suunnittelua ja toteutusta Tällä kurssilla käsitellään lähinnä jälkimmäisen määritelmän mukaista insinööritiedettä. Järjestelmien suunnittelu ja toteutus perustuu selkeästi tieteisiin ja matematiikkaan, mutta se sisältää myös monia asioita, joita ei ole helppo johtaa takaisin perustieteisiin. Järjestelmää, joka sisältävää monia toisistaan riippuvaisia osasia ja joka on selkeästi ympäristöstään erotettava kokonaisuus, kutsutaan systeemiksi (system). Systeemejä voi löytää monista eri tieteenaloista: solu on hyvä esimerkki biologisesta systeemistä, taloustieteissä esimerkiksi yksittäinen yritys tai tietty kaupan ala, kuten terästeollisuus voidaan mieltää systeemiksi. Tällä kurssilla systeemit ovat joko fyysisiä piirejä (tietokoneen osia tai lisälaitteita) tai ohjelmistosysteemejä (käyttöjärjestelmä, käyttöjärjestelmän osat ja apuohjelmat). Systeemien yhteydessä käytetään filosofista käsitettä holismi kuvaamaan ajattelutapaa, jonka mukaan systeemillä voi olla niin sanottuja emergenttejä ominaisuuksia. Emergentit ominaisuudet eivät ole suoraan johdettavissa alisysteemien ominaisuuksista. Esimerkiksi väri on aineen emergentti ominaisuus: yksittäinen molekyyli ei ime mitään tiettyä valon aallonpituutta, mutta kun molekyylejä on suuria määriä, ne imevät tiettyjä valon aallonpituuksia ja aineella on väri. Huonosti suunnitellun ja kirjoitetun ohjelman emergentti ominaisuus on usein hitaus. Vaikka aliohjelmia ei ole erikseen suunniteltu hitaiksi, kokonaisuus on tarpeettoman hidas. Systeemejä voidaan tarkastella kahdella eri tavalla. Systeemiä voidaan ajatella mustana laatikkona (black box), jolloin systeemistä tarkastellaan vain siihen vaikuttavia systeemin ulkopuolisia seikkoja ja systeemin vaikutusta itsensä ulkopuolelle. Esimerkiksi matemaattisen laskutoimituksen suorittavan ohjelman saamat syötteet ja sen antama tulos. Systeemiä voidaan myös ajatella valkoisena laatikkona (white box), jonka sisältö tiedetään. Mustaa laatikkoa tarkasteltaessa tarkastelu joudutaan rajoittamaan syötteisiin ja tuloksiin. Valkoista laatikkoa tarkasteltaessa voidaan myös tarkastella laatikon sisällä olevia toteutuskohtaisia yksityiskohtia. Esimerkiksi kuvassa 1.1 on esitelty hahmontunnistussysteemin perusrakenne 2. Esimerkki hahmontunnistussysteemi on ohjelmisto, jolle annetaan kasvokuva ja joka yhdistää kuvan tietokannassaan oleviin saman henkilön kasvoihin ja antaa tuloksena ihmisen nimen. Tarkasteltaessa systeemiä mustana laatikkona, siitä voidaan mitata vain, kuinka hyvin se tunnistaa kasvoja. Jos taas samaa systeemiä tarkastellaan 2 Hahmontunnistusta käsitellään kurssilla T Datasta Tietoon ja Informaatiotekniikan pääaineessa.

10 LUKU 1. JOHDANTO 3 Musta laatikko b1 b2 b3 b4 Syöte Valkoinen laatikko Tulos Mittaus Esikäsittely Piirreirrotus Luokittelu Kuva 1.1: Hahmontunnistussysteemi mustana ja valkoisena laatikkona. valkoisena laatikkona, voidaan tarkastella myös sen osien toimintaa. Systeemin neljä pääosaa ovat tässä esimerkissä mustia laatikoita (eli niiden toimintaa ei tarvitse tai haluta tietää). Joissain tapauksissa voi olla mielekästä vaihtaa jokin systeemin osista toiseen, eri tavoin toteutettuun mustaan laatikkoon. Voidaan esimerkiksi analysoida kahden eri luokittelutoteutuksen eroja koko systeemin toimintaan. Esimerkin kaltaisissa tapauksissa, joissa systeemiä tarkastellaan kokonaisuutena joka koostuu osasista, puhutaan top-down -strategiasta. Vastakohta tälle lähestymistavalle on bottom-up -strategiasta 3. Bottom-up -strategiassa lähdetään osasista ja osasia liitetään toisiinsa suurempien järjestelmien rakentamiseksi. Systeemiä (esimerkiksi ohjelmistoa) rakennettaessa käytetään yleisesti niinsanottua V-mallia (V-model). Kuvassa 1.2 on esitelty V-mallin eteneminen. Lähtökohtana on tulevan systeemin toimintaperiaate. Tämän jälkeen systeemin arkkitehtuuri suunnitellaan ensin karkealla tasolla, jonka jälkeen karkean tason osasten tarkka rakenne suunnitellaan ja toteutetaan. Kun palaset on toteutettu, ne yhdistetään ja niiden yhteentoimivuus varmistetaan. Palasten yhdistämistä kutsutaan systeemi-integraatioksi ja se on erittäin tärkeä osa toimivan tuotteen aikaansaamista. V-mallin laskeva sivu vastaa topdown -lähestymistä ja nouseva sivu bottom-up lähestymistä. V-malli voidaan ajatella yhdistävän nämä kaksi lähestymistapaa. 3 Top-down ja bottom-up ovat yleisiä jäsennysstrategioita. Niistä on hyötyä paitsi järjestelmiä suunnitellessa, myös opittua tietoa jäsennettäessä. Jotkut oppivat paremmin lähtiessään purkamaan kokonaisuutta palasiin. Toiset taas oppivat paremmin yhdistelemällä osasia suuremmiksi kokonaisuuksiksi. Tämä opetusmoniste on jäsennetty ensisijaisesti bottom-up -oppimista tukemaan. Top-down -oppijoiden avuksi tässä käydään tietokonejärjestelmän rakenne läpi ja sen jälkeen jokaisen luvun alussa esitellään luvun sisältö top-down -lähestymisellä.

11 LUKU 1. JOHDANTO 4 Toimintaperiaateja malli Käyttö ja ylläpito Vaatimukset ja arkkitehtuuri Systeemi-integraatio -verifikaatio ja validointi Tarkka toteutuksen rakenne Integrointi, testaus ja verifiointi Toteutus Kuva 1.2: Systeemisuunnittelun V-malli Järjestelmiä suunniteltaessa ja kehitettäessä niistä pyritään tekemään parempia jollakin tietyllä mittarilla. Näiden mittarien valinta vaikuttaa olennaisesti systeemiin. Esimerkiksi moderneissa suorittimissa yksi vaatimuksista on varsin usein kellotaajuuden ja käytetyn tehon suhde, koska tietokoneista halutaan tehdä energiatehokkaampia ja vihreämpiä. Käytännössä aina yksi mittari on aika, mutta sen painotus riippuu tilanteesta: joskus systeemin toiminta on aikakriittistä, joskus se taas ei ole. Joskus taas systeemin suunnitteluun käytetyn ajan määrä on olennaista, kuten tapauksessa jolloin uudelle markkina-alueelle pitää päästä ensimmäisenä. Mittarien yhteydessä puhutaan kustannuksista. Jos jokin teko tai ratkaisu aiheuttaa tietyn mittarin siirtymistä ei-toivottuun suuntaan puhutaan että se on kallista, päinvastoin taas halpaa. Raha on yksi erittäin yleinen mittari. Historia tuntee tapauksia joissa raha ei ole ollut tärkein mittari, mutta nämä ovat poikkeuksia, kuten Manhattan- ja Apollo-projektit. Esimerkiksi luvussa 2 käsiteltävällä piiritasolla tietyt laskutoimitukset, kuten kerto- ja jakolasku ovat kalliimpia kuin yhteen- ja vähennyslaskut sekä bitshift-operaatiot. Kerto- ja jakolaskujen suorittamisessa kuluu huomat-

12 LUKU 1. JOHDANTO 5 tavasti enemmän aikaa kuin yhteen- ja vähennyslaskujen. Tämän johdosta monia tärkeitä algoritmeja on pyritään kehittämään siten, että niiden laskemiseen tarvitaan mahdollisimman vähän kerto- ja jakolaskuja. Ihmisten kyky käsittää monimutkaisia systeemejä ei ole erityisen hyvä. Ihmiset pystyvät pitämään alle 10 asiaa mielessään yhdellä kertaa ja systeemeissä voi helposti olla jopa satojatuhansia osia, jotka voivat teoriassa toimia minkä tahansa toisen osan kanssa yhdessä. Tätä monimutkaisuutta rajoittamaan määritellään erilaisia rajapintoja. Rajapinnoilla piilotetaan jonkin allaolevan alisysteemin kompleksisuus. Ohjelmistotekniikassa on paljon ohjelmointirajapintoja (Application Programming Interfaces, API ). Useimmat tietokoneen lisälaitteet liitetään fyysiseen liitäntäväylään, jota pitkin ne kommunikoivat tiedonsiirtorajapinnan avulla, jolloin tietokoneen ei tarvitse välittää lisälaitteen sisäisestä toteutuksesta. Esimerkiksi tietokoneen USBväylään voi liittää mitä tahansa hiirestä tv-vastaanottimeen ja toiseen tietokoneeseen. Ainoa vaatimus USB-väylään liitettävälle laitteelle on se, että se täyttää USB-standardin. Biologiassa hermosolujen välillä on rajapintoja, joiden avulla viesti kulkee hermostoa pitkin. Kaikkia soluja ympäröivä solukalvo muodostaa rajapinnan solun kommunikaatiolle muun systeemin kanssa. Rajapinnat tarjoavat myös hyvän tavan esittää suuret kokoluokkavaihtelut. Ihmisten on helppo mieltää kokoluokkia millimetristä (10 3 m) noin kymmeneen kilometriin (10 4 m), eli vain noin kertaisen kokovaihtelun. Esimerkiksi yksittäisen tietokoneen osien kokoluokka vaihtelee jo suuremmalla skaalalla: suoritinpiirit tehdään 45 nanometrin (10 9 ) tekniikalla ja suurimmat liittimet ovat kymmenen sentin kokoluokkaa (10 1 ), eli kyseessä on kertainen ero. Rajapintojen suunnittelufilosofioita on useita, ja oikean valinta riippuu usein sovelluskohteista. Yksi käyttöjärjestelmäsuunnittelussa käytetty paradigma on niin sanottu oliomalli, jossa erilaisia käsitteitä paketoidaan olioiksi, jotka kuvaavat ontologisia käsitteitä. TKK:n perusohjelmointikursseilla opetetaan oliolähestymistä ohjelmistoihin. Toinen, vastikään pinnalla ollut paradigma on komponenttipohjainen lähestyminen ( Component Based Engineering, CBE), jossa jokainen musta laatikko huolehtii jostain tietystä määritellystä tarpeesta. Komponenttipohjainen lähestymistapa on jäämässä taka-alalle uuden, mallipohjaisen lähestymisen, (Model Driven Engineering, MDE). Mallipohjaisessa lähestymisessä pyritään kuvauskielellä tekemään malli sovelluskohtaisista käsitteistä ja piilotetaan algoritmiset käsitteet.

13 LUKU 1. JOHDANTO Systeemi ja tietotekniikka Suurin ihmiskunnan aikaansaama tekninen systeemi on kiistatta internet. Vaikka se koostuu eri osista, eikä sitä välttämättä voida mieltää yhdeksi laitteeksi, on se selkeästi ympäristöstään erotettavissa oleva kokonaisuus. Verkon ominaisuuksien ja tiedonsiirron tarkastelu jätetään tietoliikenteen kursseille ja tämän kurssin puitteissa rajoitutaan tarkastelemaan yksittäisiä verkkoon liittyneitä laitteita. Myöhemmissä opinnoissa verkottuneita tietokoneita tarkastellessa on hyvä ymmärtää yksittäisen koneen toiminta. Vaikka tietokoneverkot on helppo mieltää miditornikoteloista rakennetuista, beigeistä Windows-koneista koostuvaksi homogeeniseksi rakenteeksi, on totuus aivan toinen. Kuvassa 1.3 on esitetty toisiinsa liittyneitä tietokoneita. Kaikki kuvassa esiintyvät laitteet ovat itseasiassa tietokoneita ja niillä kaikilla on sama käskykanta-arkkitehtuurin toteuttavan tietokoneen perusrakenne (esitellään luvussa 3). Kurssilla käsitellään PC-koneita esimerkkeinä niiden tuttuuden vuoksi, mutta PC:t muodostavat vain alle prosentin kaikista maailman ohjelmoitavista tietokoneista. Matkapuhelin Tukiasema Pelikonsoli Reititin Pöytätietokone Palvelin Kuva 1.3: Verkottuneita tietokoneita Tietokoneiden hyödyllisyys ja levinneisyys johtuu nimenomaan niiden oh-

14 LUKU 1. JOHDANTO 7 jelmoitavuudesta. Kuvan 1.2 V-mallin mukaisessa systeemien toteutuksessa yleensä kalleinta on nousu ylemmälle abstraktiotasolle. Systeemille on helppo suunnitella jokin rakenne ja pienet rakennuspalikat on helppo toteuttaa ja jopa testata toimiviksi. Palasten yhdistäminen taas on erittäin vaikeaa, sillä pienimmätkin virheet saattavat kostautua moninkertaisesti. Kokemus osoittaa että virheettömien suunnitelmien teko on käytännössä mahdotonta. Jos laitteen toiminnan voi määrittää ohjelmallisesti, sen muuttaminen jälkikäteen on monin verroin halvempaa kuin fyysisen laitteen, esimerkiksi tuhannen identtisen piirikortin tai vaikkapa taivutetun palkin muuttaminen. Tietokoneohjelmiston varaan suunnitellun systeemin toimintaa voi siis helposti muuttaa jos virheitä ilmenee. Tietokoneohjelmien muunnettavuudesta seuraa helposti kaaos. Jos monta insinööriä päästetään rajoituksetta muokkaamaan ohjelmistoa, sen toimintaa on hyvin vaikea ennustaa, eikä voida taata että se tekee mitä sen pitäisi ja tärkeämmin että se ei tee jotain mitä sen ei pitäisi. Tätä kaaosta estämään ja hallitsemaan tietokoneissa on erityinen ohjelmisto, käyttöjärjestelmä. Käyttöjärjestelmä tarjoaa ohjelmoijalle abstraktiotasoja laitteiston hallintaan ja vastaa laitteiston hallinnoimisesta siten, että ohjelmoija ei pääse rikkomaan mitään kriittistä ja siten, että laitteistosta voidaan saada maksimaalinen hyöty. 1.3 Modernin tietokoneen rakenne Tietokone mustana laatikkona saa syötteitä käyttäjältä erilaisien syöttölaitteiden (hiiri, näppäimistö, mikrofoni) avulla. Vastaavasti tietokone antaa käyttäjälle tulosteita näyttö- ja tulostinlaitteiden (näyttö, tulostin, kaiuttimet) avulla. Käyttäjän suoraan antaman syötteen lisäksi tietokoneelle voi antaa syötettä fyysisellä medialla, kuten Bluray-levyllä tai USB-muistilla. Useimmat tietokoneet osaavat myös kirjoittaa fyysisille medioille. Lisälaitteita ja niiden kanssa kommunikointia käsitellään luvussa 5. Tietokoneen sisäiseen tilaan vaikuttavat myös tietoliikenneyhteydet 4, erityisesti yhteys internetiin 5. Tietokoneilla on käynnistyksestä toiseen säilyvä tila (huom: näin ei ole aina ollut), joka on säilötty pysyväismuistiin, useimmiten kovalevylle. 4 Tällä kurssilla ei käsitellä tietoliikennettä, vaan sitä käsittelvät T-opiskelijat kurssilla T Johdatus tietoliikenteeseen ja TLT-opiskelijat kurssilla S Telecommunication Systems. 5 Juuri nyt tutkimuksessa kiinnostaa fyysisen tietokone-systeemin ja muun internetin välisen rajan hämärtäminen, ns. computation offloading, jonka ilmentymiä on muunmuassa cloud computing ja pienemmässä määrin grid computing. Niitä käsitellään ohjelmistotekniikan DI-vaiheen erikoiskursseilla.

15 LUKU 1. JOHDANTO 8 Yksinkertaistettu kaaviokuva tietokoneesta ja tärkeimmistä lisälaitteista on esitetty kuvassa 1.4. Pysyväistallennus Tietoliikenneyhteydet Tietokone Tulostuslaitteet Syöttölaitteet Kuva 1.4: Tietokone ja siihen liittyviä lisälaitteita Siirrytään tarkastelemaan tietokonetta valkoisena laatikkona. Jokaisessa tietokoneessa on suoritin, joka suorittaa varsinaiset laskutoimitukset. Luvussa 2 käydään läpi binääriaritmetiikkaa ja logiikkafunktioita, joiden avulla suunnitellaan yksinkertainen laskin. Suoritin on huomattavan paljon monimutkaisempi laskin, mutta toimintaperiaate on sama. Kurssilla esiteltävissä tietokoneissa on muistia, jonne suorittimella ajettavat ohjelmat ja niiden data voidaan tallentaa. Tietokoneessa on suorittimen lisäksi muita osia, joita yhdistävät erilaiset väylät 6. Väylä on yleisnimi tiedon siirtotielle, jonka varrella on erilaisia laitteita. Väylien välillä on nopeuseroja, jotka johtuvat väylien varrelle asetetuille laitteille ominaisista nopeuksista. Liikennettä väylällä ohjaa yleensä väyläohjain, joka on tyypillisesti liitetty yhtenä lisälaitteena astetta nopeammalle väylälle. Tietokoneen perusosat, väylä, suoritin ja muisti löytyvät kaikista kurssin määritelmän mukaisista tietokoneista. Tietokoneita muokataan tiettyyn käyttötarkoitukseen liittämällä väylälle muita laitteita. Tärkeimmät PC-tietokoneen väylät sijaitsevat fyysisellä tietokoneen osalla, jota kutsutaan emolevyksi. Väylät on emolevyllä jaettu kahteen piirisarjaan, eteläsiltaan (Southbridge) ja pohjoissiltaan (Northbridge). Niiden nimet tulevat kaaviosta, joissa suoritin on ylimpänä eli pohjoisessa. Kuvassa 1.5 on kuvattu modernin tietokoneen väylähierarkia. Kuvassa esitetyt Front 6 Väyliä voi olla vain yksi, kuten 1-Wire -arkkitehtuurissa, mutta tämä on harvinaista ja yhden väylän ratkaisuja käytetään lähinnä erityisratkaisuissa.

16 LUKU 1. JOHDANTO 9 Side Bus ja muistiväylä vastaavat väylää luvussa 3 käsiteltävän von Neumann -arkkitehtuurissa. Samassa luvussa kuvattava siirräntäyksikkö vastaa karkeasti eteläsiltaa modernissa arkkitehtuurissa: sen varrelle on liitetty erilaisia lisälaiteväyliä, kuten yleiskäyttöinen Universal Serial Bus eli USB-väylä kovalevyjen liittämiseen tarkoitettu Serial ATA eli SATA-väylä Peripheral Component Interconnect eli PCI-väylä vanhojen lisälaitekorttien liittämiseksi Low Pin Count eli LPC-väylä, johon kiinnitetään vanhoja hiiriä, levyasemia ja sarja- ja rinnakkaisporttiliitäntöjä. Prosessori Front-side bus (FSB) Pohjoissilta muistiväylä Internal Bus PCI Express Muisti Eteläsilta Näytönohjain SATA LPC USB PCI Kiintolevyt Vanhat laitteet (sarjaportti, PS/2) USB-lisälaitteet PCI-lisälaitteet Kuva 1.5: Modernin tietokoneen väylähierarkia. Näytönohjaimen toimintaa ei tällä kurssilla käsitellä. Sitä selitetään kurssilla T Tietokonegrafiikan perusteet. 1.4 Käyttöjärjestelmän rakenne Käyttöjärjestelmä-käsitteestä useimmille tulee mieleen ensimmäiseksi Windowsin graafinen käyttöliittymä (Graphical User Interface, GUI ). Graafisten käyttöjärjestelmien ja drag&drop-käyttöliittymien toteutus on kuitenkin verrattain monimutkaista, eikä sitä muutenkaan ole tämän kurssin puitteissa olennaista käsitellä. Käyttäjälle näkyvä osuus ei juurikaan vaikuta varsinaisen, laitteiston toimintaa ohjaavan käyttöjärjestelmän suunnitteluun.

17 LUKU 1. JOHDANTO 10 Tällä kurssilla käyttöjärjestelmää edustaa $ eli Unixin komentokehote, joka on korkein taso jolla käyttöjärjestelmää käsitellään. Luku 7 on pyhitetty komentorivin käyttämiselle. Kaikki sitä edeltävä materiaali käsittelee sitä, mitä komentokehotteen alla tapahtuu. Vaikka kurssin esimerkit ovatkin PC-tietokoneiden käyttöjärjestelmistä, on myös sykemittarien, kännyköiden, reitittimien ja muiden ohjelmoitavien laitteiden käyttöjärjestelmien rakenne hyvin samankaltainen. Käyttöjärjestelmä abstrahoi allaolevaa laitteistoa ohjelmoijalle ja hallinnoi laitteistoa. Kuvassa 1.6 on esitetty aiemmin kuvassa 1.5 esitetty tietokoneen arkkitehtuuri väritettynä siten, että vihreä väri näyttää ne järjestelmän osat, joihin ohjelmoija päsee käsiksi suoraan 7 ja punainen ne osat, joihin päästäkseen ohjelmoijan on käytettävä käyttöjärjestelmän tarjoamia palveluja tai rajapintoja. Prosessori Front-side bus (FSB) Pohjoissilta muistiväylä Internal Bus PCI Express Muisti Eteläsilta Näytönohjain SATA LPC USB PCI Kiintolevyt Vanhat laitteet (sarjaportti, PS/2) USB-lisälaitteet PCI-lisälaitteet Kuva 1.6: Modernin tietokoneen väylähierarkia. Vihreä edustaa osia, joihin ohjelma pääsee käsiksi suoraan. Punainen osia, joihin pääsee vain käyttöjärjestelmän kautta. Käyttöjärjestelmää käsiteltäessä kannattaa pitää mielessä, että käyttöjärjestelmä rakentuu allaolevan fyysisen tietokoneen päälle. Käyttöjärjestelmä on tietokoneen kovalevylle 8 tallennettu ohjelma, joka käynnistyksen yhteydessä siirretään muistiin. Käyttöjärjestelmä ohjaa logiikkaporteista koostuvan suoritusyksikön toimintaa. Käyttöjärjestelmä rakentuu abstraktiotasoille, kuten aliluvussa esitettävälle käskykanta-arkkitehtuurille, joka pii- 7 Itseasiassa ohjelmoija ei edes pääse käsiksi koko muistiin, vaan vain prosessin omaan virtuaalimuistii. Tästä enemmän luvussa 4. 8 Itseasiassa ei aina: käyttöjärjestelmä voidaan hakea käynnistyksen yhteydessä myös verkosta.

18 LUKU 1. JOHDANTO 11 lottaa allaolevan piiritason toteutuksen ohjelmoijalta. Nykyään käskykantaarkkitehtuuri piilotetaan myös ohjelmoijalta korkeamman tason ohjelmointikielten, kuten C:n avulla. Taulukossa 1.1 on esitelty käyttöjärjestelmän ja sen allaolevan piiritason toteutuksen abstraktiotasoja. Ensimmäiset neljä tasoa käsittelevät fyysistä toteutusta. Loput ovat ohjelmallisia rakenteita, jotka on toteutettu raudan päälle. Tasot 5-7 käsittelevät yhden suoritusyksikön järjestelmiä, kun taas tasoilla 8-13 voidaan lisätä suoritusyksiköitä tai vaikkapa hajauttaa toteutus useammalle koneelle verkon yli. Taso Nimi Käsiteltävät objektit Esimerkkioperaatioita 13 Komentokehote Ohjelmointiympäristö Skriptikielen käskyt 12 Käyttäjän prosessisäyttäminen Käyttäjän prosessit prosessin tappaminen, py- ja jatkaminen 11 Hakemistot Hakemistot luonti, poisto, haku, listaus 10 Laitteet Tulostimet, näytöt, näppäimistötus Avaus, sulku, luku, kirjoi- 9 Tiedostojärjestelmä Tiedostot Luonti, poisto, avaus, sulku, luku, kirjoitus 8 Prosessienvälinen kommunikaatio Putket Luonti, poisto, avaus, sulku, luku, kirjoitus 7 Virtuaalimuisti Segmentit, sivut Luku, kirjoitus, haku 6 Paikallinen pysyväismuistpautus Datalohkot Luku, kirjoitus, varaus, va- 5 Primitiiviset prosessimaforit Primitiiviset prosessit, se- Pysäytys, jatkaminen, odotus, signalointi 4 Keskeytykset Keskeytyksenkäsittelijät Kutsu, estä alemman tason keskeytykset, salli alemman tason keskeytykset, yritä uduelleen 3 Proseduurit Proseduurit, kutsupino Aseta pinoon, kutsu, palaa 2 Käskykanta Käskyjoukko, skalaari- ja taulukkodata, tulkki lataa, talleta, lisää, vähennä, goto 1 Sähköpiirit rekisterit, portit, väylät siirrä, aktivoi, tyhjennä Taulukko 1.1: Käyttöjärjestelmän rakenneosaset Brownia [1] ja Stallingsia [6] mukaillen.

19 Luku 2 Bitistä summaimeen Tässä luvussa käydään läpi digitaalisen tiedon esittämisen perusperiaatteet. Vaikka tieto voidaan esittää käyttäjälle kuvina, videona, tekstinä tai musiikkina, se tallennetaan aina tietokonejärjestelmässä binäärimuotoisena. Binäärilukujärjestelmä on pieni laajennus myös luvussa käsiteltävään Boolen algebraan. Boolen algebran totuusarvoja voidaan manipuloida logiikkapiireillä, jotka luovat pohjan suoritusyksiköiden suunnittelulle. Suoritusyksiköitä tullaan käyttämään seuraavassa luvussa esiteltävän yleisen tietokonearkkitehtuurin sydämenä. Melkein kaikki muutkin tietokoneen osat vähintään sisältävät jonkinlaisen logiikkapiirin ja useimmat ovat erikoistuneita piirejä. Luvussa käsitellään osin samoja asioita kuin kurssilla S Digitaalitekniikan perusteet, joten sen käyneille osa luvusta toimii kertauksena. Kuitenkin esimerkiksi merkistöistä puhutaan huomattavasti laajemmin kuin Digitaalitekniikan perusteissa. Kyseisen kurssin www-oppimateriaali [3] soveltuu rinnalla luettavaksi kiinnostuneille. 2.1 Lukujärjestelmät Luku on matemaattinen käsite, joka mittaa suuruutta, järjestystä tai jotakin muuta suuretta. Kokonaisluvut tai luonnollisten lukujen joukko on helppo mieltää luvuiksi, mutta myös imaginääriluvut tai vaikkapa amerikkalaistyyliset kurssiarvosanat A, B, C, D, E, F voidaan tulkita luvuiksi. Tämän kurssin puitteissa käsittelemme kuitenkin vain kokonaislukuja ja tiettyjä luonnollisten lukujen osajoukkoja. Yleisesti käytetty kymmenkantajärjestelmä on levinnyt siksi, että ihmisillä on 10 sormea, joten kymmenjärjestelmällä on helppo laskea. Näitä kymmentä numeroa kuvaavat arabialaiset numeraalit 0-9. Numeroiden esitystapa ei riipu kantajärjestelmästä. Yhtä hyvin voitaisiin käyttää kymmentä kir- 12

20 LUKU 2. BITISTÄ SUMMAIMEEN 13 jainta kreikkalaisista aakkosista kuvaamaan numeroita (ja itseasiassa antiikin kreikkalaiset tekivät näin). Lukujärjestelmän erottaminen lukujen esityksestä on tärkeää, sillä tietokoneet käsittelevät lukuja tavalla, joka ei ole yhtä luonnollinen ihmisille ja siksi lukujen kuvaamiseen on tehty ihmisten hahmottamista helpottavia järjestelmiä. Kymmenkantajärjestelmässä (ja muissakin kantajärjestelmissä) luvut esitetään suhteessa kantaluvun (base) potensseihin: A = a i k i missä k on kantaluku ja a i ovat luvussa olevat numeroarvot kohdalla i oikealta laskien. Mikäli luvun kanta on yli 10, on tapana ottaa käyttöön aakkosia roomalaisten aakkosten alkupäästä siten että A=11, B=12 ja niin edelleen. Kannanvaihto Lukuunottamatta kohta esiteltäviä poikkeuksia, lukujärjestelmän kannan vaihto käsin kannattaa aina tehdä kymmenjärjestelmän kautta koska se on ihmisille helpointa mieltää. Lukua x kannassa y merkitään (x) y, missä y ilmaistaan aina kymmenjärjestelmässä. Kannan vaihto arbitäärisestä kannasta kymmenkantaan tarkoittaa summan A = ia i k i laskemista auki. Kannan vaihto kymmenkannasta arbitääriseen kantaan tapahtuu luvulle A esimerkiksi seuraavasti: 1. etsi suurin kantaluvun potenssi k b, joka on pienempi kuin A 2. laske montako kertaa c k b menee A:han, tämä on uuden luvun merkitsevin numero 3. laske erotus A c k b jos se on nolla, muunnos on loppunut. Mikäli et ole viimeisessä potenssissa, merkitse loppujen kertoimeksi 0. jos erotus ei ole 0, siirry tarkastelemaan seuraavaa potenssia k ( b 1) Esimerkiksi jos muutetaan luku 1337 heksadesimaali- eli 16- kantajärjestelmään = 256 on lähin kantaluvun potenssi ja se menee lukuun viisi kertaa, vastaava luku on 0x = 57

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 6: Tiedon esittäminen tietokoneessa, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Luennon

Lisätiedot

Kappale 20: Kantaluvut

Kappale 20: Kantaluvut Kappale 20: Kantaluvut 20 Johdanto: Kantaluvut... 328 Kantalukujen syöttäminen ja muuntaminen... 329 Matemaattiset toiminnot Hex- ja Bin-luvuilla... 330 Bittien vertaileminen ja manipulointi... 331 Huom!

Lisätiedot

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut. www.ohjelmoimaan.net

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut. www.ohjelmoimaan.net Paavo Räisänen Ohjelmoijan binaarialgebra ja heksaluvut www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta

Lisätiedot

Ohjelmoijan binaarialgebra ja heksaluvut

Ohjelmoijan binaarialgebra ja heksaluvut Paavo Räisänen Ohjelmoijan binaarialgebra ja heksaluvut www.ohjelmoinaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta

Lisätiedot

SISÄLLYS - DIGITAALITEKNIIKKA

SISÄLLYS - DIGITAALITEKNIIKKA SISÄLLYS - DIGITAALITEKNIIKKA Digitaalitekniikan perusteita...2 Bitti (bit)...2 Tavu (bytes)...2 Sana (word)...2 Yksiköt...2 Binääri järjestelmän laskutapa...2 Esimerkki: Digikuvan siirron kestoaika...2

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena Mikrotietokone Moderni tietokone Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena Sen käyttötarkoitus on yleensä työnteko, kissavideoiden katselu internetistä tai pelien pelaaminen. Tietokoneen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

BL40A1711 Johdanto digitaalielektroniikkaan: Johdanto ja lukujärjestelmät

BL40A1711 Johdanto digitaalielektroniikkaan: Johdanto ja lukujärjestelmät BL40A1711 Johdanto digitaalielektroniikkaan: Johdanto ja lukujärjestelmät Laboratory of Control Engineering and Digital Systems Focus of research and education Energy efficient systems Renewable energy

Lisätiedot

Viivakoodin viiteopas

Viivakoodin viiteopas Viivakoodin viiteopas Versio 0 FIN 1 Johdanto 1 Yleiskuvaus 1 1 Tämä opas sisältää tietoja viivakooditulostuksesta, joka toimii suoraan Brotherin tulostimeen lähetettyjen komentojen avulla. Yhteensopivat

Lisätiedot

Harjoitustehtäväkierros 1

Harjoitustehtäväkierros 1 T-06.50 kurssihenkilökunta deadline Tiistai 20.0.2009 2:5 Johdanto Tämä tehtäväkierros käsittelee pääasiassa toisen luennon sisältöä. Harjoituksia saa tehdä yksin tai yhdessä. Yhdessä tekeminen on suositeltavaa,

Lisätiedot

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

Tiedon esitys tietokoneessa. Jyry Suvilehto T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010

Tiedon esitys tietokoneessa. Jyry Suvilehto T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010 Tiedon esitys tietokoneessa Jyry Suvilehto T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010 Luennon sisältö 1. Kurssin loppupuolen rakenne 2. Tiedon binääriluonne AD-muunnos 3.

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone ja ylläpito computer = laskija koostuu osista tulostuslaite näyttö, tulostin syöttölaite hiiri, näppäimistö tallennuslaite levy (keskusyksikössä) Keskusyksikkö suoritin prosessori emolevy muisti levy Suoritin

Lisätiedot

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja. IsoInt Tietokoneiden muisti koostuu yksittäisistä muistisanoista, jotka nykyaikaisissa koneissa ovat 64 bitin pituisia. Muistisanan koko asettaa teknisen rajoituksen sille, kuinka suuria lukuja tietokone

Lisätiedot

7. Laskutoimitukset eri lukujärjestelmissä 1 / 31

7. Laskutoimitukset eri lukujärjestelmissä 1 / 31 7. Laskutoimitukset eri lukujärjestelmissä 1 / 31 Johdanto Lukujen esitykset eri lukujärjestelmissä Muunnokset lukujärjestelmien välillä Laskutoimitukset eri lukujärjestelmissä. 2 / 31 7.1. Muunnokset

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt

Lisätiedot

9233831 painos 3. FI. Nokia ja Nokia Connecting People ovat Nokia Oyj:n rekisteröityjä tavaramerkkejä.

9233831 painos 3. FI. Nokia ja Nokia Connecting People ovat Nokia Oyj:n rekisteröityjä tavaramerkkejä. 9233831 painos 3. FI Nokia ja Nokia Connecting People ovat Nokia Oyj:n rekisteröityjä tavaramerkkejä. Pikanäppäimet Seuraavassa esitellään laitteen joitakin pikanäppäimiä. Yleiset pikanäppäimet Ctrl+A

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

Yhden bitin tiedot. Binaariluvun arvon laskeminen. Koodin bittimäärä ja vaihtoehdot ? 1

Yhden bitin tiedot. Binaariluvun arvon laskeminen. Koodin bittimäärä ja vaihtoehdot ? 1 Luku Digitaalitekniikan matematiikka Täsmätehtävät.9. Fe Digitaalitekniikan matematiikka Täsmätehtävät.9. Fe Opetuskerta Sivu Luku Opetuskerta Sivu Yhden bitin tiedot Luettele esimerkkejä yhden bitin tiedoista.

Lisätiedot

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 4. Timo Savola. 21. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto

Lisätiedot

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? 2013-2014 Lasse Lensu 2 Algoritmit ovat deterministisiä toimintaohjeita

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää

Lisätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo.

Merkitse kertolasku 3 3 3 3 potenssin avulla ja laske sen arvo. 13 Luvun potenssi Kertolasku, jonka kaikki tekijät ovat samoja, voidaan merkitä lyhyemmin potenssin avulla. Potenssimerkinnässä eksponentti ilmaisee, kuinka monta kertaa kantaluku esiintyy tulossa. Potenssin

Lisätiedot

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen rakentamisessa? 2012-2013 Lasse Lensu 2 Transistori yhdessä

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

Aiemmin opittu. Jakson tavoitteet. Ajankäyttö. Tutustu kirjaan!

Aiemmin opittu. Jakson tavoitteet. Ajankäyttö. Tutustu kirjaan! Aiemmin opittu Perusopetuksen opetussuunnitelman mukaan seuraavat lukuihin ja laskutoimituksiin liittyvät sisällöt on käsitelty vuosiluokilla 3 5: kymmenjärjestelmä-käsitteen varmentaminen, tutustuminen

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

OHJELMISTOKEHITYS -suuntautumisvaihtoehto OHJELMISTOKEHITYS -suuntautumisvaihtoehto Suuntautumisvaihtoehdon esittely 1. vuoden opiskelijoille Kari Laitinen www.oamk.fi/~karil/opetus.html Ohjelmistokehitys -opintosuunnan valitsevista henkilöistä

Lisätiedot

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? 2012-2013 Lasse Lensu 2 Ongelma 2: Voidaanko dataa tai informaatiota tallettaa tiiviimpään tilaan koodaamalla se uudelleen? 2012-2013 Lasse

Lisätiedot

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Antti Vähälummukka 2010

Antti Vähälummukka 2010 Antti Vähälummukka 2010 TCP/IP (Transmission Control Protocol / Internet Protocol) on usean Internet-liikennöinnissä käytettävän tietoverkkoprotokollan yhdistelmä. IP-protokolla on alemman tason protokolla,

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

LAS-TIEDOSTON SISÄLTÖ LIITE 2/1

LAS-TIEDOSTON SISÄLTÖ LIITE 2/1 LAS-TIEDOSTON SISÄLTÖ LIITE 2/1 LAS-TIEDOSTON SISÄLTÖ Las-tiedoston version 1.4 mukainen runko koostuu neljästä eri lohkosta, ja jokaiseen lohkoon voidaan tallentaa vain standardissa sovittua tietoa ja

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services Järjestelmäarkkitehtuuri (TK081702) Standardoidutu tapa integroida sovelluksia Internetin kautta avointen protokollien ja rajapintojen avulla. tekniikka mahdollista ITjärjestelmien liittämiseen yrityskumppaneiden

Lisätiedot

Huom! (5 4 ) Luetaan viisi potenssiin neljä tai viisi neljänteen. 7.1 Potenssin määritelmä

Huom! (5 4 ) Luetaan viisi potenssiin neljä tai viisi neljänteen. 7.1 Potenssin määritelmä 61 7.1 Potenssin määritelmä Potenssi on lyhennetty merkintä tulolle, jossa kantaluku kerrotaan itsellään niin monta kertaa kuin eksponentti ilmaisee. - luvun toinen potenssi on nimeltään luvun neliö o

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

2.2 Neliöjuuri ja sitä koskevat laskusäännöt

2.2 Neliöjuuri ja sitä koskevat laskusäännöt . Neliöjuuri ja sitä koskevat laskusäännöt MÄÄRITELMÄ 3: Lukua b sanotaan luvun a neliöjuureksi, merkitään a b, jos b täyttää kaksi ehtoa: 1o b > 0 o b a Esim.1 Määritä a) 64 b) 0 c) 36 a) Luvun 64 neliöjuuri

Lisätiedot

Hyvän salasanan tunnusmerkit Hyökkääjästä salasanan pitää näyttää satunnaiselta merkkijonolta. Hyvän salasanan luominen: Luo mahdollisimman pitkä

Hyvän salasanan tunnusmerkit Hyökkääjästä salasanan pitää näyttää satunnaiselta merkkijonolta. Hyvän salasanan luominen: Luo mahdollisimman pitkä Hyvä Salis Hyvän salasanan tunnusmerkit Hyökkääjästä salasanan pitää näyttää satunnaiselta merkkijonolta. Hyvän salasanan luominen: Luo mahdollisimman pitkä salasana. Jokainen salasanaan lisäämäsi kirjain

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Desimaaliluvut, mitä ne oikeastaan ovat?

Desimaaliluvut, mitä ne oikeastaan ovat? Desimaaliluvut, mitä ne oikeastaan ovat? Matti Lehtinen Desimaaliluvut ovat niin jokapäiväisiä ja niillä laskemiseen niin totuttu, ettei yleensä tule miettineeksi, mitä ne oikeastaan ovat. Joskus kauan

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

010627000 Tietoturvan Perusteet Yksittäisen tietokoneen turva

010627000 Tietoturvan Perusteet Yksittäisen tietokoneen turva 010627000 Tietoturvan Perusteet Yksittäisen tietokoneen turva Pekka Jäppinen 31. lokakuuta 2007 Pekka Jäppinen, Lappeenranta University of Technology: 31. lokakuuta 2007 Tietokone Koostuu raudasta ja ohjelmista

Lisätiedot

Paul Tötterman paul.totterman@iki.fi. 26. kesäkuuta 2009

Paul Tötterman paul.totterman@iki.fi. 26. kesäkuuta 2009 Paul Tötterman paul.totterman@iki.fi 26. kesäkuuta 2009 Historia /POSIX Linux Käyttöjärjestelmä Sisältö Ohjelmiston ja raudan rajapinta Resurssien hallinta ja jakelu Palvelut ohjelmille verkko tiedostojärjestelmä

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master) Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä Prosessoriväylä Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master) Suuremmissa erillisiä väyliä Muistiväylä Oheislaiteväylät

Lisätiedot

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 4 Tietokoneen sisäinen toiminta Edellisisää osioiss aon tarkasteltu tietokoneen kehittymistä ja sen

Lisätiedot

Perusohje vi-editorin käyttöön

Perusohje vi-editorin käyttöön Perusohje vi-editorin käyttöön Aapo Rista 22.9.2000 Sisältö 1 Johdanto 1 2 vi:n komento- ja kirjoitustilat 2 3 vi:n käynnistäminen ja siitä poistuminen 2 4 Liikkuminen tekstissä 3 5 Merkkien lisääminen

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Käyttöjärjestelmät Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Kurssin sisältö Johdanto, historiaa

Lisätiedot

KAAVAT. Sisällysluettelo

KAAVAT. Sisällysluettelo Excel 2013 Kaavat Sisällysluettelo KAAVAT KAAVAT... 1 Kaavan tekeminen... 2 Kaavan tekeminen osoittamalla... 2 Kaavan kopioiminen... 3 Kaavan kirjoittaminen... 3 Summa-funktion lisääminen... 4 Suorat eli

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu Tietokoneen muisti nyt ja tulevaisuudessa Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu Yleisesti Muisti on yksi keskeisimmistä tietokoneen komponenteista Random Access Memory on yleistynyt

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain

+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain

Lisätiedot

Excel syventävät harjoitukset 31.8.2015

Excel syventävät harjoitukset 31.8.2015 Yleistä Excel on taulukkolaskentaohjelma. Tämä tarkoittaa sitä että sillä voi laskea laajoja, paljon laskentatehoa vaativia asioita, esimerkiksi fysiikan laboratoriotöiden koetuloksia. Excel-ohjelmalla

Lisätiedot

5.2 Ensimmäisen asteen yhtälö

5.2 Ensimmäisen asteen yhtälö 5. Ensimmäisen asteen ytälö 5. Ensimmäisen asteen yhtälö Aloitetaan antamalla nimi yhtälön osille. Nyt annettavat nimet eivät riipu yhtälön tyypistä tai asteesta. Tarkastellaan seuraavaa yhtälöä. Emme

Lisätiedot

Digitaalitekniikan matematiikka Harjoitustehtäviä

Digitaalitekniikan matematiikka Harjoitustehtäviä arjoitustehtäviä Sivu 6 6.3.2 e arjoitustehtäviä uku 3 ytkentäfunktiot ja perusporttipiirit 3. äytäväkytkin on järjestelmä jossa käytävän kummassakin päässä on kytkin ja käytävän keskellä lamppu. amppu

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

LUKUJÄRJESTELMÄT. Kymmenjärjestelmä eli desimaalijärjestelmä. Binäärilukujärjestelmä

LUKUJÄRJESTELMÄT. Kymmenjärjestelmä eli desimaalijärjestelmä. Binäärilukujärjestelmä Ammatti-Instituutti Lukujärjestelmistä Sivu 1 (5) LUKUJÄRJESTELMÄT Kymmenjärjestelmä eli desimaalijärjestelmä Kymmenjärjestemä on meille se tutuin järjestelmä jonka tunnemme x Siinä on (10) kymmenen numeroa,

Lisätiedot

1 Raja-arvo. 1.1 Raja-arvon määritelmä. Raja-arvo 1

1 Raja-arvo. 1.1 Raja-arvon määritelmä. Raja-arvo 1 Raja-arvo Raja-arvo Raja-arvo kuvaa funktion f arvon f() kättätmistä, kun vaihtelee. Joillakin funktioilla f() muuttuu vain vähän, kun muuttuu vähän. Toisilla funktioilla taas f() hppää tai vaihtelee arvaamattomasti,

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 kevät 2014 Talousmatematiikan perusteet Matti Laaksonen, (Matemaattiset tieteet / Vaasan yliopisto) Vastaanotto to 11-12 huone D110/Tervahovi Sähköposti: matti.laaksonen@uva.fi Opettajan kotisivu: http://lipas.uwasa.fi/

Lisätiedot

Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun

Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun 13. elokuuta 2015 Miksi matikkaa Erityisen tärkeää teknillisillä ja luonnontieteellisillä aloilla Ohjelmointi ja tietojenkäsittelytiede Lääketieteellinen

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 orms.1030 Vaasan avoin yliopisto / kevät 2013 1 Talousmatematiikan perusteet Matti Laaksonen Matemaattiset tieteet Vaasan yliopisto Vastaanotto to 11-12 huone D110/Tervahovi Sähköposti: matti.laaksonen@uva.fi

Lisätiedot

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 1 Tietokone abstraktina yksikkönä Tietokoneen asbtratiotasoa sen muotoisena kuin me sen tällä hetkellä

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

PC-LAITTEEN TESTAAMINEN

PC-LAITTEEN TESTAAMINEN PC-LAITTEEN TESTAAMINEN PC-Check-ohjelma Kun laite on koottu, on perusteltua testata sen toiminta ennen käyttöönottoa. Tätä varten on luotu erilaisia ohjelmia, joilla voi laitteen eri osat testata. Yksi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

LUMA Suomi kehittämisohjelma 8.10.2015 14:53 Joustava yhtälönratkaisu Matemaattinen Ohjelmointi ja Yhtälönratkaisu

LUMA Suomi kehittämisohjelma 8.10.2015 14:53 Joustava yhtälönratkaisu Matemaattinen Ohjelmointi ja Yhtälönratkaisu (MOJYR) Sisällysluettelo (MOJYR)... 1 1. Taustaa... 1 2. MOJYR-ohjelma... 2 2.1 Ohjelman asentaminen... 2 2.2 Käyttöliittymä... 2 3. Puumalli... 3 4. MOJYR-ohjelman ominaisuudet... 5 4.1 Yhtälön muodostaminen...

Lisätiedot

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Digitaalitekniikan matematiikka Luku 13 Sivu 2 (10) Johdanto Tässä luvussa esitetään virheen havaitsevien ja korjaavien koodaustapojen perusteet ja käyttösovelluksia

Lisätiedot

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle TEEMA 1 Tietokoneen peruskäyttö Digikamera Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle Tämä tietopaketti hahmottaa lukijalle, millä tavalla kuvat voidaan siirtää kamerakännykästä tai

Lisätiedot

Tiedostojen siirto ja FTP - 1

Tiedostojen siirto ja FTP - 1 Tiedostojen siirto ja FTP Tiedonsiirto Sibelius-Akatemian hakemistosi ja jonkun muun koneen välillä (esim. kotikoneesi) Taustaa FTP on lyhenne sanoista File Transfer Protocol. Se on yhteystapa jolla siirretään

Lisätiedot

Office 2013 - ohjelmiston asennusohje

Office 2013 - ohjelmiston asennusohje Office 2013 - ohjelmiston asennusohje Tämän ohjeen kuvakaappaukset on otettu asentaessa ohjelmistoa Windows 7 käyttöjärjestelmää käyttävään koneeseen. Näkymät voivat hieman poiketa, jos sinulla on Windows

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Kombinatorisen logiikan laitteet

Kombinatorisen logiikan laitteet Kombinatorisen logiikan laitteet Kombinatorinen logiikka tarkoittaa logiikkaa, jossa signaali kulkee suoraan sisääntuloista ulostuloon Sekventiaalisessa logiikassa myös aiemmat syötteet vaikuttavat ulostuloon

Lisätiedot

Seguinin lauta A: 11-19

Seguinin lauta A: 11-19 Lukujen syventäminen Kun lapsi ryhtyy montessorileikkikoulussa syventämään tietouttaan lukualueesta 1-1000, uutena montessorimateriaalina tulevat värihelmet. Värihelmet johdattavat lasta mm. laskutoimituksiin,

Lisätiedot

k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0

k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0 1. Polynomit Tässä luvussa tarkastelemme polynomien muodostamia renkaita polynomien ollisuutta käsitteleviä perustuloksia. Teemme luvun alkuun kaksi sopimusta: Tässä luvussa X on muodollinen symboli, jota

Lisätiedot

LAUSEKKEET JA NIIDEN MUUNTAMINEN

LAUSEKKEET JA NIIDEN MUUNTAMINEN LAUSEKKEET JA NIIDEN MUUNTAMINEN 1 LUKULAUSEKKEITA Ratkaise seuraava tehtävä: Retkeilijät ajoivat kahden tunnin ajan polkupyörällä maantietä pitkin 16 km/h nopeudella, ja sitten vielä kävelivät metsäpolkua

Lisätiedot

Talousmatematiikan perusteet ORMS.1030

Talousmatematiikan perusteet ORMS.1030 orms.1030 Vaasan yliopisto / kevät 2015 Talousmatematiikan perusteet Matti Laaksonen Matemaattiset tieteet, Vaasan yliopisto Vastaanotto to 11-12 huone D110/Tervahovi Sähköposti: matti.laaksonen@uva.fi

Lisätiedot