4.2.24 · D1 · HinglishOperating Systems

FoundationsFragmentation — internal vs external, compaction

1,909 words9 min read↑ Read in English

4.2.24 · D1 · Coding › Operating Systems › Fragmentation — internal vs external, compaction

Parent note padhne se pehle, tumhe us mein aane wale har ek symbol par pakad honi chahiye. Yeh page har ek ko bilkul zero se build karta hai — pehle seedhe words, phir ek picture, phir yeh topic us symbol ke bina kyon nahi chal sakta.


0. Stage: "memory" actually hai kya

Figure — Fragmentation — internal vs external, compaction

Figure dekho: memory ek seedhi line hai numbered boxes ki. Is topic mein sab kuch is line ko pieces mein kaatne aur pieces distribute karne ke baare mein hai. Topic ko yeh picture isliye chahiye kyunki dono tarah ki fragmentation bas "kaunse boxes waste ho rahe hain" ka sawaal hai — aur tum kisi wasted box ko tab hi point kar sakte ho jab ruler dikhe.


1. Parent note ke symbols

Parent note mein , , , , , aur ek "ratio" formula aata hai. Yeh raha har ek, us order mein jisme agla wala sense kare.

— woh size jo process ko chahiye

Topic ko yeh isliye chahiye: fragmentation hamesha diya gaya minus zaroorat hoti hai, aur "zaroorat" hai.

— woh block jisme OS deta hai

Figure — Fragmentation — internal vs external, compaction

Figure mein ruler length ke equal blocks mein pre-scored hai. bytes ki zaroorat wale program ko sirf poore blocks lene hote hain — woh kisi block ke beech mein nahi ruk sakta. Yeh "sirf poore blocks" wala rule internal fragmentation ka poora cause hai, isliye ka exist karna zaroor hai us waste ko naam dene se pehle.

— yeh kitne blocks force karta hai

" bytes" ko " blocks" mein convert karne ke liye ek aur symbol chahiye.

— ceiling (UPAR round karo)

Figure — Fragmentation — internal vs external, compaction

Figure mein , hai: do blocks tak pahunchte hain (kaafi nahi), toh ceiling humein teesre block tak le jaata hai. Laal tail woh boxes hain teesre block mein jo koi use nahi karta — internal waste visible ho gaya.

— remainder / leftover

Topic ko yeh isliye chahiye: last block mein wasted tail hai — last block ka khali part. Yahan , jo parent ke answer se match karta hai. Average-case claim ("last block half full → waste ") bas yeh statement hai ki yeh leftover equally likely hai mein kahin bhi hone ke liye, toh khali tail average hoti hai.


2. External fragmentation ke "holes" symbols

External fragmentation ko ceiling nahi chahiye — ise holes aur ek ratio ka idea chahiye.

Figure — Fragmentation — internal vs external, compaction

Figure mein K, K, K ke holes hain. Total free unka sum hai K, lekin sabse bada single hole sirf K hai — toh ek K request fail ho jaati hai even though total free memory kaafi hai. "Total free" aur "largest usable" ke beech ka yeh gap hi external fragmentation hai.


3. Compaction ke peeche ek zaruri prerequisite

Topic ko yeh isliye chahiye: compaction saare used blocks ko ek end ki taraf slide karta hai taaki holes ek bade block mein merge ho jayein. Tum ek program ko tabhi slide kar sakte ho jab uske addresses re-bind ho sakein — isliye compaction ke liye run-time binding zaroor hai. Uske bina, programs "nailed down" hain aur unhe shuffle nahi kiya ja sakta. Virtual Memory aur Segmentation bhi dekho jahan run-time binding aata hai.


4. Sab kuch topic ko kaise feed karta hai

Byte-addressed memory line

Address

Block size B

Requested size S

Ceiling of S over B = N blocks

Internal fragmentation N times B minus S

Mod leftover S mod B

Holes free between used

External fragmentation ratio

Run-time address binding

Relocatable programs

Compaction merges holes

Fragmentation topic 4.2.24

Upar se neeche padho: memory line aur block size se tumhe milta hai aur isliye internal waste; memory line plus scattered holes se external ratio milta hai; run-time binding compaction unlock karta hai. Teeno streams parent topic the Fragmentation note mein pour hote hain.


Equipment checklist

Khud ko test karo — right side chhupao, answer zor se bolo.

Byte kya hota hai aur physical memory kya hoti hai?
Byte ek addressed box hota hai jisme ek chhota number hota hai; physical memory in boxes ki ek lambi numbered row hoti hai jo address 0 se shuru hoti hai.
Fragmentation formulas mein ka matlab kya hai?
Kitne bytes ek process ko actually chahiye (request karta hai).
ka matlab kya hai, aur OS uska fraction kyon nahi de sakta?
Woh fixed block size jisme OS allocate karta hai; hardware/schemes sirf poore blocks mein deal karte hain, toh koi fraction nahi.
kya karta hai aur yeh (ordinary rounding ki jagah) ke liye sahi tool kyon hai?
Next whole number tak round up karta hai; ek bhi leftover byte ek poora extra block force karta hai, isliye kabhi neeche round nahi karna.
, ke liye compute karo.
blocks.
kya deta hai, aur kya hai?
Poore blocks hatane ke baad bacha hua; .
Memory mein ek "hole" kya hota hai?
Used regions ke beech mein rakhe contiguous free boxes ki ek run.
External fragmentation ratio batao aur holes 40K,30K,50K ke liye uski value batao.
.
Compaction ko run-time address binding kyon chahiye?
Kyunki ek program ko naye location par slide karne se uske addresses change ho jaate hain; sirf relocatable (run-time bound) code woh move survive kar sakta hai.