Tietokoneen toiminta. Juhani Merilinna

Koko: px
Aloita esitys sivulta:

Download "Tietokoneen toiminta. Juhani Merilinna"

Transkriptio

1 Tietokoneen toiminta Juhani Merilinna

2 Tietokoneiden historia...4 Laskukoneiden kehitys... 4 Ensimmäiset tietokoneet sukupolvi sukupolvi sukupolvi... 5 Työasemien historiaa...5 Käyttöjärjestelmien historia...6 MS-DOS...6 Windows...7 Käyttöjärjestelmät...8 Käyttöjärjestelmän perustehtävät...8 Ohjelmien hallinta... 8 Laitteiston hallinta... 9 Palvelut sovelluksille...9 Muita käyttöjärjestelmän tehtäviä... 9 Käyttöliittymä...9 Apuohjelmat... 9 Käyttöjärjestelmän ominaisuuksia...10 Yksiajo/moniajo Monenkäyttäjän Reaaliaikainen Graafinen/merkkipohjainen...10 Verkkokäyttöjärjestelmä...11 Peruskäsitteitä...12 Yksiköt Etuliitteet Merkkikoodistot HTML-merkit Nopeuden mittalukuja Pääte Prosessit ja säikeet...15 Keskusyksikkö...16 Väylät...17 Keskusmuisti Välimuisti (cache) Prosessorin toiminta Rekisterit...21 Konekieli Käskyn suoritus Liukuhihna...23 Kellotaajuus...23 Prosessorin tilat Johdatus konekieleen...26 Muistin osoitus Osoitusmuodot...27 Rekisteriosoitus Välitön osoitus...27 Suora osoitus Epäsuora osoitus

3 Datan koon kertominen Yleisimmät käskyt Laskenta...29 Loogiset käskyt...30 Pino...31 Haarautuminen Ehdoton hyppy JMP Ehdolliset hypyt...32 Aliohjelmat...34 Silmukka...35 Assembler ja käyttöjärjestelmän palvelut...35 Esimerkkiohjelmia...36 Liite ASCII merkistö...41 Liite Pienen koeohjelman tekeminen...42 Liite Muistimodulit PC PC VC RAMBUS DDR-RAM Liite 4 Kuvan esittäminen...47 Bittikarttakuvat...47 GIF (Graphics Interchange Format)...47 JPEG...47 TIFF...48 Vektorikuvat...48 Liite 5 Intel i386 rekisterit i386 käskykanta

4 Tietokoneiden historia Tietokoneet ovat kehittyneet huimaavalla vauhdilla. Varsinaisten tietokoneiden historia on vielä alle 60 vuotta. Sinä aikana tietokoneet ovat kehittyneet hitaista ja suurikokoisista koneista nykyisiin kannettaviin koneisiin, joiden nopeus on tuhansia, tai jopa miljoonia kertoja ensimmäisten koneiden nopeus. Historia on hyvä tuntea, jotta pystyy arvioimaan tulevaa kehitystä. Kehitysvauhti ei ole vielä osoittanut hidastumismerkkejä. Laskukoneiden kehitys Vaikka tietokone on paljon muutakin kuin laskukone, se on kuitenkin laskukoneiden kehityksen seuraus. Tietokoneet käsittelevät yhäkin kaikkea tietoa numeroina. Ensimmäinen laskentaan käytetty laite oli Abakus, jonka historia on ainakin 4000 vuotta. Tunnetuin abakus tyyppinen laite on helmitaulu. Helmitaulu on säilynyt käytössä aina näihin päiviin asti. Se on vieläkin toimiva laite yhteen- ja vähennyslaskun suorittamiseen. Helmitaulu ei ole hyvä kerto- ja jakolaskussa, puhumattakaan neliöjuurista ja muista vaativammista laskutoiminnoista. Tähän tarkoitukseen Napier kehitti 1617 laskutikun. Laskutikku oli yleisesti käytössä aina 1970-luvun puoleen väliin asti. Babbage 1820-luvulla ohjelmoitava laskulaite Reikäkorttikone 1890 USA:n väestönlasketaan. IBM Mekaanisia tietokoneita (releet, reikänauha) 1940-luvulla Taskulaskin 1970-luvulla Ensimmäiset tietokoneet Ensimmäinen elektroninen tietokone 1946 ENIAC elektroniputkea. Sähkönkulutus 150kW. Vikaväli luokkaa 10min. Suomen ensimmäinen tietokone ESKO Elektroniputkia ja reikänauha. 2. sukupolvi 1948 keksittiin transistori. Tietokoneiden nopeus jo luokkaa laskua sekunnissa. Muisti magneettirengasmuistia 3. sukupolvi Texas Instruments kehitti mikropiirin. IBM S/360 (1964) koneita myytiin n

5 1 MIPS raja rikki. Moniajokäyttöjärjestelmä Tietokoneet suuria keskuskoneita o kommunikointi koneen kanssa reikäkortein tai reikänauhoin o myöhemmin kehitettiin kirjoitinpäätteitä ja näyttöpäätteitä 4. sukupolvi Intel kehitti ensimmäisen mikroprosessorin 1972 (Intel 4004) Aluksi 4-bittinen, mutta hyvin pian tuli 8-bittisiä (Intel 8008, 8080, Motorola MC6800) Ensimmäiset kotikoneet Työasemien historiaa 1977 Apple II hyvin suosittu yrityksissä VisiCalc ensimmäinen taulukkolaskentaohjelma 1981 IBM PC. 16KB muistia, pian myös 64KB 8088 prosessori (16/8 bittinen) ei levyasemaa, tallennus nauhurille, myöhemmin lisättiin levykeasema ISA 8 väylä PC XT Kiintolevy Max. 640KB muistia Ensimmäiset kloonikoneet (Compaq) 1983 Apple Lisa (Mac XL) Graafinen käyttöliittymä Hiiri Lisa oli kallis ja sisälsi ominaisuuksia, joita käyttäjät vieroksuivat. Siksi Lisa ei ollut menestys. Apple teki Lisasta halvemman kansanpainoksen MacIntosh, josta tuli menestys PC AT prosessori max. 16MB muistia, tosin MSDOS ei osannut käyttää kuin 640KB ISA 16 väylä Vielä 1990-luvulla PC:t olivat oikeastaan paranneltuja PC AT -koneita 1988 IBM PS/2 uusi väylä, mikrokanava 5

6 IBM menettämässä johtavan asemansa OS/2 käyttöjärjestelmä Tähän asti kehitystä ohjasi IBM. Osittain PS/2:n vähäisen suosion takia IBM menetti johtoasemansa. Tähän asti koneita oli kutsuttu IBM:n mallinimillä. Kloonivalmistajat tekivät XT ja AT koneita tarkoittaen, että koneet olivat yhteensopivia IBM:n vastaavien mallien kanssa. Tästä eteenpäin koneiden tyyppi perustuu prosessorin tyyppiin. Alettiin puhua esimerkiksi 386- tai Pentium-koneista. Intel prosessori 32-bittinen suojattu tila nykyiset prosessorit periaatteessa paranneltuja 386- prosessoreita Lisätietoja: Käyttöjärjestelmien historia Ensimmäiset käyttöjärjestelmät 1950-luvulla. Lähinnä kokoelma peruspalveluja sovelluksille. Eräajo 1960-luvulla Moniajo Vuorovaikutteisuus 1960-luvun lopussa pääteajattelu sitä ennen vain reikäkortteja ym 1970 UNIX 1980-luvulla graafiset käyttöliittymät 1990-luvulla verkkokäyttöjärjestelmät MS-DOS Alun perin IBM PC:n käyttöjärjestelmän piti olla Digital Research:n CP/M. Digital Research ei jostakin syystä toimittanut käyttöjärjestelmää, jolloin IBM tilasi käyttöjärjestelmän pikkuyritykseltä nimeltä Microsoft. Microsoft osti oikeudet Q-DOS:iin (Quick and dirty dos) ja teki ensimmäisen version 1.0. (1981) IBM korjasi MS-DOS:n virheitä ja toimitti PC:n mukana PC-DOS nimisenä. MS-DOS on yksiajokäyttöjärjestelmä. Poikkeuksena on MS-DOS 4.01, joka oli tarkoitettu automaatiosovelluksiin. MS-DOS 2.0 (1983) hakemistot MS-DOS 3.0 (1984) tuki isoille kiintolevyille (32MG) ja tiheille levykkeille. MS-DOS 3.1 (1985) verkkotuki ensimmäisen kerran MS-DOS 3.2 (1985) tuki 3½ levykkeille (vain 720KB) MS-DOS 3.3 (1987) 1.44MB levykkeet ja kiintolevyjen osiointi MS-DOS 4.0 (1988) tuki kiintolevyille 2GB asti MS-DOS 5.0 (1991) tuki yli 640KB muistialueelle (UMB, HMA) MS-DOS 6.0 (1993) tuki levyn pakkaamiselle 6

7 MS-DOS 6.2 levyn pakkaus (DoubleSpace) poistettiin lisenssiriitojen takia MS-DOS 6.22 uusi versio levyn pakkauksesta (DriveSpace). Viimeinen varsinainen MS-DOS-versio. Windows 95 mukana toimitetaan MS-DOS 7. Sitä ei kuitenkaan myydä erillisenä. Windows 1985 Windows 1.0 Hyvin vähän käytetty 1987 Windows 2.0 Käytettiin jonkin verran lähinnä Excel:n takia 1990 Windows 3.0 Ensimmäinen suosittu Windows. Nosti Microsoftin maailman suurimmaksi ohjelmistotaloksi. Tuki suojatulle tilalle ja yli 640KB muistialueen. Moniajo 1992 Windows 3.1. Vähän paranneltu 3.0. Myöhemmin tuli versio 3.11, johon oli lisätty verkkotuki. Versioon 3.11 asti kaikki Windows:t käyttävät MSDOS:a apuna. Versio 3.11 tosin käytti vain MS-DOS:n levyasemien käsittelyä Windows NT bittinen Lineaarinen muistiavaruus ensimmäinen yleisesti käyttöön tullut 32-bittinen käyttöjärjestelmä PC:ssä Windows NT 3.5 ja Windows Windows Windows Windows XP 2003 Windows 2003 (XP server) 7

8 Käyttöjärjestelmät Käyttöjärjestelmä on jonkin verran epämääräinen käsite. Sen merkitys vaihtelee kohderyhmän mukaan: Käyttäjäopetuksessa käsitellään yleensä käyttöliittymää ja apuohjelmia Ohjelmoija on kiinnostunut pääosin käyttöjärjestelmän palveluista ja ohjemointirajapinnasta. Ylläpitäjä on kiinnostunut rakenteesta, käyttäjien hallinasta, tietoturvasta ym. Käyttöjärjestelmät ovat kehittyneet tietokoneen historian ajan sisältämään aina enemmän toimintoja. Alun perin käyttöjärjestelmät olivat lähinnä aliohjelmakirjastoja jotka sisälsivät sovellusohjelmien käyttämiä toimintoja. Kun moniajo kehitettiin, käyttöjärjestelmien merkitys kasvoi huomattavasti. Käyttöjärjestelmän perustehtävät Ohjelmien hallinta Käyttöjärjestelmä on ensimmäinen ohjelma, joka käynnistyy, kun tietokone käynnistetään. Käyttöjärjestelmä on myös käynnissä koko toiminnan ajan. Käyttöjärjestelmä huolehtii muiden ohjelmien käynnistyksestä ja lopettamisesta. Jos näin ei olisi, kaikki tarvittavat ohjelmat pitäisi käynnistää samalla, kun tietokone käynnistetään. Käyttöjärjestelmä toteuttaa moniajon. Koska tietokoneessa on yleensä vain yksi prosessori, ei todellisuudessa voida suorittaa kuin yhtä ohjelmaa kerrallaan. Käyttöjärjestelmä suorittaa jokaista ohjelmaa vuorotellen lyhyen ajan (luokkaa 10ms). Kun aika on kulunut, käyttöjärjestelmä keskeyttää ohjelman ja antaa vuoron seuraavalle (keskeyttävä moniajo). Näin käyttäjälle näyttää kuin ohjelmat toimisivat yhtä aikaa. Windows 3.x versiossa moniajo oli tosin toteutettu hieman toisin. Siinä käyttöjärjestelmä antoi ohjelmalle toimintavuoron, mutta ohjelma itse luovutti vuoron pois. Jos ohjelma ei luovuttanut vuoroa, muut ohjelmat eivät voineet toimia. Tällöin yksi ohjelma saattoi jumittaa koko koneen. Käyttöjärjestelmän tehtävänä on myös suojella ohjelmia. Koska kaikki ohjelmat käyttävät samoja laiteresursseja, olisi mahdollista, että ohjelmat häiritsisivät toistensa toimintaa. Käyttöjärjestelmä mm. suojaa ohjelman käyttämän muistialueen niin, että muut ohjelmat eivät pysty sitä käyttämään. Yleensä käyttöjärjestelmässä on myös jonkinlainen virhetilanteiden hallinta. Käyttöjärjestelmä voi havaita ohjelman tekemän virheen ja lopettaa ohjelman toiminnan. Käyttöjärjestelmä myös yleensä kirjaa havaitsemansa virheet johonkin lokitiedostoon. 8

9 Laitteiston hallinta Moniajojärjestelmässä on tärkeää, että mikään sovellusohjelma ei käytä suoraan tai ainakaan ilman käyttöjärjestelmän lupaa mitään laiteresursseja. Jos esimerkiksi sovellusohjelmat suoraan voisivat käyttää kirjoitinliitäntä, tästä seuraisi kaaos. Kun kaksi ohjelma lähettäisi yhtä aikaa tulostettavaa dataa kirjoittimelle, paperille tulostuisi melkoista sotkua. Käyttöjärjestelmän on siis huolehdittava laitteiston käytöstä ja tarvittaessa estettävä sovellusohjelmia käyttämästä laitteistoa suoraan. Toisaalta käyttöjärjestelmän on tarjottava sovellusohjelmille tarvittavat palvelut laitteiston käyttämiseksi. Tämä edellyttää erilaisia laiteajureita. Olennainen hallittava laiteresurssi on muisti. Jokainen ohjelma tarvitsee muistia toimiakseen. Käyttöjärjestelmän on siis annettava ohjelmien käyttöön niiden tarvitsema määrä keskusmuistia. Toisaalta käyttöjärjestelmän on estettävä ohjelmia käyttämästä muuta kuin niille varattua muistialuetta. Palvelut sovelluksille Käyttöjärjestelmän alkuperäinen tehtävä on tarjota sovellusohjelmille valmiita rutiineja, jotta kaikkia perustoimintoja ei tarvitsisi toteuttaa jokaisessa ohjelmassa uudelleen. Nykyisissä käyttöjärjestelmissä tämä tarkoittaa tarkoin määriteltyä ohjelmointirajapintaa. Huomaa, että MS-DOS käyttöjärjestelmä oli sovellusten kannalta lähinnä ohjelmointirajapinta. Se ei sisältänyt juurikaan ohjelmien tai laitteiston hallintaa. Muita käyttöjärjestelmän tehtäviä Käyttöliittymä Käyttöjärjestelmän mukana tulee yleensä myös käyttöliittymä. Käyttöliittymä määrittelee sen, miten käyttäjä tietokonetta käyttää ja miltä tietokoneen näyttö näyttää. Yleensä peruskoulutuksessa opetetaan oikeastaan käyttöliittymää vaikka puhutaan käyttöjärjestelmästä. Käyttöjärjestelmän mukana voi tulla useita käyttöliittymiä. Apuohjelmat Käyttöjärjestelmän mukana tulee yleensä joukko apuohjelmia. Yleensä tarvitaan ainakin tiedostojen käsittelyyn tarkoitettuja ohjelmia, joilla voidaan mm. kopioida ja poistaa tiedostoja. Nykyisin käyttöjärjestelmät ovat laajoja paketteja, joiden mukana tulee mittava kokoelma ohjelmia. Käyttöjärjestelmäpaketit ovat siten laajentuneet sovellusohjelmien alueelle. 9

10 Käyttöjärjestelmän ominaisuuksia Yksiajo/moniajo Valtaosa nykyisistä käyttöjärjestelmistä on moniajokäyttöjärjestelmiä. PC:ssä yksiajo käyttöjärjestelmiä on ollut oikeastaan vain MS-DOS. Moniajossa käyttöjärjestelmän on valvottava ohjelmia ja resursseja, jotta ohjelmat eivät häiritsisi toisiaan. Moniajon toteuttaa käyttöjärjestelmä jakamalla ohjelmille toimintavuoroja. Koska prosessoreita on yleensä vain yksi, moniajo tarkoittaa käytännössä, että ohjelmia ajetaan vuorotellen. Kun suoritettavaa ohjelmaa vaihdetaan tarpeeksi nopeasti, näyttää siltä kuin ohjelmat toimisivat samanaikaisesti. Moniajo on yleensä keskeyttävä (pre-emptive). Käyttöjärjestelmä antaa vuoron ohjelmalle ja keskeyttää ohjelman lyhyen ajan kuluttua ja antaa vuoron seuraavalle ohjelmalle. Windows:n vanhoissa 16-bittisissä versioissa moniajo toimi yksinkertaisemmin. Käyttöjärjestelmä antoi vuoron ohjelmalle, mutta ohjelma itse luovutti vuoron pois. Väärin toimiva ohjelma pystyi siten estämään koko järjestelmän toiminnan. Monenkäyttäjän Monenkäyttäjän järjestelmässä samaa konetta voi käyttää useita käyttäjiä yhtä aikaa. Tämä tarkoittaa siis, että voidaan toteuttaa jokaiselle käyttäjälle käyttöliittymä. Käytännössä tarvitaan jokaiselle käyttäjälle pääte. Windows NT ja sen seuraajat eivät ole varsinaisesti monenkäyttäjän käyttöjärjestelmiä. Näistä on kuitenkin Terminal Server versioita, joissa on tuki usealle käyttäjälle. Kaikki UNIX:n johdannaiset ovat monenkäyttäjän käyttöjärjestelmiä. Koska UNIX on alun perin keskuskoneeseen perustuva järjestelmä, UNIX:ssa käyttäjät aina liittyvät järjestelmään päätteen avulla. Reaaliaikainen Normaalisti moniajojärjestelmissä ohjelman toiminta hidastuu, kun käynnistetään useita ohjelmia yhtä aikaa. Automaatiosovelluksissa tämä ei ole suotavaa. Reaaliaika käyttöjärjestelmissä voidaan prosessin suoritusnopeus määritellä. Tällöin jonkin ohjausprosessin toimintanopeus ei muutu. Reaaliaikakäyttöjärjestelmä ei ole hyvä normaalissa työasema- tai palvelinkäytössä. Graafinen/merkkipohjainen Graafisuus on pääasiassa käyttöliittymän ominaisuus. Usein käyttöjärjestelmässä on kuitenkin tuki graafisille toiminnoille kuten eri Windows-versioissa. Vastaavasti MS-DOS:ssa on tuki merkkipohjaisille toiminnoille. Linux ei itsessään ole graafinen tai merkkipohjainen, vaan käyttöliittymä toteutetaan erillisillä ohjelmilla. 10

11 Verkkokäyttöjärjestelmä Useimmissa nykyisissä käyttöjärjestelmissä on mukana verkkokäyttöön tarvittavat ajurit. Jopa MSDOS:iin saa verkkoajurit erillisenä. Verkkokäyttöjärjestelmällä tarkoitetaan kuitenkin yleensä järjestelmää, joka sisältää verkon palveluita ja verkon hallintaa. Esimerkiksi Windows 2000 palvelin sisältää verkkoajurien lisäksi verkkopalveluita, kuten tiedostojen ja tulostimien jakaminen, ja verkon toimintaan liittyviä palveluita kuten nimipalvelu ja keskitetty käyttäjien hallinta. Bittisyys? 11

12 Peruskäsitteitä Yksiköt Bitti Pienin yksikkö. Bitin arvo voi olla 0 tai 1. Tavu (Byte) 8-bittiä. Yleisimmin käytetty tiedon mittayksikkö. Yleensä tietoalkioille varataan tilaa tavun kokoisina paloina. Esim. vaikka ascii-koodisto on 7-bittinen, jokainen merkki vie yhden tavun. Sana (word) tarkoittaa yleensä tietokoneen luonnollista tietoalkion kokoa. Esim. 32-bittisellä koneella sana on 32-bittinen. Joskus käsitetään sana aina 16- bittiseksi. Etuliitteet Tavu on pieni yksikkö, siksi yleensä siihen liitetään etuliite kilo, mega, giga tai tera. Etuliitteillä on kaksi eri tulkintaa, virallinen ja tietotekniikassa yleensä käytetty. Virallinen Tietotekniikassa kilo = 2 10 mega = 2 20 giga = 2 30 Tera = 2 40 Valitettavasti tietotekniikassa käytetään molempia merkityksiä sekaisin. Esimerkiksi kiintolevyjen koossa mega tarkoittaa virallista arvoa miljoona. Käytäntö muuttui 1990-luvun puolivälissä. Sitä ennen kiintolevyjen koossakin käytettiin megalle epävirallista arvoa. Muistien koossa mega tarkoittaa kuitenkin ! IEC-standardi (1998) määrittelee tietotekniikassa käytettäville etuliitteille uudet nimet, jolloin perinteiset etuliitteet tarkoittavat virallisia arvojaan. Kibi 210 tebi 240 Mebi 220 pebi 250 Gibi 230 exbi

13 Merkkikoodistot Tietokone pystyy varsinaisesti käsittelemään vain lukuja. Siksi tekstin käsittelemiseksi pitää teksti ensin muuttaa luvuiksi. Jokaiselle merkille on sovittu vastaava luku. Merkkikoodisto on määritelmä merkkejä vastaavista luvuista. Useimmat merkkikoodistot perustuvat ASCII-koodistoon. ASCII 7-bittinen kirjaimet a-z, A-Z ja välimerkkejä Euroopassa käytettiin versiota, jossa jotkin erikoismerkit oli korvattu skandinaavisilla merkeillä. EBCDIC Käytössä lähinnä IBM:n suurkoneissa. Poikkeaa täysin ASCII:sta. IBM Extended MS-DOS:n merkkikoodisto. Käytössä myös Windows:n komentorivillä 8-bittinen. 128 ensimmäistä merkkiä ASCII-koodiston mukaisia ANSI Windows:n koodisto Vastaa melko tarkoin ISO-koodistoa ISO bittinen eri kielialueversioita, , , UNICODE 16-bittinen merkkiä Windows NT ja sen johdannaiset käyttävät sisäisesti Unicode -merkistöä. Myös Linux/X-Window osaavat käyttää Unicodea. UTF-8 on Unicoden esitystapa. Siitä käytetään usein tiedonsiirrossa siirrettäessä tekstiä Unicode -muodossa. Unicode merkit koodataan tavuiksi. 127 ensimmäistä merkkiä esitetään yhdellä tavulla. Seuraavat 4000 merkkiä kahdella tavulla ja loput kolmella tavulla. Koska 127 ensimmäistä ovat yleisimmät merkit, saadaan tietoa pakattua jonkin verran. Lisäksi UTF-8 on riippumaton tavujärjestyksestä. HTML-merkit HTML-sivuilla käytetään usein erikoismerkeille omaa merkintää. Esimerkiksi ä-kirjain voidaan merkitä ä tai ä. Mikä tahansa merkki voidaan esittää merkinnällä &#koodi;. Joillakin merkeillä on myös merkintä &nimi; 13

14 Erikoismerkintää tarvitaan kahdesta syystä. WWW on maailman laajuinen verkko, joten käyttäjillä voi olla hyvin erilaisia asetuksia selaimissaan. Kaikissa koodistoissa ensimmäiset 128 merkkiä ovat samat. Siksi nämä ASCII koodiston mukaiset merkit näkyvät aina oikein. Seuraavat 128 merkkiä vaihtelevat eri koodistoissa. Yleisimmin selaimissa käytetään ISO koodistoa, jolloin ä-kirjain näkyy oikein ilman erikoismerkintää. Amerikkalaiset saattavat käyttää pelkää ASCII-koodistoa ja venäläiset käyttävät ISO koodistoa. Näissä maissa ä-kirjain ei siis näy oikein ilman erikoismerkintää (tosin amerikkalaiset eivät haluakaan nähdä ä- kirjaimia!). Toinen syy erikoismerkintään on, että joillakin merkeillä on oma merkityksensä html-koodissa. Selaimet tulkitsevat nämä merkit ohjausmerkeiksi. Esimerkiksi nuolisulkuja (< ja >) käytetään html-käskyjen (tagien) esittämiseen. Jos sivulla halutaan näkyviin nuolisulku, on käytettävä erikoismerkintää (< ja >). Nopeuden mittalukuja MIPS (mega instructions per second) Käytetään prosessorin nopeuden yksikkönä. Eri prosessorin vertailu on vaikeaa, koska käskyt eivät ole samanlaisia. MFLOPS (mega floating point operations per second) Suurissa koneissa käytetty nopeuden vertailuarvo. Muitakin mittayksiköitä on kehitetty. Mikään niistä ei anna tarkkaa vertailutietoa. Eri sovellukset vaativat eri ominaisuuksia. Lisäksi käyttäjän kokema nopeus voi olla eri kuin mitattu nopeus. Käyttäjää häiritsee esimerkiksi hidas käynnistys, mitä nopeus testit eivät yleensä mittaa. 14

15 Pääte Monenkäyttäjän järjestelmissä jokaisella käyttäjällä on oma pääte. Pääte tarkoittaa periaatteessa yhdistelmää näyttö, näppäimistö ja jokin liitäntä. Graafisissa päätteissä on yleensä mukana hiiri tai vastaava. Pääte RS 232C Pääte on liitetty keskuskoneeseen yleensä sarjaliitännällä (RS232C) Pääte Nykyisin varsinaiset päätteet ovat harvinaisia. Yleensä käytetään PC:tä ja jotakin pääteohjelmaa (telnet tms.) Pääte RS 232C modeemi modeemi Prosessit ja säikeet Nykyiset käyttöjärjestelmät ovat lähes aina moniajojärjestelmiä. Tämä tarkoittaa, että useita ohjelmia voi olla yhtä aikaa käynnissä. Esimerkiksi käyttäjä voi käynnistää tekstinkäsittely- ja piirto-ohjelman samanaikaisesti. Prosessi tarkoittaa käynnissä olevaa ohjelmaa. Sama ohjelma voi olla käynnissä useita kertoja. Esimerkiksi käyttäjä voi käynnistää tekstinkäsittelyohjelman useita eri dokumentteja varten. Prosessi on ohjelman käynnistyskerta (instanssi). Jos esimerkiksi Windows:n muistio on avattu samanaikaisesti kaksi kertaa kahden eri tekstin muokkausta varten, käynnissä on kaksi eri prosessia. Prosessit voi listata Windows Tehtävien hallinta ohjelmalla. Linux:ssa prosessilistauksen saa ps -komennolla. Prosesseista käytetään joskus Windows-maailmassa nimitystä task (tehtävä). Jokainen prosessi on oma erillinen toiminta kokonaisuus. Jokaisella prosessilla on oma muistialueensa, jota muut prosessit eivät saa käyttää. Tavoitteena on, että prosessit eivät häiritse toisiaan. Joskus tarvitaan myös ohjelman sisällä samanaikaisia toimintoja. Esimerkiksi tekstinkäsittelyohjelmassa tavutus toimii samanaikaisesti normaalin toiminnan kanssa. Säikeet ovat prosessin osia, jotka voivat toimia samanaikaisesti. Säikeillä ei ole omaa muistialuetta vaan ne käyttävät prosessin muistia. 15

16 Keskusyksikkö Kuvassa on tietokoneen yksinkertaistettu toimintaperiaate Prosessori suorittaa tai ainakin ohjaa kaikkea toimintaa. Nykyisin osa toiminnoista pyritään siirtämään pois prosessorilta. Siten esimerkiksi näytönohjain suorittaa kuvan käsittelyä. Tämä vapauttaa prosessorin kapasiteettia muuhun käyttöön. Keskusmuisti on työtila, jossa on kaikki suoritettavana olevat ohjelmat ja niiden käyttämä data. Moniajo ja graafinen käyttöliittymä ovat lisänneet keskusmuistin tarvetta Työn tekijä Prosessori Prosessoriväylä Prosessoriväylä Lisäkortti Väyläohjain Laajennusväylä Liitäntä Oheislaite Työtila Keskusmuisti Varasto Levyasema huomattavasti. Alun perin PC:ssä voitiin käyttää vain 640kibitavua muistia. Nykyisin 512mibitavua on jo normaalimäärä. Data ja ohjelmat varastoidaan levyasemille. Levyasemia ovat kiintolevyt, CD-asemat ja levykeasemat. Levykeasemien merkitys on vähentynyt, koska niiden koko on nykyisille tiedostoille pieni. Keskusyksikön sisällä tieto siirretään osien välillä väylien kautta. Väyliä on yleensä useita. Liitäntöjen avulla tietokoneeseen liitetään oheislaitteita. Liitäntöjä ovat esimerkiksi kirjoitin-, hiiri- ja näppäimistöliitäntä. Käytännössä tietokoneen rakenne on paljon mutkikkaampi. Seuraavassa kuvassa on yksinkertaistettu kaaviokuva nykyisestä PC:stä. Nykyisissä koneissa piirisarjoilla on suuri merkitys. Piirisarja yhdistää eri osia, ohjaa muistia, muodostaa väylät ja toteuttaa liitännät. Prosessori L2 cache EIDE 1 EIDE 2 PCI-väylä South bridge North bridge AGP SDRAM Lisäkortit USB ISA-väylä BIOS RTC (kello) Multi I/O Näppäimistö Hiiri LPT COM Levykeasema 16

17 Väylät Fyysisesti väylä on joukko rinnakkaisia johtoja, joiden välityksellä siirretään tietoa osien välillä sähköisinä signaaleina. Väylän ja liitännän välinen ero on usein häilyvä. Onko esimerkiksi SCSI väylä vai liitäntä? Eräs määritelmä on, että kyseessä on väylä, jos samaan liitäntään voi liittää useita laitteita tai piirejä. Tällöin esimerkiksi USB on väylä, koska samaan USB-liitäntään voidaan liittää useita oheislaitteita. Sen sijaan kirjoitinliitäntään voi liittää vain yhden kirjoittimen, joten se ei ole väylä. Väylissä on yleensä osat: ohjausväylä, jonka avulla siirretään erilaista ohjaustieto kuten luku/kirjoitus osoiteväylä, jolla prosessori valitsee osoitettavan muistipaikan tai oheispiirin dataväylä, jonka kautta siirretään varsinainen tieto prosessorin ja muistin tai oheispiirin välillä. Nykyisissä tietokoneissa on useita väyliä: Prosessorin väylä, laajennusväylä, muistiväylä. Jos kiintolevy- ja USB-liitäntää kutsutaan väyläksi, väylien lukumäärä kasvaa entisestään. Prosessorin väylän nopeus ja signaalit riippuvat prosessorista. Alun perin väylä toimi samalla nopeudelle kuin prosessori toimi sisäisesti. Nykyiset prosessorit toimivat kuitenkin sisäisesti suuremmalla nopeudella kuin väylä. Väylän nopeus saadaan prosessorin nopeudesta jakamalle se jollakin vakiolla (2-16). Laajennusväylä sen sijaan on oltava aina samanlainen, jotta lisäkortit toimisivat eri tietokoneissa. Siksi laajennusväylät on tarkkaan standardoitu. Aikaisemmissa koneissa muisti oli suoraan prosessoriväylässä. Uusissa koneissa on kuitenkin erillinen muistiväylä. Muistiväylässä dataväylän leveys on 64 bittiä vaikka prosessori on 32 bittinen. Tällä tavalla saadaan siirrettyä yhdellä luku- tai kirjoitustoiminnalla kaksinkertainen määrä dataa. Tällä nopeutetaan muistin käsittelyä. Uusimmissa emolevyissä on myös ns. dual channel muistimahdollisuus. Tällöin tarvitaan kaksi muistimoduulia joista luetaan yhtä aikaa. Prosessoriväylän dataväylän leveys on vaihdellut PC:n historian aikana. Ensimmäisessä prosessorissa 8088 dataväylä oli 8 bittinen vaikka itse prosessori oli 16-bittinen. Tällä pyrittiin kustannussäästöihin. Oheispiirit ja muistit olivat kalliita. Oli halvempaa tehdä oheispiirit 8-bittisiksi. Nykyisissä koneissa taas pyritään suurempaan nopeuteen jolloin leveämmän väylän kautta voidaan siirtää dataa nopeammin. Osoiteväylällä prosessori kertoo muistipaikan tai oheispiirin osoitteen. Osoiteväylän leveys rajoittaa muistimäärän. 8-bittisissä prosessoreissa muistiväylä on 16 bittinen, jolloin muistia voi olla 2 16 =65536 tavua 17

18 (64kibitavua). PC:ssä alun perin käytetyssä prosessorissa 8088 osoiteväylä oli 20- bittinen. Suurin muistimäärä oli tällöin 1mibitavu. Ohjausväylä sisältää joukon erillisiä signaaleja. Luku/kirjoitus signaalilla prosessori kertoo, haluaako se lukea vai kirjoittaa muistiin. Yhdellä signaalilla prosessori kertoo, haluaako se käsitellä muistia vai jotakin liitäntäpiiriä. Ohjausväylässä on myös erilaisia ajoitussignaaleja, joilla tahdistetaan oheispiirien toimintaa. Keskusmuisti RAM-muisti on prosessorin työtila. Käynnissä oleva ohjelma ja sen käyttämä tieto on oltava muistissa. Muistia on siis oltava riittävästi ohjelmien käyttöön. Nykyiset käyttöjärjestelmät vaativat jo useita mebitavuja toimiakseen. Muistin tarve on kasvanut nopeasti. Ensimmäisissä PC-malleissa oli 16 kibitavua muistia. Vielä 90-luvun alussa koneissa oli yleensä 640 kibitavua muistia. Nykyisissä työasemissa 64mebitavua alkaa olla minimi. Muistin tarvetta on kasvattanut ennen kaikkea graafinen käyttöliittymä. Sen lisäksi sovellusohjelmien lisääntyneet ominaisuudet ja moniajo lisäävät muistin tarvetta. Keskusmuisti on ns. RAM-muistia. (Random Access Memory). RAM muistia on kaksi perustyyppiä: SRAM (static RAM) jokaista bittiä kohti on useita transistoreita. SRAM on nopea, mutta kallis ja vaatii tilaa. Koko keskusmuistin toteuttaminen SRAM-muistilla olisi kallis ja vaatisi kohtuuttomasti tilaa. Siksi SRAM-muistia käytetään yleensä prosessorin välimuisteissa. DRAM (dynaaminen RAM) jokaista bittiä kohti on yksi transistori ja kondensaattori. Vaatii vähemmän tilaa kuin SRAM, mutta on jonkin verran hitaampi. Tila varataan kondensaattoriin. Varaus säilyy vain n. 10ms. Siksi tila on virkistettävä (refresh). Virkistys tehdään yleensä 2ms välein. Muisti koostuu peräkkäisistä muistipaikoista. Yhteen muistipaikkaan mahtuu yksi tavu tietoa. Käsiteltävä muistipaikka valitaan osoitteen avulla. Osoite on binaariluku. Muistien osoitteet alkavat PC:ssä nollasta. Vaikka prosessori nykyisin on 32-bittinen, silti muistin käsittelyssä jokaisella tavulla on oma osoite. Osoiteväylä Osoite Muistipaikka Dataväylä 18

19 Kun prosessori lukee muistista, se laittaa ensin halutun muistipaikan osoitteen osoiteväylään. Sen jälkeen prosessori kertoo ohjausväylän avulla, että se haluaa lukea muistista. Tämän jälkeen muisti lähettää halutun muistipaikan sisällön dataväylän kautta. Välimuisti (cache) Välimuistin tehtävä on nopeuttaa. Nykyiset prosessorit ovat selvästi nopeampia kuin SIMM- ja DIMM-moduleissa käytetyt DRAM-piirit. Riittävän nopea muisti on kallista ja vaatii paljon tilaa. Muistin käsittelyn nopeuttamiseksi käytetään pientä määrää nopeaa muistia välimuistina. Välimuistin tehokkuus perustuu siihen, että kun prosessori lukee jonkin muistipaikan, seuraavaksi prosessori todennäköisesti lukee seuraavia muistipaikkoja. Siksi välimuistiin luetaan aina useita tavuja eteenpäin. Välimuisteja voi olla useita peräkkäin. Tällöin lähinnä prosessoria olevaa välimuistia kutsutaan L1-tason välimuistiksi ja seuraavaa L2-tason välimuistiksi prosessorista lähtien prosessoreihin on integroitu sisäinen L1-tason välimuisti. Pentium Pro, Pentium II ja Pentium III -prosessoreissa on mukana myös L2-tason välimuisti Välimuistin toiminnan tehokkuuden mittaamisessa tutkitaan, kuinka monta kertaa CPU saa muistinkäsittelynsä tarvitseman tiedon välimuistista ilman että tieto täytyy käydä lukemassa keskusmuistista HIT ilmoittaa että CPU:n haluama data löytyy välimuistista. Hit Rate -arvolla ilmaistaan, kuinka monta prosenttia muistinkäsittelykäskyistä voidaan toteuttaa käyttämällä suoraan välimuistia ilman, että joudutaan lukemaan hitaampaa keskusmuistia. MISS tarkoittaa, että CPU:n pyytämä data on täytynyt lukea keskusmuistista, koska haluttua dataa ei ole löydetty välimuistista Miss Rate -arvo on käänteinen Hit Rate -arvolle, eli sillä ilmaistaan kuinka monta kertaa muistinkäsittelykäskyistä on jouduttu lukemaan keskusmuistista. Tag-piiri, on välimuistiin liittyvä apumuisti, jota käytetään välimuistin ohjaukseen. Lisäksi se sisältää tietoa, mm. mistä kohtaa keskusmuistia mikäkin välimuistissa oleva on peräisin. Eri välimuistin ja keskusmuistin välisiä datansiirtotekniikoita: Write Through Cache prosessori kirjoittaa ns. yhtä aikaa välimuistiin ja keskusmuistiin, tekniikaltaan helpoin. 19

20 Posted Write Cache prosessori kirjoittaa vain välimuistiin ja välimuistin ohjainpiiri huolehtii datan kirjoittamisesta keskusmuistiin. Write Back Cache prosessori kirjoittaa vain välimuistiin, ja välimuistin ohjainpiiri tutkii, ovatko väli- ja keskusmuistin sisällöt identtiset. Tällöin tiedonsiirtoa muistien kesken tapahtuu vain mikäli datasisältö on muuttunut, ja näin vältytään turhalta liikennöinniltä, monimutkaisin. 20

21 Prosessorin toiminta ALU Käskytulkki Datarekisteri Datarekisteri Datarekisteri Datarekisteri Datarekisteri Datarekisteri Dataväylä Osoiteväylä Ohjausväylä Kuvassa on yksinkertaistettu prosessorin sisäinen rakenne. Käskytulkki tulkitsee konekielisen käskyn ja suorittaa komennon vaatimat toiminnat. Käskytulkki kutsuu tarvittaessa ALU:a. ALU (Arithmetic logic Unit) Suorittaa laskentatehtäviä ja loogisia toimintoja kuten lukujen vertailu. Vaativampi laskenta suoritetaan yleensä erillisessä matematiikkaprosessorissa. Aikaisemmin matematiikkaprosessori oli erikseen ostettava komponentti, jolle oli oma paikka emolevyllä. Nykyiset prosessorit sisältävät matematiikkaprosessorin pääprosessorin kanssa samassa kotelossa. Rekistereissä on erilaista tilanteesta riippuvaa dataa. Rekisterien määrä vaihtelee eri prosessoreissa. Kuvassa on lähinnä minimi määrä. Käytännön prosessoreissa rekistereitä voi olla useita kymmeniä. Rekisterit Seuraavaksi käsitellään Intelin 8088 prosessorin rekistereitä. Uusimmatkin prosessorit perustuvat 8088:aan, joten samat rekisterit ovat säilyneet. Rekisterien määrä on lisääntynyt ja rekisterien kokoa on kasvatettu, mutta uusinkin Pentium psytyy toimimaan kuin Tällöin käytössä on sama rekisterirakenne. Datarekisterit. Prosessorin käsittelemä data on yleensä datarekistereissä käsittelyn ajan. Kun puhutaan, että prosessori on 32-bittinen, tarkoitetaan tällä datarekisterien leveyttä. Datarekistereitä on 8088 prosessorissa neljä: AX, BX, CX ja DX. Datarekisterien leveys määrää sen, onko prosessori 16- tai 32-bittinen prosessori oli 16-bittinen, joten sen rekisterit olivat 16-bittisiä. i386 prosessorissa rekisterit ovat 32-bittisiä: EAX, EBX, ECX ja EDX. i386- prosessoria voidaan käyttää 16 bittisenä, jolloin datarekistereistä käytetään vain alemmat 16 bittiä. 21

22 Käskyosoitin kertoo seuraavaksi suoritettavan käskyn osoitteen muistissa. Tätä rekisteriä ei muuteta suoraan vaan sen arvo muuttuu automaattisesti. Aina kun prosessori on suorittanut yhden käskyn, käskyosoittimen arvo muuttuu osoittamaan seuraavaa käskyä. Pino-osoitin kertoo ensimmäisen vapaan paikan pinossa. Pino-osoittimen arvo kasvaa automaattisesti, kun pinoon lisätään dataa. Samoin arvo pienenee automaattisesti, kun pinosta poistetaan dataa. Indeksirekisteriä käytetään yleensä epäsuorassa muistiosoituksessa. Indeksirekistereitä on kaksi SI (source index) ja DI (destination index). Esimerkiksi siirrettäessä tietoa muistialueelta toiselle SI-rekisteriin laitetaan siirrettävän alueen alkuosoite ja DI-rekisteriin osoite, johon tietosiirretään. Lippurekisteri sisältää tilatietoa. Lippurekisterin tila kuvaa viimeksi suoritetun käskyn toimintaa. Lippurekisterissä jokaisella bitillä on oma merkityksensä. Näitä bittejä kutsutaan lipuiksi. Yleisesti käytettyjä lippuja ovat mm: O Ylivuotolippu. Arvo on yksi, jos laskutehtävän tulos on suurempi kuin kahdenkomplementtiesityksellä voidaan esittää datarekisterissä. S Etumerkkilippu. Arvo on yksi, jos viimeisen käskyn tulos on negatiivinen. Z Nollalippu. Arvo on yksi, jos viimeisen käskyn tulos on nolla. C Carry. Arvo on yksi, jos laskennan tulos on suurempi luku kuin rekisteriin tai muistipaikkaan mahtuu. Segmenttirekisterit prosessorin erikoisuus on segmenttirekisterit. Näitä käytetään osoitteiden muodostamiseen. Aina, kun käsitellään osoitteita, prosessori lisää osoitteeseen segmenttirekisterin arvon. Segmenttirekistereitä on erikseen ohjelmalle (CS=Code Segment), datalle (DS=Data Segment) ja pinolle (SS=Stack Segment). Näiden lisäksi on ES, jota käytetään ylimääräisenä segmenttirekisterinä. Konekieli Jokaisella prosessorilla on oma käskykanta. Tämä tarkoittaa käskyjä, joita prosessori tuntee. Eri valmistajien prosessoreilla käskykannat vaihtelevat huomattavasti. Siksi sama ohjelma ei toimi erilaisissa koneissa. PC:n prosessorien käskykanta perustuu 8088-prosessoriin. Uusien sukupolvien myötä käskyjä on lisätty ja niistä on tullut 32-bittiset versiot. Pentium 4 prosessori sisältää kuitenkin kaikki 8088:n käskyt, joten se osaa suorittaa vanhoja MS-DOSohjelmia. Käskykannan käskyt ovat hyvin yksinkertaisia. Ne käsittelevät dataa binaarimuodossa kokonaislukuina. Yhden korkeantason ohjelmointikielen käskyn toteuttaminen vaatii yleensä useita konekielen käskyjä. Ohjelmaa, joka sisältää käskykannan käskyjä, kutsutaan konekieliseksi. Konekielinen ohjelma on joukko lukuja, jotka prosessori tulkitsee käskyinä. Konekielellä ohjelmointi tarkoittaisi, että kirjoitettaisiin ohjelma lukuina. Koska lukujen muistaminen on hankalaa, on kehitetty ns. symbolinen konekieli eli assembler. Assemblerissa jokaiselle konekieliselle käskylle on annettu nimi. 22

23 Assemblerkielinen ohjelma on käännettävä konekielelle eli muutettava luvuiksi ennen ohjelman suoritusta. Käskyn suoritus Tarkastellaan yhteenlaskukäskyä, joka assemblerkielellä olisi ADD AX, [1000] Käsky tarkoittaa, että prosessori lisää muistissa osoitteessa 1000 olevan luvun AX-rekisteriin. 1. Noutojakso Prosessori lukee käskyn muistista. 2. Tulkinta Katsotaan, onko käskyssä muistista etsittävää tieto. Luetaan tieto muistista eli esimerkissä luku osoitteesta Tulkinta Katsotaan, mitä käsky tekee ja kutsutaan tarvittaessa ALU-yksikköä. 4. Käskyn suoritus Suoritetaan käsky eli esimerkissä lasketaan yhteen AX-rekisterissä oleva luku ja muistista luettu luku. 5. Tallennus Tallennetaan laskennan lopputulos eli esimerkissä laitetaan summa rekisteriin AX Liukuhihna Yhden konekielisen käskyn toteuttaminen sisältää useita vaiheita kuten edellisen kappaleen esimerkissä kuvataan. Prosessorin toimintaa voidaan nopeuttaa käyttämällä liukuhihnaa (pipeline). Kun käskyn suoritus on siirtynyt seuraavaan vaiheeseen, voidaan aloittaa uuden käskyn käsittely. Siten useita käskyjä voi olla yhtä aikaa käsittelyssä. Jos käsittelyssä on viisi vaihetta kuten esimerkissä, voi käsittelyssä olla viisi käskyä yhtä aikaa. Nykyisissä prosessoreissa on useita liukuhihnoja, jolloin käsiteltävien käskyjen määrää voidaan lisätä ennestään. Kellotaajuus Kaikki toiminta prosessorissa tapahtuu tahdistetusti. Tahdistaminen tehdään tasaisin väliajoin tulevilla kellopulsseilla. Kellopulsseja muodostaa prosessorin ulkopuolinen oskillaattori. Ensimmäisessä PC:ssä kellotaajuus oli 4.77MHz. Nykyään päästään jo yli 3GHz taajuuksiin. 23

24 Yhden käskyn suorittamiseen tarvitaan aina jokin määrä kellopulsseja. Siten prosessorin nopeuteen vaikuttaa kellotaajuus ja se kuinka monta kellopulssia yksi käsky vaatii. Nykyisissä prosessoreissa on mahdoton tarkasti määritellä käskyjen vaatimaa aikaa. Koska käskyjä suoritetaan yhtä aikaa liukuhihnalla, nopeus riippuu myös siitä, mitä käskyjä on peräkkäin ohjelmassa. Lisäksi käskyn noutoaika muistista vaihtelee. Jos käsky löytyy välimuistista, nouto on hyvin nopeaa. Jos käsky joudutaan hakemaan keskusmuistista, nouto on huomattavasti hitaampaa. Kellotaajuuden nostaminen on helppo tapa nopeuttaa prosessoria. Tässä on kuitenkin haittapuolia. Kellotaajuuden nostaminen kasvattaa myös prosessorin tehonhäviötä, jolloin prosessori lämpenee enemmän. Nykyiset prosessorit vaativat jo tuulettimen jäähdytystä varten. Prosessorin tilat 8088-prosessori sisälsi paljon puutteita. Se pystyi osoittamaan korkeintaan 1mebitavua muistia. Kehittynyttä muistinhallintaa ei ollut ja lisäksi muistia käsiteltiin segmentteinä. MS-DOS oli kehitetty 8088-prosessoria varten. Siksi uudetkin prosessorit joutuivat toimimaan samojen rajoituksien mukaan. Intel ratkaisi ongelman laittamalla i386-prosessoriin kaksi toimintatilaa. Reaalitilassa prosessori toimii kuten 8088, tosin nopea sellainen. Suojatussa tilassa saadaan prosessorista täysi hyöty. Prosessori käynnistyy aina reaalitilassa. Tällä saavutetaan yhteensopivuus MS- DOS:n kanssa. Lisäksi reaalitila ei tarvitse mitään alkuasetuksia. Reaalitilassa on käytössä vain muistin ensimmäinen mebitavu. Ensimmäinen tehtävä Windows:n ja Linux:n käynnistyksessä on muuttaa prosessori suojattuun tilaan. Suojattuun tilaan siirtyminen vaatii joitakin alkuasetuksia, joilla määritellään mm. käytettävät muistialueet. Suojatussa tilassa prosessorissa on muistinhallintapiirit käytössä, jolloin voidaan käyttää erilaisia tekniikoita kuten virtuaalimuisti ja looginen muistiavaruus. Suojatussa tilassa on useita toimintavaihtoehtoja, tavallaan suojatun tilan alitiloja. Virtuaalitilassa prosessori toimii näennäisesti kuin reaalitilassa. Muistia on käytössä vain 1 mebitavu. Erona reaalitilaan on, että tämä 1mibitavu voi olla missä kohtaa muistialuetta tahansa. Virtuaalitilaa käytetään MS- DOS-ohjelmien ajamiseen Windows:ssa. Koska voidaan käyttää mitä tahansa kohtaa muistista, voidaan käynnistää useita MS-DOS-ohjelmia, joilla kaikilla on oma muistialue. Itse asiassa MS-DOS:n viimeiset versiot käyttivät virtuaalitilaa. 16-bittisessä suojatussa tilassa käytetään rekistereitä vain 16-bittisinä. Lisäksi muistinhallinta on jonkin verran puutteellinen. 24

25 32-bittisessä suojatussa tilassa käytetään prosessorin kaikki ominaisuudet täysin hyödyksi. Rekistereitä käytetään 32-bittisinä ja muistialue on yhtenäinen lineaarinen alue ilman segmenttirajoituksia. 25

26 Johdatus konekieleen Yksinkertaisuuden vuoksi käydään läpi vain 8088-prosessorin käskyjä eli toimitaan uudempien prosessorien reaalitilassa. Uusissa prosessoreissa on lisätty lähinnä erikoiskäskyjä. Lisäksi muistinosoitustapoja on laajennettu ja rekistereistä on 32-bittiset versiot. Konekieli varsinaisesti on joukko lukuja. Konekieltä käytetään nykyisin äärimmäisen harvoin. Sen sijaan käytetään assembleria eli symbolista konekieltä. Assemblerissa jokaiselle konekielen käskylle on annettu nimi. Konekieli: Assembler: MOV AX, [1000] Huomaa, että konekielessä voi yksi käsky muodostua useita luvuista. Näin on ainakin silloin, kun käskyssä on mukana operandeja. Muistin osoitus 8088-prosessori haluttiin yhteensopivaksi vanhojen 8-bittisten prosessorien kanssa. Koska 8-bittisissä prosessoreissa osoite on 16-bittinen käytettiin 8088:ssa myös 16-bittisiä osoitteita. Toisaalta haluttiin mahdollisuus käyttää 1mebitavua muistia, jolloin olisi tarvittu 20-bittinen osoite. Intel ratkaisi tämän ongelman jakamalla osoite kahteen osaa, siirrokseen ja segmenttiosoitteeseen, jotka molemmat ovat 16-bittisiä. Osoitteet lasketaan yhteen ja näin saadaan lopullinen muistipaikan osoite. Reaalitilassa yhteenlasku tehdään niin, että segmenttiosoite ensin kerrotaan 16:lla ja vasta sen jälkeen suoritetaan yhteenlasku. Segmenttiosoite laitetaan segmenttirekisteriin, josta prosessori lukee sen aina muistia osoitettaessa. Esimerkiksi segmenttirekisterissä (DS) on luku 20 ja ohjelmassa on käsky: ADD AX, [1000] Käsky tarkoittaa, että lisätään AX-rekisteriin muistipaikan sisältö. Muistipaikan osoite on 16* = 1320 Koska segmenttiosoite ja siirros ovat 16-bittisiä ja suurin 16-bittinen luku on 65535, suurin mahdollinen osoite on 16* = Tämä on itse asiassa vähän yli mibitavun ( ). Siirros tarkoittaa siis paikkaa segmentin alusta lukien. Segmenttiosoite valitaan laittamalla haluttu arvo segmenttirekisteriin. Segmenttirekistereitä on erikseen datalle (DS), ohjelmalle (CS) ja pinolle (SS). Tästä segmenttirakenteesta johtuen muistiosoitteet usein kirjoitetaan muodossa 2A5:103E. Ensimmäinen luku on segmenttiosoite ja toinen siirros. Luvut esitetään normaalisti heksadesimaalimuodossa. 26

27 Segmentti ja offset osat ovat käytössä myös prosessorin suojatussa tilassa. Tällöin offset on 32-bittinen luku ja lopullinen osoite lasketaan eritavalla. Segmentti arvoa käytetään indeksinä taulukkoon, josta löytyvä luku summataan offset arvoon. Intel prosessorien rekisterit: Datarekisterit: AX, BX, CX, DX Pino-osoitin: SP Käskyosoitin: IP Segmenttirekisterit: DS, CS, SS, ES Indeksirekisterit: SI, DI Osoitusmuodot Osoitusmuoto tarkoittaa sitä, miten konekielen käskyissä voidaan ilmaista käskyn käsittelemä data. Eri käskyissä käytössä olevat osoitusmuodot vaihtelevat. Uusissa prosessoreissa on myös lisätty vanhoihin käskyihin lisää osoitusmuotoja. Rekisteriosoitus Yksinkertaisin osoitusmuoto on rekisteriosoitus. Siinä kerrotaan, minkä rekisterin sisältämää dataa käsitellään. Esimerkiksi ADD AX, BX Käsky sisältää kaksi rekisteriosoitusta. BX-rekisterin sisältö lisätään AXrekisterin sisältöön. BX-rekisterin sisältö ei muutu. AX-rekisteri sisältää laskennan tuloksen. (ax = ax + bx). Datarekistereitä voidaan käsitellä myös 8-bittisinä. Koska rekisterit ovat 16- bittisiä, voidaan yhteen rekisteriin laittaa kaksi 8-bittistä arvoa. Merkintä AL tarkoittaa AX-rekisterin alempaa tavua ja AH ylempää tavua. Vastaavasti voidaan käyttää merkintöjä BL, BH, CL, CH, DL ja DH. Välitön osoitus Välitön osoitus tarkoittaa, että käskyssä on suoraan käytettävä arvo. Arvoa ei siis lueta muistista tai rekisteristä. ADD AX, 10 Lisätään AX-rekisteriin arvo 10 Suora osoitus Suorassa osoituksessa kerrotaan muistipaikan osoite. Käskyssä käytetään muistipaikassa olevaa arvoa. ADD AX, [1000] Lisätään AX-rekisteriin osoitteessa 1000 oleva arvo, tai oikeammin osoitteessa DS:1000 oleva arvo. 27

28 Epäsuora osoitus Epäsuorassa osoituksessa käytetään osoitteena jossakin rekisterissä tai muistipaikassa olevaa arvoa pystyy käyttämään epäsuorassa osoituksessa BX, SI ja DI rekistereitä. ADD AX, [BX] Lisätään AX-rekisteriin arvo, joka löytyy muistipaikasta, jonka osoite on BXrekisterissä oleva arvo. MOV BX, 1000 ADD AX, [BX] Yllä oleva lisää AX-rekisteriin osoitteessa 1000 olevan muistipaikan sisällön. Datan koon kertominen Joskus käskystä ei ilmene suoraan, käsitelläänkö tavuja vain 16-bittisiä lukuja. Esimerkiksi käsky INC [1000] lisää muistipaikassa 1000 olevan luvun arvoa yhdellä. Käskystä ei ilmene, halutaanko lisätä yhden tavun pituisen vai 16-bittisen luvun arvoa. Tällöin käskyyn laitetaan lisäksi DWORD, WORD tai BYTE. INC [DWORD 1000] lisätään 32-bittisen luvun arvoa INC [WORD 1000] lisätään 16-bittisen luvun arvoa INC [BYTE 1000] lisätään 8-bittisen luvun arvoa. INC WORD [1000] INC WORD PTR [1000] Yleisimmät käskyt 8088-prosessorin käskykanta on jo melko laaja ja uusissa prosessoreissa käskykantaa on laajennettu edelleen. Tarkoitus ei ole tässä materiaalissa käydä läpi kaikkia käskyjä, vaan käsitellä yleisimmin käytettyjä. Muut käskyt on tarkoitettu johonkin erikoiskäyttöön, joten niitä käytetään harvoin. Käskyt ovat yleisesti muotoa: käsky operandi1, operandi2 Operandit ovat toiminnan kohteita kuten rekisterit muistipaikat ym. Tiedon siirto (MOV) Siirretään tietoa toisesta operandista ensimmäiseen. Oikeammin käsky kopioi toisen operandin arvon ensimmäiseen operandiin. Tämä lienee yleisin käytetty käsky. 28

29 MOV AX, BX MOV AX, [1000] MOV AX, 10 Laskenta ADD Laskee kaksi kokonaislukua yhteen. Summa talletetaan ensimmäiseen operandiin. Toisen operandin arvo ei muutu. ADD AX, [1000] ADC Laskee kaksi lukua yhteen ja lisää Carry-bitin arvon tulokseen. Carry-bitin arvo on seurausta edellisestä käskystä. Käytetään lähinnä laskettaessa pitkiä kokonaislukuja yhteen osina. Esimerkiksi 32-bittinen yhteenlasku voidaan tehdä kahtena 16-bittisenä yhteenlaskuna. Ensimmäinen lasku tehdään ADD-käskyllä ja toinen ADC-käskyllä. SUB Vähentää ensimmäisestä operandista toisen operandin arvon. SUB AX, BX SBB Vähentää kaksi luku ja lisäksi Carry-bitin arvon. Käytetään, kun pitkiä lukuja vähennetään osissa. Ensimmäinen vähennyslasku tehdään SUB-käskyllä ja seuraavat SBB-käskyllä. INC Lisää luvun arvoa yhdellä. DEC Vähentää luvun arvoa yhdellä. NEG Vaihtaa luvun etumerkkiä. IMUL ja MUL IMUL kertoo kaksi etumerkillistä kokonaislukua keskenään. Jos kerrottavat ovat 16-bittisiä, toinen operandi on aina AX-rekisterissä ja toinen voidaan määritellä jollakin osoitustavalla. Lopputulos voi olla 32-bittinen, joten sen esittämiseen tarvitaan 32-bittiä. Lopputuloksen ylin osa on DX-rekisterissä ja alin osa AXrekisterissä. Jos kerrottavat ovat tavuja, toinen osa on AL-rekisterissä ja toinen voidaan kertoa jollakin osoitustavalla. Lopputulos on AX-rekisterissä. MUL Toimii kuten IMUL, mutta luvut ovat etumerkittömiä kokonaislukuja. MUL-käskyssä on vähemmän osoitusvaihtoehtoja. MUL BX MUL [BYTE 1000] ax * bx -> dx:ax al * [1000] -> ax 29

30 MUL [WORD 1000] IMUL WORD 10 IMUL BX IMUL [BYTE 1000] IMUL [WORD 1000] ax * [1000] -> dx:ax ax * 10 -> dx:ax ax * bx -> dx:ax al * [1000] -> ax ax * [1000] -> dx:ax Huomaa, että käytettäessä muistiosoitusta, on määriteltävä joko BYTE tai WORD. Muuten assembler kääntäjä ei tiedä, minkä kokoista dataa on tarkoitus käyttää laskennassa. IDIV ja DIV IDIV laskee jakolaskun etumerkillisillä ja DIV etumerkittömillä kokonaisluvuilla. On mahdollista jakaa 32-bittinen luku 16-bittisellä tai 16- bittinen 8-bittisellä. Jos jaettava on 32-bittinen, luku on rekistereissä DX ja AX. Loppu tulos on rekisterissä AX ja jakojäännös DX-rekisterissä. Jos jaettava on 16-bittinen, luku on AX-rekisterissä ja lopputulos AL-rekisterissä. IDIV ja DIV käskyissä voi käyttää vain rekisteri- tai muistiosoitusta. Välitöntä osoitusta ei voi käyttää. DIV BX DIV [BYTE 1000] DIV [WORD 1000] Loogiset käskyt Konekielisessä ohjelmassa käytetään usein Boolen algebraan perustuvia loogisia käskyjä. Tällöin operandien bittien välillä suoritetaan määritelty looginen operaatio. AND OR NOT XOR Lisäksi usein käytetään pyörityskäskyjä (siirtokäskyjä). Näissä luvun bittejä siirretään vasemmalle tai oikealle. Pyörityskäskyjä on kahdeksan joista sal ja shl ovat käytännössä samoja. Aritmeettinen siirto lisää aina nollan alkupäähän ja loppupäästä bitti siirretään lippurekisterin carry-bittiin. Artimeettinen siirto yhdellä bitillä vasemmalle vastaa luvun kertomista kahdella ja siirto oikealle luvun jakamista kahdella. sal ja shl c 0 30

31 0 shr c Pyöritys siirtää aina loppupäästä bitin alkupäähän. Näin luvun bitit eivät muutu. Vain niiden paikka muuttuu. rol c ror c Pyöritys carry-bitin kautta. Viimeinen bitti siirtyy lippurekisterin carry-bittiin ja carry-bitin edellinen arvo siirtyy luvun alkupäähän. rcr c c rcl Pino Pinoa käytetään lähinnä tilapäiseen tiedon tallentamiseen. Esimerkiksi C-kielen (ja Javan) funktiokutsujen parametrit laitetaan pinoon. Pinoa käytetään myös tallettamaan paluuosoite aliohjelmakutsuissa. Pino on sitä varten varatulla muistialueella. Pinoon voidaan laittaa tietoa (push) ja lukea (pop). Pino-osoitin kertoo, missä on viimeksi pinoon laitettu tieto. Kun pinoon laitetaan tai poistetaan tietoa, pino-osoittimen arvo muuttuu automaattisesti. Pinosta luetaan aina päällimmäinen arvo. Pino on siis LIFOtyyppinen (Last in first out). PUSH AX tallettaa AX-rekisterin sisällön pinoon. POP AX lukee AX-rekisteriin pinosta päällimmäisen luvun. PUSH-käskyssä voi käyttää välitöntä osoitusta, rekisteriosoitusta, suoraa ja epäsuoraa muistiosoitusta. 31

32 Rekisteri SS määrittelee pinon käyttämän segmenttiosoitteen. Pino-osoitin SP määrittelee siirroksen eli osoitteen suhteessa segmenttiosoitteeseen. Vaikka puhutaan pinon päällimmäisestä arvosta, käytännössä pino toimii muistissa toisin päin. Pinoon ensimmäisenä laitettu arvo on ylimmässä osoitteessa. Pino-osoittimen arvo siis itse asiassa pienenee, kun pinoon lisätään luku. Haarautuminen Normaalisti prosessori lukee ohjelman käskyt järjestyksessä muistista. Usein kuitenkin halutaan hypätä johonkin kohtaan ohjelmassa. Esimerkiksi riippuen jonkin datan arvosta suoritetaan eri osa ohjelmasta. Ehdoton hyppy JMP Kun JMP-käsky tulee vastaan, prosessori siirtyy aina suorittamaan ohjelmaa JMP-käskyn operandin kertomasta osoitteesta. JMP 2100 Ehdolliset hypyt Ehdollisissa hypyissä hypätään, jos lippurekisterin arvot ovat hyppykäskyä vastaavat. Esimerkiksi JZ aiheuttaa hypyn, jos lippurekisterin Z- (nolla) bitti on asetettu. Jotta ehdollinen hyppy toimisi oikein, on siis varmistettava, että lippurekisterillä on oikeat arvot. Monet käskyt, kuten ADD, muuttavat lippuja vastaamaan käskyn tulosta. Lukuja voi vertailla myös CMP-käskyllä. CMP toimii kuin vähennyslasku, mutta laskun tulosta ei talleteta minnekään. Ainoa vaikutus on lippujen asettuminen. CMP AX, 10 Jos AX-rekisterissä olisi luku 10, asettuisi Z-lippu. Luvun yksittäisen bitin arvoa testataan TEST-käskyllä. TEST suorittaa loogisen AND-operaation, mutta operaation tulosta ei talleteta. Vain lippurekisterin bitit muuttuvat. Kaikkien ehdollisten hyppyjen nimet eivät kerro suoraan, mitä lippuja ne testaavat. Nimet on tehty helpommin ymmärrettäväksi, kuten JE (Jump if Equal) eli hypätään, jos luvut ovat yhtä suuret. 32

33 Ehdollisia hyppyjä on myös erikseen etumerkillisille (kahden komplementti) ja etumerkittömille luvuille. Käskyt, joiden nimessä on below tai above on tarkoitettu etumerkittömille luvuille. Käskyt, joiden nimessä on less tai greater on tarkoitettu etumerkillisille luvuille. ja above jz zero set jae above or equal jna not above jb below jnae not above or equal jbe below or equal jnb not below jc carry set jnbe not below or equal je equal jnc carry not set jg greater jne not equal jge greater or equal jng not greater jl less jnge not greater or equal jle less or equal jnl not less jo overflow set jnle not less or equal jp parity set jno overflow not set jpe even parity jns sign not set jpo odd parity jnz zero not set js sign set jnp parity not set Esimerkki: Ohjelma, joka C-kielellä (ja Javalla) olisi: short summa, luku1, luku2; summa = luku1 + luku2; if(summa > 10) summa = 10; debug-ohjelmassa koodi voisi olla: 100 mov ax, [1000] 103 add ax, [1002] 107 mov [1004], ax 10A cmp ax, 10 10D jle F mov ax, 10; 112 mov [1004], ax 115 Huomaa, että rivin alussa on osoite, jossa rivin käsky sijaitsee muistissa. Kunnollisella assembler-kääntäjällä ohjelman pätkä olisi esimerkiksi: luku1 db 2 luku2 db 2 summa db 2 mov ax, luku1 add ax, luku2 mov summa, ax cmp ax, 10 33

34 jle ohita mov ax, 10; mov summa, ax ohita: Erona assembler-kääntäjällä on debugiin, että osoitteita ei tarvitse laittaa lukuina, vaan assembler-kääntäjä osaa käyttää muuttujia ja viitteitä (esimerkissä nimeltään ohita). HUOM! Ehdollisissa hypyissä on yksi merkittävä puute. Niillä voi hypätä vain 128 tavua taaksepäin tai 127 tavua eteenpäin. Tämä ominaisuus johtuu siitä, että käskyille annetaan operandina 8-bittinen luku. Tämä luku kertoo, kuinka paljon eteen- tai taaksepäin siirrytään sen hetkisestä osoitteesta. Jotta voitaisiin siirtyä kauemmas ohjelmassa kuin vain 128 tavua, yhdistetään useimmiten ehdollinen ja ehdoton hyppykäsky. Esimerkiksi testi luku > 10 toteutettaisiin: mov ax, luku cmp ax, luku jle ohita jmp johonkin ohita: Aliohjelmat Aliohjelmaan hypätään CALL-käskyllä ja sieltä palataan RET (tai RETF) käskyllä. CALL-käskylle annetaan operandiksi aliohjelman osoite. Sen sijaan RETkäskyllä ei ole operandia. Kun ohjelmassa suoritetaan CALL-käsky, prosessori laittaa ensin senhetkisen käskyosoittimen arvon pinoon ja vasta sitten hyppää aliohjelmaan. Kun aliohjelmassa tulee vastaan RET-käsky, prosessori lukee pinosta paluuosoitteen käskyosoittimeen. Jos aliohjelmassa laitetaan jotakin dataa pinoon, on ennen paluukäskyä muistettava poistaa tämä data, jotta pinossa päällimmäisenä olisi paluuosoite. RETF komentoa käytetään, jos paluuosoite on pitkä eli tarvitaan sekä segmentti että siirros. 34

35 Silmukka Ohjelmassa usein halutaan toistaa jotakin kohtaa tietyn määrän kertoja. Tämä voidaan tehdä ehdollisilla hyppykäskyillä. Esimerkiksi toistetaan 10 kertaa: 200 MOV DX, ; toistettavat käskyt 250 DEC DX 251 BZ JMP Joka kierroksella DX-rekisterin arvoa pienennetään yhdellä DEC DX käskyn avulla. Kun DX:n arvo muuttuu nollaksi, asettuu Z-lippu. Tällöin hypätään JMPkäskyn yli. Silmukka on hyvin yleinen rakenne ohjelmissa. Siksi Intelin prosessoreissa on tätä varten oma käskynsä LOOP. LOOP vähentää DX-rekisterin arvoa yhdellä ja hyppää annettuun osoitteeseen, jos DX:n arvo ei ole nolla. Edellä oleva ohjelma muuttuisi LOOP-käskyä käyttäen seuraavaksi: 200 MOV DX, LOOP 203 LOOP-käskyllä on sama rajoitus kuin ehdollisilla hyppykäskyillä eli voidaan hypätä vain 128 osoitetta taaksepäin tai 127 eteenpäin. Siksi LOOP-käsky sopii vain pieniin silmukoihin. Assembler ja käyttöjärjestelmän palvelut Assemblerissa ei ole suoraan käskyjä tulostamiseen, näppäimistön lukemiseen tai tiedostojen käsittelyyn. Nämä ja monet muut vaativat toiminnat ovat käyttöjärjestelmän palveluja. Periaatteessa olisi mahdollista esimerkiksi tulostaa näytölle suoraan. Tämä vaatisi kuitenkin näytönohjaimen tuntemista. Yksinkertaisissa komentoriviohjelmissa voidaan käyttää BIOS:n tai MS-DOS:n palveluja. Windows NT:ssä on toteutettu useimmat näistä palveluista niin, että suurin osa MS-DOS-ohjelmista toimii oikein. Käyttöjärjestelmän palveluja käytetään ohjelmallisten keskeytysten avulla. Ohjelmallisia keskeytyksiä käytetään INT-käskyllä. INT-käskyllä on operandina luku eli keskeytysnumero. Merkin lukeminen näppäimistöltä: MOV AH, 08 35

36 INT 21 Näppäimistöltä luetun merkin koodi on tämän jälkeen AL-rekisterissä. Merkin tulostus komentoriville: Tulostettavan merkin koodi laitetaan DL-rekisteriin ja sen jälkeen: MOV AH, 02 INT 21 Ohjelman lopettaminen: Ohjelman lopettaminen on itse asiassa mutkikas toiminta. Pitää vapauttaa ohjelman käyttämät resurssit kuten muistialueet ja sulkea tiedostot ym. MS-DOS suorittaa nämä toiminnat ohjelman puolesta käskyillä: MOV AH, 00 INT 21 Assembler-kääntäjät tekevät tämän yleensä automaattisesti, kun ohjelman loppuun kirjoitetaan käsky END. Esimerkkiohjelmia Esimerkit ovat MS-DOS-ohjelmia. Niitä voi ajaa Windows:n komentorivillä. Varsinaisten Windows-ohjelmien tekeminen Assemblerilla on hyvin työlästä eikä sitä juuri koskaan tehdä. Joitakin laiteajureita voidaan ehkä tehdä ainakin osittain Assemblerilla. Laiteajuritkin kirjoitetaan kuitenkin yleensä C-kielellä. Esimerkki1: Luetaan näppäimistöltä viisi merkkiä ja tulostetaan ne. Debugilla tehtynä: Ohjelmassa on itse asiassa (ainakin) yksi virhe: luetut merkit laitetaan muistiin osoitteeseen 200H. Tässä osoitteessa olevaa muistia ei kuitenkaan ole mitenkään varattu. Jos ohjelma kasvaisi niin isoksi, että ohjelmakoodia olisi osoitteessa 200H, merkit kirjoitettaisiin ohjelmakoodin päälle!! 0100 MOV BX,0005 luetaan 5 merkkiä 0103 MOV DI,0200 merkit luetaan osoitteeseen 200H 0106 MOV AH, INT 21 luetaan merkki 010A MOV [DI],AL laitetaan merkki muistiin 010C INC DI 010D DEC BX jos alle 5 merkkiä luettu, BX>0 010E JNZ 0106 palataan lukemaan merkki 0110 MOV BX,0005 tulostetaan 5 merkkiä 36

37 0113 MOV DI,0200 tulostetaan osoitteesta 200H 0116 MOV DL,[DI] laitetaan merkki DL-rekisteriin tulostusta varten 0118 MOV AH,02 tulostusrutiini on INT21/02H 011A INT C INC DI 011D DEC BX jos tulostettu alle 5 merkkiä 011E JNZ 0116 palataan tulostamaan merkkejä 0120 MOV AH,00 Ohjelman lopetus 0122 INT 21 Sama ohjelma MicroAssemblerilla tehtynä: ; COM file is loaded at CS:0100h ORG 100h MERKKILKM equ 5 ;luettavien merkkien määrä jmp start puskuri db 20 dup (?) ; varataan tilaa 20 merkille start: mov bx, MERKKILKM mov di, offset puskuri looppi: mov ah, 08h int 21H ; luetaan yksi merkki mov [di], al ; laitetaan merkki muistiin inc di dec bx jne looppi ; jos alle 5 merkkiä luettu, ; jatketaan silmukassa (looppi) mov bx, MERKKILKM mov di, offset puskuri looppi2: mov dl, [di] mov ah, 02H int 21H inc di dec bx jne looppi2 ret END Esimerkki 2. Luetaan kaksi lukua näppäimistöltä ja tulostetaan niiden summa. Ohjelma on alkeellinen. Se ei tarkista, ovatko luvut jossakin sallituissa rajoissa. 37

38 Ohjelma on esitetty MicroAssemblerille sopivana koodina. ORG 100h jmp alku luku1 dw? luku2 dw? kymmenen dw 10 alku: xor ax, ax call lueluku mov luku1, ax call lueluku mov luku2, ax add ax, luku1 call tulosta ret lueluku PROC NEAR ekamki: mov ah, 08H ; luetaan ensimmäinen numero int 21H ; jos käyttäjä antaa jonkin muun merkin, cmp al, 30H ; jatketaan lukemista. jl ekamki ; merkki on numero, jos sen ASCII-koodi on cmp al, 39H ; välillä 30H 39H jg ekamki sub al, 30H ; muutetaan merkki luvuksi xor ah, ah seuraava: push ax mov ah, 08H int 21H ; luetaan seuraava merkki cmp al, 30H ; jos ei ole painettu numeroa, luku on valmis jl valmis cmp al, 39H jg valmis xor ah, ah sub al, 30H ; muutetaan luettu merkki numeroksi mov bx, ax pop ax mul kymmenen ; kerrotaan aiemmin luettu arvo kymmenellä add ax, bx ; ja lisätään viimeksi luettu numero jmp seuraava valmis: pop ax ; luettu luku palautetaan AX-rekisterissä ret lueluku ENDP tulosta PROC NEAR xor bx, bx tul1: 38

39 xor dx, dx div kymmenen ; jaetaan luku kymmenellä. Tällöin inc bx ; jakojäännös on alimman numeron arvo push dx ; jatketaan jakamista, kunnes jaon tulos cmp ax, 0 ; on nolla. Numerot talletaan pinoon jnz tul1 ; BX-rekisteri kertoo, montako numeroa tul2: ; on luvussa pop dx add dl, 30H mov ah, 02H int 21H dec bx jnz tul2 ret tulosta ENDP END Debugilla katsottuna vastaava koodi: 0100 JMP XOR AX,AX 010A CALL 011E 010D MOV [0102],AX 0110 CALL 011E 0113 MOV [0104],AX 0116 ADD AX,[0102] 011A CALL 014C 011D RET 011E MOV AH, INT CMP AL, JL 011E 0126 CMP AL, JG 011E 012A SUB AL,30 012C XOR AH,AH 012E PUSH AX 012F MOV AH, INT CMP AL, JL 014A 0137 CMP AL, JG 014A 013B XOR AH,AH 013D SUB AL,30 013F MOV BX,AX 0141 POP AX 0142 MUL WORD PTR [0106] 0146 ADD AX,BX 39

40 0148 JMP 012E 014A POP AX 014B RET 014C XOR BX,BX 014E XOR DX,DX 0150 DIV WORD PTR [0106] 0154 INC BX 0155 PUSH DX 0156 CMP AX, JNZ 014E 015B POP DX 015C ADD DL,30 015F MOV AH, INT DEC BX 0164 JNZ 015B 0166 RET 40

41 Liite 1 ASCII merkistö ASCII koodisto on varsinaisesti 7-bittinen. Siksi merkkejä on vain ensimmäistä merkkiä ovat ohjausmerkkejä. IBM Extended (MSDOS), ANSI (Windows) ja ISO 8859 ovat 8-bittisiä. Näissä koodistoissa on 128 ensimmäistä merkkiä samat kuin ASCII-koodistossa. Unicode:ssa 256 ensimmäistä merkkiä ovat samoja kuin ISO 8859:ssä. Siten esimerkiksi A kirjaimen koodi on Huomaa eri merkintätavat heksadesimaaliluvulle: tai 0x100 tai 100H Char Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex (nul) 0 0x00 (sp) x40 ` 96 0x60 (soh) 1 0x01! 33 0x21 A 65 0x41 a 97 0x61 (stx) 2 0x02 " 34 0x22 B 66 0x42 b 98 0x62 (etx) 3 0x03 # 35 0x23 C 67 0x43 c 99 0x63 (eot) 4 0x04 $ 36 0x24 D 68 0x44 d 100 0x64 (enq) 5 0x05 % 37 0x25 E 69 0x45 e 101 0x65 (ack) 6 0x06 & 38 0x26 F 70 0x46 f 102 0x66 (bel) 7 0x07 ' 39 0x27 G 71 0x47 g 103 0x67 (bs) 8 0x08 ( 40 0x28 H 72 0x48 h 104 0x68 (ht) 9 0x09 ) 41 0x29 I 73 0x49 i 105 0x69 (nl) 10 0x0a * 42 0x2a J 74 0x4a j 106 0x6a (vt) 11 0x0b x2b K 75 0x4b k 107 0x6b (np) 12 0x0c, 44 0x2c L 76 0x4c l 108 0x6c (cr) 13 0x0d x2d M 77 0x4d m 109 0x6d (so) 14 0x0e. 46 0x2e N 78 0x4e n 110 0x6e (si) 15 0x0f / 47 0x2f O 79 0x4f o 111 0x6f (dle) 16 0x x30 P 80 0x50 p 112 0x70 (dc1) 17 0x x31 Q 81 0x51 q 113 0x71 (dc2) 18 0x x32 R 82 0x52 r 114 0x72 (dc3) 19 0x x33 S 83 0x53 s 115 0x73 (dc4) 20 0x x34 T 84 0x54 t 116 0x74 (nak) 21 0x x35 U 85 0x55 u 117 0x75 (syn) 22 0x x36 V 86 0x56 v 118 0x76 (etb) 23 0x x37 W 87 0x57 w 119 0x77 (can) 24 0x x38 X 88 0x58 x 120 0x78 (em) 25 0x x39 Y 89 0x59 y 121 0x79 (sub) 26 0x1a : 58 0x3a Z 90 0x5a z 122 0x7a (esc) 27 0x1b ; 59 0x3b [ 91 0x5b { 123 0x7b (fs) 28 0x1c < 60 0x3c \ 92 0x5c 124 0x7c (gs) 29 0x1d = 61 0x3d ] 93 0x5d } 125 0x7d (rs) 30 0x1e > 62 0x3e ^ 94 0x5e ~ 126 0x7e (us) 31 0x1f? 63 0x3f _ 95 0x5f (del) 127 0x7f 41

42 Liite 2 Pienen koeohjelman tekeminen Jos assemblerilla haluaa tehdä kunnollisia ohjelmia, tarvitaan assembler-kääntäjä. Assemblerin käyttö ohjelmointikielenä on nykyisin harvinaista. Vain hyvin laiteläheisessä ohjelmoinnissa, kuten laiteajurit, voi assemblerista olla hyötyä. Nykyiset C-kääntäjät sisältävät Assembler-kääntäjän. Tämä mahdollistaa assembler-koodin kirjoittamisen C-koodin sekaan. Tämä on yleisin tapa käyttää assembleria tällä hetkellä. Pieniä assembler-harjoituksia voi tehdä myös MS-DOS:sta peräisin olevan debug-ohjelman avulla. Debug tulee myös nykyisten windows-versioiden mukana, vaikka sitä voi käyttää vain reaalitilan ohjelmien käsittelyyn. Ohjelman tekeminen debug:lla perustuu siihen, että vanhoilla com-tyyppisillä ohjelmilla on määrätty rakenne. Esimerkiksi com-ohjelmissa ohjelman suoritus aloitetaan aina osoitteesta 100H. Jos tiedoston tarkennin on.com, debug luo automaattisesti ohjelman suorittamiseen tarvittavat tiedot. Ohjelmoijan ei tarvitse itse määritellä alkuosoitteita ja vastaavia arvoja. Com-tyyppisillä ohjelmilla on joitakin rajoituksia. Ohjelma kokonaisuudessaan pitää mahtua 64 kibitavuun sisältäen ohjelmakoodin lisäksi datan ja pinon. Ohjelman alkuosoite muistissa on aina 100H. Com-tyyppisten ohjelmien tuen piti loppua jo 1990-luvun alkupuolella. Kuitenkin Microsoft itsekin tekee vielä comohjelmia. Käynnistä komentorivi Tee tiedosto, jonka tarkennin on.com. Nimi voi olla vaikka harjoitus.com. Tiedoston voi tehdä miten haluaa. Esimerkiksi Windows:n muistio käy hyvin. Tiedoston sisällöllä ei ole väliä, kunhan siinä on alle 64 kibitavua. Tyhjäkin tiedosto käy. Komentorivillä tiedoston voi tehdä komennolla copy con harjoitus.com Komento loppuu painamalla Ctrl-Z. Käynnistä debug komennolla debug harjoitus.com Kun debug on käynnistynyt promptiksi tulee tavuviiva Anna komento a 100. Tämä tarkoittaa, että aletaan kirjoittaa assembler-koodia osoittesta 100H alkaen. Kirjoita assembler-koodi. Koodin kirjoittaminen lopetetaan tyhjällä rivillä. Debugin assembler-kääntäjä ei ole täydellinen, joten joitakin oikeiden assemblerkääntäjien ominaisuuksia puuttuu. 42

43 Kirjoitettaessa ohjelma levylle, BX:CX rekisteriparissa on kirjoitettavien tavujen määrä. Laita BX rekisteriin arvo nolla ja CX-rekisteriin ohjelman talletettavien tavujen määrä. Määrä voi olla varmuuden vuoksi liian suuri. Liian pieni arvo aiheuttaa ohjelman tallettamisen vajaana. r bx <enter> 0 <enter> r cx <enter> 100 <enter> Talletetaan 256 tavua (100H). Talleta tiedosto komennolla w Poistu debugista komennolla q Ohjelma on nyt valmis käytettäväksi. Ohjelmaa voi ajaa myös debug:n avulla käsky kerrallaan komennolla t. Rekisterien arvoja voi tarkastella komennolla r. Muistin sisältöä voi katsoa komennolla d <osoite> osoite annetaan heksadesimaalilukuna. Debug ei ole tarkoitettu varsinaiseksi ohjelmointityökaluksi, siksi sen assembler ei sisällä varsinaisten assemblerkääntäjien ominaisuuksia. osoitteet ja lukuarvot on annettava lukuina. Nimiä ei voi käyttää. debug tuntee vain direktiivin DB Internetistä löytyy useita ilmaisia assemblerkääntäjiä, jos haluaa todella kirjoittaa ohjelmia. Debug on riittävä vain pieniin kokeiluihin. 43

44 Liite 3 Muistimodulit Ensimmäisissä PC:issä muisti oli erillisinä piireinä. Piirit olivat kannoilla tai usein suoraan juotettuina emolevyille. Nykyisin muistipiirit on liitetty erillisille piirilevyille muistimoduuleiksi. Muistimoduulit mahtuvat pienempään tilaan kuin erilliset muistipiirit ja niiden vaihtaminen on helpompaa. Emolevyllä on muistikantoja, joihin moduulit painetaan. Muistimoduulien lisääminen ja poistaminen ei vaadi työkaluja. Tosin tietokoneen kotelon avaaminen usein vaatii ruuvimeisselin. Muistimoduuleita on erilaisia. Lisäksi muistipiirien sisäisessä tekniikassa on eri vaihtoehtoja. Monet emolevyt ovat tarkkoja muistin toiminnassa. Saattaa olla, että samanlaiset, mutta eri valmistajien muistimoduulit eivät toimi yhtä aikaa. Sopivat muistit on aina kerrottu tietokoneen tai emolevyn käsikirjassa. Moduuleita on SIPP, 30p SIMM, 72p SIMM ja DIMM-tyyppisiä. Uusimmat koneet käyttävät DIMM-moduuleita. SIPP ja SIMM muistit ovat nykyisin harvinaisia. Jonkin verran on vielä käytössä koneita, joissa käytetään 72 pinninen SIMM-muisteja. Muistin nopeus on oltava riittävä koneeseen. Vanhemmissa muisteissa nopeus ilmoitetaan nanosekunteina. Uudemmissa muisteissa nopeus ilmoitetaan kellotaajuutena. SIMM /Single In-line Memory Module SIMM, lyhyt 30-pinninen (fyysisten kontaktipintojen lukumääärä) dataväylän leveys 8 tai 9 bittiä riippuen onko pariteettibitti mukana käytetään 386 ja 486-prosessorilla varustetuissa koneissa 9-bittinen 9-piirinen sis. pariteetin tarkistuksen 9-bittinen 3-piirinen sis. pariteetin tarkistuksen 8-bittinen 8-piirinen 8-bittinen 2-piirinen SIMM, pitkä 72-pinninen (fyysisten kontaktipintojen lukumääärä) dataväylän leveys 32 tai 36 bittiä riippuen onko pariteettibitti mukana Käytetään koneissa, joissa on 486 tai Pentium-prosessori Pentium-koneisiin on lisättä kaksi modulia kerrallaan 44

45 DIMM, pitkä 168-pinninen (fyysisten kontaktipintojen lukumääärä) dataväylän leveys 64, 72 tai 80 bittiä riippuen siitä onko pariteettibitti ja/tai virheenkorjaavan ECC-muistin tarvitsema lisäbitti mukana työasemissa ei yleensä käytetä pariteettitarkistusta Käytetään Pentium, Pentium II ja Pentium III -koneissa Käytössä olevat muistipiirit: SDRAM, EDO ja FPM -RAM Nopeus ilmoitetaan nanosekuntteina EDO- ja FPM-muisteille ja megahertzeinä (MHz) SDRAM:ille DIMM, pitkä 168-pinninen (fyysisten kontaktipintojen lukumääärä) DIMM tukee kahta jännitettä, 3.3 tai 5.0 volttia DIMMissä käytössä PD (Presence Detect) -tunnukset, joiden avulla järjestelmä tunnistaa muistinnopeuden, - määrän, muistipankkien järjestyksen ja määrän. Muistitekniikoita StaticColumn BEDO-RAM (Burst EDO-RAM) SDRAM (Syncronous Dynamic RAM) CDRAM (Cache Dynamic RAM) / EDRAM (Enhanced Dynamic RAM) VRAM (Video RAM) WRAM (Window DRAM) Muita suunnitteilla / markkinoilla olevia muistitekniikoita: SGRAM MDRAM RDRAM 3DRAM 45

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

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

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

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

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

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

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

1. Keskusyksikön rakenne

1. Keskusyksikön rakenne 1. Keskusyksikön rakenne Kuvassa on esitelty TTK-91 esimerkkikoneen keskusyksikkö. Oikeiden tietokoneiden keskusyksiköt ovat luonnollisesti monimutkaisempia, mutta tämä riittää oikein mainiosti asian havainnollistamiseen.

Lisätiedot

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

24.9.2015. Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

24.9.2015. Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen Työasema- ja palvelinarkkitehtuurit (IC130301) 5 opintopistettä Petri Nuutinen 5 opintopistettä Petri Nuutinen Apumuistit Tarvitaan ohjelmien ja dokumenttien tallentamiseen, kiintolevyjen varmuuskopiointiin,

Lisätiedot

Tietokoneen rakenne: Harjoitustyö. Motorola MC68030 -prosessori

Tietokoneen rakenne: Harjoitustyö. Motorola MC68030 -prosessori kevät 2004 TP02S-D Tietokoneen rakenne: Harjoitustyö Motorola MC68030 -prosessori Työn valvojat: Seppo Haltsonen Pasi Lankinen RAPORTTI 13.5.2004 Sisällysluettelo sivu Tiivistelmä... 1 Lohkokaavio... 2

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 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

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet 1 Suorituksenaikainen suorittimen

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

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

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

Lisätiedot

Käyttöjärjestelmän rakenne

Käyttöjärjestelmän rakenne Käyttöjärjestelmän rakenne Tietokonejärjestelmä = Laitteisto + ohjelmisto Sovellus saa laitteiston käyttöönsä kj:n avustuksella CPU ja muisti Oheislaitteet KJ tarjoaa laitteiston käytössä tarvittavat palvelunsa

Lisätiedot

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat

Lisätiedot

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 16: Tietokoneen rakenne, osa 2 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Viikkoharjoitusten

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

T 106.041 Tietotekniikan peruskurssi

T 106.041 Tietotekniikan peruskurssi T 106.041 Tietotekniikan peruskurssi Oma tietokone Miika Komu Luennon sisältö Kotitietokoneen rakenne Kotietokoneen hankinta Kotitietokoneen ylläpito ja päivitys Kotitietokoneen rakenne

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

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

Linuxissa uusi elämä 1

Linuxissa uusi elämä 1 17.06.19 Linuxissa uusi elämä 1 Linux on hyvä vaihtoehto Windowsille Uusiin tai vanhempiin tietokoneisiin Miksi käyttäisin Linuxia Tekniikan Maailman Linux vinkki Siirtyisinkö Linuxiin? 17.06.19 Linuxissa

Lisätiedot

Laitteistonläheinen ohjelmointi

Laitteistonläheinen ohjelmointi Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Luennot: Perjantai 12-14 TB104 Esitiedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali:

Lisätiedot

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien historia Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien jaottelu Voidaan jaotella erilaisin menetelmin Aikajana (määrä,

Lisätiedot

Tietokoneenrakenneharjoitus

Tietokoneenrakenneharjoitus Tietokoneenrakenneharjoitus Yleistä harjoituksesta Harjoitusta varten on varattu neljä tietokonetta. Käytä jotakin näistä. ÄLÄ tee harjoitusta muilla Helian koneilla. Koneet ovat jonkin verran erilaisia.

Lisätiedot

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

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

Lisätiedot

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen Intel Pentium Pro -prosessori tietokonearkkitehtuurit, syksy -96 Ari Rantanen Tarkasteltavat aiheet Katsaus Pentium Pro:n ominaisuuksiin Käskyn suoritus Pentium Pro:n liukuhihnalla Pentium Pro:n suorituskyky

Lisätiedot

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet SISÄLLYS 1 2 3 4 Tietokoneen toimintaperiaate ja käyttö 14 1.1 Mikä tietokone on? 14 1.2 Tieteen ja toimiston koneista yleistietokoneeseen 15 1.3 Mekaanisista ja sähköisistä laitteista sulautettuihin tietokoneisiin

Lisätiedot

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi 27.1.2011 Tietokone suoritin (CPU) väylä tai väylät laiteohjaimet muiden koneiden kanssa Ethernet, modeemi,... laitteiden kanssa Levy, DVD, CD,

Lisätiedot

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux rakenne Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux ydin Ytimen (kernel) päätehtävä on tarjota rajapinta

Lisätiedot

Ala-Härmän atk-sanomat

Ala-Härmän atk-sanomat Ala-Härmän atk-sanomat Tietokoneen toimintaperiaate Tietokone on elektroninen laite, joka suunniteltiin alun perin auttamaan ihmistä laajoissa tietojenkäsittelytehtävissä. Suurin hyöty tietokoneesta onkin

Lisätiedot

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin

Lisätiedot

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita. Mikä on tietokone PUNOMO NETWORKS OY 22.7.2016 pva, piirroskuvat J. Mansikkaviita Henkilökohtaisesti olen aina valmis oppimaan, vaikka en välitäkään tulla opetetuksi. - Winston Churchill Tietokone on elektroninen

Lisätiedot

PC-LAITTEEN TESTAAMINEN

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

Lisätiedot

Asteri Vuokrankanto (Dos) Vuosipäivitys 1.11.2007

Asteri Vuokrankanto (Dos) Vuosipäivitys 1.11.2007 Asteri Vuokrankanto (Dos) Vuosipäivitys 1.11.2007 Päivityksen asentaminen... 4 Vista... 6 Uuteen koneeseen siirtäminen... 7 - pikakuvake työpöydälle... 9 Tulostusongelmat uusissa koneissa... 12 - Tulostaminen

Lisätiedot

Asteri saldoreskontra (Dos) (lisäohjelma kirjanpitoon) Vuosipäivitys 10.9.2004

Asteri saldoreskontra (Dos) (lisäohjelma kirjanpitoon) Vuosipäivitys 10.9.2004 Asteri saldoreskontra (Dos) (lisäohjelma kirjanpitoon) Vuosipäivitys 10.9.2004 Atsoft Oy Mäkinen www.atsoft.fi Päivystys: Malminkaari 21 B Puh (09)3507530 0400 316 088 00700 HELSINKI Fax (90)3515532 0500

Lisätiedot

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

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

Käskykannat. Tietokoneen rakenne. Ch [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC. Luento 7-1

Käskykannat. Tietokoneen rakenne. Ch [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC. Luento 7-1 Tietokoneen rakenne Luento 7 Käskykannat Ch 10-11 [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC Luento 7-1 Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskyn

Lisätiedot

Resteri laskutus (Dos) ("enemmän asiakkaita ja tuotteita; monipuolisempi reskontra)

Resteri laskutus (Dos) (enemmän asiakkaita ja tuotteita; monipuolisempi reskontra) Resteri laskutus (Dos) ("enemmän asiakkaita ja tuotteita; monipuolisempi reskontra) Vuosipäivitys 10.9.2004 Atsoft Oy Mäkinen www.atsoft.fi Päivystys: Malminkaari 21 B Puh (09)3507530 0400 316 088 00700

Lisätiedot

Tietokoneen toiminta. Virtuaalilaboratoriotyö

Tietokoneen toiminta. Virtuaalilaboratoriotyö Tietokoneen toiminta Virtuaalilaboratoriotyö Tämä työ on tarkoitettu niille, jotka tekevät työn etätyönä ja, joilla ei mahdollista avata jotakin tietokonetta. Vastaamista varten joutuu etsimään tietoa

Lisätiedot

Resteri myyntireskontra (Dos)

Resteri myyntireskontra (Dos) Resteri myyntireskontra (Dos) (lisäohjelma peruslaskutukseen: "laajempi myyntireskontra") Vuosipäivitys 10.9.2004 Atsoft Oy Mäkinen puh (09) 350 7530 0400-316 088 www.atsoft.fi Malminkaari 21 B fax (09)

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

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

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

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa CT50A2602 Käyttöjärjestelmät Seminaarityö Tietokoneen muisti nyt ja tulevaisuudessa Jyrki Eurén Raimo Asikainen Janne Laitinen Teppo Lapinkoski Manu Toivanen Pasi Ruuth Johdanto Taustaa Työn taustana ryhmän

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

Tietokoneen rakenne Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan

Tietokoneen rakenne Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskykannat Ch 10-11 [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC Luento 7 Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskyn suoritus muodostuu vaiheista, joita

Lisätiedot

Kertausluento luennoista 1-3 1

Kertausluento luennoista 1-3 1 Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

Asteri Varastovalvonta Dos Vuosipäivitys 10.9.2004

Asteri Varastovalvonta Dos Vuosipäivitys 10.9.2004 Asteri Varastovalvonta Dos Vuosipäivitys 10.9.2004 Atsoft Oy Mäkinen puh (09) 350 7530 0400-316 088 www.atsoft.fi Malminkaari 21 B fax (09) 351 5532 0500-703 730 atsoft@atsoft.fi 00700 HELSINKI 0400-505

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

Luento 7: Käskykannat Tietokoneen rakenne / 2006 / Teemu Kerola 9/25/2006

Luento 7: Käskykannat Tietokoneen rakenne / 2006 / Teemu Kerola 9/25/2006 Tietokoneen rakenne Luento 7 Käskykannat Ch 10-11 [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC Luento 7-1 Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan Käskyn

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

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Käskyjen nouto- ja suoritussykli Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet

Lisätiedot

TK081001 Palvelinympäristö

TK081001 Palvelinympäristö TK081001 Palvelinympäristö 5 opintopistettä!! Petri Nuutinen! 8 opintopistettä!! Petri Nuutinen! RAID RAID = Redundant Array of Independent Disks Useasta fyysisestä kiintolevystä muodostetaan yhteinen

Lisätiedot

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri Palomuuri Teoriaa Palomuurin tehtävä on estää ei-toivottua liikennettä paikalliseen verkkoon tai verkosta. Yleensä tämä tarkoittaa, että estetään liikennettä Internetistä paikallisverkkoon tai kotikoneelle.

Lisätiedot

Monipuolinen esimerkki

Monipuolinen esimerkki Monipuolinen esimerkki Lopuksi monipuolinen esimerkki, jossa ohjelmisto koostuu pääohjelmasta ja kahdesta aliohjelmasta, joista toinen on proseduuri ja toinen funktio. Funktio Sqrt(int n): int Sqrt(int

Lisätiedot

Raspberry Pi. Yhden piirilevyn tietokone. Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja. sen toiminnoista.

Raspberry Pi. Yhden piirilevyn tietokone. Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja. sen toiminnoista. Yhden piirilevyn tietokone Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja sen toiminnoista. Sisällys Raspberry Pi Yleistä... 2 Teknistä... 2 Käyttöjärjestelmät... 4 Pelaaminen

Lisätiedot

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

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

Lisätiedot

Tietokoneen toiminta, K Tavoitteet (4)

Tietokoneen toiminta, K Tavoitteet (4) Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000 Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet 1 Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet Microsoft on julkaissut Office-paketteihin tietoturvapäivitykset. Seuraavat päivitykset aiheuttavat Visma Econet -ohjelmissa

Lisätiedot

PC-LAITTEEN TESTAAMINEN

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

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

1. Yleistä. 2. Ominaisuudet. 3. Liitännät

1. Yleistä. 2. Ominaisuudet. 3. Liitännät 1. Yleistä SerIO on mittaus ja ohjaustehtäviin tarkoitettu prosessorikortti. Se voi ohjemistosta riippuen toimia itsenäisenä yksikkönä tai tietokoneen ohjaamana. Jälkimmäisessä tapauksessa mittaus ja ohjauskomennot

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

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

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

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

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

Lisätiedot

Dell Inspiron 560/570: Tekniset tiedot

Dell Inspiron 560/570: Tekniset tiedot Dell Inspiron 560/570: Tekniset tiedot Tämän oppaan tietoja voidaan tarvita tietokoneen asennuksessa ja päivityksessä sekä sen ohjainten päivityksessä. HUOMAUTUS: Tuotteet saattavat vaihdella alueen mukaan.

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2001 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

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

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) toiminta, K2000 1452002 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

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

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

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

Sulautetut järjestelmät

Sulautetut järjestelmät 1 Sulautetut järjestelmät Tietojenkäsittelytieteen koulukunta Sulautetut järjestelmät 2 Sulautetut järjestelmät Tyypillisiä sovelluskohteita» automaattiset tankkausjärjestelmät huoltoasemilla,» mekaanisen

Lisätiedot

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli

Lisätiedot

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ aaro.leikari@hotmail.com TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ 25.01.2016 SISÄLLYS 1. Käyttöjärjestelmän asentaminen... 1 1.1 Windowsin asettamia laitteistovaatimuksia... 1 1.2 Windowsin asentaminen...

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet

Lisätiedot

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1 Käyttöjärjestelmät Tietokoneen rakenne Stallings, Luku 1 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1 Sisältöä Keskusyksikkö Käskysykli Keskeytys ja sen käsittely Siirräntä Muistihierarkia

Lisätiedot

Office 2013 - ohjelmiston asennusohje

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

Lisätiedot

Asteri Laskutus (Dos)

Asteri Laskutus (Dos) Asteri Laskutus (Dos) Vuosipäivitys 3.11.2007 Päivityksen asentaminen... 4 Uudelle koneelle siirtäminen... 6 - pikakuvake Vistan työpöydälle... 7 Tulostaminen kun tulostaminen ei onnistu... 11 - tulostaminen

Lisätiedot

Resteri laskutus (Dos) ("enemmän asiakkaita ja tuotteita; monipuolisempi reskontra)

Resteri laskutus (Dos) (enemmän asiakkaita ja tuotteita; monipuolisempi reskontra) Resteri laskutus (Dos) ("enemmän asiakkaita ja tuotteita; monipuolisempi reskontra) Vuosipäivitys 3.11.2007 Atsoft Oy Mäkinen www.atsoft.fi Päivystys: Malminkaari 21 B Puh (09)3507530 0400 316 088 00700

Lisätiedot