Videod

1. video

CPU – Central Proccessing Unit

Arvuti aju.
GHz – Giga (miljard) Hertz (korda sekundis)

Scott CPU

Pinnide kaudu emaplaadi külge.
RAMis on kõik andmed, mis on protsessoris kasutusel.
Programm saadab info RAMile, mida tal vaja on ja RAM saadab siis selle.

Instructions – juhised:

  • LOAD – number RAMist
  • ADD – liida 2 numbrit kokku
  • STORE – number CPUst RAMi
  • COMPARE – võrdleb ühte numbrit teisega
  • JUMP IF – kui mingi tingimus on täidetud, siis saadab teisele aadressile RAMis
  • JUMP – saadab teisele aadressile RAMis
  • OUTput – seadmele, mis ootab infot (monitor)
  • INput – seadmele, mis annab infot (klaviatuur)

CPU sisu:

  • Control Unit
  • Arithmetic Logic Unit (ALU)
  • Registers

Emaplaat ühendab komponendid BUSidega kokku.
Kõvakettast liigutatakse vajalikud andmed RAMi, et seda kiiresti kasutada.

2. video

Operatsioonisüsteem on programm, mis vahendab arvuti kasutajat ja arvuti riistvara. Selle eesmärk on lihtsustada arvuti kasutamist kasutaja jaoks. Mida kaugemal asub seade emaplaadist, seda aeglasem see on e kui seade ei ole emaplaadi küljes, on see aeglane.

Arvuti võib jagada neljaks komponendiks:

  • Riistvara – HDD, RAM, CPU jms
  • Operatsioonisüsteem – vahendaja riistvara ja kasutaja vahel
  • Programmid – brauserid, mängud jms
  • Kasutajad – inimesed, masinad jms

OS on:

  • ressursside juhtija
  • kontrollprogramm

Kernel on programm, mis töötab kogu aeg kui arvuti töötab. Teised on OSi programmid või programmide programmid.

Bootstrap programm läheb tööle siis, kui arvuti tööle läheb. Hoitakse ROMil, tuntud kui firmware. Vaatab üle, mis arvutis on ja edastab info kernelile ja OSile.

Lisaks veel palju nalja ja näiteid, paralleele päris eluga.

3. video

OS käivitab erinevaid programme:

  • Batch system – tööd
  • Time-shared systems – kasutaja programmid ja tööd

Protsess – programm, mis töötab; protsessid peavad töötama järjekorras.

Protsess sisaldab:

  • Programmi loendurit
  • Kogumit
  • Andmete sektsioon

Protsessi staatus:

  • new – protsessi tehakse
  • running – juhiseid täidetakse
  • waiting – oodatakse mingi tingimuse täitumist
  • ready – valmis töötama protsessoris
  • terminated – protsess on lõpetanud oma tegevuse

Protsessi kontrollplokk – PCB:

  • Protsessi staatus
  • Programmide loendur
  • CPU registrid
  • CPU scheduling info
  • Mäluhalduse info
  • Accounting info
  • I/O staatuse info

CPU ajastuste järjekorrad:

  • Töö järjekord – kõik protsessid süsteemis
  • Valmis järjekord – protsessid peamälus, valmis töötama
  • Seadme järjekord – protsessid ootavad I/O seadmelt infot
  • Protsessid võivad nende vahel liikuda

Ajastused:

  • Pikaajaline ajastus (töö ajastus) – valib protsessid, mida tuua valmis järjekorda (aeglane)
  • Lühiajaline ajastus (CPU ajastus) – valib protsessid, millega töötada järgmisena (Kiire)

Protsessid:

  • I/Oga seotud – kulutab rohkem aega sisend/väljundi kui arvutustega, palju lühikesi CPU kasutusi
  • CPUga seotud – kulutab rohkem aega arvutamisele, vähe ja pikki CPU kasutusi

Protsessi loomine:

  • Ressursside jagamise võimalused:
    • Vanem- ja lapsprotsessid jagavad kõiki ressursse
    • Lapsed jagavad osa vanemressurssidest
    • Vanem- ja lapsprotsessid ei jaga ressursse
  • Tööle panemine:
    • Vanem- ja lapsprotsessid täidetakse kõrvuti
    • Vanem ootab kuni lapsprotsess on lõpetatud

Koostööd tegevad protsessid:

  • Iseseisvad protsessid – ei saa mõjutada ega olla mõjutatud teiste protsesside poolt
  • Koostööd tegevad protsessid – saavad mõjutada ja olla mõjutatud teiste koostööprotsesside poolt
  • Koostöö eelised:
    • info jagamine
    • arvutused kiiremad
    • modulaarsus
    • mugavus

Sünkroneerimine:

  • Blokeerimine on sünkroonis
    • Blocking send – hoiab saatmist kinni, kuni sõnum on saadud
    • Blocking recieve – hoiab vastuvõtjat kinni, kuni sõnum on saadetud
  • Mitteblokeerimine on mittesünkroonis
    • Non-blocking send – laseb saatjal saata sõnumi ja minna siis edasi
    • Non-blocking recieve – laseb vastuvõtjal saada sõnumiga või tühja sõnumi (null)

Puhverdamine:

  • tühi maht – saatja peab ootama vastuvõtjat
  • piiratud maht – saatja peab ootama kui maht on täis
  • piiramatu maht – saatja ei pea kunagi ootama

4. Video

Programm peab olema toodud kettalt mälusse ja paigutatud protsessi. Peamälu ja registrid on ainsad kohad, kuhu CPU saab otse ligi. Registrile ligipääs ühes CPU clockis (või vähem). Peamälu saab võtta endale mitu tsüklit. Vahemälu asub peamälu ja CPU registrite vahel. Mälu kaitse on vajalik, et töö korrektsus oleks tagatud.

Loogiline ja füüsiline aadress:

  • Loogiline – genereeritud CPU poolt, ka virtuaalne aadress
  • Füüsiline – nähtav mälu poolt

Swapping – saalimine:

  • Protsessi saab panna ajutiselt “backing store”i ja siis tuua tagasi täitmisele
  • Backing store – kiire ketas, kus on piisavalt ruumi, et mahutada ära ära pandud protsessid

Dünaamiline hoiustamine:

  • First-fit – võtab endale esimese piisavalt suure osa
  • Best-fit – allutab väikseima osa, mis on piisavalt suur, kuid peab otsima terve nimekirja, kui pole just suuruse järgi sorteeritud
  • Worst-fit – allutab suurima osa, peab otsima läbi terve nimekirja

Jagatud lehed:

  • Jagatud kood
    • Üks koopia lugemiseks mõeldud koodi jagatud protsessidele
    • Jagatud kood peab olema samas asukohas kõigi protsesside jaoks
  • Privaatne kood ja andmed
    • Iga protsess hoiab eraldi koopiat koodist ja andmetest
    • Lehed privaatse koodi ja andmete jaoks võib olla ükskõik kus

Lehe tabeli struktuur:

  • Hierarhiline
  • Hashitud
  • Inverditud

Segment on näiteks:

  • peaprogramm
  • protseduur
  • funktsioon
  • meetod
  • objekt
  • kohalik, üldine muutuja
  • levinud plokk
  • virn
  • sümboli tabel, massiiv

Segmentimise arhidektuur:

  • Segmendi tabel – kirjas füüsilised aadressid 2Ds, iga tabel sisaldab:
    • baasi – sisaldab füüsilist aadressi, kus segment mälus asub
    • limiiti – kirjeldab segmendi pikkust
  • Segmenditabeli baasregister (STBR) – näitab segmendi asukohale mälus
  • Segmenditabeli pikkuse register (STLR) – näitab segmendi arvu, mida programm kasutab
  • Kaitse
    • Iga sissekanne segmenditabelis on seotud:
      • Kinnitamise bit – kui see võrdub nulliga, siis segment on illegaalne
      • Lugemis-/Kirjutus-/Käitamisõigused
  • Kaitsebitid seotud segmentidega. koodi jagamine toimub segmendi levelil
  • Kuna segmendid erinevad pikkuses, mälu allutamine on dünaamilise mäluallutuse probleem

Jällegi palju näiteid, seekord Intel Pentiumi näol.

Fail ja failisüsteem

Mis on fail? – Fail on loogiline andmekogum

  • Korrastamata/vormindamata – lihtsalt sõnade jada
  • Korrastatud/vormindatud:
    • Lihtsad kirjed – eri tüüpi andmete kogum, kasutatakse tervikuna
    • Keerukamad süsteemid – võivad sisaldada vorminguid: font, reavahed jms

Video, heli jms on ainult kahendsüsteemis. Kui sa vaatad videot, siis sa näed ainult kahendsüsteemi massi.

Faili omadused:

  • Olemas nimi – inimese jaoks
  • Faili tüüp – arvutis palju
  • Asukoht seadmel/kettal – viit – link, mis viitab mäluasukohale, antud juhul ketta asukohale
  • Suurus
  • Kaitse- või loabitid – õigused ja load, tegevused, kes mida teha võib
  • Ajatempel
  • Kasutajainfo
  • Faili kohta käiv info alati kaustastruktuuris

Operatsioonisüsteem hoiab avatud failist koopiat kuskil Temp kaustas.

Faili nimi on seotud ja faili laienditega. Enamasti on Windowsis faililaiendid välja lülitatud. Windowsis käivitatavad failid .exe, tekstifailid .txt, binary failid .bin jne.

Kõige esimestes arvutis polnud kaustasüsteeme, kõik failid olid ühes kohas. Kuid kuna failide arv arvutis võib olla väga suur, tekkis vajadus faile kuidagi sorteerida. Seetõttu jagati failid osadeks kaustadesse.

  • Juurkataloog (Windowsis C:)
    • Alamkataloog 1
      • Veel alam kataloog 1
    • Alamkataloog 2
      • Veel alam kataloog 2 jne

Info, mis paikneb ketta kaustas/failis:

  • Current lenght – hetke suurus
  • Maximum lenght – maksimum suurus
  • Ajatemplid – millal loodud, millal muudetud/uuendatud jne
  • Kasutajatunnused/-info
  • Kaitseinfo
  • Kasutajastatistika – kogutakse, et parandada toodet

Arvuti

Arvuti ei ole enam mänguasi, selle eesmärk on mingit protsessi või seadet juhtida.

Vood -> Arvuti -> Vood: Toimub pidev andmevahetus, tehnosuhtlus.

Modem = Modulate + Demodulate
NIC – Network Interface Card – võrgukaardi lühend
Sensor – tajur
Controller – kontroller

Erinevused I/O seadmetes:

  • Data rates – andmeedastuskiirus – tohutud kiiruste erinevused erinevates seadmetüüpides
  • Application – rakendus –
  • Complexity on control – juhtimise keerukus
  • Unit of transfer – info ülekandmise ühik
  • Data represations – andmete esitamise viis
  • Error Conditions – vigade tingimuste määramine

Põhja- ja lõunasild:

Põhjasild e Memory Controller Hub e MCH – ühendab kiireid seadmeid nagu mälu ja protsessor

Lõinasild e I/O Controller Hub e ICH – ühendab kõik muud aeglasemad seadmed

Arvuti arhidektuuris protsessori ja peamälu kombinatsioon on arvuti aju.

Device driver – seadme ajur

Algoritm – eeskiri

Interrupt e katkestus

Ühesiinilises arvutis on kõik asjad ühendatud ühe siiniga.

  • FIFO – First In First Out
  • SSTF – Short Service time First
  • SCAN
  • C-SCAN – Circualr SCAN
  • N-SCAN
  • P-SCAN

Mäluhaldus

Peamälu

5 põhimõtet:

  • Protsessi isoleerimine – protsessid peavad üksteisest olema eraldatud
  • Automaatne mälu hõivamine ja haldus – kui sa klikid hiirega rakenduse peal, ei pea sa mõtlema, kuhu määlu ta läheb ja mida ta teeb
  • Toetus modulaarsele süsteemile – kõikidel tänapäeva rakendustel on olemas modulaarne toetus
  • Mälu kaitsmine ja juurdepääs – mälule juurdepääs peaks olema ainult neile, kellel peaks sinna ligipääs olema, teisi sisse ei lasta
  • Pikaajaline hoidmine/talletamine – kui näiteks vahepeal arvuti välja lülitada või päev otsa tööl hoida

Programmid peaksid olema toodud mällu ja peaksid olema seotud mäluga, milles nad on.

Protsessor saab kasutada ainult peamälu (RAM) ja protsessori enda registrit (vahemälu/cache).

Registrite poole pöördumiseks läheb aega 1 protsessori takt. RAMi poole pöördumine on aeglane.

Vahemälu paikneb peamälu ja protsessori vahel (vahendab).

Mälu kaitsemehhanisme on vaja rakendada, et tagada tehete õigsust ja tehingute korrektsust.

Mõisted:

  • Frame ehk kaader – kindla pikkusega RAMi plokk
  • Page ehk lehekülg – kindla pikkusega andmeplokk, mis paikneb sekundaarmälus ehk kettal; võib ajutiselt kopeerida kaadrisse
  • Segment – muutuva pikkusega andmeplokk, mis paikneb sekundaarmälus

Virtuaalmälu

Kettal paiknev puhvermälu. Windowsis “page file”, Linuxis “swap” ehk saaleala. Tavaliselt 1.5x RAMi suurusest

Mäluhaldus on tehtud nii, et mälu saaks rahuldada järgnevaid mehaanisme:

  • Relocation – mälus ümberpaigutamine – swapi liigutamine ehk saalimine
  • Protection – mälu kaitsmine
  • Sharing – mälu jagamine
  • Loogiline mälu organiseerimine
  • Füüsiline mälu organiseerimine

Kui mälu pole PCBs, siis ta pole otseselt täitmisel ja selle võib saalida.

Põhimõtted:

  • Programmeerijale ei anta võimalust mälu hallata

Peamälu jaotatakse dünaamiliselt kindla suurusega tükkideks.

Best fit – parim paigutus, valitakse kõige lähedasema suurusega plokk.
First fit – esimene vaba ruum, kuhu vajalik protsess mahub
Next fit – alustab skannimist viimase paigutuse asukohast ja valib järgmine piisavalt suure ploki

Buddy system – kasutatakse kahte hõivamismeetodit korraga

  • Fixed,
  • Dynamic skeemid

Virtual Machine

 


Töötava protsessi juhtbloki andmestruktuuri vaatamine
Kohaliku tuuma „debugging“ käivitamiseks WinDbg-ga tuleb valida File menüüst Kernel Debug, valida Local vaheleht ja klikkida OK. Avaneva akna allosas peaks olema viip lkd> ja aknake, kuhu saab käske tippida. Käskusid saab vaadata Debugger.chm failist (abiinfo fail), lisaks saab kasutada dt (display type) käsku ca 1000 parameetriga. Kernel sümbol fail on vaja enne seadistada.
Kerneli struktuuride tüübi info saab käsuga dt nt!_*
Katkestuste objekti struktuuri saab käsuga dt nt!_*interrupt*:, selle väljundi esimene rida on „nt!_KINTERRUPT, selle sisu saab omakorda vaadata dt nt!_KINTERUPT: käsuga jne. Alamstruktuuride vaatamiseks peaks lisama võtme –r.
Aktiivsete protsesside (eprocess) struktuuride vaatamine: dt nt!_eprocess. Väljundi esimene rida on pcb, selle struktuuri saab vaadata dt _kprocess käsuga
Käsl !process ilma konkreetse mäluaadressita näitab ühetuumalise protsessori korral parasjagu täitmisel olevat protsessi CPU 0 –s, milleks on WinDbg ise
Protsessi keskkonnablokk (PEB) paikneb kasutajamoodi aadressruumis. Ta sisaldab infot, mida on vaja kujutise (image) laaduril, kuhjahalduril (heap manager) ja teistel Windows komponentidel, millised peavad ta poole pöörduma kasutajamoodis. Mingi kindla protsessi PEB vaatamiseks on vaja anda käsk !peb koos mäluaadressiga 16-süsteemis. Protsesside aadresside leidmiseks peab File menüüst valima Attach To A Process valiku. Valige Csrss ja kasutage tema aadressi !dp v käsus. W32PROCESS vaatamiseks: dt win32k!_W32PROCESS (aadress lisada)
Eksperiment lk 387-391 koopia kuni 407
Lõime struktuuride vaatamine: dt nt!_etread ja edasi dt nt!_ETREAD Tcb. Mingi protsessilõimede vaatamiseks peaks kasutama kõigepealt !process käsku, valima sealt lõime ja kasutama siis !thread käsku, lõime keskkonnablokki saab vaadata !teb käsuga

Capture

Capture