Tietokone ja käyttöjärjestelmä -luentomoniste v Jyry Suvilehto
|
|
- Olivia Järvenpää
- 8 vuotta sitten
- Katselukertoja:
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 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ätiedot811120P 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ätiedotKappale 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ätiedotLuku- 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ätiedotANSI/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ätiedotPaavo 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ätiedotLukujä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ätiedotLiukulukulaskenta. 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ätiedotOhjelmoijan 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ätiedotTiedon 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ätiedotAjattelemme 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ätiedotTietotekniikan 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ätiedotSISÄ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ätiedotPerusteet. 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ätiedotVIII. 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ätiedotC = 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ätiedotLuento 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ätiedotLuento 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ätiedotOhjelmoinnin 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ätiedot5. 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ätiedotNumeeriset 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ätiedotDigitaalitekniikan 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ätiedotOhjelmointitaito (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ätiedotLuento 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ätiedotLuento 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ätiedotOhjelmoinnin 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ätiedotPerusteet. 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ätiedotViivakoodin 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ätiedotJava-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ätiedotHarjoitustehtä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ätiedotLuento 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ätiedotLuento 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ätiedotTiedon 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ätiedotXML 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ätiedotOhjelmointi 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ätiedot815338A 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ätiedotBL40A1711 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ätiedotConcurrency - 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ätiedotTietokone. 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ätiedotOhjelmoinnin 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ätiedotMatematiikan 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ätiedotLuento 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ätiedotPalautteita. 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ätiedotDiskreetin 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ätiedotELM 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ätiedotTiedon 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ätiedotLuento 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ätiedotOhjelmoinnin 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ätiedot7. 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ätiedotLuento 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ätiedotLuento 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ätiedotMatematiikan 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ätiedotSe 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ätiedotOhjelmoinnin 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ätiedotn! 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ätiedot9233831 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ätiedot2 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ätiedotPython-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ätiedot2. 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ätiedotOhjelmoinnin 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ätiedotOhjelmassa 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ätiedotOhjausjä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ätiedotOngelma(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ätiedot2.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ätiedotKirjoita 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ätiedotJoukot. 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ätiedot7. 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ätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedotOngelma(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ätiedotAlgoritmit 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ätiedot13. 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ätiedotLuento 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ätiedotAlkuarvot 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ätiedotYhden 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ätiedotOngelma(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ätiedotJavan 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ätiedotpainos 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ätiedot4. 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ätiedotOngelma(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ätiedot5. 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ätiedotMerkitse 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ätiedotTIES530 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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotLAS-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ätiedot4. 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ätiedot4 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ätiedot3. 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ätiedotAlgoritmit 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ätiedotLuento 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ätiedotC-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ätiedotOhjelmoinnin 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ätiedotMatematiikan 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ätiedot8 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ätiedotMS-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ätiedotITKP102 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ätiedotLuento 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ätiedotRekursiolause. 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ätiedotLuento 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ätiedotHyvä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