300 likes | 555 Views
Advanced Operating System Operating System Technology. SECONDARY STORAGE STRUCTURE. โครงสร้างของหน่วยเก็บข้อมูลสำรอง. โครงสร้างของดิสก์ (Disk Structure). ดิสก์ในปัจจุบันมีหลายประเภท ที่ใช้งานกันอยู่ทั่วไปคือ ดิสก์แม่เหล็ก (Magnetic disk) เช่น ฮาร์ดดิสก์ ฟล็อปปี้ดิสก์ Handy drive
E N D
Advanced Operating System Operating System Technology SECONDARY STORAGE STRUCTURE โครงสร้างของหน่วยเก็บข้อมูลสำรอง
โครงสร้างของดิสก์ (Disk Structure) • ดิสก์ในปัจจุบันมีหลายประเภท ที่ใช้งานกันอยู่ทั่วไปคือ ดิสก์แม่เหล็ก (Magnetic disk) เช่น ฮาร์ดดิสก์ ฟล็อปปี้ดิสก์ Handy drive • การจัดเนื้อที่บนดิสก์แม่เหล็กจะมีการจัดแบ่งออกเป็นไซลินเดอร์(Cylinder) • ในแต่ละไซลินเดอร์จะแบ่งออกเป็นแทร็ก (Track) • ในแต่ละแทร็กจะแบ่งออกเป็นเซ็กเตอร์ (sector) • ถ้าเป็นแผ่นฟล็อปปี้ดิสก็จะมีเซ็กเตอร์ประมาณ 8 ถึง 32 เซ็กเตอร์ • ฮาร์ดดิสก์มีจำนวนเซ็กเตอร์หลายร้อยเซ็กเตอร์ • หน่วยเล็กที่สุดทางด้านตรรกะในการอ้างอิงถึงเนื้อที่บนดิสก์คือ บล็อก (Logical block)
โครงสร้างของดิสก์ (Disk Structure) • ขนาดของ บล็อกจะมีขนาด 512 ไบต์ หรืออาจจะกำหนดให้ 1 บล็อกให้มีขนาด 1024 ไบต์ก็ได้ • บล็อกจะอยู่เรียงกันตามลำดับในแต่ละเซ็กเตอร์ โดยเซ็กเตอร์ 0 จะเป็นเซ็กเตอร์แรกของแทร็กแรกที่อยู่ไซลินเดอร์ด้านนอกสุดของดิสก์ • จำนวนเซ็กเตอร์ต่อแทร็กนั้นไม่คงที่ • ดิสก์สมัยใหม่จะมีการจัดแบ่งพื้นที่ออกเป็น 2 ส่วนคือ • ส่วนนอกจะมีจำนวนเซ็กเตอร์มาก • ส่วนในจะมีจำนวนเซ็กเตอร์น้อย
โครงสร้างของดิสก์ (Disk Structure)
โครงสร้างของดิสก์ (Disk Structure)
Hard Disks • Platters range from .85” to 14” (historically) • Commonly 3.5”, 2.5”, and 1.8” • Range from 30GB to 3TB per drive • Performance • Transfer Rate – theoretical – 6 Gb/sec • Effective Transfer Rate – real – 1Gb/sec • Seek time from 3ms to 12ms – 9ms common for desktop drives • Average seek time measured or calculated based on 1/3 of tracks • Latency based on spindle speed • 1 / (RPM / 60) = 60 / RPM • Average latency = ½ latency (From Wikipedia)
Hard Disk Performance • Access Latency = Average access time = average seek time + average latency • For fastest disk 3ms + 2ms = 5ms • For slow disk 9ms + 5.56ms = 14.56ms • Average I/O time = average access time + (amount to transfer / transfer rate) + controller overhead • For example to transfer a 4KB block on a 7200 RPM disk with a 5ms average seek time, 1Gb/sec transfer rate with a .1ms controller overhead = • 5ms + 4.17ms + 0.1ms + transfer time = • Transfer time = 4KB / 1Gb/s * 8Gb / GB * 1GB / 10242KB = 32 / (10242) = 0.031 ms • Average I/O time for 4KB block = 9.27ms + .031ms = 9.301ms
The First Commercial Disk Drive 1956 IBM RAMDAC computer included the IBM Model 350 disk storage system 5M (7 bit) characters 50 x 24” platters Access time = < 1 second
Solid-State Disks • Nonvolatile memory used like a hard drive • Many technology variations • Can be more reliable than HDDs • More expensive per MB • Maybe have shorter life span • Less capacity • But much faster • Busses can be too slow -> connect directly to PCI for example • No moving parts, so no seek time or rotational latency
Magnetic Tape • Was early secondary-storage medium • Evolved from open spools to cartridges • Relatively permanent and holds large quantities of data • Access time slow • Random access ~1000 times slower than disk • Mainly used for backup, storage of infrequently-used data, transfer medium between systems • Kept in spool and wound or rewound past read-write head • Once data under head, transfer rates comparable to disk • 140MB/sec and greater • 200GB to 1.5TB typical storage
Disk Structure • Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer • Low-level formatting creates logical blocks on physical media • The 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially • Sector 0 is the first sector of the first track on the outermost cylinder • Mapping proceeds in order through that track, then the rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost • Logical to physical address should be easy • Except for bad sectors • Non-constant # of sectors per track via constant angular velocity
Disk Attachment • Host-attached storage accessed through I/O ports talking to I/O busses • SCSI itself is a bus, up to 16 devices on one cable, SCSI initiatorrequests operation and SCSI targetsperform tasks • Each target can have up to 8 logical units(disks attached to device controller) • FC is high-speed serial architecture • Can be switched fabric with 24-bit address space – the basis of storagearea networks(SANs) in which many hosts attach to many storage units • I/O directed to bus ID, device ID, logical unit (LUN)
การจัดตารางของดิสก์ (Disk Scheduling) • หนึ่งในความรับผิดชอบของระบบปฏิบัติการ คือ ต้องใช้ฮาร์ดแวร์อย่างมีประสิทธิภาพสำหรับดิสก์ (disk drive) • คือ มีเวลาในการเข้าถึงอย่างรวดเร็ว (fast access time) และ disk bandwidth • เวลาในการเข้าถึง มี 2 องค์ประกอบหลัก คือ • เวลาในการค้นหา (seek time)คือ เวลาที่แขนของดิสก์เคลื่อนหัวอ่านไปสู่ไซเรนเดอร์ที่มีเซกเตอร์ที่ต้องการ • เวลาในการหมุนหัวอ่าน (rotational latency)คือ เวลาในการรอคอยที่เพิ่มขึ้นสำหรับดิสก์ในการหมุนเซกเตอร์ที่ต้องการมาสู่หัวอ่าน
การจัดตารางของดิสก์ (Disk Scheduling) • disk bandwidthคือ จำนวนไบต์ทั้งหมดที่ถูกโอนย้ายมา จากเวลาทั้งหมดตั้งแต่การร้องขอบริการครั้งแรกจนถึงการโอนย้ายครั้งสุดท้ายเสร็จสิ้น • สามารถปรับปรุงทั้งเวลาในการเข้าถึง และ bandwidth โดยการจัดตารางบริการของการร้องขอรับ-ส่งข้อมูลของดิสก์ในลำดับที่ดี • ถ้าดิสก์ (disk drive) และตัวควบคุม (controller) ว่าง การร้องขอจะได้รับบริการทันที • ถ้าไม่ว่าง การร้องขอใหม่จำเป็นต้องนำไปไว้ในแถวคอย (disk queue) สำหรับระบบ multiprogramming ที่มีหลายกระบวนการ แถวคอยของดิสก์อาจมีการร้องขออยู่หลายตัว • เมื่อการร้องขอหนึ่งได้รับบริการแล้ว ระบบปฏิบัติการจึงมีโอกาสที่จะเลือกการร้องขอใหม่มาให้บริการถัดไป
การจัดตารางแบบมาก่อน-ได้ก่อน (FCFS Scheduling) • รูปแบบที่ง่ายที่สุดของการจัดตารางของดิสก์ คือ มาก่อน-ได้ก่อน (first-come, first-served;FCFS) พิจารณาตัวอย่าง ถ้าแถวคอยของดิสก์ มีการร้องขอการรับส่งข้อมูลของบล็อคบนไซเรนเดอร์ดังนี้ • 98 , 183 , 37 , 122 , 14 , 124 , 65 , 67 • ถ้าหัวอ่านเริ่มต้นที่ไซเรนเดอร์ที่ 53 มันจะเริ่มเคลื่อนในครั้งแรกจาก 53 ไป 98 แล้วจึงไป 183 , 37 , 122 , 14 , 124 , 65 และสุดท้ายที่ 67 สำหรับการเคลื่อนย้ายหัวอ่านทั้งหมด 640 ไซเรนเดอร์
การจัดตารางแบบมาก่อน-ได้ก่อน (FCFS Scheduling)
การจัดตารางแบบมาก่อน-ได้ก่อน (FCFS Scheduling) • ปัญหาของการจัดตารางวิธีนี้ • จากการเหวี่ยงกว้างจาก 122 ไป 14 แล้วกลับมา 124 • ถ้าการร้องขอสำหรับไซเรนเดอร์ 37 และ 14 ได้รับบริการต่อกัน ก่อนหรือหลังการร้องขอที่ 122 และ 124 การเคลื่อนย้ายหัวอ่านทั้งหมดน่าจะลดลงอย่างมาก • ดังนั้นสมรรถนะ (performance) ควรจะได้รับการปรับปรุง
การจัดตารางแบบเวลาในการค้นหาสั้นที่สุดได้ก่อน (SSTF Scheduling) • เลือกการร้องขอที่มีเวลาในการค้นหาน้อยที่สุดจากตำแหน่งปัจจุบันของหัวอ่าน (Shortest Seek Time First; SSTF) • เลือกการร้องขอที่ใกล้ที่สุดกับตำแหน่งปัจจุบันของหัวอ่าน • จากตัวอย่างที่แล้ว 98 , 183 , 37 , 122 , 14 , 124 , 65 , 67 • การร้องขอที่ใกล้กับตำแหน่งเริ่มต้นของหัวอ่านที่สุด (53) คือที่ไซเรนเดอร์ 65 • เคลื่อนมาที่ไซเรนเดอร์ 65 การร้องขอที่ใกล้ที่สุดถัดไปคือที่ไซเรนเดอร์ 67 จากนั้นการร้องขอที่ไซเรนเดอร์ 37 จะใกล้กว่า 98 ดังนั้น 37 จะได้รับบริการถัดไป ต่อมาเราบริการการร้องขอที่ไซเรนเดอร์ 14 แล้วเป็น 98 , 122 , 124 และสุดท้ายที่ 183
การจัดตารางแบบเวลาในการค้นหาสั้นที่สุดได้ก่อน (SSTF Scheduling)
การจัดตารางแบบเวลาในการค้นหาสั้นที่สุดได้ก่อน (SSTF Scheduling) • การเคลื่อนย้ายหัวอ่านทั้งหมดมีเพียง236 ไซเรนเดอร์เท่านั้น น้อยกว่า 1 ใน 3 ของระยะทางของวิธี FCFS วิธีนี้ทำให้สมรรถนะได้รับการปรับปรุงอย่างมาก • การจัดตารางแบบ SSTF เหมือนกับ SJF มันอาจจะเกิดปัญหาการแช่เย็น (starvation) การร้องขออาจมาถึงที่เวลาต่าง ๆ กัน • สมมติว่าเรามีการร้องขอ 2 ตัวในแถวคอย สำหรับไซเรนเดอร์ 37และ 186 และขณะที่กำลังบริการการร้องขอจาก 37 • การร้องขอใหม่ใกล้ 37มาถึงการร้องขอใหม่นี้จะได้รับบริการเป็นรายถัดไป ทำให้การร้องขอที่ 186 ต้องรอก่อน • ในขณะที่การร้องขอนี้กำลังได้รับบริการ การร้องขออีกตัวที่ใกล้ 37มาถึงอีก เป็นเหตุให้การร้องขอสำหรับไซเรนเดอร์ 186 จะต้องรออย่างไม่สิ้นสุด สิ่งนี้จะเป็นการเพิ่มแถวคอยการร้องขอให้ยาวขึ้น
การจัดตารางแบบเวลาในการค้นหาสั้นที่สุดได้ก่อน (SSTF Scheduling) • ถึงแม้ว่าวิธี SSTF จะปรับปรุงมาจาก FCFS แต่มันยังไม่ดีที่สุด จากตัวอย่าง • สามารถทำได้ดีกว่าโดยการเคลื่อนหัวอ่านจาก 53 ไป 37 ถึงแม้ว่า 37 จะไม่ใกล้ที่สุด จากนั้นไป 14 ก่อนจะกลับไป 65 , 67 , 98 , 122 , 124 และ 183 • วิธีเป็นการลดการเคลื่อนย้ายหัวอ่านทั้งหมดเหลือ 208 ไซเรนเดอร์
การจัดตารางแบบกวาด (SCAN Scheduling) • วิธีแบบกวาด (SCAN) แขนของดิสก์เริ่มต้นที่จุดสิ้นสุดจุดหนึ่งของดิสก์ (A) และเคลื่อนไปยังจุดสิ้นสุดอื่น (B)การบริการการร้องขอจะทำได้เมื่อมันมาถึงในแต่ละไซเรนเดอร์ จนกระทั่งมันไปถึงจุดสิ้นสุดอื่นของดิสก์ (B) ที่จุดสิ้นสุดอื่น (B) ทิศทางของการเคลื่อนของหัวอ่านจะถูกย้อนกลับและให้บริการต่อไป หัวอ่านจะกวาดไปข้างหน้าและข้างหลังผ่านดิสก์ไปเรื่อย ๆ พิจารณาตัวอย่างเดิม • ก่อนจะใช้วิธีจัดตารางแบบกวาด กับการร้องขอบนไซเรนเดอร์ 98 , 183 , 37 , 122 , 14 , 124 , 65 และ 67 เราจำเป็นต้องรู้ทิศทางของการเคลื่อนหัวอ่านก่อน โดยถ้าตอนนี้ตำแหน่งปัจจุบันของหัวอ่านคือ 53 ถ้าแขนของดิสก์กำลังเคลื่อนไปทาง 0 หัวอ่านจะบริการ 37 และจากนั้นเป็น 14 ที่ไซเรนเดอร์ 0 แขนจะย้อนกลับและจะเคลื่อนผ่านจุดสิ้นสุดอื่นของดิสก์ (ที่ไม่ใช่ 0) การบริการการร้องขอจะทำที่ 65 , 67 , 98 , 122 , 124 และ 183
การจัดตารางแบบกวาด (SCAN Scheduling)
การจัดตารางแบบกวาด (SCAN Scheduling) • ถ้าการร้องขอที่พึ่งจะมาอยู่ในแถวคอยหน้าของหัวอ่าน มันก็จะได้รับบริการเกือบจะทันที ส่วนการร้องขอที่พึ่งจะมาถึงหลังหัวอ่าน ก็จะต้องรอจนกระทั่งแขนเคลื่อนไปถึงจุดสิ้นสุดของดิสก์แล้วย้อนกลับมาอีกครั้ง
การจัดตารางแบบกวาดเป็นวง (C-SCAN Scheduling) • วิธีการกวาดเป็นวง (Circular SCAN:C-SCAN) คือ การเปลี่ยนแปลงของการกวาดซึ่งถูกออกแบบมาเพื่อจัดการกับเวลารอคอยที่มากกว่า 1 รูปแบบ • แบบกวาดเป็นวงจะเคลื่อนหัวอ่านจากจุดสิ้นสุดจุดหนึ่ง (A) ของดิสก์ไปสู่อีกจุดหนึ่ง (B) ที่มีความหนาแน่นของการร้องขอมากกว่า และมันจะกลับไปสู่จุดเริ่มต้นของดิสก์ในทันที โดยไม่บริการการร้องขอใด ๆ ในขากลับนี้ • การจัดตารางแบบกวาดเป็นวงนี้เป็นสิ่งจำเป็นสำหรับการจัดการกับไซเรนเดอร์แบบวงกลม ซึ่งล้อมรอบจากไซเรนเดอร์สุดท้ายไปสู่ไซเรนเดอร์แรก
การจัดตารางแบบกวาดเป็นวง (C-SCAN Scheduling)
การจัดตารางแบบ LOOK (LOOK Scheduling) • จะเห็นว่า ทั้งแบบกวาดและกวาดเป็นวงจะเคลื่อนแขนดิสก์ไปทั่วทั้งดิสก์ ในทางปฏิบัติ ไม่มีวิธีไหนที่เอาไปใช้จริงได้ • ในความเป็นจริงแขนดิสก์จะไปไกลเพียงแค่การร้องขอสุดท้ายเท่านั้นในแต่ละทิศทาง จากนั้นมันก็จะย้อนกลับไปอีกทางทันที โดยไม่ต้องไปจุดสิ้นสุดของดิสก์ การทำเช่นนี้เรียกว่า LOOK และ C-LOOK เพราะมันมองการร้องขอก่อนจะเคลื่อนไปยังทิศทางที่ได้
การจัดตารางแบบ C-LOOK (C-LOOK Scheduling)
การเลือกวิธีการจัดตารางของดิสก์(Selection of a Disk-Scheduling Algorithm) • วิธี SSTF ดูจะธรรมดาและความเป็นไปได้ตามธรรมชาติ • วิธี SCAN และ C-SCAN ใช้ได้ดีสำหรับระบบที่มีภาระหนักบนดิสก์ • สมรรถนะขึ้นอยู่กับจำนวนและชนิดของการร้องขอ • วิธีการจัดตารางของดิสก์ในระบบปฏิบัติการควรจะถูกเขียนเป็นโมดูลที่แยกกัน โดยอนุญาตให้แทนที่ด้วยวิธีที่ต่างกันได้ถ้าจำเป็น • วิธี SSTF หรือ LOOK น่าจะเป็นทางเลือกที่มีเหตุผลเหมาะสำหรับการนำไปใช้จริง