esmaspäev, 23. veebruar 2015

Video kokkuvõte 4: Põhi mälu

Tagapõhi(background)

  • Programm peab olema toodud mällu ja pandud protsessi, et ta saaks töötada/käia
  • Põhi mälu ja registrid on ainult ruum, millele on otsene juurdepääs CPUl
  • Põhi mälu saab võtta palju tsükleid
  • Vahemälu on Põhi mälu ja CPU registrite vahel
  • Mälu kaitse on vaja, et tagada korrektne operatsioon

Loogiline ja Füüsiline aadress

-Loogiline aadress - Genereeritud CPU poolt, tuntud ka kui virtuaalne aadress (virtual address)
-Füüsiline aadress - Aadress, mis on nähtav Mälu üksuse poolt


Mälu haldus üksus (Memory-management unit) - MMU

-Riistvara seade, mis kaardistab virtuaalse- füüsiliseks aadressiks.
-MMU skeemis, väärtus, taasasukoha registris on lisatud iga aadressi juurde, mis on genereeritud kasutaja protsessi poolt, kui ta saadetakse mällu.
-Kasutaja programm tegeleb loogilise aadressiga: Ta kunagi ei näe tegelikku( füüsilist) aadressi.


Dünaamiline laadimine

-Rutiini ei laeta seni, kuni seda on kutsutud
- Kasulik kui suur hulk koode on vaja kasutada ebaühtlaselt vastavalt vajadustele.


Dünaamiline linkimine

-Linkimist lükatakse edasi, kuni teostamiseni
-Dünaamiline linkimine on kasulik raamatukogudes
-Süsteem tuntud ka kui jagatud raamarukogud (shared libraries)


Vahetamine

-Protsessi saab vahetada ajutiselt mälust välja tagavara ruumile ja sis tuua tagasi mällu edasiseks teostamiseks
-Tagavara ruum - Piisavalt suur ketas, et mahutada koopiad kõikidest mälu piltidest kõikidel kasutajatel; peab tagama otsese ligipääsu nendele mälu piltidele
-Roll out, roll in - Vahetus variant, mida kasutatakse tähtsuse põhjal järjestatud algorütmidest. Toimib nii, et suurema väärtusega protsess saab esimesena laaditud ja teostatud
-Leidub mitmetel süsteemidel erinevatel kujudel
-Süsteem omab valmis järjekorda, kus on valmis töötamiseks protsessid, millel on mälu pildid kettal

Skeemiline ülevaade vahetusest

Jätkuv jaotus

-Põhi mälu tavaliselt kahes osas:
  • Kohalik OS, tavaliselt hoitakse madala mäluga
  • Kasutaja protsessi hoitakse kõrge mäluga
-Mitmekordne osade jaotus
  • Auk - Blokk vaba mälu
  • Kui protsess jõuab kohale, siis ta läheb jaotatud mälu auku, mis on piisavalt suur, et ta ära mahutada
  • OS omab infot:
    • Jaotatud vaheseinte kohta
    • Vabade vaheseinte kohta(augud)


Video kokkuvõte 3: Protsessid

VIDEO

Protsessi kontsept

-OS täidab varieeruvaid programme:
  • Batch süsteemid - tööd
  • Ajaga jagatud südteemid - kasutaja programmid või ülessanded
-Tekstiraamat kasutab termineid töö ja protsess peaaegu vaheldumisi
-Protsess - Töötav programm, protsessi täide viimine/läbimine/töötamine peab minema järiestikusel viisil
-Protsess hõlmab enda alla:
  • Programmi lugeja
  • Kuhja
  • Info osa

Protsessi olekud:

-Kui programm täidab ülessandeid/töötab, ta vahetab olekut
  • Uus: Protsess luuakse
  • Jooksev/käiv: Juhised antakse edasi
  • Ootav: Protsess ootab mingi sündmuse juhtumist
  • Valmis: Protsess ootab määramist protsessorile
  • Lõpetatud: Protsess on lõpetanud teostamise


Protsessi juhtplokk (PCB)

Informatsioon ühenduses iga protsessiga
  • Protsessi olek
  • programmi loendaja
  • CPU register
  • CPU planeerimise info
  • Mälu haldus info
  • Kasutus info
  • I/O staatuse info

CPU vahetus/lüliti protsessilt protsessile

Protsessi planeerimise järjekorrad:

-Töö järjekord - Kõik protsessid süsteemis
- Valmis järjekord - Kõik protsessid, mis paiknevad põhi mälus ja on valmis teostama ja ootavad seda
- Seadme järjekorrad - Protsessid, mis ootavad I/O seadet
-Protsessi migreerub erinevates järjekordades

Valmis järjekord ja Erinevate I/O seadmete järjekorrad


Protsessi plaanimise esitus

Planeerijad

-Pika ajalised planeerijad: valib, millise protsessi peaks tooma valmis järjekorda
-Lühiajalised planeerijad: Valivad millised protsessid peaksid olema täidetud järgnevalt ja töötab koos CPUga

Lisaks Keskmiseajaga planeerimine

Planeerijad (cont)

-Lühiajalised planeerijad on töötamas väga tihti
-Pikaajalised planeerijad töötavad väga aeglaselt
-Pikaajaline planeerija kontrollib multiprogrameerimise kraadi
-Protsessi võib kirjeldada kui:
  • I/Oga seotud protsess - Läheb rohkem aega I/Ole kui komputeerimist, palju lühikseid CPU lööke
  • CPUga seotud protsess - Veedab rohkem aega komputeerimisel, väga vähe pikki CPU lööke

Konteksti vahetus/aja 

- Kui CPU vahetub teisele protsessile, süsteem peab salvestama vana protsessi oleku ja laadima salvestatud oleku uuele protsessile
-konteksti vahetus aeg on üleliiast, süsteem ei tee mingit kasulikku tööd vahetudes
-Aeg iseseisev riistvara toetusel

Protsessi loomine

-Vanem protsessid teevad laps protsesse, mis omakorda teevad teisi protsesse moodustades protsesside puu
-Ressurside jagamine
  • Vanemad ja lapsed jagavad kõiki ressursse
  • Lapsed jagavad alamhulka vanemate ressurssidest
  • Vanem ja laps ei jaga ressursse
-Teostamine
  • Vanem ja laps teostavad vahelduvalt
  • Vanem ootab, kuni laps on lõpetanud

Protsessi loomine (cont)

Aadressi ruum
  • Laps on vanema duplikaat
  • Lapsel on programm laetud selle sisse
UNIXi näiteid
  • fork süsteem loob(call creates) uue protsessi
  • Exec süsteem kõne kasutatakse pärast forki. et asendada protsess, mälu ruum uue programmiga

Tüüpilises Solaris "tree of processes"



Protsessi lõpetamine


-Protsess täidab oma viimase ülessande ja küsib OSilt enda kustutamiseks luba (väljub)
  • Väljund info lapselt vanemale
  • protsessi ressursid on paigutamata OSi poolt
Vanem võib katkestada lapse protsessi täitmise (katkestamine)
  • Laps on läbinud paigutatud ressursid
  • Ülessanne määratud lapsele pole enam vajalik
  • Kui vanem väljub
    • Mõned OSid lõpetavad kõikide laste tööd ja ka lapsed
Koostöötavad protsessid
  • Iseseisev protsess ei saa mõjutada või olla mõjutatud teise protsessi töötamisest
  • Koostöötav protsess saab mõjutada või olla mõjutatud teiste protsesside töötamisest
  • Protsessi koostöötamise eelised
    • Informatsiooni jagamine
    • Arvutamine kiirendatud
    • Modulaarsus
    • mugavus

Muu protsessi kommunikeerumine (IPC)

-Mehhanism protsessile, et suhelda ja sünkroniseerida oma tegevusi
-Sõnumite süsteem - Protsess suhtleb teineteisega ilma abi otsimiseta jagatud variatsioonidest
-IPC seade tagab kaks operatsiooni:
  • Saatmine (sõnum)
  • Vastuvõtmine(sõnum
-Kui P ja Q tahavad suhelda, vajavad nad: 
  • Paigaldada suhtluslingi nende vahel
  • vahetada sõnumeid saatmise/vastuvõtmise abil
-Suhtlus linkide teostumine
  • Füüsiline(jagatud mälu, riistvara buss)
  • Loogiline(loogilised omadused)

Suhtlus mudelid


Kaudne suhtlus

-Sõnumid on juhitud ja kättesaadavad mailboxidest
  • Igal mailiboxil unikaalne ID
  • Protsessid saavad suhelda ainult siis kui nad jagavad mailiboxi
-Suhtlus linkide omadused
  • Link avaldatakse ainult siis kui protsess jagab sama mailboxi
  • Link võib olla ühenduses paljude protsessidega
  • Iga protsessi paar võib jagada mitut suhtlus linki
  • link võib olla "undirectional" või "bi-directional"

Otsene suhtlus

Protsess peab nimetama igaühe hetketa
  • saatmine(P) - sõnumi saatmine protsessile P
  • Vastuvõtmine (Q) - Võta vastu sõnum protsessilt Q
Suhtlus linkide omadused
  • Lingid avaldatakse automaatselt
  • Link on ühendatud ainult ühe paari suhtlus protsessiga
  • Iga paari vahel eksisteerib ainult 1 link
  • Link võib olla "undirectional", aga on tavaliselt "bi-directional"

pühapäev, 22. veebruar 2015

Video kokkuvõte 2:Operatsiooni süsteemid

Mis on OP süsteem?

OP süsteem - Programm, mis töötab vahendajana arvuti kasutaja ja arvuti riistvara vahel
-OP eesmärk

  • Täita kasutaja programmid ja teha programmide lahendamine lihtsamaks
  • Teha arvuti kasutamine mugavaks
Kõikidel mehhanismidel, mis tõõtavad elektri abiga on OP süsteem.

Arvuti süsteemi struktuur

Arvuti süsteemi võib jagada neljaks komponendiks
  • Riistvara - Tagab põhilised arvutus ressursid
    • CPU, mälu, I/O seadmed
  • OP süsteem
    • Kontrollib ja juhib ümber riistvara kasutuse erinevate aplikatsioonide ja kasutajate vahel
  • Aplikatsiooni programmid - Defineerib viise, milles süsteemi varud on kasutatud, et lahendada arvutus probleeme, mis on kasutajatel.
    • sõna protssesorid, vahendajad vms, veebi browserid, andmebaaside süsteemid, arvuti mängud
  • Kasutajad
    • Inimesed, masinad, teised arvutid

4 komponenti arvuti süsteemis




OS-i definitsioon

OS on ressursside eraldaja
  • Haldab kõiki ressursse
  • Otsustab konflikti taotluse heaks ja õigeks ressursi kasutuseks
OS on kontroll süsteem
  • Kontrollib programmide täitmist, et vältida erroreid ja valesid arvuti kasutus viise
Sellel pole globaalselt aksepteeritud definitsiooni

Üks programm, mis töötab koguaeg on kernel. Kõik teised on, kas süsteemi programmid või aplikatsiooni programm.

Arvuti käivitus

Käivitus programm laetakse käivitumisel või restardil
  • Tavaliselt hoitakse ROMis või EPROMis, tavaliselt tuntakse kui püsivara
  • initsialiseerib kõik süsteemi aspektid
  • Laeb OS kerneli ja alustab täitmist

Arvuti süsteemi organisatsioon

Arvuti süsteemi OP
  • Ühe või enama CPU, seadme kontrollijad ühilduvad läbi (common)bussi tagades ligipääsu jagatud mälule

Arvuti-süsteemi operatsioon

-I/O seadmed ja CPU saavad töötada/täita vms samaaegselt
- Iga seadme juht juhib kindlat seadme tüüpi
- Igal seamde juhil on kohalik buffer
- CPU liigutab infot põhi mällu/ust kohalikult/le buffrilt/le
- Seadme juht teavitab CPUd, et see on lõpetanud OP põhjustades katkemise

Katkemisega toimetulek
-OS säilitab CPU oleku paigutades registreid ja programmi....
-Määrab kindlaks, mis tüüpi katkestusega on tegu
  • Hääletus
  • vektoriseeritud süsteemi katkestus
-Erinevad koodide segmendid teevad kindlaks, mida peaks tegema erinevate katkestuste korral

Katkestuse ajatelg

I/O struktuur

After I/O starts, control returns to user program only upon I/O completion.
Wait instruction idles the CPU until the next interrupt
Wait loop (contention for memory access).
At most one I/O request is outstanding at a time, no simultaneous I/O processing. After I/O starts, control returns to user program without waiting for I/O completion.
System call – request to the operating system to allow user to wait for I/O completion.
Device-status table contains entry for each I/O device indicating its type, address, and state.
Operating system indexes into I/O device table to determine device status and to modify table
entry to include interrupt.

Kaks I/O meetodi





esmaspäev, 16. veebruar 2015

Failid

 Veel infot: Failisüsteemid

Failisüsteem

Uvitav info 

Contigous logical address space- pidev loogiline aadressruum

  • OS abstracts from the physical properties of its storage device to define a logical storage unit called file
  • OS maps files to physical devices - OS loob seosed

 Tüübid

  • andmefailid
  • programmifailid
  • dokumendid

File structure - failide korrastus

  • Korrastamata
  • Lihtsa kirje laadne
    • read
    • kindla pikkusega
    • muutuva pikkusega
  • Keeruka ülesehitusega
    • vorminguga dokument
    • Re-locatable Load FIle
  • Võib simuleerida 2 viimast, kasutades juhtsümboleid
  • Kes määrab?
    • Operatsiooni süsteem
    • Programm

Faili omadused

  • Nimi
    • Inimese jaoks, arvutil pole kasu
  • Tüüp
    • süsteemidele, mis toetavad erinevaid tüüpe
  • Asukoht
    • pointer to a device and to file location and device
  • Suurus
  • Kaitse- või loabitid
    • controls who can read...
  • Ajatempel ja kasutaja
  • Info failide kohta hoitakse kaustastruktuuris

File Operations - tehingud failidega

  • Fail on abstraktne andmetüüp, mis on määratletud:
    • Faili loomine
    • faili kirjutamine
    • faili lugemine
    • failist otsimine
    • faili sisu kärpimine 
    • Konkreetse faili nimega(Fi) avamine
    • konkreetse faili sulgemine 

 Kausta struktuur

*Failide arav arvutis võibolla väga suur
  • Faili süsteemi tükeldamine jaotisteks
  • Info hoidmine kettajaotistel
*Sõlmede tabelid
*Kaustastruktuur ja failid paiknevad kettaseadmel
*Varundisi hoitakse lindiseadmetel

Seadmekaustas asuv info

  • Nimi
  • Tüüp
  • Aadress või asukoht
  • Jooksev pikkus, hetke pikkus
  • Suurim pikkus
  • Ajatemplid
  • Kaitseinfo
    • faili/protsessipõhiselt
      • jooksev asukoht failis
      • Kasutuse statistika

 Kausta operatsioonid

  • Faili otsing
  • Faili loomine
  • Faili kustutamine
  • Kaustade loetelu loomine
  • Faili ümbernimetamine
  • Failisüsteemi läbimine 

Loogilise kaustastruktuuri loomise eesmärk

  • Asukoha kiire määramine
  •  Nimed
    • 2 kasutajat saavad kasutada sama nime erinevatel failidel
    • Samal failil erinevad nimed
  • Grupeerimine tunnuste alusel
    • Omaduste alusel
 

Ühetasandilised kaustad

  • Üks kaust kõigile kasutajatele
  • Probleemile nime andmine ja selle grupeerimine
    • Unikaalsete nimede meelespidamise pr
    • Kasutajate arv kasvuga vajadus unikaalsete nimede kasvuks (pr-probleem)

Kahetasandilised kaustad

  • Loodi kasutajanime pr lahendamiseks
    • esimene tase-kasutajate kaustad
    • teine-kasutaja failid
    • Vajadus määratleda tee
    • Samu failinimesid võivad kasutada eri kasutajad
    • süsteemifaile hoitakse eraldi
    • efektiivne otsimine

 Puukujulised kaustastruktuurid e. kolme tasandilised

  • Suvaline kaustade sügavus
  • otsing +
  • Grupeerimine
  • praegune(töötav) directory
    • cd/spell/mail/prog
    • type list
  • MS-DOS uses tree structured directory

  • Absoluutne ja suhteline tee 
  • uus fail tehakse praeguses directorys
  • subdirectory tehakse ka seal 

Atsüklilise graafi kaustad

  • Mitu absoluutset teed 
  • Failisüsteemi läbimine
  • Kustutamine

Üldise graafistruktuuriga kaustad

  • Kuidas vältida tsükleid
    • allow only links to file not subdirectories
  • kui lingid kasutale, ss lihtne graaf
    • tagada mimitmekordsete teede välistamine
  • viidete arv pole null
    • vajalik prügi korjamise mehhanism (garbage collector)
Acces Methods- Pöördusmeetodid
  • Sequential Pöördus - Jadapöördus
    • read next
    • write next
    • reset
    • no read after last write
  • Direct Access - otsepöördus
    • read n
    • write n
    • position to n
    • read next
    • write next
    • rewrite n

Failide kaitse

  • Omanik reguleerib/redigeerib
    • Mida saab teha?
    • kelle poolt?
  • Type of method - Pääsumeeodid
    • read
    • write
    • execute
    • Append-lõpu lisamine
    • delete
    • list 

Pääsuloendid  ja grupid

  • igale failile
    • probleem - loendi pikkus
  • Lahendus - Pakitud loetelu
    • 3 pääsumeetodit - read, write, execute
    • 3 kasutajate klassi
      • owner acces
      • groups access
      • public users 
    • UNIXis 3 põldu pikkusega 3 biti on kasutatud - UNIX loabitid
      • Põllud on user, group, others
      • Bits are read, write, execute
 

Faili Süsteemi realiseerimine

  • FS ülesehitus
  • Hõivamis meetod
  • Vana ruumi haldus
  • kaustade realiseerimine
  • efektiivsus
  • realiseerimine
  • taastamine 

FS ülesehitus (FS-Faili Süsteem)

  • File structure
      • loogilised salvestus üksused
      •  Infovahetus blokkidena
  • FS kihiline
  • File Control BLock - storage structure consisting information about a file

Faili süsteemide monteerimine

  • Enne kasutamist vaja monteerida kokku
  • Kuutõrvaja FS monteerimine

Kettaruumi hõivamine

  • Madala taseme pääsumeetodid sõltuvad hõivamisskeemist
    • Pidev kettaruumi hõivamine
    • lingitud listi kasutamine
    • blokikaupa hõivamine
Pidev hõivamine
  • iga fail hõivab kettal pideva blokkide grupi
    • lihtne, vajalik algusbloki nr ja pikkus
    • sobib otse- või järjestikpöörduseks
    • kiire ja lihtne taastada
  •  Puudused
    • ruumi raiskamine
    • failid ei saa kasvada
    • ülehinnatakse pinda
  •  Mapping from logical to physical
Lingitud hõivamine
  • Iga fail on määratud loeteluga
    • Hajutatud
    • iga sõlm võib olla 1...n blokki
    • kasutajad ei näe




Indexed allocation - Indekseeritud hõivamine
  • Toob kõik viidad kokku indeksblokki 
  • vajalik indekstabel
  • võimaldab järiestik-, otse- ja indekspöördust



Kaardistamine
  • Loogilise ja füüsilise ruumi kaart kindla pikkusega failis
  • lingitud blokkide skeem
  • mitmetasandilised indeksid
    • suurendab tasandite arvu faili suuruse kasvades
    • faili max suurus piiratud

pühapäev, 15. veebruar 2015

Video kokkuvõte 1

VIDEO
RAM- random access memory

  • RAM koosneb teast aadressidest, igas aadressis on infot.
  • Kui arvuti tööle panna, siis CPU saadab signaali RAMile, et too hakkaks seda programmi tõmbama
  • Kui enable on sees, siis RAM saadab automaatselt ükskõik missuguse informatsiooni aadressi tagasi CPUsse. Seda informatsiooni siis analüüsitakse ja saadetakse tagasi RAMi. See protsess juhtub edasi ja edasi.
  • Kui CPUl on vaja salvestada infot RAMile ta saaadab välja aadressi ja info ning paneb tööle set juhtme

DATA- koosneb ühtedest ja nullidest
  1. Juhised, mis ütlevad CPUle, mida teha
  2. Numbrid, mida saab kokku lisada, võrrelda jne.
  3. Aadressid, mida saab kasutada erinevate asjade jaoks. Näiteks kuhu sa tahaksid kuvada pilti, kas projektorile või monitorile jne.
Instruciton Set
  • LOAD e. LAE- number RAMilt CPUle
  • ADD e. LISA- kaks numbrit kokku
  • STORE e. PAIGUTA/HOIA- Number CPUlt tagasi RAMi
  • COMPARE e. VÕRDLUS- võrdlus kahe numbri vahel
  • JUMP IF condition e. HÜPPA KUI nõue on täidetud - Ühele teisele aadressile RAMil
  • JUMP e. HÜPPA- teisele aadressile RAMil
  • OUTput e. VÄLJUND- seadmele nagu monitor
  • INput e. SISEND- seadmelt nagu klaviatuur
Mis on CPU sees?
  1. 1. osa on kontroll üksus. Tema saab käsklused RAMilt ja siis teeb need eraldi keäsklusteks oma osadele või nö alluvatele.
  2. Kontroll üksuse üks tähtsamaid osi on Aritmeetiline Loogika Üksus (ALU) . ALU teostab kõiki matemaatilisi operatsioone CPUl nagu ennem mainitud on. ALUl on 2 sisendit ning nende kaudu (vist) edastatakse info, missugust operatsiooni teha Kontroll Üksuselt ALUle. ALU teeb operatsiooni ja väljundist saab vastuse. Väljundist läheb vastus registrisse 8 juhtme abil.
  3. REGISTER hoiustab vastuseid ja infot jne. Nad on nagu RAM, ainult et nad on CPU sees, mis teeb nad palju kiiremaks. Infot salvestatakse REGISTRISSE siis, kui Kontroll Üksus paneb tööle oma SET juhtme. Et infot registrist välja saada tuleb mängu ENABLE juhe nagu RAMI juures oli. ENABLE võimaldab info registrist välja saada registri väljund juhtmete kaudu, mis lähevad CPU BUSi.
  4. CPU BUS on juhtmete kogum, mis ühendab erinevaid komponente. CPU BUSiga on ühendatud veel erinevaid registreid, mis omakorda on ühenduses Kontroll Üksusega. Üks plusse CPU BUSi juures on, et saab liigutada numbreid väga kergelt. Miinus on see, et "bussil" saab olla ainult üks number korraga,
  5. Temporary sisend B ALUl võimaldab liigutada numbreid ALUle.
  6. 2. sisend ALUle tuleb otse "bussilt" ning kannab nime A
  7. INSTRUCTION on ise eraldi veel üks register, millel pole vaja enable juhet, sest ta toimib väljundina. Sealt kaudu saab teada ALU, millist protsessi teha.
  8. FLAG- Juhtmed, mis kas lähevad tööle või kinni. Toimivad võrdluse põhimõttel nt: Kui see on suurem kui see, siis...
  9. Et minna järgmise protsessi juurde, on olemas veel üks register, mis kannab nime Instruktsiooni aadress. Seda kasutatakse, et teada saada, kust mis asi tuleb. Mälu aadress ütleb RAMile, millist mälu aadressi CPU tahab.
  10. Informatsioon RAMilt läheb instruktsiooni, kust edasi läheb Kontroll Üksusesse.

esmaspäev, 9. veebruar 2015

Sisend/väljund

 Arvuti ei ole enam mänguasi, selle eesmärk on juhtida mingit seadet või protsessi.
Sisend/väljend tähistab arvuti suhtlust kas selle kasutajaga, andmekandijate, üle arvutivõrgu teiste arvutite või välise maailmaga. Sisendid on signaalid või info vastuvõtjad süsteemi poolt ja väljundid on signaalid või info, mis on saadetud selle poolt.
  • Hiired, klaviatuur, mälupulk jne on sisendid e input
 mo|dem-tuletatud sõnadest: modulate ja demodulate, mis tähendavad vastavalt moduleerima ja demoduleerima.
Modem on seade, mis moduleerib analoogsignaali, et edastada kodeeritud digitaalset sõnumit üle sidekanali ning demoduleerib sellise analoogsignaali, et dekodeerida saadud sõnum. Seadme eesmärk on tekitada signaal, mida on lihtne edastada ja mida on võimalik dekodeerida, et taastada esialgne info. 
Veel infot: Sisend/väljund inglise keeles
Modem eesti keeles

Inimestele loetavad
  • sobiv suhtluseks arvuti kasutajaga
  • printerid, terminalid, video displayd, klaviatuur, hiir
Masinale loetavad:
  • Sobiv suhtluseks elektrooniliste seadmetega
  • disk drivers...
 Erinevused I/O seadmetes
Teema
Sisendi seade
Väljundi seade
Definitsioon An input device is any peripheral used to provide data and control signals to an information processing system. Any device that outputs information from a computer is called, not surprisingly, an output device
Form Input devices are physically interacted with by the user and have buttons, keys, a lens or some other component that is responsible for the actual data input. Output devices are never contacted, are usually larger, and typically have a screen or set of speakers for data output.
Sequence Input device works before Output Device Output device works after input device.
Price Usually, Input devise cheaper than Output Device. Usually Output Device price higher than input device.
Conversation It converts commands to Binary digit It converts binary result to our language.
Data flow User to CPU via input device CPU to User via Output Device
Picture


Arvutis on emaplaat, emaplaadile paigutatakse protsessorid. Emaplaadil on ka kiibid, millest üks on põhjasild e mälukontroller- MCH, mis ühendab kiireid seadeid ja teine, lõunasild, ühendab kõiki aeglasemaid seadeid-ICH
MCH
  • mälu, videokaart, protsessor
 ICH
  •  CPU, emakaart



Arvuti arhitektuuris protsessori ja peamälu kombinatsioon on arvuti aju.
device driver - seadme ajur
algorütm - seadme eeskiri








Katkestuspõhine sisend/väljund süsteem
In systems programming, an interrupt is a signal to the processor emitted by hardware or software indicating an event that needs immediate attention. An interrupt alerts the processor to a high-priority condition requiring the interruption of the current code the processor is executing. The processor responds by suspending its current activities, saving its state, and executing a function called an interrupt handler (or an interrupt service routine, ISR) to deal with the event. This interruption is temporary, and, after the interrupt handler finishes, the processor resumes normal activities. There are two types of interrupts: hardware interrupts and software interrupts.
Veel infot: Interrupt 



Direct memory acces
I/O mudeli paiknemine

Buffer on tavaliselt mälu ruum.
All I/O devices are classified as either character or block devices. With block devices data is transferred in a block of bytes and required a buffering mechanism to allow faster input and output operations. Also, block devices accept input and output only in blocks. On the other hand, character devices (also called stream of bytes devices) transfer data in a few streams of bytes. Such devices don’t required buffering mechanism, and they don’t operate with a fixed block size
Ketta pöördumise algorütmid
*väikseim teenindus aeg kõigepealt
*

esmaspäev, 2. veebruar 2015

S/V süsteem ja seadmeajurid




Mäluhaldus

Mäkuhalduse põhitegevused ja eripärad

  • Mälu kaitse
  • Mälu jagamine
  • Mälu loogiline organiseerimine
  • Mälu füüsiline organiseerimine
  • Mälu tihendamine
  • Hõivatud mälupiirkondade ümber/või ringi tõstmine

Mälu ja protsessor

Põhimälu -aadressidega baidimasiiv - ainuke suurem salvestuspiirkond, mille poole CPU saab otse pöörduda 
 • Protsessor loeb mälust käske ja andmeid
–käsu lugemine;
–esimese argumendi lugemine;
–teise argumendi lugemine;
–käsu täitmine;
–tulemuse mällu tagasi salvestamine.

Mäluhalduse lihtsaim käsitlus

• Käivitatavatele programmi protsessidele mälu
hõivamine ja mälu vabastamine, kui seda enam ei
vajata. Mäluhaldus on arvutisüsteemi töö eluline
osa.
• Virtuaalmälu süsteemid lahutavad protsesside
poolt kasutatavad mäluaadressid tegelikest
füüsilistest aadressidest, kirjutades osa mälu
sisust kettale ja suurendades nii efektiivse vaba
mälu mahtu

Mälu jagamine

• Kuigi erinevate protsesside mälu on tavaliselt
üksteise eest kaitstud, vajavad erinevad
protsessid siiski vahetevahel võimalust
informatsiooni jagada ja peavad seetõttu
omama juurdepääsu samale mälupiirkonnale
• Jagatatud mälu on üks kiirematest viisidest
protsessidevaheliseks suhtluseks

Mälu loogiline jaotus

• Loogiline aadress - programmide poolt kasutatav
aadressiruum, nimetatakse ka virtuaalseks
aadressiruumiks
• Programmid koosnevad tihti moodulitest.
Selliseid mooduleid võivad erinevad programmid
omavahel jagada. Osad neist on loetavad ja osad
sisaldavad muutmist vajavaid andmeid
• Mäluhaldus vastutab sellise loogilise jaotuse
organiseerimise eest, mis erineb füüsilisest
aadressruumist
• Üks moodus seda teostada on segmentimine

Mälu füüsiline jaotamine

• Mälu on tavaliselt jaotatud peamäluks ja
sekundaarseks mäluks
• Mäluhaldus tegeleb mälu liigutamisega nende
mälude vahel
• Sekundaarne mälu – andmete pikemaajaliseks
hoidmiseks mõeldud mälu (kettad,
magnetlindid)
• Välismälu – CD, DVD, välised kettad
• Virtuaalmälu (oli eespool)

Mälu tihendamine, pakkimine

• Tehnikat, mis võimaldab hõivatud piirkondi
ümber tõsta suurema vaba ruumi tekkimiseks
kutsutakse tihendamiseks
• Mälu saab tihendada järgmistel tingimustel:
– Niipea, kui töö (tegum) lõpeb;
– Kui uut tööd ei saa mällu laadida mälu killustatuse
tõttu;
– Teatud ajaperioodi möödumisel.

Youtube'i videod: Shaun Stone  

esmaspäev, 19. jaanuar 2015

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.

  • 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
dt nt!_KINTERRUPT


dt nt!_eprocess

esmaspäev, 5. jaanuar 2015

Operating System - Multi-Threading

What is Thread?

A thread is a flow of execution through the process code, with its own program counter, system registers and stack. A thread is also called a light weight process. Threads provide a way to improve application performance through parallelism. Threads represent a software approach to improving performance of operating system by reducing the overhead thread is equivalent to a classical process.
Each thread belongs to exactly one process and no thread can exist outside a process. Each thread represents a separate flow of control.Threads have been successfully used in implementing network servers and web server. They also provide a suitable foundation for parallel execution of applications on shared memory multiprocessors. Folowing figure shows the working of the single and multithreaded processes.
Single vs Multithreaded Process

Difference between Process and Thread

S.N.ProcessThread
1Process is heavy weight or resource intensive.Thread is light weight taking lesser resources than a process.
1Process switching needs interaction with operating system.Thread switching does not need to interact with operating system.
1In multiple processing environments each process executes the same code but has its own memory and file resources.All threads can share same set of open files, child processes.
1If one process is blocked then no other process can execute until the first process is unblocked.While one thread is blocked and waiting, second thread in the same task can run.
1Multiple processes without using threads use more resources.Multiple threaded processes use fewer resources.
1In multiple processes each process operates independently of the others.One thread can read, write or change another thread's data.

Advantages of Thread

  • Thread minimize context switching time.
  • Use of threads provides concurrency within a process.
  • Efficient communication.
  • Economy- It is more economical to create and context switch threads.
  • Utilization of multiprocessor architectures to a greater scale and efficiency.

Types of Thread

Threads are implemented in following two ways
  • User Level Threads -- User managed threads
  • Kernel Level Threads -- Operating System managed threads acting on kernel, an operating system core.

User Level Threads

In this case, application manages thread management kernel is not aware of the existence of threads. The thread library contains code for creating and destroying threads, for passing message and data between threads, for scheduling thread execution and for saving and restoring thread contexts. The application begins with a single thread and begins running in that thread.
User level thread

Advantages

  • Thread switching does not require Kernel mode privileges.
  • User level thread can run on any operating system.
  • Scheduling can be application specific in the user level thread.
  • User level threads are fast to create and manage.

Disadvantages

  • In a typical operating system, most system calls are blocking.
  • Multithreaded application cannot take advantage of multiprocessing.

Kernel Level Threads

In this case, thread management done by the Kernel. There is no thread management code in the application area. Kernel threads are supported directly by the operating system. Any application can be programmed to be multithreaded. All of the threads within an application are supported within a single process.
The Kernel maintains context information for the process as a whole and for individuals threads within the process. Scheduling by the Kernel is done on a thread basis. The Kernel performs thread creation, scheduling and management in Kernel space. Kernel threads are generally slower to create and manage than the user threads.

Advantages

  • Kernel can simultaneously schedule multiple threads from the same process on multiple processes.
  • If one thread in a process is blocked, the Kernel can schedule another thread of the same process.
  • Kernel routines themselves can multithreaded.

Disadvantages

  • Kernel threads are generally slower to create and manage than the user threads.
  • Transfer of control from one thread to another within same process requires a mode switch to the Kernel.

Multithreading Models

Some operating system provide a combined user level thread and Kernel level thread facility. Solaris is a good example of this combined approach. In a combined system, multiple threads within the same application can run in parallel on multiple processors and a blocking system call need not block the entire process. Multithreading models are three types
  • Many to many relationship.
  • Many to one relationship.
  • One to one relationship.

Many to Many Model

In this model, many user level threads multiplexes to the Kernel thread of smaller or equal numbers. The number of Kernel threads may be specific to either a particular application or a particular machine.
Following diagram shows the many to many model. In this model, developers can create as many user threads as necessary and the corresponding Kernel threads can run in parallels on a multiprocessor.
Many to many model

Many to One Model

Many to one model maps many user level threads to one Kernel level thread. Thread management is done in user space. When thread makes a blocking system call, the entire process will be blocks. Only one thread can access the Kernel at a time,so multiple threads are unable to run in parallel on multiprocessors.
If the user level thread libraries are implemented in the operating system in such a way that system does not support them then Kernel threads use the many to one relationship modes.
Many to one model

One to One Model

There is one to one relationship of user level thread to the kernel level thread.This model provides more concurrency than the many to one model. It also another thread to run when a thread makes a blocking system call. It support multiple thread to execute in parallel on microprocessors.
Disadvantage of this model is that creating user thread requires the corresponding Kernel thread. OS/2, windows NT and windows 2000 use one to one relationship model.
One to one model

Difference between User Level & Kernel Level Thread

S.N.User Level ThreadsKernel Level Thread
1User level threads are faster to create and manage.Kernel level threads are slower to create and manage.
2Implementation is by a thread library at the user level.Operating system supports creation of Kernel threads.
3User level thread is generic and can run on any operating system.Kernel level thread is specific to the operating system.
4Multi-threaded application cannot take advantage of multiprocessing.Kernel routines themselves can be multithreaded.