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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

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

Luku- ja merkkikoodit. Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15)

Luku- ja merkkikoodit. Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15) Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15) A = a = i i w i Digitaalitekniikan matematiikka Luku 12 Sivu 2 (15) Johdanto Tässä luvussa esitetään kymmenjärjestelmän lukujen eli BCD-lukujen esitystapoja

Lisätiedot

ANSI/IEEE Std

ANSI/IEEE Std Digitaalitekniikan matematiikka Luku 9 Sivu 1 (26) Lukujärjestelmät ja lukujen esittäminen ANSI/IEEE Std 754-2008 0 1 0 1 1 0 0 0 B = Σ B i 2 i Digitaalitekniikan matematiikka Luku 9 Sivu 2 (26) Johdanto

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

Lukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe

Lukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen.9.2 Fe Lukujärjestelmät Kymmen- eli desimaalijärjestelmä: kantaluku perinteisesti käytetty ja tuttu numerot,,

Lisätiedot

Liukulukulaskenta. Pekka Hotokka

Liukulukulaskenta. Pekka Hotokka Liukulukulaskenta Pekka Hotokka pejuhoto@cc.jyu.fi 10.11.2004 Tiivistelmä Liukulukuja tarvitaan, kun joudutaan esittämään reaalilukuja tietokoneella. Niiden esittämistavasta johtuen syntyy laskennassa

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

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon tyypit Kommunikointi

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

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

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

C = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out

C = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out Digitaalitekniikan matematiikka Luku ivu (2).9.2 Fe C = Aseta Aseta i i = n i > i i i Ei i < i i i Ei i i = Ei i i = i i -- On On On C in > < = CI CO C out -- = + (-) (-) = + = C + Digitaalitekniikan matematiikka

Lisätiedot

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit (3) Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston

Lisätiedot

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon esitys laitteistossa (2) Tietoa siirretään muistiväylää pitkin sanoina

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

5. Laskutoimitukset eri lukujärjestelmissä

5. Laskutoimitukset eri lukujärjestelmissä 5. Laskutoimitukset eri lukujärjestelmissä Lukujen esitykset eri lukujärjestelmissä Muunnokset lukujärjestelmien välillä Laskutoimitukset eri lukujärjestelmissä. 5.1. Muunnokset lukujärjestelmien välillä

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot

Lisätiedot

Digitaalitekniikan matematiikka Luku 10 Sivu 1 (14) Lukujärjestelmämuunnokset. 2 s s

Digitaalitekniikan matematiikka Luku 10 Sivu 1 (14) Lukujärjestelmämuunnokset. 2 s s Digitaalitekniikan matematiikka Luku 10 Sivu 1 (14) k 10 2 10 2 s 10 10 8 10 16 10 2 10 2 s 2 8 8 2 2 16 16 2 Digitaalitekniikan matematiikka Luku 10 Sivu 2 (14) Johdanto Tässä luvussa perustellaan, miksi

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

Luento 6 Tiedon esitysmuodot

Luento 6 Tiedon esitysmuodot Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit (3) Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston

Lisätiedot

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3)

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3) Tietokoneen toiminta 3.4.24 Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon tyypit (3) Kommunikointi ihmisen kanssa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

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

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

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

Luento 6 Tiedon esitysmuodot. Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?)

Luento 6 Tiedon esitysmuodot. Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) 1 Tiedon tyypit (3) Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston

Lisätiedot

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3)

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (3) Tietokoneen toiminta, Kesä 22 4.8.22 Luento 6 Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut Liukuluvut Merkit, merkkijonot Totuusarvot Kuvat, äänet, hajut(?) Tiedon tyypit (3) Kommunikointi ihmisen

Lisätiedot

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Monitavuinen tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon

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

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

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

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

Palautteita. Tutoriaalit olivat vaikeat! Totta, tentti on onneksi helpompi

Palautteita. Tutoriaalit olivat vaikeat! Totta, tentti on onneksi helpompi Palautteita Tutoriaalit olivat vaikeat! Totta, tentti on onneksi helpompi 504 Mitä range() tekee? range on funktio, joka palauttaa listan esim. a = range(5,10) Palauttaa listan [5,6,7,8,9] Siis nämä kolme

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

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

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

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

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

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Matematiikan tukikurssi, kurssikerta 3

Matematiikan tukikurssi, kurssikerta 3 Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus

Lisätiedot

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

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

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

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

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

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

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

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

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

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Joukot. Georg Cantor ( )

Joukot. Georg Cantor ( ) Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

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

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

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

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

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

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

painos 1. FI. Nokia ja Nokia Connecting People ovat Nokia Oyj:n rekisteröityjä tavaramerkkejä. 9242908 painos 1. FI Nokia ja Nokia Connecting People ovat Nokia Oyj:n rekisteröityjä tavaramerkkejä. Pikanäppäimet Pikanäppäimet Seuraavassa esitellään laitteen joitakin pikanäppäimiä. Yleiset pikanäppäimet

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

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? 2013-2014 Lasse Lensu 2 Transistori yhdessä

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

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

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

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

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

4 Yleinen potenssifunktio ja polynomifunktio

4 Yleinen potenssifunktio ja polynomifunktio 4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako

Lisätiedot

3. Kirjoita seuraavat joukot luettelemalla niiden alkiot, jos mahdollista. Onko jokin joukoista tyhjä joukko?

3. Kirjoita seuraavat joukot luettelemalla niiden alkiot, jos mahdollista. Onko jokin joukoista tyhjä joukko? HY / Avoin yliopisto Johdatus yliopistomatematiikkaan, kesä 2015 Harjoitus 1 Ratkaisuehdotuksia Tehtäväsarja I Seuraavat tehtävät liittyvät luentokalvoihin 1 14. Erityisesti esimerkistä 4 ja esimerkin

Lisätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

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

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 3 Supremum ja infimum Tarkastellaan aluksi avointa väliä, ) = { : < < }. Tämä on joukko, johon kuuluvat kaikki reaaliluvut miinus yhdestä yhteen. Kuitenkaan päätepisteet

Lisätiedot

8 Joukoista. 8.1 Määritelmiä

8 Joukoista. 8.1 Määritelmiä 1 8 Joukoista Joukko on alkoidensa kokoelma. Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukkooppi aksiomaattisesti. Näin ei tässä tehdä

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

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

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Tiedon esitys (7) Suorittimen ymmärtämä tieto (9) Tietokoneen toiminta, K

Luento 6 Tiedon esitysmuodot. Tiedon esitys laitteistossa (4) Tiedon esitys (7) Suorittimen ymmärtämä tieto (9) Tietokoneen toiminta, K Luento 6 Tiedon esitysmuodot Lukujärjestelmät Luvut, merkit, merkkijonot, totuusarvot, oliot Kuvat, äänet, hajut(?) Ohjelmat 1 Tiedon tyypit Kommunikointi ihmisen kanssa kuva, ääni, merkit, Laitteiston

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