Monday, January 26, 2015

Mäluhaldus aka Memory Management

  • The OS has five principal storage management responsibilities:
  • protsesside isoleerimine
  • automaatne mälu hõivamine ja haldus
  • toetus modulaarsle programmide ehitusele
  • Mälu kaitsmisele ja kättesaadavusele. 
  • pikaajaline hoidmine
Protsessor saab ainult kasutada RAM'i ja
CPU<>RAM/Cache
Peamälu poole pöördumine võtab mitu tsüklit
Cache paikneb peamälu ja protsseri registrite vahel.
Mälukaitsemehhanismi vaja rakendada et tagada tehingute õigsust
MäluKaader- kindla pikkusega RAM'i blokk
Mälulehekülg- kindla pikkusega andmeblokk, mis paikneb kettal võib ajutiliselt kopeerida kaadrisse
Mälusegment- muutuva-pikkusega andmeblook, mis paikneb kettal
Virtuaal Mälu- kettal paiknev puhvermälu, kannab erinivaid nimesi, Windows Page file, Linux Swap- saale
    selle suurus on poolteist RAM'I suurust. Võimaldab puhverdamist
    SUPER IMPORTANT http://kuutorvaja.eenet.ee/wiki/Kuut%C3%B5rvaja
 Mälus peavad asjad olema kaitsud, ei tohi segi minna, ei tohi kirjutada samasse kohta jne. x)
Mida mäluhaldus teeb:
 Mälu ümberpaiknemine - et kui midagi tõsta edasi ja tagasi kettalt, siis see ikka töötaks :3 (vms)
 Mälu kaitse-
 Mälu jagamine
 Mälu loogiline organiseerime- segamendid ja leheküljed,
 Mälu füüsiline organiseerimine
 Aktiivseid protsesse peab saama välja saalida ja mingil korral peamällu tagasi saalida, kogu info on kontrolli central blokk'is.. Välja ja tagasi viimine vajab matemaatikat........ Ta satub tagasi samasse mällu, kus ta tuli- see ei ole väga reaalne irl, reaalset pole võimalikut tagada, et kõik on samas kohas
KAITSE mehhanismid 
    Protsess peab mingil juhtidel mällu kirjutada, et tavaliselt juhtub see siis, kui me kutsume välja ja tagasi, et järgmine kord jälle kasutda nagu söögijärjekord. Ei ole võimalik ette ennustada, kus see protsess asub või satub. Mälu viited moodustatakse siis kui protsessid käivituvad. (Mäluhaldus kontrollib seda) Mehhanism mis toetab mälu ümberpaigutamist toetab ka mälu kaitset
JAGA (SHARING (is caring))
    pean andma adressi mõlemale protsessile :>, need ei tohiks muutuda, kui ma välja saalin või sisse saalin. Igas rakendus on üks koopia, mitte mitu koopiat. Memory Management must allow controlled access to shared areas of memory without compromising protection. Mechanisms used to support relocation support sharing capabilities.
LOOGILINE ORGANISEERIMINE
     Mälu jaotus on organiseeritud lineaalselt (linear), eksiteerivad erinevad kaitseastmed. Nende tavaliselt on seotud loa bitid(Hiljem räägime rohkem). Progams are written in modules: Modules can be written and compiled idependently, different degrees of protection given to modules(read-only, exucute-only), sharing on a module level corresponds to the user's way of viewing the problem.
Füüsiline Organiseerminine (Physical Organization)
    Cannot leave the programmer with the responsibility to manage memory, memory available for a program plus its data may be insufficient, programmer does not know how much space will be available, overlaying allows various modules to be assigned the same region of memory but is time consuming to program.
MEMORY PARTITIONING
   Memory management brings processes into main memory for execution by the processor- Involves virtual memory and based on segmentation and paging. Partitioning- used in several variations in some now-obsolete operating systems and does not involve virtual memory
Mäluhaldus tehnikad
 1)kindla suurused jaotised - peamälu jaotatakse kinda suurusega tükkideks. Tugevus- lihtne rakendada, nõuab OS vähe tööd Nõrkus-
 2)dünaamiline jaotise loomine- peamälu jaotatakse dünaamiliselt tükkideks, selle eesmärk on... Tugevus- sisemist killustust ei ole
 3)lihtsate lehekülgede moodustamine- peamälu jagatakse võrdse suurusge kaadrideks(peamälujaotuse ühik) Tugevus- ei ole välis killustatust
 4)Lihtsate segmentide tegemine-
 5)virtuaalmälu lehekülgede loomine-
 6)virtuaalmälu segment-
Disadvantages
  A program may be too big to fit in a partition
       program needs to be designed with the use of overlays
Main memory utilization is inefficient
    any program, regardless of size, occupies an entire partition
    internal fragmentation (sisemine killustus)
      wasted space due to the block of data loaded being.... (keegi ei tea)
  The number of partitions specified at system generation time limits the  number of active processes in the   system. Small jobs will not utilize partition space efficiently
Dynamic Partitioning
  Partitions are variable lenght and number
  Process is allocated exactly as much memory as it requires
  Välimine killustamine 
    Memory becomes more and more fragmented
    Memory utiliziation decline
  Compaction
   Technique for overcoming external fragmentation
   OS shifts processes so that they are contiquous
   Free memory is together in one block
   time consuming and wastes CPU time
Placement algorithms
 Best-Fit- chooses the block that is closest in size to the request
 First-Fit- begins to scan memory from the beginning and chooses the first available block that is large enough
 Next-Fit- begins to scan memory from the location of the last placement and chooses the next available block that is large enough
Buddy system
 Comprised of fixed and dynamic partitioning schemes
 Space available for allocation is treated as a single block
 Memory blocks are available of size 2K words, L <_ K <_ U, where 2L = smallest size block that is allocated  2U= largest size block that is allocated; generally 2U is the size of the entire memory available for allocation


Sunday, January 18, 2015

CPU- Protsessor (Informatsioon saadud Blogist Andmebaasid)

PROTSESSORID - CPU
Tänapäeval 2te tüüpi protsessoreid - intel( u 90% maailmast kasutab) ja amd 
Protsessorite tüübid (inglk PIN) - PGA(jalakesed) ja LGA(kontaktplaadid, praegusel ajal põhilised. töötamisel peab olema ettevaatlik, sest võib jalakesi kergesti painutada) - käivad emaplaadi sisse (socket)
Motherboard(riistvara)- emaplaat 
RAM(riistvara) -(random access memory) mälu koosneb aadressmasiivist ja andmetest. mõlemad kahendsüsteemis.
SIIN (riistvaras, inglk. BUS)- tähendab kontaktide/traatide komplekt(aadress, andmed, control)
instruction - korraldus, instruktsioon, käsk - on funktsioon/protseduur mis nõuab argumente (arg1;arg2;)(number)
mälus saab olla arvud, käsud, tähed või aadressid 
http://en.wikipedia.org/wiki/ASCII - tähtede, sümbolite kahendsüsteemi numbrid
IGAL PROTSESSORIL ON OMA KÄSUSTIK
Instruction set- (set - hulk) e. käskude hulk - on igal protsessoril erinev. käskude arv piiratud, umbes 30
load - korraldus - laadi mälust ühe väärtuse protsessorisse
add - liidab 2 arvu
store - käsk mis võimaldab salvestada midagi mällu
compare - võrdleb kahte mälupesa, argumentideks 2 mälupesa aadressi võrdleb kas sisud on samad
jump if - tingimuslik hüpe - suunamine teisele mälupesale. tesele kohale mälusse hüppamine.

PROCESS MANAGEMENT
http://en.wikipedia.org/wiki/Process_management_%28computing%29
os kõige tähtsam teenus. võtab valdava aja kerneli tööst. 
Protsessimudelid

PCB - protsessi juhtblokk,/ Linux  - process descriptor- protsessi kirjeldaja
me ei tööta failidega, vaid failist tekitatud koodidega tööd. 

Protsesside loomine

olemas 4 põhimõttelist võimalust mis tekitavad protsessi
1. süsteemi alglaadimine (süsteem käivitatakse ja alati laaditakse POST mällu)
POST- power on self test, kontroll riistvaratükkidele. loetakse andmeid BIOS-ist. (andmed kõvakettal, HDD info). 
POST --- BIOS ---HDD info ---- OS TO RAM
2. protsessi käivitusoperatsiooni teostamine teise/töötava protsessi poolt. üks protsess kutsub teise välja. nt uue riistvara tüki leidmine os poolt
3. kasutaja nõuab uue protsessi loomist nt kui panen wordi käima ja tahan selle alt printima hakata. print on uus protsess
4. pakkettöötluse töö - nt viiruskontroll - järjekorras failide kontroll

kui os on alglaetud(booted, initsialiseerimine) 
restardi puhul masin töötab ja selle puhul jäetakse vahele POST. algväärtustatakse kõik olekud

Protsesside lõpetamine
error - tarkvaraviga /fault -riistvaraviga
1. Pakettöötlus protsess algatab seiskamise protsessi
2. kasutaja logib süsteemist välja
3. protsess käivitab teenuse lõpetamise nõude.
4. kui tuleb error või fault
5. normaalne protsessi lõpetus
6. ületatud ettenähtud aja piir (tuleb not responding text)
7.  mälu pole piisavalt
8. piiride rikkumine, on ressursireeglite rikkumine. katse tungida teise kodaniku territooriumile. 
9.protection error - nt tahan kirjutada read-only faili
10.aritmeetika viga, nt 0-iga jagamine. 
11. time uverrun - protsess peab ootama liiga kaua - tähtaeg ületatud
12.I/O failure - sisend/väljend rike. tuleb teade et seadet pole. kontrollitakse time overrunniga oodatakse vastust mingi aeg
13. vigane korraldus - nt arvu asemel paneme teksti.

14.eelisõigustega korraldus. lõpetab olemasoleva protsessiga. nt arvuti kinnipanek või restart lõpetab olemasolevad protsessid.

15. andmete vale kasutus - vale tüüp, suurus kindla protsessi jaoks
16. os intervention - eg. to resolve a deadlock - nt liiklusummik - keegi lõpetab selle mingi korraldusega
17. parent terminates so child processes terminate - paned terve wordi kinni, kõik kirjutatud lehed lähevad ka kinni
18. parent request - vanem nõuab
19. fatal error - surmav viga - http://www.webopedia.com/TERM/F/fatal_error.html - on viga mis põhjustab programmi (ebanormaalse lõppemise)aborti. abort - katkestus. lõpeb programmi kinnipanekuga. kui see juhtub võib andmeid kaotada. fatal system error - os teeb restarti sest teenus ei tööta korralikult.

Jumal tänatud, et internet on olemas <3

Monday, January 5, 2015

Lõim

Lõim on tavaliselt seotud mingi protsessiga, võiks olla alamprotsess(Lõimul on vähe infot).





















lõimede kasutamine vähendab sisulülitustele kuluvat eaga.
võimaldab samaaegselt protsesside töötlemist
võimaldab protsesside vahelist efektiivset suhtlemist
on ekomoomne, majanduslik
võimaldab teha lõimede sisuvahetusi





advantages: lõimede sisulülitused ei nõua kerneli moodi õigusi. kasutaja tasemel lõimed võivad töötada iga os-iga. plaanurit võivad kasutada kasutajalõimede määramiseks. kasutaja tasandi lõimed on kiired, neid kiire&lihtne luua ja hallata.
puudused: tüüpilistes os-ides enamik süs.kutsed blokeeritud. mitmielõimelised rakendused ei saa/ei oma eelist mitmikprotsesside korral.




 kerneli lõim toetab os-i otseselt. igasusguse rakenduse võib prorgameerida mitmelõimelisena
kernel teostab kerneli ruumis lõimude teostust, plaanimist jne.

advantages:kernel võib samaaegselt plaanida mitut lõime sama või mitme protsessi sees.kui üks protsessilõim on blokeeritud, siis teise protsessi lõim võib ....
kerneli protseduurid ise võivad olla mitmelõimulised
puudused: on aeglasemad, loomiseks ja haldamiseks kulub rohkem aeg. ühe lõime juhtimiselt teisele üleminek nõuab mode vahetust.
mitmelõimelised mudelid. 













2.tehtud kasutajaprotsesside ruumis. kui üks lõim tekitab blokeeringu on terve protsess blokeeritud. mitmikprotsessorite korral ei saa mitu lõime töötada.









võimaldab samaaegset töötlemist. kui üks blokeeritud, teine võib töötada. puuduseks iga kasutajalõimega tuleb luua ka vastav kerneli lõim. windows 2000 kasutab seda mudelit. kaasaegsetes os-ides kasutatakse vähe.












1. kasutajalõimud kiiremad, lihtsam hallata

2. realiseeritakse lõimeteekide kaudu kasutaja tasandil. kernelilõimulel on vaja os-i teotust et luua
3. on üldised, neid saab kasutada erinevates os-ides. kernelilõimud on alait os-iga seotud.
4. mitmelõimelised rakendused ei saa eelist mitmikprotsesside korral. kernelilõimudel kerneliprotsessid ise võivad olla mitmelõimulised.
Tänan Ketrit, et ta aitas Blogi täiustada <3

Plaanuri Algorütm


 5 põhilist algoritmi 

1. FCFS - first come first serve scheduling
2. SJF kõige lühemad tööd kõigepealt. Shortest-job-first
3. priority scheduling - prioriteedinumbrite järgi teenindamine. proiriteetsed tööd on kerneli teenindamisega seotud, ei ole vahepeal seotud üldse kasutajaga.
4. Round Robin(RR) Scheduling, kasutab windows. võrdne ringiaeg, panus. võrdse panusega plaanur. tegevused jagatakse võrdseteks lõikudeks.
5.Multilevel Queue Scheduling - mitmiktasandiliste järjekordade plaanur.





interactive - vahelsesekkuja
batch protcess  - pakettöötlus
algoritmid kirjutatakse prorgammi sisse ning neid ei saa pärast muuta.
algoritmist sõltub protsesside töötluse kiirus.
statistikaga vaadeldes, kui kaua võib protsess ühe algoritmiga aega võtta ja kui võtab palju aega, siis võib ta muuta teisele algoritmile, et vähem aega läheks.
Juba jälle, aitas mind armas klassikaaslane minu blogis. Ketri ja Hans. Ilma nende abita, oleks see täiesti tühi *-*

Protsesside Plaanur

Protsesside Plaanur-
Plaanuri järjekord- saadab järjekorras mingeid protsesse, et ei oleks mingi segadus. Kui täitmis aeg sai täis siis ta läheb tagasi Plaanuri järjekorda.
  • Täitevalmis järjekorda
  • Masin järjekord
Istub seal niikaua, kui ta saab oma käsu, seal parandatakse seda jne.
Kaks olekut protsessi mudelil
  • Töötav
  • Pausil(mitte töötev)
  •  
Plaanurid- Pikaajaline plaanur - tasakaalustatud tööde tegemist.(mõistlikult)
                 Lühiajaline plaanur- (Windows kasutab seda) (CPU plaanur)- süsteemi töid teha võimalikult kiiresti. 
                 keskajaline plaanur- mälust kirjutatud kettale(kui vaja teha palju tööd) Tegeleb saalimisega (swapping) 



Context Vahetus- erinevaid protsessi blokke, vastavalt kuidas need on järjekorras, muudab protsessi kui on vaja. Plaanur peab olema nii kirjutatud, et sisu vahetusi ei peaks nii palju tegema. (Nõuab aega)
  •  










  • Kui tehakse sisu vahetust siis sellist infot hoidakse
  • Program Counter
  • Scheduling Information
  • Base and limit register value
  • Currently used register
  • Changed State
  • I/O State
  • Accounting