PROCEDURE sumto(n:INTEGER): tõestatavad.Kuidas keeles X kirjutatud programmi 1973 - Ethernet (arvutid traatidega yhenduses) INTEGER; täidetakse? Pea silmas, et: arvuti suudab täita (Metcalfe). VAR sum,i:INTEGER; ainult masinkoodis programme. On olemas kaks 1974 - ALTO personaalarvuti(Xeroxilt) suur mõju põhivarianti keeles X programmi BEGIN täitmiseks.Kompileerimine: masinkoodis programm microsoftile ja macintoshile
1845-1918 elas, Hulgateooria: Georg Cantor. 1989 – inteli 80486, AOL(America online) Applile 7.smto,python Pea silmas, et: arvuti suudab täita ainult masinkoodis programme. On olemas kaks ja MACile. Python!! Python põhivarianti keeles X programmi 1920…Enigma kodeerimiseks – Saksa täitmiseks.Kompileerimine: masinkoodis
Kõrgkeeled on erineva abstraktsusastmega: Masinalähedane ja Opsüsteemi põhieesmärgid: ebamugav: Fortran, C (portaabel assembler), Abstraktsem ja Pakkuda programmeerijale valmistehtud standardtükke. mugavam: Lisp, Ada, ML, Java, Python Võimaldada kasutajal arvutis ühtemoodi ja harjumuspäraselt tegutseda, sõltumatult sellest, mis Kompileerimine: masinkoodis programm nimega kompilaator programmid tal arvutis on. teisendab keeles X programmi masinkoodfailiks Y. Seejärel Miks opsüsteem? täidetakse saadud masinkoodis programm Y. Näide: C. Arvutit saaks programmeerida ka ilma opsüsteemita. Sel juhul: oleks iga programmi tegemine palju raskem kui opsüsteemi Interpreteerimine: masinkoodis programm nimega interpretaator olemasolu korral
lrhuras. kormtas_ .jagas nUgaVaID: Usp, Ada, ML, Java, Python I VSimaldada kasutajal aryutis ohtmoodi ja harjumusparasell tegutseda, s6ltumatuli 6ellest. mis Kompilerimirer masinkoodis programm nimega kompilaator programmid lal arvutis on. I 7 1.1 Kir.itrtusnilsin. Hcnn, Mill. teisndab keeles X programmi masihkoodtailiks Y. Seeja.el Mika op6ustes? Uidetakse 6aadud masinkoodis programm Y. Niiide: C
skanner, kõlarid, puhvertoiteallikas ehk UPS Emaplaat Emaplaat on elektroonikaseadmetes, eriti mitmesugustes arvutites peamine trükkplaat, mis ühendab elektriliselt omavahel erinevaid arvutikomponente ja millele enamasti kinnituvad pistikud täiendavate komponentide ja lisaseadmete ühendamiseks. Protsessor Protsessor on loogikaskeem, mis interpreteerib ja täidab masinkoodis antud käske ning koosneb vähemalt käsuseadmest ja aritmeetika-loogikaseadmest Keskprotsessor on arvuti osa, mis täidab arvutiprogrammide juhiseid ning on peamine vahend arvuti ülesannete täitmisel. Mälu Arvuti mälu on arvuti komponent, ajutine koht, kuhu arvuti salvestab andmeid binaarkujul ning mälu mahtu mõõdetakse baitides. Kõvaketas on magnetketas, kuhu on võimalik talletada suures koguses informatsiooni.
Iga programm vajab andmeid. Teistest keeltest erineb assembler selle poolest, et alamäluga piirdudes võib olla vajalik kõikide muutujate deklareerimine koos segmentidega, 6 kus nad asuvad. Kaitstud reziimis olles toimub kõik teise loogika järgi, siis on kogu mälu vaadeldav ühe suure tükina ja adresseerimine on täiesti lineaarne. Muutujate defineerimiseks on kasutusel käsud, millel masinkoodis vastet pole, kuid lähtekoodis asuvad nad samas kohas kus instruktsioon. Muutujadeklaratsiooni üldkuju on järgmine: [muutuja nimi] andmetüüp [väärtus], [väärtus],... 7 Assemblerkeele laused Assemblerkeele tekst koosneb lausetest ja iga lause on jagatud väljadeks: märgendiväli käsukoodiväli operandiväli kommendi - ehk kommentaariväli
java,python jne jne).Harilikud valemid, if-then-else jne, a la x=2*y+sin(y); Kõrgkeeled on erineva abstraktsusastmega: Masinalähedane ja ebamugav: Fortran, C (portaabel assembler) Abstraktsem ja mugavam: Lisp, Ada, ML, Java, Python, Peale programmeerimiskeelte on veel hulk muid keeli: Päringukeeled (SQL, RDQL, ....) Kujunduskeeled (HTML, PS, ...) Spetsifitseerimiskeeled (loogikakeeled, UML,) On olemas kaks põhivarianti keeles X programmi täitmiseks. Kompileerimine: masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näide: C. Interpreteerimine: masinkoodis programm nimega interpretaator loeb sisse X keeles faili ja asub seda ridarealt täitma.Näide:vana BASIC Just-in-time compilaator(TSI) Java Keelte erisused: kolm põhiasja Süntaks (kuidas kirjutatakse näiteks if .. then .. else ühes või teises keeles) Semantika ehk tähendus (mida õigesti kirjutatud rogramm
39) Emaplaat- Emaplaat on elektroonikaseadmetes, eriti mitmesugustes arvutites peamine trükkplaat, mis ühendab elektriliselt omavahel erinevaid arvutikomponente ja millele enamasti kinnituvad pistikud täiendavate komponentide ja lisaseadmete ühendamiseks. 40) Kõvaketas- on andmesäilitusseade, mis kasutab andmete talletamiseks pöörlevaid jäiku alumiiniumplaate, mis on kaetud ferrooksiidlakiga. 41) Protsessor- Protsessor on loogikaskeem, mis interpreteerib ja täidab masinkoodis antud käske ning koosneb vähemalt käsuseadmest ja aritmeetika-loogikaseadmest. 42) Aktiivne aken- suvaline kuvaaken, mida parajasti käsitsetakse 43) Rakenda- kasutusele võtma, tegevusse panema44) Rippmenüü- allapoole avanev menüü, millest normaalolekus on näha ainult üks rida 45) Veerupäis- Veeru või nummerdatud hall ala iga veeru ülaosas. 46) Fail- arvuti välismällu salvestatav v. kopeeritav ja sealt kustutatav kindla nimega andmekogum
IT-toote autoriõiguslik kaitse – kaitseb autorit tugevalt, tellijat kaitseb leping IT-toodete vead, IT-hangete vead Hea IT-leping Arvutikuriteod Andmekaitseprobleemid Arvutiprogrammide eripärad arvutiprogramm kui töötav (funktsionaalne) teos on olemuselt keeruline objekt: ◦ abstraktne (mõttelise ja immateriaalse sisuga) ◦ funktsionaalne (tulemuslikult töötav) ◦ virtuaalne (soorituse puhul hoomatav) ◦ digitaalne (masinkoodis) ◦ elektrooniline (programmi sooritatakse elektro-magnetiliste signaalide kaudu ◦ programm on funktsionaalne töötav tervik ◦ autoriõigustega kaitstud Arvutiprogramm on intellektuaalne omand Teos – autorikaitse objekt Tööriist – kasutatakse millegi tegemiseks Toode - müüdav või jagatav vabavarana Teenus - on-line kasutus – garantii, tootetugi, tootearendus, koolitus jms Arvutiprogramm kui toode Eripärad: ◦ kergesti kopeeritav
o sõnaline kirjeldus (peab siiski mahtuma algoritmi def. alla!) o joonis - plokkskeem o algoritmikeel, näit. poolformaalne pseudokeel, millest saab kerge vaevaga tõlkida mistahes (imperatiivsesse) programmeerimiskeelde o joonis - Jacksoni skeem, E-skeem (näide1, näide2), ... o ... · arvutile orienteeritud esitused o programm kõrgtaseme programmeerimiskeeles o programm assembleris või masinkoodis o ... Näide: Eukleidese algoritm kahe täisarvu suurima ühisteguri leidmiseks. 1. Kui teine arv on null, siis anda vastuseks esimene arv ja lõpetada. 2. Leida jääk, mis tekib esimese arvu jagamisel teisega. 3. Asendada esimene arv teisega ja teine leitud jäägiga. 4. Minna sammule 1. Joonised (plokkskeem, E-skeem) public static int syt (int a, int b) { while (b != 0) { int j22k = a % b; a = b; b = j22k; }
Igale protsessile eraldab operatsioonisüsteem ressursid (mälu, protsessori aja ja muud). Protsessid on paralleelsed ja kulgevad erineva kiirusega. Kuigi tavaliselt on operatsioonisüsteemi käsutuses üks protsessor, arvuti interpreteerib samaaegselt mitut protsessi, tehes pidevaid ümberlülitusi protsesside vahel. Igal protsessil on numbriline identifikaator PID, mis eraldab teda teistest protsessidest ja programmifail, mis sisaldab masinkoodis programmi. See fail (käsud) loetakse protsessi käivitumisel põhimalle. Protsessid võivad käivitada oma töös uusi protsesse, mis on selle protsessi alamprotsessid ja sulgeda neid. Protsessid, mis kuuluvad ühele ülesandele on sõltuvas protsessid. Protsessid võivad olla operatsioonisüsteemi omad või rakendusprogrammide protsessid. Protsess käib läbi järgmistest olekutest: Uus (new) protsessi loomine Töötab (running) programmi käske täidetakse
Samas on see kallis. SSD (flash mälu, mälupulgad) on samuti transistoridest, aga aeglane ja odav 7. 15 Päringukeeled (SQL, RDQL, ....) Kujunduskeeled (HTML, PS, ...) Spetsiftseerimiskeeled (loogikakeeled, UML, ....) Parser ehk süntaksianalüüs: süntaksipuu - Parser ehitab mällu süntaksipuu, mida siis edasi töödeldakse Kuidas keeles X kirjutatud programmi täidetakse? Kompileerimine: masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näited: C, Fortran, Go Interpreteerimine: masinkoodis programm nimega interpretaator loeb sisse X keeles faili, teisendab ta nö pseudo-assembleriks / vahekoodiks ja asub seda vahekoodi varianti rida-realt täitma. Näited: Python, PHP, Perl, vanemad Javascripti mootorid jne. NB! Programmi interpreteerimine on ca 10-200 korda aeglasem, kui kompileeritud koodi
programmeerimiskeeled vs kirjelduskeeled, json, html, sql, keelte äratundmine (assembler, fortran, cobol, lisp, C, modula/pascal, python). Mis on data warehouse. Kompileerimine - tõlgib kõrgtaseme keelest masinkoodi (või mingisse nn. vahekoodi, näit. Java baitkoodi) - Kompilaator teeb neist assemblerikeelsed ajutised failid / võtab “source code”i ja tõlgendab selle masinale arusaadavaks koodiks. Masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näited: C, Fortran, Go. Interpreteerimine – masinkoodis programm nimega interpretaator loeb sisse X keeles faili, teisendab ta nö pseudo-assembleriks / vahekoodiks ja asub seda vahekoodi varianti rida-realt täitma. Näited: Python, PHP, Perl, vanemad Javascripti mootorid jne.
andmete vahetamine ja uuendamine. Suvapöördus tähendab seda, et igal mälupesal on oma aadress ja nii lugemiseks kui kirjutamiseks saab pöörduda suvalise aadressi poole. Operatiivmälu on reeglina ajutise iseloomuga, ta pole säilmälu, see tähendab, et kui seadmel vool välja lülitada, siis mälus olevad andmed hävivad. 8.7. Protsessor (CPU)-Protsessor on loogikaskeem, mis interpreteerib ja täidab masinkoodis antud käske ning koosneb vähemalt käsuseadmest ja aritmeetika- loogikaseadmest. Enamasti mõeldakse protsessori all arvuti keskprotsessorit. 26
Masinalähedane ja ebamugav: Fortran, C (portaabel assembler) Abstraktsem ja mugavam: Lisp, Ada, ML, Java, Python, Peale programmeerimiskeelte on veel hulk muid keeli: Päringukeeled (SQL, RDQL, ....) Kujunduskeeled (HTML, PS, ...) Spetsifitseerimiskeeled (loogikakeeled, UML, ....) .... Kuidas keeles X kirjutatud programmi täidetakse? NB! arvuti suudab täita ainult masinkoodis programme. Kaks põhivarianti keeles X programmi täitmiseks. Kompileerimine: masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näide: C. Interpreteerimine: masinkoodis programm nimega interpretaator loeb sisse X keeles faili, kontrollib/ veidi teisendab teda ja asub nö sisekujul varianti rida-realt täitma.
Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel – assembler – masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et protsessori riistvara saaks read täita. Kõrgtaseme keel If n<100 then a:= b High-level language else v[i]:=k[j-1] end; Assembler keel ADD a,b,c
Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et protsessori riistvara saaks read täita. Kõrgtaseme keel If n<100 then a:= b High-level language else v[i]:=k[j-1] end; Assembler keel ADD a,b,c
asukohta ja resultaadi salvestamise kohta põhimälus. XIII. Adresseerimise viisid /235-241/ Käskudes on käsukood, mis määrab tegevuse ja millega võib kaasneda info, kust leida operandid ja kuu salvestada tulemus. Adresseerimisviisid on eri meetodid operandide ja salvestamise koha leidmiseks. Vahetu käsukoodi juurde kuulub kohe operand. Programmi on kirjutatud konstant ja masinkoodis on see käsukoodi juures. Otsene programmis on otseselt määratud operandi asukoht mälus. Operand peab asuma arvuti mälus kindlas kohas, kuhu näitab käsukoodi juures olev aadress. Kaudne käsuga antakse kaasa aadressi aadress ehk kaasa antav aadress näitab operandi aadressi asukohta mälus Autodekrementne seotud pinumällu kirjutamisega PUSH. Vähendatakse pinumälu
alates sektori esimesest baidist. Nihe (B) Maht (B) Selgitus 0x0 0x1B8 Alglaadimise masinkood (boot code) 0x1B8 0x4 Ketta signatuur 0x1BE 0x40 Ketta jaotustabel (partition table) 0x1FE 0x2 MBR-i signatuur (sümbolid koodidega 55 ja AA) Alglaadimise masinkood algab sektori algusest seetõttu, et kui kõvakettalt kästakse süsteem laadida, alustatakse masinkoodi täitmist ketta esimese sektori esimesest baidist. Reeglina on masinkoodis hüpe aktiivse partitsiooni alglaadeplokile (boot block). Ketta jaotustabelis on võimalik kirjeldada kuni 4 partitsiooni, millest ülimalt üks võib olla aktiivne. Partitsioonide kirje maht on 0x10 baiti, seega kirjed algavad nihetelt 0x1BE, 0x1CE, 0x1DE ja 0x1EE. Kirje struktuur on baithaaval esitatud järgmises tabelis. Nihe on võetud kirje alguspunktist. Nihe (B) Maht (B) Selgitus 0x0 0x1 Aktiivsuslipp. Kui väärtus on 0x00, pole partitsioon
Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et protsessori riistvara saaks read täita. Kõrgtaseme keel If n<100 then a:= b High-level language else v[i]:=k[j-1] end; Assembler keel ADD a,b,c
Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo mis vastab väärtusele 1 ja teine pingenivoo mis vastab väärtusele 0.Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et protsessori riistvara saaks read täita. Kõrgtaseme keel If n<100 then a:= b High-level language else v[i]:=k[j-1] end; Assembler keel ADD a,b,c
5. Haarata see sõna, kui tarvis, siis CPU registrisse 6. täita antud käsk 7. mine 1. sammu juurde ja alusta järgmise instruktsiooni täitmist. Nimetatakse seda fetch-decode-execute tsükliks. · RISC - CISC protsessor · CISC - (Complex Instruction Set Computer) selline protsessor võib ühe instruktsiooni raames teha mitu erinevat mikrooperatsiooni. CISC protsessorile kirjutatud programmid on mahult väiksemad ning ühtlasi on neid masinkoodis ka suhteliselt lihtne kirjutada. · RISC - (Reduced Instruction Set Computer) selline protsessor aga toimetabki üksnes võimalikult lihtsate mikrooperatsioonidega. RISC protsessorile kirjutatud programmid vajavad rohkem mälu, sest kõik mikrooperatsioonid tuleb eraldi kirja panna, ühtlasi on selliseid programme masinkoodis ka raskem kirjutada kui CISC- le. RISC Reduced Instruction Set Computer vs CISC Complex Instruction Set Computer