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

OSi protsessi ressursijaotus

http://www.tutorialspoint.com/operating_system/os_process_scheduling.htm

Saalimine:
Medium Term Scheduler

Comparison between Scheduler

S.N. Long Term Scheduler Short Term Scheduler Medium Term Scheduler
1 It is a job scheduler It is a CPU scheduler It is a process swapping scheduler.
2 Speed is lesser than short term scheduler Speed is fastest among other two Speed is in between both short and long term scheduler.
3 It controls the degree of multiprogramming It provides lesser control over degree of multiprogramming It reduces the degree of multiprogramming.
4 It is almost absent or minimal in time sharing system It is also minimal in time sharing system It is a part of Time sharing systems.
5 It selects processes from pool and loads them into memory for execution It selects those processes which are ready to execute It can re-introduce the process into memory and execution can be continued.

Context Switch

FCFS:

First Come First Serve Scheduling Algorithm

SJF:

Shortest Job First Scheduling Algorithm

PBS:

Priority Scheduling Algorithm

RRS:

Round Robin Scheduling Algorithm

MQS:

Multi Queue Scheduling Algorithm

Lõim:

Single vs Multithreaded Process

Lõime on lihtsam luua ja lihtsam hallata kui protsesse.

Mitmelõimelised rankendused ei oma eelist mitmikprotsesside korral.

One to one mudelit enam ei kasutata, see on vana.

Protsess

See läheb käima topeltklikiga. Mõnikord kutsutakse protsessi tööks või ülesandeks.

Ühe töödeldava protsessiga võib olla seotud hulk lõimusid.

PCB – protsessi juhtblokk

SWAP – mälust väljakirjutamise protsess
SWAPPING – mälust välja kirjutamine kettale – saalimine
SWAP SPACE – saaleala

Sessiooni halduse alamsüsteem, mis vastustab kasutaja sessiooni loomise eest.

Koodiread

Debian on tõeline “lego”, seal saab teha, mis sa tahad.

Suuri asju kirjutatakse tänapäeval ikka koos tiimiga, ainult mobiilirakendusi või väiksemaid programme tehakse üksi. Windowsi kirjutamine võtaks ühel inimesel aega umbes 650 aastat.

Mida vähem koodiridu, seda kiiremini OS töötab, enamasti.

Protsessor

CPU – protsessor

PGA – jalakesed

LGA – kontaktplaadid

SOCKET – pesa

SIIN – kontaktide või jalgade komplekt

Protsessor käib emaplaadi socketisse. Mälu koosneb aadressmassiivist.

Turvalisus

On hea, kui küsitakse pidevalt Administraatori parooli. Muidu saaks iga programm teha arvutiga kõike, mis ta iganes soovib. Alates Windows 7-st on Windowsidel alati küsitud paroole.

Kernel

Kernel on OSi tuum, see sisaldab riistvara erisusi.

Riistvara ja tarkvara vahendaja, luuakse konkreetse arvuti jaoks OSi paigalduse käigus.
Tegeleb sisend/väljud päringutega mis tulevad tarkvara poole pealt ja tõlgendab ta need andmetöötluskorraldusteks.

Kernel tegeleb kolme asjaga:

  • CPU (ALU ja FPU)
  • Mälu (Memory)
  • Draiverid (Drivers)

Teegid on standartsed klotsid mida võib eeldada, et ühel või teisel kasutajal vaja võib minna, või et operatsioonisüsteemi tuum saaks tööd teha.

Windowsi kerneli suurus on 25 MB.

 

Operatsioonisüsteemid

Operatsioonisüsteem (OS/OPS) on TARKVARA, mis haldab arvuti ressursse (riistvara ja tarkvara) ja pakub arvutiprogrammidele ja kasutajale tavapäraseid vajalikke teenuseid.

Näiteks Android, Windows, Linux, IOS, OS X jpm. Kõik suuremad OSid põhinevad UNIX’il, va. Windows ja z/OS.

Android on eelkõige mõeldud puutetundlikele seadmetele, põhineb Linux kernelil.

Kernel on OS’i tuum.

Teegid on valmistehtud tarkvara, mis võimaldab meil kasutada vajalikke funktsioone ilma, et me neid ise ümber kirjutama peaks.

Windowsi failisüsteem NTFS.

Kernel on OS’i kõige olulisem osa.

CPU üks osa võib olla ALU ja FPU.

ALU – aritmeetika – loogika protsessor

FPU – ujuvkomaarvude protsessor