การจัดการหน่วยความจำ (memory...

Post on 13-Jan-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Pisit Nakjai

หนวยความจ าเปนสวนทส าคญทสดในระบบคอมพวเตอร ถอเปนศนยกลางใหการด าเนนการดานตางๆ ในระบบคอมพวเตอรเปนไปอยางราบรนและมประสทธภาพสงสด โดยภายในหนวยความจ าจะมการท างานหลายสวน เชน การท างานของโปรแกรมจ านวนมาก ซงตองมการแบงพนทการใชงานและวธการจดการดานตางๆ ซงหนวยความจ าทใชในการจดเกบแบงออกเปน 2 สวน ไดแก 1.หนวยความจ าหลก (Main Memory) 2.หนวยความจ าเสมอน (Virtual Memory)

โดยแตละวธในการจดเกบขอมลทงสองสวนมขอดและขอเสยตางกนขนอยกบซอฟตแวรและฮารดแวรทเลอกใชวาสอดคลองและสนบสนนการท างานและวธการทจดเกบในหนวยความจ าทเลอกใชมากนอยเพยงใด

ประกอบไปดวยอารเรยขนาดใหญ (large array) ซงภายในประกอบไปเวรด (words) และไบต (bytes) ซงแตละทจะมเลขต าแหนง (address) เปนของตวเอง นอกจากนหนวยความจ าหลกยงท าหนาทเกบชนดกระบวนการในการประมวลผลค าสง (a typical instruction-execution cycle) เพอใหหนวยประมวลผลกลาง (Central Processing Unit: CPU) น าไปใชในการประมวลแลวจงสงผลลพธของค าสงนนๆ กลบมาจดเกบกลบไวในหนวยความจ าหลกอกท

แสดงกระบวนการท างานของหนวยความจ าหลก (Main Memory)

เปนเทคนคทอนญาตใหโปรเซส (Process) สามารถประมวลผลไดนอกหนวยความจ าหลกโดยไมตองค านงถงขนาดพนทใชในการประมวลผลวาเพยงพอกบขนาดของโปรแกรมหรอไม นอกจากนยงงายตอการแชรไฟล (Share files) พนทวาง (Address Space) และเพมประสทธภาพใหโปรเซสท างานไดเรวขน เพราะไมตองคอยตรวจสอบขนาดของหนวยความจ าทางกายภาพ (Physical Memory)

แสดงความสมพนธระหวางหนวยความเสมอน (Virtual Memory) และหนวยความจ าทางกายภาพ (Physical Memory)

หนวยความจ าหลก หนวยความจ ารอง

RAM ROM

FDD HDD

CD-ROM DVD-ROM

คอมพวเตอรไมรจกอะไรเลย เขาใจเพยงรหส เปด(1)และปด(0) ในวงจร เกบขอมลอยในรปแบบ Binary Digit --- 101001011010 Bit 1011 = 4 Bit 1111110 = 8 Bit Byte จ านวนBit 8 ตว แทน1 ตวอกษร Address -- ต าแหนงทเกบขอมลในหนวยความจ า

0101010 0100101 0101010 0101010 0101000

Cpu เรยกใชไดโดยตรง

1.ชวงเวลาคอมไฟล (Compile time) คอ ชวงเวลาทค าสงหรอขอมลถกแปลค าสงโดยการคอมไพลดวยตวคอมไพเลอร (Compiler)

ตวคอมไฟเลอรจะท าการแปลโปรแกรมโชต าแหนงสมบรณ (Absolute Code) หรอต าแหนงจรงไดเลย เชนถา ก าหนดใหกระบวนการของผใชเรมท ต าแหนง R ตวแปลภาษาสามารถแปลต าแหนงตางๆ ไดโดยเรมจากคา R เปนตนไป ถามการเปลยนแปลงต าแหนงเรมตนกจะตองท าการแปลโปรแกรมกนใหม

2.ชวงเวลาโหลด (Load time) ชวงเวลาทค าสงหรอขอมลถกโหลดเขาสหนวยความจ า

เมอในขณะทแปลโปรแกรม เราไมสามารถทราบไดวาโปรแกรมจะท างานทต าแหนงใดในหนวยความจ าหลก ต าแปลจะตองแปลต าแหนงใหเปนแบบยายต าแหนงได (Relocatable Code) ดงนนการก าหนดต าแหนงจรงๆ โดยจะเกดขนขณะทก าลงน าโปรแกรมเขาสหนวยความจ าหลก

3.ชวงเวลาประมวลผล (Execution time) ชวงเวลาทค าสงหรอขอมลถกประมวลผล

กระบวนการอาจถกยายไปมาไดในระหวางการท างาน การก าหนดคาต าแหนงจรง จะกระท ากอนไมได ตองท าในขณะท างานจรงเทานน จะตองมอปกรณพเศษ (ฮารดแวร) ชวย จงจะสามารถใชวธนได

แสดงชวงเวลาเชอมโยงต าแหนง (Address Binding)

วธนจะไมน าโปรแกรมยอยลงสหนวยความจ าพรอมกบโปรแกรมหลก แตจะน าลงเมอมการเรยกใชเทานน โปรแกรมยอยทงหมดจะอยในจานบนทกในรปแบบทยายต าแหนงได เมอโปรแกรมหลกตองการเรยกโปรแกรมยอยใด กจะตรวจดวาโปรแกรมยอยนนอยในหนวยความจ าแลวหรอยง ถายงกจะน าโปรแกรมยอยนนลงสหนวยความจ าหลกโดยยายต าแหนงไปไวในททเหมาะสม และยายการควบคมไปไวทโปรแกรมยอยนนเพอท างานตอไป ประโยชนของวธนคอ โปรแกรมยอยทไมไดใชกจะไมถกน าลงสหนวยความจ าหลกใหเสยเนอทเปลา ๆ เหมาะกบโปรแกรมยอยทไวใชส าหรบเหตการณซงไมคอยเกดขน

ขณะเชอตอโปรแกรมยอย จะมการสรางชดค าสงเรยกระบบ Stub ซงมขนาดเลกมาก เพอใชเรยกโปรแกรมยอยทตองการขณะท างาน

ชดค าสงเรยกระบบนจะท างานโดยการเปลยนโปรแกรมตวเองเปนต าแหนงของโปรแกรมยอยในระบบ และเรยกโปรแกรมยอยนน

ดงนนเมอมการใชชดค าสงเรยกระบบนอกครงโปรแกรมยอยของระบบกจะถกเรยกท างานโดยตรง วธนยงประหยดเนอทมากเพราะโปรแกรมของผใชตางใชโปรแกรมยอยของระบบอนเดยวกน

การน าโปรแกรมทงหมดของกระบวนการหนงลงในหนวยความจ ากอนเรมท างาน ขนาดของกระบวนการจะถกจ ากดดวยขนาดของหนวยความจ าหลก

ตวอยางเชน ตวแปรภาษา assembly แบบแปล 2 รอบ ในรอบแรกจะมการสรางตารางสญลกษณ รอบท 2 จะเปนการแปลภาษาเครอง เราอาจท าการแบงสวนตวแปลภาษานออกเปน 2 สวน คอ สวนของการแปลรอบทหนง และสวนของการแปลรอบทสอง

1. สวนการแปลรอบท 1 (Pass 1) 70 KB 2. สวนการแปลรอบท 2 (Pass 2) 80 KB 3. ตารางสญลกษณ (Symbol table) 20 KB 4. โปรแกรมยอยรวม (Common routines) 30 KB ตองมหนวยความจ าหลกอยางนอย 200 KB

ถาเราตองการน าโปรแกรมทงหมดลงสหนวยความจ าหลก เราตองมหนวยความจ าหลกขนาดอยางนอย 200 K ถาหากเรามเพยง 150 K (ทเหลอจากสวนของระบบปฏบตการ) กจะท างานไมได

จงตองใชวธแบงสวน (overlays) โดยก าหนดสวนแรก (A) ประกอบดวย ตารางสญลกษณ โปรแกรมยอยรวม และสวนการแปลรอบท 1

สวนทสอง (B) ประกอบดวย ตารางสญลกษณ โปรแกรมยอยรวมและสวนการแปลรอบทสอง

เราเพมตวควบคมการแบงสวน (overlay driver) (ขนาด 10 K) และรวมกบสวนแรก A น าลงในหนวยความจ าหลก

หลงจากท าการแปลรอบทหนงเสรจแลว ตวควบคมการแบงสวนจะอานสวน B ลงสพนทของสวน A และสงการควบคมตอไปยงการแปลรอบทสอง จะเหนไดวาสวนแบง A มขนาด 120 K และสวนแบง B มขนาด 130 K

การแบงสวนหนวยความจ าส าหรบการน าเขาของโปรเซสครงท 1 - 2 ของตวเอสเซมเบอร (Overlays for two-pass assembler)

จะมการอางองถงต าแหนงทเกยวของอย 2 ประเภทคอ 1.ต าแหนงพนททางตรรกะ (Logical Address Space) หรอเรยกอกชอ

หนงวา ต าแหนงเสมอน (Virtual Address) ซงถกสรางขน (Generate) โดยหนวยประมวลผลกลาง (CPU) เพอใชในการแลกเปลยนขอมล โดยกลมของต าแหนงพนททางตรรกะ (Logical Address Space) ทงหมดถกสรางโดยโปรแกรม

2.ต าแหนงพนททางกายภาพ (Physical Address Space) คอต าแหนงทอยในหนวยความจ าหลก (Memory Unit) และท างานโดยตอบสนอง (Corresponding) กบต าแหนงทางตรระกะ (Logical Address) เสมอ

ตวอยางของการท างานของหนวยจดการหนวยความจ า (Memory Management Unit : MMU)

โปรแกรมของผใชไมทราบคาต าแหนงทแทจรง(ทางกายภาพ) เลย โปรแกรมอาจสรางตวชไปยงต าแหนง 999 และท าการค านวณ เกบคา อานคา หรอเปรยบเทยบคา ในต าแหนงอน ๆ กบคาในต าแหนง 999 น โปรแกรมของผใช จะท างานดวยต าแหนงทางตรรกะ (Logical address) ฮารดแวรของเครองเปนผจดการการจบคต าแหนงทางตรรกะนกบต าแหนงจรง เมอมการอางองต าแหนงในหนวยความจ า

ในระบบนมการก าหนดต าแหนง 2 แบบ คอต าแหนงทางตรรกะ (คา 0 ถง max) และต าแหนงจรง (ทางกายภาพ คาจาก R ถง R+max โดย R เปนคาต าแหนงเรมตน) โปรแกรมของผใชจะใชต าแหนงทางตรรกะเทานน ระบบปฏบตการจะรมากกวาและสามารถอางองต าแหนงจรงโดยตรงได ขอมลตาง ๆ ทโปรแกรมผใชสงใหระบบปฏบตการ (เชน ทพกขอมล ตวแปรในการเรยกระบบ) จะตองมการยายต าแหนง หรอค านวณหาคาต าแหนงจรงใหถกตอง โปรแกรมผใชใหคาต าแหนงทางตรรกะมา ระบบตองจบคหาต าแหนงจรงกอนน าไปใชงาน

กระบวนการทก าลงท างานตองอยในหนวยความจ าหลกเสมอ แตอาจถกยายไปอยในหนวยเกบโปรแกรมชวคราว (Backing Store) ได และน ากลบมาใหมเพอท างานตอ ในระบบการท างานแบบหลายโปรแกรมทใชการจดตารางการท างานแบบเวยนเทยน (round-robin) เมอสวนแบงเวลา (Time Quantum) สนสด ตวจดการหนวยความจ าจะยายกระบวนการปจจบนออกไปและเอากระบวนการใหมเขามาท างานแทน

ในทางทฤษฏตวจดการหนวยความจ าตองสามารถสบเปลยนกระบวนการไดเรวมาก จนกระทงตวจดตารางหนวยประมวลผลเหนวามกระบวนการอยในหนวยความจ าตลอดเวลา ในทางปฏบตเวลาทใชในการสบเปลยนงานน (context-switch time) คอนขางมาก สมมตวากระบวนการผใชมขนาด 100 K หนวยเกบโปรแกรมชวคราว (backing store) มอตราการถายโอนขอมล 1 M ตอวนาท เวลาทใชในการถายโอนกระบวนการผใชจะเทากบ 100 K / 1 M = 100 มลลวนาท ถาอตราเฉลยในการทหวอานเคลอนไปยงต าแหนงทตองการ (Latency Time) เปน 8 มลลวนาท เวลาในการสบเปลยนจะเปน 100 + 8 = 108 มลลวนาท การสบเปลยนงานมกตองสบงานเกาออก และสบงานใหมเขาแทนท ดงนนเวลารวมในการสบเปลยนงานครงหนง ๆ จะเทากบ 216 มลลวนาท

การสบเปลยนงานจะตองแนใจวาไมมโปรเซสอะไรตดคางอยโดยเฉพาะการรอคอยขอมล

การสบเปลยนโปรเซสเกออกไปและโปรเซสใหมแทนท อาจท าใหอปกรณรบสงขอมลสงผดโปรเซสได

วธการแกปญหา คอ 1. หามสบเปลยนงานขณะทมการรอคอยการรบสงขอมล 2. การรบสงขอมลจะตองใชท พกขอมลภายในเนอทของระบบปฏบตการเทานน และระบบจะสงตอใหโปรเซส เมอโปรเซสก าลงท างานในหนวยความจ าหลกเทานน

หนวยความจ าหลกตองจ าเปนจะตองอ านวยความสะดวกใหกบระบบปฏบตการ

แตละโปรเซส (Process) มความตองการใชพนทในหนวยความจ าอยางตอเนอง จงเปนหนาทของระบบปฏบตการในการจดสรรพนทหนวยความจ าในหนวยความจ าใหมปะสทธภาพสงสด

โดยทวไปแลวหนวยความจ าหลก (Main Memory) จะถกแบงออกเปน 2 สวน คอ หนวยความจ าระดบบน (High Memory) ซงเปนสวนทใชตดตอกบสวนของผใช (User) และหนวยความจ าระดบลาง (Low Memory) ซงเปนสวนของระบบปฏบตการ (Operating System)

รนโปรแกรมไดเพยงทละ 1 โปรแกรมเทานน ณ เวลาใดเวลาหนง ไมแบงหนวยความจ าเปนสวนๆ a : อยในระบบคอมพวเตอรเมนเฟรม และมนคอมพวเตอรสมยตน ๆ b : ใชในเครองปาลมและคอมพวเตอรขนาดเล ก c : ใชในPC ยคแรก ๆ(MS-DOS)

การแบงระดบของหนวยความจ าหลก (The Level of Main Memory)

1.การจดสรรหนวยความจ าแบบพนทเดยว (Single-partition Allocation)

วธนหนวยความจ าจะไมถกแบงพนท โดยโปรเซสในสวนของระบบปฏบตการจะอยในสวนหนวยความจ าระดบลาง และสวนของโปรเซสของผใชอยในสวนหนวยความจ าระดบบน โดยเกยวของกบรจสเตอรยายต าแหนง (Relocation Register) ในการแยกโปรเซส ในสวนของผใชออกจากสวนของระบบปฏบตการและรจสเตอรขอบเขต (Limit Register) เปนรจสเตอรทใชระบขนาดของคาต าแหนงทางตรรกะ โดยคาต าแหนงทางตรรกะ ตองนอยกวารจสเตอรขอบเขต เสมอ

แสดงภาพฮารดแวรทสนบสนนการท างานของรจสเตอรยายต าแหนงรจสเตอรขอบเขต

2.การจดสรรหนวยความจ าแบบหลายพนท (Multiple-partition Allocation) วธนหนวยความจ าจะถกแบงตามจ านวน Process มวธการจดสรร 2 รปแบบ ดงน 2.1 การแบงแบบคงท (Fixed Partition) 2.2 การแบงแบบพลวต (Dynamic Partition)

2.1 การแบงแบบคงท (Fixed Partition) โดยการแบงพนทหนวยความจ าอออกเปนหลาย ๆ พารทชน (Partition) ใหมขนาดเทากนและบรรจโปรเซสอยภายในเพยงหนงโปรเซสเทานน ขอเสยของวธคอ หากโปรเซสทบรรจอยในหนวยความจ ามขนาดเลกกวาพารทชนทก าหนดจะท าใหเหลอพนทในหนวยความจ า (พารทชนมพนทวางเหลอ) เรยกพนทวางทเหลอนวา “Internal Fragmentation” กรณทขนาดของโปรเซสมขนาดใหญกวาพารทชนทก าหนดกจะไมสามารถน าโปรเซสนนเขาไปใชงานพนทในหนวยความจ าหลกได

แกปญหา Internal Fragmentation โดยการจดแบบ Multiple input Queues แบงแบบ คงทแต ไมเทากน

เกดปญหาตามมาคอ ม Queue รอเปนจ านวนมาก ส าหรบ พนทนอยๆ แต พนทเยอะๆ กลบไมไดใชงาน

ท าการเลอก โดยใช FCFS เชน หาก Part 2 มขนาด 200 ขนาดของ 220 จะไมถกเลอก แตจะเลอก 70 แทน เนองจากพนทไมพอ วธการนอาจจะเกดการใชงาน พนทไมเตมประสทธภาพ แตมการท างานทเรว

220 70 30 130 180

2.2 การแบงแบบพลวต (Dynamic Partition) เปนการแบงพนทตามขนาดของโปรเซส โดยการใชพนทวางทางกายภาพทเรยกวา โฮล (Hold) เมอมโปรเซสตองการใชงานพนทในหนวยความจ า ระบบปฏบตการจ ามหนาทในคนหาพนทโฮล (Hold) ทมขนาดใหญเพยงพอกบโปรเซส แลวจงน าโปรเซสนนเขาไปใชงานหนวยความจ า ระบบปฏบตการจะมตารางทเกบขอมลวาพนทในหนวยความจ าหลกสวนใดถกครอบครองและสวนใดยงวางอย พนททเหลออยกจะเกบไวใชในการจดสรรครงตอไป ตวอยางเชน ระบบมหนวยความจ าหลกขนาด 2560 K มโปรแกรมของระบบ

ใชพนทอย 400 K สวนวางทเหลออก 2160 K ส าหรบผใช สมมตใหในแถวคอยขาเขา (input queue)

เราสามารถจดสรรพนทใหแก กระบวนการ P1 , P2 และ P3 ได กระบวนการ P4 ทรออยในแถวคอยขาเขา เมอกระบวนการ P2 ท างาน

เสรจพนทท P2 ครอบครองอยจะวางลง กระบวนการ P4 จงสามารถเขามาท างานได เมอกระบวนการ P1 ท างานเสรจ กระบวนการ P5 กสามารถเขามาใชพนททวางลงตอไปได

จะเหนวาระบบพยายามหาพนทวางส าหรบ Process ท าใหเกดพนท 2 สวน สวนหนงเปนพนทจอง Process และอกพนทหนงคอพนทวาง

ถาพนททคนจาก Process ตอกบพนทวางเดม พนทนนกจะเปนผนเดยวกน

ปญหาทเกดคอ อาจจะมพนทวาง มากมายแตมขนาดเลกและไมตอเนองกนซงไมเพยงพอกบ Process ทตองการพนทขนาดใหญ

ซงมวธจดหาพนทวางนใหกบ Process เพอใหไดประสทธภาพสงสด วธทนยมไดแก First Fit, Best Fit , worst Fit

First fit เปนการเลอกโฮลตวแรก (First Hold) ทพบกอนและมขนาดใหญเพยงพอกบโปรเซสทจะน าเขาไปวางในหนวยความจ า ซงเปนวธทใชเวลานอยทสด

Best fit เปนการเลอกโฮลทมขนากเลกทสด (smallest Hold) เพอใหเหมาะสมทสดกบโปรเซสทจะน าเขาไปวางในหนวยความจ า ซงตองท าการคนหาทงรายการทเกบขนาดของโฮล (Hold) ทวาง ซงเปนวธจดสรรพนทวางในหนวยความจ าใหเกดประโยชนสงสดเพราะเหลอพนทวางโฮลนอยทสด (smallest leftover hold) แตกเสยเวลาการคนหา

Worst fit เปนการเลอกโฮลขนาดทใหญทสด (Largest Hold) เพอใหเหมาะสมทสดกบโปรเซสทจะน าเขาไปวางในหนวยความจ า ซงตองท าการคนหาทงรายการทเกบขนาดของโฮล (Hold) ทวาง วธนอาจจะดกวาวธ Best fit เพราะเหลอพนทวางโฮลนอยกวา

การใชขนตอนวธในการจดสรรพนทหนวยความจ าจะมปญหาทเกดตามมาคอ พนทหนวยความจ าซงวางเปนชวง ๆ มขนาดเลกไปส าหรบงานทรอคอยอยหรอทเรยกวาการสญเปลาของพนทยอยภายนอก (External Fragmentation) หมายความวาในขณะทกระบวนการถกบรรจลงหนวยความจ า และถกน าออกไปจากระบบ หนวยความจ าจะถกแบงเปนสวนยอยเลก ๆ หลายสวน ท าใหระบบไมสามารถบรรจกระบวนการใหมไดอก เนองจากพนทวางเหลานน มไดอยตดตอกนเปนผนเดยว แตกลบกระจดกระจายไปทว ๆ หนวยความจ า

การสญเปลาพนทยอยภายนอก (External Fragmentation) การทพนทถกแบงเปนสวนยอย ๆ น อาจเปนปญหาใหญของระบบได

กรณทแยทสดคอ มพนทวาง (ซงสญเปลา) ระหวางกระบวนการ ทตดกนทก ๆ ค ถาเราสามารถท าใหพนทวางเปลานตอเนองกน กอาจใชใสกระบวนการไดอกมาก

อกปจจยหนง กคอ เมอมพนทวางเราจะจดสรรพนทใหมใหตดดานบนหรอตดดานลางของพนทวางด ไมวาจะใชขนตอนวธแบบใด ปญหาการสญเปลาพนทยอยภายนอกกยงเปนปญหาอย

1. การบบอด (Compaction) การบบอด คอการสบเปลยน (โยกยาย) พนทวางในระบบใหมาอยรวมกนเปนพนทผนเดยวตอเนองกน ตวอยางเชน จากแผนภาพระบบสามารถท าการบบอดหนวยความจ าของระบบใหเปนไปดงรป

จะเหนวาพนทวางเลก ๆ 3 ผน ( คอ 100K 300K และ 260K) ไดถกยายมารวมใหเปนพนทผนเดยวทมขนาด 660K

การบบอดหนวยความจ าของระบบไมอาจท าไดกบทกระบบ สงเกตจากรปขางบน ทมการเคลอนยายกระบวนการ P4 และ P3 กระบวนการทง 2 ตองสามารถท างานตอได เมอเขามาอยในพนทใหม โดยต าแหนงอางองภายในทงหมดจะตองถกปรบปรง เราสามารถบบอดหนวยความจ าเฉพาะกรณท การยายต าแหนงเปนแบบสมพทธ (Dynamic) และเกดขนขณะ Execution-time เทานน

การบบอดท าไดเฉพาะกรณการยายต าแหนงแบบ สมพทธ เกดในขณะ Execution Time เทานน

การบบอดทงายทสด คอ จดการเคลอนยายโปรเซสทงหมดในระบบใหไปอยขอบใดขอบหนงของหนวยความจ าหลกใหเกดเปนพนทวางขนาดใหญ

แลวถา โปรแกรมหรอProcess ทมขนาดใหญกวาหนวยความจ าจะมโอกาสไดเขาท างานหรอไม

Memory Management

การแบงหนา (Paging) เปนการจดสรรพนทวางบนหนวยความจ า โดยท าใหโปรเซสทอยบนหนวยความจ าไดโดยไมตองเรยงตอเนองกนทงโปรเซสเปนการใชพนทวางอยกระจดกระจายโดยไมสญเปลา และไมจ าเปนจะตองบบอดพนทวางในหนวยความจ ากอน

เพราะหนวยความจ าจะแบงออกเปนหนาๆ หนาละเทาๆ กน ดงนนการเปลยนกระบวนการจะท าไดงายขนเพราะมเนอทมขนาดเทากนหมด

แตการเขาถงขอมลจะมความเรวทลดลง วธการนเปนทนยมในหลายๆ ระบบปฏบตการ

หนวยความจ า จะถกแบงออกเปนสวนๆ แตละสวนจะมขนาดเทากน เรยกวา หนาจรง Frame โดยทขนาดของเพจถกก าหนดโดยฮารดแวร

หนวยความจ าทางตรรกะของโปรแกรมจะถกแบงเปนสวนๆ ซงจะมขนาดเทากบสวนของหนาจรง จะเรยกวา หนาเทยม Page โดยก าหนดขนาดเพจเทากบขนาดเฟรม ต าแหนงจะถกจดสรรโดยหนวยประมวลผลกลาง (CPU) โดยแบงออกเปน สองสวน คอ

2.1 หมายเลขเพจ (Page Number: p) โดยหมายเลขเพจจะใชดรรชน (Index) เพอชไปยงตารางเพจ (Page Table) ซงภายในบรรจต าแหนงเรมตน (Base Address) ของแตละเพจในหนวยความจ าทางกายภาพ (Physical Memory)

2.2 ขอบเขตเพจ (Page Offset: d) คอ ต าแหนงจรงในหนวยความจ า ทน ามารวมกบต าแหนงเรมตน (Base Address) ทไดจากตารางเพจ (Page Table) เพอใชค านวณหาต าแหนงของหนวยความจ าทางกายภาพ (Physical Memory)

การแบงหนาเปนการท าใหโปรเซสอยบนหนวยความจ าไดโดยไมตองเรยงตอเนองกนทงโปรเซสเปนการใชพนทวางอยกระจดกระจายโดยไมสญเปลา และไมตองบบอดกอน

ท าการสบเปลยนโปรเซสเขา-ออกจากหนวยความจ า ไปเกบไวทพกขอมลชวคราว(Backing store)

หนวยความจ าจรง แบงเปนสวนๆ ขนาดเทาๆ กน เรยกวา Frame หนวยความจ าทางตรรกะ แบงเปนสวนๆ ขนาดเทาๆ กนเรยกวา

Page 1 Frame = 1 Page เปนทพกโปรแกรมชวคราวแบงเปนสวนๆ = Frame = Page

ขนาดของเพจเปนขนาดยกก าลง 2 มขนาดอยระหวาง 512 ไบตถง 16 MB ตอเพจ ขนอยกบสถาปตยกรรมของคอมพวเตอร

เชน ถาขนาดของต าแหนงวางทางตรรกะคอ 2m และขนาดของหนา (Page) คอ 2n ดงนนบตดานสง (m-n) ของต าแหนงทางตรรกะ จะเปนหมายเลขหนา (page number) สวนบตลาง n เปนระยะจากขอบหนา (page Offset)

p d

Page number Page offset

m-n n

p

0 ก 1 ข 2 ข 3 ค

4 ๓ 5 ฆ 6 ง 7 จ

8 ฉ 9 ช 10 ซ 11 ฯ

12 ญ 13 ฏ 14 ฤ 15 ฐ

0 5

1 6

2 1

3 2

ฉ ช ซ ฯ

ญ ฏ ฤ ฐ

ก ข ข ค

๓ ฆ ง จ

0

4

8

12

18

20

20

24

28

หนวยความจ าทางตรรกะ

ตารางเลขหนา

ทางกายภาพ

หนวยความจ าจรงมขนาด 32 ไบต (รวม 8 หนา) และสมมตใหหนวยความจ าทางตรรกะม 4 หนา (16 ไบต) ต าแหนงทางตรรกะ 0 จะแสดงคาหมายเลขหนา (page number) 0 และระยะจากขอบ (page offset) 0 จากหมายเลขหนา 0 เทยบในตารางเลขหนา จะเหนวาตรงกบหนาจรง (frame) เลขท 5 ดงนนต าแหนงทางกายภาพจรงๆ เปน 20

หากเปนต าแหนงทางตรรกะท 3 แปลงเปนต าแหนงจรง ได 23 ต าแหนงทางตรรกะท 4 ต าแหนงทางตรรกะคอ page 1 offset 0 เทยบ

ตาราง ไดเปน Frame 6 ดงนนแปลงเปนต าแหนงจรงได เปน 24

ระบบการแบงหนาจะไมมการสญเสยเนอทภายนอก แตอาจเกดการสญเสยเนอทภายใน

ตวอยางเชน ขนาดของหนาเปน 2048 byte โปรเซสตองการ 72,766 byte ใชพนท 35 หนา+ 1,086 byte ตองจดสรรพนทให = 36 หนา ดงนน หนาสดทายเหลอพนทวาง= 2048-1086 = 962 byte กรณทเลวรายทสด โปรเซสตองการพนท n หนา กบอก 1 byte เกดการ สญเสยเนอท วางภายในเกอบ 1 หนา แตหาก เราเลอกใหมหนาขนาดเลกแตจะเปลองเนอทในการเกบตาราง

เลขหนามากขน

top related