Yleistä Sulautetut järjestelmät 1
|
|
- Urho Pesonen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Yleistä Luennot tiistaisin 8-10, TB111, I periodi ei harjoituksia harjoitustyö (auto) II periodilla harjoitustyön esittely I periodin lopussa erikseen ilmoitettavana aikana Sulautetut järjestelmät 1
2 Mikä on sulautettu järjestelmä? hiiri? näppäimistö? DVD-soitin? ipod? XBox? Mitä erityistä siinä on? Sulautetut järjestelmät 2
3 Sulautettu järjestelmä Erikoistunut, sovitettu käyttötarkoitukseen sekä ohjelmiston että laitteiston osalta Usein osa laajempaa järjestelmää tai hierarkkinen Suljettu/staattinen järjestelmä Vika/virhesietoinen järjestelmä Sulautetut järjestelmät 3
4 Suunnittelu Järjestelmä koostuu yleensä sekä laitteistosta että ohjelmistosta Jos toimitaan standardi laitteistoilla, puhutaan usein reaaliaikajärjestelmistä Sovellus ja osa laitteistosta dedikoitua Toimitaan perinteisen kj:n alaisuudessa tai rinnalla Kurssilla lähinnä puhumme täysin dedikoiduista järjestelmistä Sulautetut järjestelmät 4
5 Esimerkkejä laitteistoista Pieni järjestelmä ( microchip ) Keskisuuri ( atmel ) Sulautettu Linux ( Axis ) Fpga pohjainen ( xilinx ) Dynaaminen ( tensilica ) Perinteinen ( freescale ) Sulautetut järjestelmät 5
6 Erityispiirteitä Rajatut resurssit Kiinteät tehtävät Sovellus ei terminoidu Ei pakotietä Sulautetut järjestelmät 6
7 Ohjelmointi Suljettu, erikostunut järjestelmä ei sisällä ohjelmointityökaluja eikä laitteistoresursseja Ohjelmistot kehitetään muussa ympäristössä -> ristikäännös Sulautetut järjestelmät 7
8 Ohjelmointityökalut Ristikääntäjä Gcc tai muu kääntäjä Muut työkalut Assembler, yhdistelijä, yms Ajoajan kirjastot, esim C-kielessä kielen tuki C-standardikirjasto IO-kirjasto käyttöjärjestelmätuki Sulautetut järjestelmät 8
9 Kielentuki Suorituksen kannalta välttämättömät rutiinit, C-kielessä esim. kertolasku arkkitehtuureille joissa ei käskynä Käynnistysrutiinit, joilla kontrolli siirtyy ohjelmaan Sulautetut järjestelmät 9
10 C-standardikirjasto Ohjelmoijalle tutut rutiinit, joita C-kielessä käytetään (malloc, printf, strlen,... ) Jakautuu kolmeen ryhmään laiteriippumattomat (strlen, strcpy,... ) yleinen IO (printf, sprintf,... ) käyttöjärjestelmä rajapinta ( fopen, signal,... ) Sulautetut järjestelmät 10
11 IO-kirjasto laitekohtainen IO-toiminto, useimmiten merkki-io (getchar, putchar,... ) käytetään joko suoraan tai standardikirjaston kautta Sulautetut järjestelmät 11
12 Muuta Newlib on kirjastopaketti, joka sisältää C- standardikirjaston kevennetyn version. kirjaston vaatima käyttöjärjestelmätuki on minimoitu tavoitteena helpottaa sovellusten siirtoa sulautettuihin (tai muihin pieniin) järjestelmiin Sulautetut järjestelmät 12
13 Käyttöjärjestelmätuki laitteisto- tai sovelluskohtaiset rutiinit käyttöjärjestelmän emulointiin C-standardikirjasto odottaa joidenkin käyttöjärjestelmärutiinien olemassaoloa esim. fopen open emulointi tai kj (jos sellainen on) tarpeen yhteensopivuuden nimissä, jos halutaan sovittaa standardisovelluksia sulautettuun ympäristöön Sulautetut järjestelmät 13
14 Ohjelmointityökalut Kääntäjä (C, C++, Java, tms. ) assembler (gas,... ) yhdistelijä (gld,... ) muut työkalut nm, ar, objdump, objcopy,... Debuggeri (gdb, ) Sulautetut järjestelmät 14
15 Kääntäjä useimmiten gcc (tai sen variantti) tuottaa symbolista konekoodia (.s) Sulautetut järjestelmät 15
16 assembler arkkitehtuurikohtainen symbolisen konekoodin kääntäjä objektikoodiksi (.o) usein näkymätön vaihe käännöksessä objektikoodi paikastariippumatonta Sulautetut järjestelmät 16
17 yhdistelijä yhdistelee objektikoodit erilähteistä (ohjelmoija, kirjastot) valmiiksi tulostiedostoksi sitoo ohjelman sijoittelun muistiin poimii koodialueet yhteen läjään dataalueet toiseen, jne Sulautetut järjestelmät 17
18 Ohjelmointityökalut *.c *.s *.o exe? käännös, assembly, yhdistely, entä sitten? Miten sulautetussa järjestelmässä koodi saadaan muistiin? Sulautetut järjestelmät 18
19 Muistinkäyttö sulautettu järjestelmä staattinen ohjelma sijoitetaan suoraan muistiin, ei massamuistia ohjelmoijan kerrottava eri tarkoituksiin käytettävissä olevat muistialueet (Flash)ROM, RAM, etc... lisäksi koodi on saatava muistiin oikeaan paikkaan ja käynnistettyä Sulautetut järjestelmät 19
20 Ohjelman lataus jos järjestelmä aivan tyhjä, erillisellä ohjelmointilaitteella luodaan ohjelmarom yleensä laitteistoissa on jonkinlainen ohjelma valmiina ( bootrom, bios, etc... ) AVR-prosessori: muistissa valmiina flashohjelmointi (vrt: PC-bios päivitys) tämä osaa ladata/käynnistää koodin Sulautetut järjestelmät 20
21 Ohjelman lataus pelkkä sovellus kaikki tehtävä itse bios olemassa bios tekee perus alustuksen, käynnistää sitten sovelluksen sovellus flashmuistissa, josta bios sen tunnistaa ja osaa käynnistää tai configuraatio eeprom (vrt. PC-bios) joka kertoo, mistä sovellus löytyy Sulautetut järjestelmät 21
22 Ohjelman lataus aina koodia ei haluta ajaa ROM pohjalta, silloin siirto RAM-muistiin ja suoritus sieltä testausvaiheessa käynnistys usein eri tavalla kuin lopullisessa järjestelmässä Sulautetut järjestelmät 22
23 Muistettavaa koodi läsnäolevaa (resident), ei erillistä latausta käynnistyksessä mitä mahdollinen bios alustaa, mikä jää sovelluksen tehtäväksi lopullinen vs. testaus, onko tilanteessa eroja Sulautetut järjestelmät 23
24 Ohjelmointityökalut gnu binutils sisältää edustavan joukon erilaisia ohjelmia, joita saattaa sulautettua järjestelmää ohjelmoidessa tarvita miten saat ohjelmasi kohdejärjestelmään? download-mekanismit, tiedostomuodot bootstrap Sulautetut järjestelmät 24
25 Ohjelmistotestaus Simulaattori olisi kiva, ettei tarvitse aina ajaa testiä kohdelaitteistossa Onko kohdelaitteisto olemassa ohjelmaa tehtäessä? Tarvitaanko laitteistoon tukea testaukselle debug-portti tms Sulautetut järjestelmät 25
26 Testaustyökalut Logiikka-analysaattori Oskilloskooppi Emulaattorit prosessorille eprom-emulaattori Sulautetut järjestelmät 26
27 Ohjelmistoarkkitehtuurit Silmukka Keskeytysohjattu Prosessipohjainen Sulautetut järjestelmät 27
28 Silmukka pienten järjestelmien ydin yksinkertainen vaikkapa näppäimistö voisi olla tällainen Sulautetut järjestelmät 28
29 Silmukka Sopii järjestelmiin, joissa ei ajoitusvaatimuksia tehdään vai yhtä asiaa tai pieniä peräkkäin pyörii prosessorin sallimalla vauhdilla Start: jsr _Init clra loop: out a,scanreg in ScanReg,b and #1,b beq nokey jsr SendCode nokey: add #2,a jmp loop Sulautetut järjestelmät 29
30 Silmukka jos tarvitsee tehdä montaa asiaa lomitettuna ja ajoitettuna, hankaluudet alkavat loop: JSR eka JSR tokan_alku JSR eka JSR tokan_loppu JMP loop Sulautetut järjestelmät 30
31 Silmukka jos ajoitus silmukan keston avulla laske syklejä, silmukka oikean kestoinen if:n eri haarat saman kestoisiksi Sulautetut järjestelmät 31
32 Keskeytysohjattu ydin Keskeytys, mikä se on? Asynkroninen aliohjelmakutsu Keskeytysmekanismia käytetään Oheislaitteiden palvelupyyntöihin Poikkeustilanteiden käsittelyyn Käyttöjärjestelmäkutsujen tekemiseen Sulautetut järjestelmät 32
33 Keskeytysmekanismeja Suora, siirry osoitteeseen X Vektoroitu, Siirry osoitteeseen, joka löytyy keskeytysvektorin alkiosta N N on keskeytyksen tyypin mukaan määräytyvä tai oheislaitteen antama tunniste Suorita käsky, jonka oheislaite antaa (8085) Sulautetut järjestelmät 33
34 Toiminto keskeytyksen tullessa Talletetaan prosessorin tila yleensä PC + tilarekisteri, useimmiten myös keskeytykset kielletään talletus pinoon tai erikoisrekistereihin myös muuta voidaan tallettaa Pino talletuspaikkana sallii sisäkkäiset keskeytykset, eli keskeytys voidaan keskeyttää Rekisteriä käyttävissä arkkitehtuureissa tarvitaan lisätoimenpiteitä, mikäli näin tällaista halutaan Sulautetut järjestelmät 34
35 Toiminta keskeytyksen tullessa tilajaollisissa arkkitehtuureissa tilanvaihto USER -> SUPERVISOR paluuta varten oma käsky (RTI) Sulautetut järjestelmät 35
36 mc680x0 Tallettaa ohjelmalaskurin ja tilarekisterin pinoon Kysyy keskeytysvektorin oheislaitteelta Tai käyttää kiinteää vektoria (exceptions tai autovector) Nostaa suoritusprioriteetin keskeytyspyynnön tasolle (siis ei suoraan kiellä kaikkia keskeytyksiä) Siirtyy etuoikeutettuun tilaan Kontrolli vektorin osoittamaan paikkaan Sulautetut järjestelmät 36
37 sparc Tallettaa tilan keskeytyspinoon (kovossa) Pc:t, cwp, asi, ccr, pstate, traptype Siirtyy etuoikeutettuun tilaan Kieltää keskeytykset Siirtyy käyttämään alternate globals rekistereitä Traptype ohjaa kontrollin vektorin kautta Sulautetut järjestelmät 37
38 arm Siirtyy käyttämään pyynnön mukaisia rekistereitä Tallettaa ohjelmalaskurin R14 rekisteriin Tilarekisteri ohjelmalaskurissa Kieltää keskeytykset Neljä tilaa (user, firq, irq, svc) Kontrolli pyynnön mukaiseen osoitteeseen Sulautetut järjestelmät 38
39 Toiminto keskeytyksen tullessa Kovo tallettaa (yleensä) vain tärkeimmän, ohjelmoijan huolehdittava lopusta itse Keskeytys voi tulla koska tahansa, mikäli keskeytykset sallittu Yleensä vain käskyjen välissä (tai seurauksena) Löytyy arkkitehtuureja, joissa keskeytyksiä käsitellään myös kesken käskyn Sulautetut järjestelmät 39
40 Keskeytys Asynkroninen aliohjelmakutsu Esittelee rinnakkaisuuden prosessoriarkkitehtuureihin Tämä huomioitava sovelluksissa yleensä rekisterien arvojen säilyttävä ennallaan keskeytyksen yli yhteisten muuttujien käsittely Keskeytys vs. tausta Keskeytys vs. keskeytys Sulautetut järjestelmät 40
41 Keskeytysohjattu ydin koostuu taustasilmukasta ja keskeytyspalveluista silmukassa tehdään jotain kiireetöntä varsinainen toiminta keskeytyspalveluissa Sulautetut järjestelmät 41
42 Keskeytysohjattu ydin ajoitetut toiminnot kellokeskeytykseen tapahtumaohjatut toiminnot omiin laitekeskeytyksiin taustasilmukka voidaan ymmärtää silmukkaytimeksi paljoa ei kuitenkaan saa yrittää tehdä samaan aikaan priorisointi, päällekkäiset keskeytykset Sulautetut järjestelmät 42
43 Keskeytysydin prosessorin rekisterit voidaan jakaa kiinteästi eri keskeytyspalveluiden kesken vaatii paljon rekistereitä/vähän tehtäviä Sulautetut järjestelmät 43
44 Keskeytysohjattu ydin ongelma: keskeytyspalvelu ei saa olla pitkä tai keskeytyslatenssi kasvaa keskeytyslatenssi: kauanko aikaa menee palvelupyynnöstä (keskeytys) homman valmistumiseen Sulautetut järjestelmät 44
45 Keskeytysohjattu ydin Ongelma: miten keskeytyspalveluiden välinen prioriteetti määräytyy? Keskeytyspalvelu periaatteessa atominen toiminto Kun se on käynnistynyt, se suoritetaan loppuun, ennen kuin seuraava keskeytys käsitellään Vähemmän tärkeä käsittely voi viivästyttää kiireisempää Sulautetut järjestelmät 45
46 Keskeytys ohjattu ydin Sisäkkäiset keskeytykset voidaan sallia Ohjelmallisesti Laitteistossa Huomioita kontekstit tallettuvat pinomaisesti Ensiksi tulleen keskeytyksen käsittely viivästyy eniten Saattaa johtaa liian pitkiin latensseihin Sulautetut järjestelmät 46
47 Huomioita Ongelma pinomainen (keskeytys)kontekstien talletus Kontekstit puretaan käänteisessä saapumisjärjestyksessä Usein kuitenkin saapumisjärjestys haluttaisiin säilyttää Ratkaisu: Irrotetaan kontekstit pinosta Sijoitetaan ne erilliseen taulukkoon, josta kiireisin valitaan suoritukseen Näin on keksitty prosessiydin Sulautetut järjestelmät 47
48 Prosessiydin ongelma jaetaan joukoksi tehtäviä (funktioita) nämä priorisoidaan ja liipaistaan suoritukseen keskeytyksistä Sulautetut järjestelmät 48
49 Prosessi funktio ja sen konteksti konteksti -> prosessorin tila funktion suoritusaikana konteksti voidaan tallettaa ja ladata Sulautetut järjestelmät 49
50 Prosessiydin periaate joku konteksti ladattuna ja suorituksessa muut odottavat saapuva keskeytys tallettaa aktiivisen kontekstin aktivoi muita konteksteja kiireellisin ladataan suoritukseen Sulautetut järjestelmät 50
51 Prosessiydin prioriteetit voivat olla dynaamisia sulautetuissa järjestelmissä usein staattinen prosessijako kaikki prosessit luodaan alustuksessa yksikään prosessi ei terminoidu Sulautetut järjestelmät 51
52 Prosessiydin valmiita ytimiä saatavilla kaupallisesti reaaliaikakäyttöjärjestelmät VRTX OS-9 psos QNX yms Sulautetut järjestelmät 52
53 Prosessiydin tukee modulaarisia sovelluksia helpottaa ohjelmistokehitystä keskeytysten kautta rinnakkaisuus tulee esiin, käytännön sulautetut järjestelmät kooperatiivisia mekanismit yhteisten muuttujien käsittelyyn Sulautetut järjestelmät 53
54 Rinnakkaisuudesta yksinkertainen tapaus taustaprosessi <> keskeytyspalvelu monimutkaisemmat tapaukset prosessi <> prosessi Sulautetut järjestelmät 54
55 Rinnakkaisuudesta missä mahdolliset ongelmat ovat? yhteiset muuttujat Laiterekisterit Latenssin tuomat ajoitusongelmat koodin vapaakäyntisyys Globaalit muuttujat ovat potentiaalisesti yhteisiä kirjastojen vapaakäyntisyys? Sulautetut järjestelmät 55
56 Rinnakkaisuudesta Ongelmat muuttujien atomisuus 8/16/32-bittiset luvut <> 8/16/32 bittinen arkkitehtuuri muuttujaryhmien konsistenssi kaksi muuttujaa pitää olla synkronisoitu esim. puskurin indeksit vs. merkkien määrä Sulautetut järjestelmät 56
57 Rinnakkaisuudesta Yksinkertainen tapaus lähetyskeskeytys <> (tausta)prosessi keskeytysytimen tyypillinen tilanne keskeytyspalvelu atominen, vain prosessi tarvitsee erillistä huomiota Myös käyttöjärjestelmissä, joissa prosesseilla erilliset muistiavaruudet Sulautetut järjestelmät 57
58 Rinnakkaisuudesta char buf[buflen]; int count = 0; int in = 0; int out = 0; char *TX = TX_REG_ADDR; /* keskeytyspalvelu, kutsutaan keskeytysvektorin kautta */ void OutIntr() { if( count ) { *TX = buffer[out]; out = (out+1) % BUFLEN; count--; } else { DisableOutIntr(); } } /* Tulostusrutiinit, sovellus kutsuu tulostaessaan merkin */ void Putchar( char c ) { DisableInts(); IO_Putc( c ); EnableInts(); } void IO_Putc( char c ) { if( count < BUFLEN ) { buffer[in] = c; in = (in+1) % BUFLEN; count++; EnableOutIntr(); } } Sulautetut järjestelmät 58
59 Rinnakkaisuudesta Keskeytysten oikea-aikainen kielto ratkaisee Sopivilla algoritmeilla tarve voidaan välttää Mikäli arkkitehtuuri sallii Mikäli tilanne sallii Sulautetut järjestelmät 59
60 Rinnakkaisuudesta Monimutkaisempi tapaus lukija-kirjoittaja kahden prosessin välillä eroaa edellisestä sillä, että kumpi tahansa osallistuja on keskeytettävissä yhteisen muistin omaavilla prosesseilla sulautetut järjestelmät, käyttöjärjestelmissä, jotka tuntevat säikeet tuttu kj-kurssilta Sulautetut järjestelmät 60
61 Harjoitustyöstä laitteistona auto, jossa linux-kortti ja sillä apuna 2 AVR-mikrokontrolleria tehtävänä ohjelmoida linux-sovellus ja sille avuksi toiseen AVR:ään apu-sovellus Sulautetut järjestelmät 61
62 Lohkokaavio Sulautetut järjestelmät 62
63 Ohjelmointitekniikoita Ytimien piirteitä Oheislaitteiden käsittelystä Muistinhallinnasta Perustekniikoita Säätöalgoritmeista Sulautetut järjestelmät 63
64 Ytimien piirteitä Silmukkaydin pieniin yksinkertaisiin järjestelmiin ajoitusten tai prioriteettien hallinta hankalaa monoliittinen, hankala modularisoida Sulautetut järjestelmät 64
65 Ytimien piirteitä keskeytysydin jos ei paljoa tekemistä, mutta kovat vasteaikavaatimukset Hankala paljon prosessointia vaativissa tehtävissä Sulautetut järjestelmät 65
66 Ytimien piirteitä Prosessiydin Joustava ja skaalautuva, helpottaa sovelluksen modularisointia pienissä tehtävissä voi kuormittaa liikaa muistettavaa irrottava <> ei-irrottava kiinteä prioriteetit, round-robin vai dynaaminen skedulointi? Sulautetut järjestelmät 66
67 Reaaliaikatehtävä Yleinen muoto task() { init(); for(;;) { do_work(); } } Sulautetut järjestelmät 67
68 Reaaliaikatehtävä Vaihtoehtoinen muoto func() { if(!initialized ) { init(); } else { do_work(); } return; } Sulautetut järjestelmät 68
69 Reaaliaikatehtävät Yleinen muoto prosessiytimissä Vaihtoehtoinen muoto käytössä eiirroittavaa skedulointia käytettäessä, erityisen käyttökelpoinen pienillä prosessoreilla pienissä tehtävissä Sulautetut järjestelmät 69
70 Oheislaitteiden käsittelystä Kyselläänkö vai keskeyttääkö? miten keskeytyksiä hallitaan? keskeytyksen kuittaus tasoherkkä <> reunaherkkä Synkroninen vai asynkroninen muista volatile C-kielessä readonly/writeonly rekisterit päällekkäiset rekisterit varjorekisteri tekniikka Sulautetut järjestelmät 70
71 Muistinhallinnasta paikalliset vs. yhteiset muuttujat pysyvät vs. automaattiset muuttujat Kiinteä vs. dynaaminen varaus Sulautetut järjestelmät 71
72 Muistin käyttö Kiinteät varaukset Pysyvä dynaaminen varaus Dynaaminen varaus/omat muistialtaat Dynaaminen varaus/yhteinen muistiallas Prosessiytimessä pohdittava myös pinon käyttö Sulautetut järjestelmät 72
73 Muistin käyttö int a; main() { int b; int *cp; } cp = malloc(n); Globaali muuttuja Data alueella Funktio Koodi alueella Paikalliset muuttujat Pinossa Dynaaminen muuttuja Varataan data-alueen loppuun (yleensä siellä on ns. heap) Sulautetut järjestelmät 73
74 Koodialue.text Data-alue.data Data-alue.bss Vapaa alue Keko, eli dynaaminen varaus täyttää vasemmalta Pinoalue - stack Pino täyttää oikealta Sulautetut järjestelmät 74
75 Perustekniikoita perinteisesti paljon ohjelmamuistia, vähän datamuistia Aika vs. tila Taulukointi laskennan sijaan Lasketaan etukäteen taulukkoon, esim funktiot kuten sin(), cos(), tan() sopivia uhreja Sulautetut järjestelmät 75
76 Perustekniikoita Puskurointi Kiertävä puskuri tavallinen tekniikka Yksinkertaista muistin uudelleen käyttöä In pointer Out pointer Sulautetut järjestelmät 76
77 Säätöalgoritmeista Peruskäsitteet asetusarvo eli haluttu arvo oloarvo eli mitattu arvo erosuure, edellisten erotus ohjausarvo, mitä laitteelle kerrotaan, jotta erosuure pienenisi Sulautetut järjestelmät 77
78 Säätöalgoritmeista kolme perussäätäjää P-säätäjä I-säätäjä D-säätäjä ja yhdistelmät PI, PD, PID Sulautetut järjestelmät 78
79 P-säätäjä yksikertaisin säätäjä u = K*e + M u, ohjausarvo e, eroarvo K, kerroin M, ohjauksen nolla-arvo Sulautetut järjestelmät 79
80 P-säätäjä Mitä isompi ero, sitä suurempi ohjaus jättää aina pienen virheen sopivilla kertoimilla voi alkaa värähdellä Sulautetut järjestelmät 80
81 I-säätäjä Integroiva säätäjä, perustaa ohjauksen useampaan kuin yhteen eroarvoon u = K * average( e(1) e(k) ) u, ohjausarvo e( n ), eroarvot k, montako huomioidaan K, kerroin Sulautetut järjestelmät 81
82 I-säätäjä ei reagoi pieniin muutoksiin ei asentovirhettä hidas käytetää harvoin yksin Sulautetut järjestelmät 82
83 D-säätäjä Derivoiva säätäjä, perustaa ohjauksen erosuureiden derivaattaan u = K * ( e(n) e(n-1) ) nopea herkkä värähtelemään ei yksinään käyttökelpoinen Sulautetut järjestelmät 83
84 PID-säätäjä Yleissäätäjä P osa huolehtii perussäädöstä D osa tuo nopeutta I osa vaimentaa värähtelytaipumusta saavuttaa asetusarvon, ei virhettä Sulautetut järjestelmät 84
85 Esimerkki Pieni sovellus (worms) Laitteisto MVME133 Mc Mb Ram sarjaportti Valmiina debug rom, joka initialisoi prosessorin ja osaa ladata koodin rammuistiin RAM pohjainen suoritus Sulautetut järjestelmät 85
86 Esimerkki Yksinkertainen ydin Synkroninen vuorottelu, 4 prosessia, ei keskeytyksiä Sulautetut järjestelmät 86
87 Esimerkki Rakenne Initialisointi IO-rutiinit glue -rutiinit, eli liityntä DEBUG-ROMiin Ydin sovellus Sulautetut järjestelmät 87
Arto Salminen, arto.salminen@tut.fi
8. Luento: Laitteiston ohjaaminen Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Säätäjiä P-, I-,D-, PI-, PD-, ja PID-säätäjä Säätäjän valinta ja virittäminen Mittaaminen Johdanto Tavoitteena: tunnistaa
käännösprosessi Kääntäjä Konekielikääntäjä (Assembler) Yhdistelijä (linker) Lataaja (loader)
käännösprosessi Kääntäjä Konekielikääntäjä (Assembler) Yhdistelijä (linker) Lataaja (loader) Kääntäjä Kääntäjän rakenne Perinteinen yksivaiheinen Kääntää suoraan konekoodiksi Käännöksen jälkeen peephole-optimointi
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
Kontrollerin sisäisten komponenttien käytöstä. Vielä vähän asiaa sisäisten lohkojen käytöstä
Mikrokontrollerit Kontrollerin sisäisten komponenttien käytöstä Mikrokontrollerit Vielä vähän asiaa sisäisten lohkojen käytöstä Sulautetussa järjestelmässä laitteiston ominaisuudet hallitaan ohjelmistolla.
OHJ-4301 Sulautettu Ohjelmointi
OHJ-4301 Sulautettu Ohjelmointi (http://www.cs.tut.fi/~sulo/) 5op, to 12-14, TB 109 Arto Salminen, arto.salminen@tut.fi Läpäisyvaatimukset Hyväksytysti suoritetut: Tentti Harjoitustyöt Harjoitustyöt 3
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
4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi
4. Luento: Prosessit ja säikeets Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Prosessi Säikeet Keskeytykset Keskeytyskäsittely Käyttöjärjestelmäkutsut Prosessielementti Prosessin hallinta Suunnittelunäkökohtia
Käyttöjärjestelmät: prosessit
Käyttöjärjestelmät: prosessit 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 Käyttöjärjestelmä
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
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
Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1
"! $# Stallings, Luku 4.1 KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1 %& ()* +,.-0/212321416587912: 12;?5A@ 165 12;
5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen, tommi.mikkonen@tut.fi
5. Luento: Rinnakkaisuus ja reaaliaika Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Perusongelmat Jako prosesseihin Reaaliaika Rinnakkaisuus Rinnakkaisuus tarkoittaa tässä yhteydessä useamman kuin yhden
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).
7. Luento: Ytimet. Tommi Mikkonen,
7. Luento: Ytimet Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Perusydintyypit Pollaavat Keskeyttävät Prosessiydin Valmiina saatavista ytimistä Esimerkki: Linux-ydin Yhteenveto Johdanto Käyttöjärjestelmän
Käyttöjärjestelmät: Virtuaalimuisti
Käyttöjärjestelmät: Virtuaalimuisti 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 Muistinhallinta
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
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,
Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo
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
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,
OHJ-4301 Sulautettu Ohjelmointi
OHJ-4301 Sulautettu Ohjelmointi (http://www.cs.tut.fi/~sulo/) /~sulo/) 5op, to 12-14, 14, TB 109 Tommi Mikkonen, tommi.mikkonen@tut.fi Arto Salminen, arto.salminen@tut.fi Läpäisyvaatimukset Hyväksytysti
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Mikrokontrollerit. Mikrokontrolleri
Mikrokontrollerit S-108.2010 Elektroniset mittaukset 18.2.2008 Mikrokontrolleri integrointi säästää tilaa piirilevyllä usein ratkaisu helpompi ja nopeampi toteuttaa ohjelmallisesti prosessori 4-64 bittinen
Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä
String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1
String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen
Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.
Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja
Luento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivointitietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
9. Luento: Ohjelmistotyö. Tommi Mikkonen, tommi.mikkonen@tut.fi
9. Luento: Ohjelmistotyö Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Johdanto Ristikäännös Testaus ja virheen jäljitys Yleensä Kehitysympäristössä Käyttöympäristössä Laitteiston testaus Iteratiivisesta
Arto Salminen,
4. Luento: Prosessit ja säikeet Arto Salminen, arto.salminen@tut.fi Agenda Prosessi Säikeet Keskeytykset Keskeytyskäsittely Käyttöjärjestelmäkutsut Prosessielementti Prosessin hallinta Suunnittelunäkökohtia
Ohjelmiston testaus ja laatu. Testaus yleistä
Ohjelmiston testaus ja laatu Testaus yleistä Määritelmä Testaus on systemaattinen lähestymistapa ohjelmistoissa esiintyvien virheiden löytämiseksi ohjelmaa suorittamalla. Testattaessa pyritään luomaan
Luento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivaatiotietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite
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
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
Arto Salminen, arto.salminen@tut.fi
3. Luento: Muistin hallinta Arto Salminen, arto.salminen@tut.fi Agenda Mitä väliä? Erityyppiset muistit Ohjelman sijoittelu muistiin Ohjelman sisäinen muistinhallinta Muistinhallintayksikkö Välimuisti
Ohjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
Arto Salminen,
2. Luento: Laitteistorajapinta Arto Salminen, arto.salminen@tut.fi Agenda Arkkitehtuuri Keskeytysjärjestelmä Oheislaiteliitynnät Oheislaitepiirejä Arkkitehtuuri Rekisterirakenteet ja keskeytysjärjestelmä
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
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
Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.
C! Dynaaminen muisti 9.2.2017 Agenda Kertausta merkkijonoista Dynaaminen muisti Valgrind-perusteet ja esimerkkejä Seuraava luento to 2.3. Ei harjoituksia arviointiviikolla 13.2. 17.2. 2 Palautetta merkkijonoihin
Lyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Arto Salminen
7. Luento: Ytimet Arto Salminen arto.salminen@tut.fi Agenda Johdanto Perusydintyypit Pollaavat Keskeyttävät Prosessiydin Esimerkki: Linux-ydin Valmiina saatavista ytimistä Lyhyesti virtualisoinnista Yhteenveto
Tietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
MAA10 HARJOITUSTEHTÄVIÄ
MAA0 Määritä se funktion f: f() = + integraalifunktio, jolle F() = Määritä se funktion f : f() = integraalifunktio, jonka kuvaaja sivuaa suoraa y = d Integroi: a) d b) c) d d) Määritä ( + + 8 + a) d 5
Agenda. Johdanto Säätäjiä. Mittaaminen. P-, I-,D-, PI-, PD-, ja PID-säätäjä Säätäjän valinta ja virittäminen
8. Luento: Laitteiston ohjaaminen Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Säätäjiä P-, I-,D-, PI-, PD-, ja PID-säätäjä Säätäjän valinta ja virittäminen Mittaaminen Johdanto Tavoitteena: tunnistaa
Prosessi perinteisesti
Käyttöjärjestelmät t I Luento 11: SÄIKEETS Stallings, Luku 4.1 Sisält ltöä Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä Säikeen tilat Käyttöjärjestelmän
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
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
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
Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH
Käyttöjärjestelmät t I Luento 11: SÄIKEETS Stallings, Luku 4.1 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 11-1 Sisält ltöä Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden
Luento 5 (verkkoluento 5) Suoritin ja väylä
Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit,
Lisää segmenttipuusta
Luku 24 Lisää segmenttipuusta Segmenttipuu on monipuolinen tietorakenne, joka mahdollistaa monenlaisten kyselyiden toteuttamisen tehokkaasti. Tähän mennessä olemme käyttäneet kuitenkin segmenttipuuta melko
Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä
Tietokoneen rakenne Luento 1 Tietokonejärjestelmä Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista John von Neumann ja EDVAC, 1949 Luento 1-1 Sisältöä Tietokonejärjestelmä KJ:n näkökulma laitteistoon
Luento 8 Ohjelman toteutus järjestelmässä
Luento 8 Ohjelman toteutus järjestelmässä Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit 1 Prosessi (4) Järjestelmässä olevan ohjelman esitysmuoto Järjestelmässä voi olla
Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit
Luento 8 Ohjelman toteutus järjestelmässä Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit 1 Prosessi (4) Järjestelmässä olevan ohjelman esitysmuoto Järjestelmässä voi olla
Tavoite. Monitorit. Monitori Hoare 1974. Monitori. Minimoi virhemahdollisuuksia. Monitori Synkronointimenetelmiä Esimerkkejä
Tavoite Monitorit Andrews 5.1-5.2, Stallings 5.5 Monitori Synkronointimenetelmiä Esimerkkejä Minimoi virhemahdollisuuksia poissulkeminen ohjelmoijan vastuulla P():t ja V():t siellä, täällä ja tuolla -
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ä
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.
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC 12 LOAD R1, =X LOAD R2, X int x =12; symbolin X arvo muuttujan
815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,
Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, sovellusohjelmille ja käyttäjille? 2012-2013 Lasse Lensu
Jakso 8 Ohjelman toteutus järjestelmässä
Jakso 8 Ohjelman toteutus järjestelmässä Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit 1 Prosessi (4) Järjestelmässä olevan ohjelman esitysmuoto Järjestelmässä voi olla samalla kertaa
Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.
Tietokoneen rakenne Luento 1 Tietokonejärjestelmä Ch 1 - Ch 8 [Sta06] Valikoituja paloja John von Neumann ja EDVAC, 1949 TITO-kurssista Luento 1-1 Sisältöä Tietokonejärjestelmä KJ:n näkökulma laitteistoon
Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
Jakso 8 Ohjelman toteutus järjestelmässä
Jakso 8 Ohjelman toteutus järjestelmässä Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit 1 Prosessi (4) Järjestelmässä olevan ohjelman esitysmuoto Järjestelmässä voi olla samalla
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
Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit
Jakso 8 Ohjelman toteutus järjestelmässä Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit 1 Prosessi (4) Järjestelmässä olevan ohjelman esitysmuoto Järjestelmässä voi olla samalla
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
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
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?
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?
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
Käyttöjärjestelmät: poissulkeminen ja synkronointi
Käyttöjärjestelmät: poissulkeminen ja synkronointi 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
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
KYMENLAAKSON AMMATTIKORKEAKOULU
1 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Ole Halonen GNU-ohjelmointityökalut Linux-järjestelmät 206101310 Seminaarityö 22.11.2012 2 Sisällysluettelo 2 1 Johdanto
Jakso 8 Ohjelman suoritus järjestelmässä
Jakso 8 Ohjelman suoritus järjestelmässä Prosessi PCB I/O:n toteutus 1 Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä samalla kertaa järjestelmässä voi suorituksessa monta prosessia
Jakso 8 Ohjelman suoritus järjestelmässä
Jakso 8 Ohjelman suoritus järjestelmässä Prosessi PCB I/O:n toteutus 1 Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä samalla kertaa järjestelmässä voi suorituksessa monta prosessia
CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen
CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden
Väli- ja loppuraportointi
Väli- ja loppuraportointi Hyvän raportin merkitys hankkeen tulosten kuvaamisessa Sari Ahvenainen ESR-koordinaattori 25.5.2011 Uudenmaan ELY-keskus Väliraportti (1/8) Miksi väliraportti tehdään? - Tarkoituksena
2.2 Täydellinen yhtälö. Ratkaisukaava
. Täydellinen yhtälö. Ratkaisukaava Tulon nollasäännöstä näkee silloin tällöin omituisia sovellutuksia. Jotkut näet ajattelevat, että on olemassa myöskin tulon -sääntö tai tulon "mikä-tahansa"- sääntö.
OHJ-1151 Ohjelmointi IIe
Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-1151 Ohjelmointi IIe Harjoitustyö Tomaattisota Välipalautus / Loppudokumentaatio Assistentin nimi Välipalautusaika (päivä ja kellonaika) ja
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
Laitteistonläheinen ohjelmointi
Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Harjoitustyö: Mikko Vulli Esituedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali: luentomoniste
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann
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
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
6. Luento: Skedulointi eli Vuoronnus. Tommi Mikkonen, tommi.mikkonen@tut.fi
6. Luento: Skedulointi eli Vuoronnus Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Peruskäsitteet Skedulointialgoritmeja Reaaliaikajärjestelmien skedulointi Skeduloituvuuden analysoinnista Yhteenveto Peruskäsitteet
Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Graafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi
Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa
ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö
3. Luento: Muistin hallinta. Tommi Mikkonen,
3. Luento: Muistin hallinta Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Erityyppiset muistit Ohjelman sijoittelu muistiin Ohjelman sisäinen muistinhallinta Muistinhallintayksikkö Välimuisti Yhteenveto
Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti
Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan
Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)
Jakso 8 Ohjelman suoritus järjestelmässä rosessi CB I/O:n toteutus rosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä samalla kertaa järjestelmässä voi suorituksessa monta prosessia joko
Luento 5 (verkkoluento 5) Suoritin ja väylä
Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1 Suoritusaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit,
Esimerkkejä derivoinnin ketjusäännöstä
Esimerkkejä derivoinnin ketjusäännöstä (5.9.008 versio 1.0) Esimerkki 1 Määritä funktion f(x) = (x 5) derivaattafunktio. Funktio voidaan tulkita yhdistettynä funktiona, jonka ulko- ja sisäfunktiot ovat
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko