๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸง Operating System

[OS / ์šด์˜์ฒด์ œ] Swapping, Contiguous Memory Allcoation, Fragmentation, Paging,

by UKHYUN22 2022. 5. 30.
728x90

Swapping

ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ Switching์ด ์ผ์–ด๋‚˜๋ ค๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค ํฌ๊ธฐ๋ฅผ 100MB๋กœ ๊ฐ€์ •. ๋””์Šคํฌ์˜ latency๊ฐ€ 8ms ์ •๋„ ๊ฑธ๋ฆฐ๋‹ค. 2์ดˆ์—๋‹ค๊ฐ€ 8ms ์ •๋„ ์ถ”๊ฐ€๋œ๋‹ค. 2008ms ๊ฑธ๋ฆฌ๊ฒŒ ๋˜๊ณ  Swap out๊ณผ Swap in ์ด 2๋ฒˆ ์ผ์–ด๋‚˜๊ณ  4016ms๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. Context Switching ํ•  ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์ˆซ์ž์ด๋‹ค. Time slice๊ฐ€ ๋ณดํ†ต 10 ~ 100 ms ํ•˜๋Š”๋ฐ Context Switching ํ•  ๋•Œ 4์ดˆ๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค. disk transfer rate๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ Hard Dist๋ฅผ SSD๋กœ ๋ฐ”๊พธ๋Š” ๋“ฑ์˜ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ์‚ฌ์šฉ์— ํ•„์š”ํ•œ ํ”„๋กœ์„ธ์Šค๋งŒ ๋„˜๊ธฐ๋Š” ๊ฒƒ์œผ๋กœ Context Switching์„ ํ•ด์•ผ ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ์‚ฌ์šฉ์„ ํ•œ๋‹ค. 

 

 

Contiguous Memory Allcoation

100MB ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ 100MB์— ํ•ด๋‹น ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„์—„ ๋„์—„ ์žˆ์–ด๋„ ๋˜๊ณ  ์—ฐ์†์ ์œผ๋กœ ์กด์žฌํ•ด๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. logical Address spcae๋Š” ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ Physical Address Space๋Š” ๋„์—„ ๋„์—„ ์žˆ์–ด๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ Logical์€ ์—ฐ์†๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋’ค์— ๊ฐ€์„œ ๋” ์ž์„ธํ•˜๊ฒŒ ๋ฐฐ์šด๋‹ค. (์ „์ œ๋กœ ๋‘์ž) ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ OS์™€ User Process๋กœ ๋‚˜๋‰œ๋‹ค. User Process๊ฐ€ High memory์ด๋‹ค. ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊นŒ? 

 

 

Memory Mapping Protection

logical address๊ฐ€ ์ž๊ธฐ ์ž์‹ ์˜ ๊ณต๊ฐ„์—์˜ ์ƒ๋Œ€์  ์‹œ์ž‘์ ์„ ์˜๋ฏธํ•œ๋‹ค. ์˜ค๋ฅธ์ชฝ ํŒŒ๋ž€์ƒ‰ ์ƒ์ž ์•ˆ์ด ๊ธฐ์ค€์ด ๋œ๋‹ค. Limit์€ ํŒŒ๋ž€์ƒ‰ ์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€ ๋œ๋‹ค. ์ž์‹ ์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์–ด ์„œ๋Š” ์ง€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๋‚จ์˜ ์˜์—ญ์„ ์นจ๋ฒ”ํ•˜๋Š”์ง€ ์•ˆํ•˜๋Š”์ง€๋ฅผ ํ™•์ธ. Interrupt Handler๊ฐ€ ์ž‘๋™์„ ํ•˜๊ฒŒ ๋œ๋‹ค. relocation register๋Š” base register์™€ ๊ฐ™์€ ์˜๋ฏธ์ด๋‹ค. ์‹œ์ž‘์ ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด base register์ธ๋ฐ relocation๊ณผ ๋™์ผํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. relocatable address์™€ relocation register๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ์˜๋ฏธ์ž„!!!!  ์‹ค์‹œ๊ฐ„ relocation์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋ชจ๋“  ์ž‘์—…์€ HardWare๊ฐ€ ๋‹ด๋‹น์„ ํ•œ๋‹ค. 

 

 

Memory Allocation

์ฒ˜์Œ์—๋Š” OS ๋ง๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. P1, P2, P3 User Process ๊ฐ€ ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค. P2๊ฐ€ ๋‚˜๊ฐ€๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๊ณต๊ฐ„์ด Free Space๊ฐ€ ๋œ๋‹ค. P4๋‚˜ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜๋ฉด P2๊ฐ€ ๋‚˜๊ฐ”๋˜ ๊ณต๊ฐ„์— ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค. (P2๋ณด๋‹ค ์ž‘๋‹ค๊ณ  ๊ฐ€์ •) P1์ด ๋‚˜๊ฐ€๋ฉด ๋นˆ ๊ณต๊ฐ„์ด ๋˜๊ณ  P5๊ฐ€ ๋“ค์–ด์˜ค๋ฉด P1์ด ๋‚˜๊ฐ„ ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ๋นˆ ๊ณต๊ฐ„์ด ์ž๊พธ ์ชผ๊ฐœ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ž˜๋ผ์ง€๊ฒŒ ๋˜๋ฉด ์“ธ ์ˆ˜ ์—†๋Š” ๊ณต๊ฐ„์œผ๋กœ ๋˜์–ด๋ฒ„๋ฆฌ๊ณ  ๋งŒ๋‹ค. 

 

 

Fragmentation(ํŒŒํŽธํ™”)

External Fragmentation. N๊ฐœ์˜ ๋ธ”๋Ÿญ์ด ์žˆ์œผ๋ฉด ๊ทธ ์ค‘์— 0.5N ์— ํ•ด๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋ถ„์ด Fragmentation ๋˜์—ˆ๋‹ค๋Š” ํ†ต๊ณ„ ์ˆ˜์น˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ € ๋œป์€ ๋ฉ”๋ชจ๋ฆฌ์˜ 1/3์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. Disk๋„ ๋น„ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค ๋ฐ–์— ์ƒ๊ธฐ๋Š” ๊ฒƒ

 

 

Fragmentation

Internal Fragmentation, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ดค์„ ๋•Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 18462 ๋ฐ”์ดํŠธ๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ๋‹ค๊ณ  ํ•˜์ž. ๋นˆ ๊ณต๊ฐ„์„ ์ฐพ์•˜๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ 18464๋ผ๋Š” ๊ณต๊ฐ„์„ ์ฐพ์•˜๋‹ค๊ณ  ํ•˜์ž. ํ”„๋กœ์„ธ์Šค ์ž…์žฅ์—์„œ๋Š” ์ž์‹  ํฌ๊ธฐ๋ณด๋‹ค ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋ฐ›๊ฒŒ ๋˜๋Š”๋ฐ ๊ทธ๊ฒƒ์„ Internal Fragmentation ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด์„œ ๋ฒ„๋ ค์ง€๋Š” ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ์‹ค์ œ๋กœ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๊ฐ€? Block ๋‹จ์œ„๋กœ ๋–จ์–ด์ง€๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ธ”๋Ÿญ ๋‹จ์œ„๊ฐ€ 4KB์ธ๋ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ 5KB๋ฅผ ๋‹ฌ๋ผ๊ณ  ํ•˜๋ฉด 8KB๋ฅผ ์ฃผ๊ฒŒ ๋˜๊ณ  3KB๋งŒํผ ๋” ์ฃผ๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์ด Internal Fragmentation์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์ƒ๊ธฐ๋Š” ๊ฒƒ.

 

 

Fragmentation

๋นˆ ๊ณต๊ฐ„์„ ์—†์• ๊ณ  ์œ„๋กœ ๋ฐ€์–ด ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์€ Compaction์ด๋ผ๊ณ  ํ•˜์ง€๋งŒ ์ด๋ก  ์ƒ์œผ๋กœ๋งŒ ์กด์žฌํ•œ๋‹ค. (์‹ค์šฉ์ x) Logical ๊ณต๊ฐ„์—์„œ๋Š” ์—ฐ์†์ด์–ด์•ผ ํ•˜๊ณ  Physical Memory๋Š” ์—ฐ์†์ด์ง€ ์•Š์•„๋„ ๋œ๋‹ค. Physical ํ•˜๊ฒŒ ๋‹ค ๋–จ์–ด์ ธ ์žˆ์–ด๋„ Mapping์„ ์ž˜ ํ•˜๋ฉด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ž˜ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€ ์กด์žฌํ•œ๋‹ค. Paging๊ณผ Segmentation์ด ์กด์žฌํ•œ๋‹ค. ์ด๋ฅผ ์™œ ์ ์šฉํ•˜๋Š”๊ฐ€?  Fragmentation์— ๋Œ€ํ•œ ํ•ด๋ฒ•์ด๋‹ค!!!(**) 

 

Paging

Logical Memory ๋ฅผ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ์ชผ๊ฐœ๋Š” ๊ณผ์ •์ด๋‹ค. Physical Memory๋„ ๋˜‘๊ฐ™์€ ์‚ฌ์ด์ฆˆ๋กœ ์ชผ๊ฐœ๊ฒŒ ๋œ๋‹ค. Logical Memory์˜ ํ•œ ๊ณต๊ฐ„์„ Page๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  Physical Memory์˜ ๊ณต๊ฐ„์„ Frame์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Logical Memory๋Š” ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ๊ณต๊ฐ„์ด ์•„๋‹ˆ๋‹ค. page๋ผ๋Š” ๊ฒƒ์€ Content์— ๋Œ€ํ•œ ๊ฒƒ์„ ์–˜๊ธฐํ•  ๋•Œ ์‚ฌ์šฉ์ด ๋œ๋‹ค. Frame์—์„œ 0๋ฒˆ Page๋Š” 1๋ฒˆ Frame์— ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. 1๋ฒˆ Page๋Š” 4๋ฒˆ Frame์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Page๋ผ๋Š” ๊ฒƒ์€ ๋…ผ๋ฆฌ์ ์ธ ๊ณต๊ฐ„์—์„œ page๋ฅผ ์˜๋ฏธํ•˜๊ณ  Frame์€ ์‹ค์ œ๋กœ ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Page์™€ Frame์˜ ํฌ๊ธฐ๋Š” ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ์ค‘๊ฐ„์— Mappingํ•˜๋Š” ๊ฒƒ์„ page table์ด๋ผ๊ณ  ํ•œ๋‹ค. 

 

 

Paging

page table์˜ ๊ฐ’์€ page index์— ํ•ด๋‹นํ•˜๋Š” frame index๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. page table์—๋Š” frame์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. page table ์—๋Š” page number๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค? ๋งž๋‹ค ํ‹€๋ฆฌ๋‹ค? ํ‹€๋ฆฌ๋‹ค. page table์˜ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ index์ด๋‹ค. Page Number๋กœ ๋“ค์–ด์˜ฌ ๋ฟ ๊ฐ’์ด ๋“ค์–ด์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. 

 

 

paging

logical address๋Š” page number์™€ page offset๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. page size๋ฅผ 1000์ด๋ผ๊ณ  ํ•ด๋ณด์ž. 5320 ์€ 5๋ฒˆ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. 35821 ์€ 35๋ฒˆ์งธ Page์— ๋“ค์–ด๊ฐ„๋‹ค. 45861์€ 45๋ฒˆ์งธ Page์— ๋“ค์–ด๊ฐ„๋‹ค. 35๋ผ๋Š” ๊ฒƒ์ด Page Number๋ผ๊ณ  ํ•˜๊ณ  821๋ฅผ Offset Number๋ผ๊ณ  ํ•œ๋‹ค. page offset์„ ๋‚˜ํƒ€๋‚ด๋Š” Bit๋Š” 12 bit์ด๋‹ค. 4KB์— ํ•ด๋‹นํ•œ๋‹ค. 32 Bit , 2^10์ด ํ•œ ๋ฒˆ ์žˆ์œผ๋ฉด KB ๋‘ ๋ฒˆ ์žˆ์œผ๋ฉด MB ์„ธ ๋ฒˆ ์žˆ์œผ๋ฉด GB๊ฐ€ ๋œ๋‹ค. ์ฆ‰ 32 Bit๋Š” 4GB๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

Paging

4bit ์งœ๋ฆฌ๋Š” Logical Address๊ฐ€ 16Byte์— ํ•ด๋‹นํ•œ๋‹ค. ํ•œ ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๋Š” 4Byte์ด๋‹ค. 2^N์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ์ ์ ˆํ•œ ํฌ๊ธฐ์ด๋‹ค. 9๋ฒˆ์งธ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋Š” 2๊ฐ€ ๋œ๋‹ค. 9์˜ Page Offset์€ 1์ด ๋œ๋‹ค. ํŽ˜์ด์ง€ ์•ˆ์—์„œ๊ฐ€ ๊ธฐ์ค€์ด๋ฏ€๋กœ. Page Offset์˜ ์‹œ์ž‘์€ 0์ด๋‹ค. ์ด๋ฅผ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•ด๋ณด์ž. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 4์ด๋ฏ€๋กœ 2bit์— ํ•ด๋‹นํ•œ๋‹ค. Page Offset์— ํ•ด๋‹นํ•˜๋Š” ํฌ๊ธฐ๊ฐ€ 2bit๋ผ๋Š” ๊ฒƒ!!!(***) 14๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 1110 ์ธ๋ฐ 2Bit์—์„œ ์ž๋ฅด๊ฒŒ ๋˜๋ฉด ์•ž ๋ถ€๋ถ„์˜ ์ˆซ์ž๋Š” 3์— ํ•ด๋‹นํ•˜๊ณ  Page number๋„ 3์ด ๋œ๋‹ค. ๋’ค์˜ ๋‘ Bit๋ฅผ ๋ณด๊ฒŒ ๋˜๋ฉด 2์— ํ•ด๋‹นํ•˜๊ณ  Offset ๋˜ํ•œ 2 ์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

J์˜ Physical Address๋Š” 5๊ฐ€ ๋œ๋‹ค. 5๋Š” 0101 ์ด๊ณ  2bit๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด ์˜ค๋ฅธ์ชฝ 2bit 01์€ Offset์ด๊ณ  ์™ผ์ชฝ 2bit๋Š” Frame number์ด๋‹ค. MMU๋ฅผ ํ†ตํ•ด์„œ ๋ณ€๊ฒฝ๋œ Offset์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, Logical Address์˜ Offset๊ณผ Physical Address์˜ Offset์€ ๋™์ผํ•˜๋‹ค. Page์˜ ํฌ๊ธฐ์™€ Frame์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Page Number์™€ Frame Number์˜ ๋ณ€ํ™˜๋˜๋Š” ์ˆซ์ž๋Š” page table์— ์ ํ˜€์žˆ๋‹ค.