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


No comments:

Post a Comment