- 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
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