870 likes | 1.64k Views
บทที่ 6 การจัดการแฟ้มข้อมูล (File Management). วัตถุประสงค์. เรียนรู้โครงสร้างดิสก์ เรียนรู้การจัดเวลาเข้าถึงดิสก์ เรียนรู้หลักการจัดเก็บแฟ้มข้อมูลได้ เรียนรู้หลักการทำงานกับแฟ้มข้อมูลได้ เรียนรู้การเข้าถึงแฟ้มข้อมูลได้ เรียนรู้ระบบไดเร็กทอรี่และโครงสร้างการจัดเก็บไดเร็กทอรี่
E N D
บทที่ 6การจัดการแฟ้มข้อมูล (File Management)
วัตถุประสงค์ • เรียนรู้โครงสร้างดิสก์ • เรียนรู้การจัดเวลาเข้าถึงดิสก์ • เรียนรู้หลักการจัดเก็บแฟ้มข้อมูลได้ • เรียนรู้หลักการทำงานกับแฟ้มข้อมูลได้ • เรียนรู้การเข้าถึงแฟ้มข้อมูลได้ • เรียนรู้ระบบไดเร็กทอรี่และโครงสร้างการจัดเก็บไดเร็กทอรี่ • เรียนรู้การป้องกันข้อมูล
หน่วยความจำหลัก (Primary Memory) • มีความเร็วในการอ่านเขียนข้อมูลสูง ต้องการไฟหล่อเลี้ยงตลอด (Valatile) ถ้าปิดเครื่องหรือไฟดับ ข้อมูลในหน่วยความจำจะหายไปทันที เช่น RAM
หน่วยความจำสำรอง (Secondary Memory) • ทำงานช้ากว่าหน่วยความจำหลัก แต่สามารถเก็บข้อมูลได้โดยไม่ต้องใช้ไฟเลี้ยง (Non-valatile)หน้าที่หลักคือ เก็บข้อมูลเมื่อยามปิดเครื่องเช่น ดิสก์, เทปแม่เหล็ก เป็นต้น
High speed High cost Small size Register Cache Main Memory Volatile low speed low cost Big size Non-Volatile Secondary Memory ลำดับการทำงานของหน่วยความจำ
ลำดับการทำงานของหน่วยความจำลำดับการทำงานของหน่วยความจำ • หน่วยความจำประเภทรีจิสเตอร์ในซีพียู, หน่วยความจำแคชที่วางใกล้ซีพียู, แรมหน่วยความจำหลักในระบบ การทำงานของหน่วยความจำทั้งสามจะเป็นแบบ Volatileและถือเป็น Primary Memoryทั้งหมด • ข้อมูลขณะทำงานระบบจะเก็บอยู่ในหน่วยความจำทั้งสาม รีจิสเตอร์เป็นหน่วยความจำที่มีความเร็วสูงที่สุด แต่พื้นที่การจัดเก็บจะน้อย • ข้อมูลในขณะทำงานส่วนใหญ่ รวมถึงระบบปฏิบัติการจะเก็บอยู่ที่แรม ที่ทำงานช้ากว่า แต่มีพื้นที่ให้เก็บข้อมูลมากกว่า ส่วนข้อมูลที่ใช้ในขณะนั้นหรือใช่บ่อย จะถูกเก็บในแคชหรือรีจิสเตอร์ที่ทำงานได้เร็วกว่า • เมื่อการทำงานสิ้นสุด ข้อมูลสุดท้ายจะถูกส่งไปเก็บที่ SecondaryMemoryที่มีขนาดพื้นที่มากที่สุด แต่ทำงานช้าที่สุด ซึ่งข้อมูลจะคง อยู่แม้ปิดเครื่องไปแล้วเพราะทำงานแบบnon-Volatile
โครงสร้างของดิสก์ (Disk Structure) • การจัดเนื้อที่บนดิสก์แม่เหล็กได้มีการจัดแบ่งออกเป็น แทร็ก(Track) และแบบเซคเตอร์(Sector) • ดิสก์แต่ละแผ่น (Platter) ถูกแบ่งออกเป็นวงกลมหลายวงเรียกว่า แทร็ก แต่ละแทร็กแบ่งออกเป็นเซคเตอร์ • ฮาร์ดดิสก์ จะนำเอาดิสก์หลายแผ่นมาวางเรียงซ้อนกัน จะมีแทร็กที่อยู่ตรงกันของดิสก์แต่ละแผ่นเรียกว่า ไซลินเดอร์(Cylinder) การเรียงลำดับหมายเลขของแทร็กและไซลินเดอร์จะเรียงลำดับต่อกันไป โดยเริ่มจากด้านนอกสุดของดิสก์เรื่อยไปจนถึงด้านในสุด
Tracks :การแบ่งพื้นที่บนจานแม่เหล็กในลักษณะวงกลม (เหมือนลู่วิ่ง) Tracksเป็นการแบ่งพื้นที่บนจานแม่เหล็กในลักษณะเป็นวงกลม โดยจำนวนของวงกลมจะขึ้นกับประเภทของความหนาแน่นของแถบแม่เหล็ก แทรกที่อยู่นอกสุดจะเป็นแทรกแรกเรียกว่า แทรกศูนย์ 8
Sector :การแบ่งพื้นที่ในแต่ละ Track ออกเป็นส่วน ๆ (เหมือนชิ้นขนมเค้ก) • Sector - เป็นการแบ่งพื้นที่ในแต่ละ Track ออกเป็นส่วนๆ แต่ละ Sector จะมีหมายเลขกำหนดไว้ โดยเริ่มจาก Sector นอกสุดของTrack ศูนย์ จะเป็น Sector ศูนย์ 9
Cylinder :กลุ่มของ Track ที่มีหมายเลขเดียวกัน แต่ปรากฏอยู่บนจาน (Platter) ที่ต่างกัน Cylinder - ถูกนำมาใช้เพื่อบอกถึงตำแหน่งของ Track เดียวกัน ในแต่ละ Platter ที่อยู่ตำแหน่งที่ตรงกัน 10
โครงสร้างของดิสก์ (Disk Structure) • การนำไปใช้งาน ดิสก์หลายแผ่นที่ถูกวางเรียงซ้อนทับกันโดยมีแกนกลางทำหน้าที่ยึดดิสก์เหล่านี้ไว้ด้วยกัน • แกนกลางทำหน้าที่เป็นแกนหมุน เพื่อให้ข้อมูลบนเซคเตอร์ที่ต้องการเคลื่อนที่มาอยู่ใต้หัวอ่าน-เขียน ขณะที่หัวอ่านเขียนเคลื่อนที่เข้า/ออก เพื่ออ่าน-เขียนเคลื่อนที่ไปยังแทร็กที่ต้องการ เพื่อจะได้อ่านหรือเขียนข้อมูลที่บรรจุบนแทร็กนั้น ๆ ต่อไป
โครงสร้างของดิสก์ (Disk Structure)
เปรียบเทียบขนาดของRead/write Head 13
ความเร็วในการทำงานของดิสก์ (Disk Speed) • ความเร็วในการทำงานของดิสก์ ขึ้นอยู่กับปัจจัย 2 ประการคือ • อัตราเวลาในการโอนย้ายข้อมูล (Transfer Rate)หมายถึงอัตราเวลาที่ใช้ในการโอนย้ายข้อมูลระหว่างหน่วยขับดิสก์(Disk Drive) และซีพียู • อัตราเวลาในการค้นหาตำแหน่ง (Positioning Rate) หมายถึงเวลาที่ใช้ในการหาตำแหน่งข้อมูลที่ต้องการประกอบด้วย • ระยะเวลาการค้นหา (Seek Time)ระยะเวลาที่ใช้ในการเคลื่อนหัวอ่าน-เขียนไปยังไซลินเดอร์ที่มีเซคเตอร์ที่ต้องการ • ระยะเวลาที่ใช้หมุนดิสก์ (Rotational Latency time)หมายถึงระยะเวลาที่รอให้ดิสก์หมุน จนกระทั่งเซคเตอร์ที่ต้องการเคลื่อนมาอยู่ใต้หัวอ่าน-เขียน
การจัดรูปแบบดิสก์ (Disk Formatting) • ก่อนที่ดิสก์จะถูกนำไปใช้งานได้ต้องถูกจัดรูปแบบ(Format) เพื่อเป็นการจัดโครงสร้างของดิสก์ให้อยู่ในรูปแบบที่สามารถบันทึกข้อมูลได้ โดยที่ระบบปฏิบัติการทำหน้าที่เตรียมดิสก์ให้พร้อมสำหรับการใช้งานด้วยวิธีการดังนี้ • การจัดรูปแบบระดับต่ำ (Low Level Format) • การแบ่งดิสก์ (Disk Partition) • การจัดรูปแบบระดับสูง(High Level Format)
การจัดรูปแบบระดับต่ำ (Low Level Format) • ระบบปฏิบัติการทำหน้าที่จัดรูปแบบของดิสก์ในระดับต่ำ หรือการจัดรูปแบบทางกายภาพ (Physical Format) ด้วยการแบ่งดิสก์ออกเป็นแทร็กและเซคเตอร์ เซคเตอร์ของแทร็กที่อยู่ด้านในสุดจะมีขนาดเล็กกว่าเซคเตอร์ของแทร็กที่อยู่ด้านนอกสุด • ดังนั้นบางระบบปฏิบัติการจึงได้มีการจัดรูปแบบของดิสก์เป็น 2 ระดับ เพื่อให้ขนาดของเซคเตอร์บนดิสก์แผ่นเดียวกันมีขนาดเท่ากัน หรือมีขนาดใกล้เคียงกัน
การแบ่งดิสก์ (Disk Partition) • หลังจากที่ดิสก์ถูกจัดรูปแบบในระดับต่ำแล้ว ระบบปฏิบัติการจะแบ่งพื้นที่ของดิสก์ออกเป็นส่วน ๆ เรียกว่า พาร์ติชั่น เพื่อให้เกิดความสะดวกในการเข้าถึงข้อมูลและโปรแกรม ตลอดจนช่วยเพิ่มความปลอดภัยให้กับข้อมูลที่เก็บบนดิสก์ • ในการแบ่งนั้น ดิสก์หนึ่งจะถูกแบ่งเป็นหลายพาร์ติชั่น โดยทั่วไปแล้วจะแบ่งดิสก์ออกเป็นอย่างน้อย 2 พาร์ติชั่น หรือ 2 ไดรว์ คือ C: และ D: (C: ใช้สำหรับติดตั้งโปรแกรมต่าง ๆ ส่วน D: ใช้ติดตั้งข้อมูลและเพื่อการสำรองข้อมูล)
การแบ่งดิสก์ (Disk Partition) • การแบ่งพาร์ติชั่น แบ่งออกเป็น 3 ประเภทคือ พาร์ติชั่นหลัก, พาร์ติชั่นเสริม และพาร์ติชั่นตรรกะ • พาร์ติชั่นหลัก(Primary Partition) เป็นพาร์ติชั่นหลักของระบบคอมพิวเตอร์ ใช้สำหรับการบู๊ต เข้าระบบคอมพิวเตอร์ พาร์ติชั่นหลักจะหมายถึงไดรว์ C: • พาร์ติชั่นเสริม(Extended Partition) ใช้สำหรับเก็บข้อมูลและโปรแกรม เมื่อมีการสร้างพาร์ติชั่นเสริมจะเกิดพาร์ติชั่นตรรกะอัตโนมัติ • พาร์ติชั่นตรรกะ(Logical Partition) เป็นพาร์ติชั่นที่อยู่ภายใต้พาร์ติชั่นเสริมจะเกิดพาร์ติชั่นตรรกะได้ก็ต่อเมื่อ มีการสร้างพาร์ติชั่นเสริมก่อนเท่านั้น
C: 40 MB C: 40 MB D: 40 MB E: 40 MB F: 40 MB G: 40 MB พาร์ติชั่นหลัก พาร์ติชั่นเสริม ตัวอย่างการแบ่งดิสก์ • ให้แบ่งดิสก์ที่มีขนาด 200 MB ออกเป็นพาร์ติชั่นหลัก,พาร์ติชั่นเสริม และพาร์ติชั่นตรรกะ วิธีทำดิสก์ 100% มีขนาด 200MB แบ่งดิสก์ 20% สำหรับพาร์ติชั่นหลัก และแบ่งดิสก์ 80% สำหรับพาร์ติชั่นเสริม โดยแบ่งพาร์ติชั่นตรรกะ 4 พาร์ติชั่น - พาร์ติชั่นหลัก C: แบ่งดิสก์ได้ 200*0.2 = 40 MB - พาร์ติชั่นเสริม 200-40 = 160 MBแบ่งพาร์ติชั่นตรรกะเป็น 4 พาร์ติชั่น160 4 = 40 MB
การจัดรูปแบบระดับสูง (High Level Format) • การจัดรูปแบบระดับสูง หรือการจัดรูปแบบทางตรรกะ เป็นการกำหนดระบบแฟ้มข้อมูลให้แก่ดิสก์ โดยที่การกำหนดชนิดของแฟ้มข้อมูลให้กับดิสก์นั้นขึ้นกับระบบปฏิบัติการที่ระบบเลือกใช้ เช่น • FAT (File Allocation Table)เป็นระบบแฟ้มข้อมูลสำหรับระบบปฏิบัติการของดอส และวินโดวส์ และด้วยเหตุที่ FAT เป็นที่นิยมใช้อย่างกว้างขวางจึงสามารถใช้ร่วมกับระบบปฏิบัติการอื่นเช่น Linux, OS/2 etc. • VFAT (Virtual File Allocation Table)เป็นระบบไฟล์ FAT เวอร์ชั่นที่มีลักษณะเป็น Protected Mode ซึ่งจะถูกใช้โดย Windows 9x
การจัดรูปแบบระดับสูง (High Level Format) • NTFS (NT Files System)เป็นระบบไฟล์ที่ถูกออกแบบมาเพื่อใช้กับ Windows NT โดยให้ประสิทธิภาพที่ดีด้านระบบความปลอดภัยในการเข้าถึงแฟ้มข้อมูล • HPFS (High Performance File System) เป็นระบบที่ออกแบบมาเพื่อใช้กับระบบปฏิบัติการ OS/2 โดยที่ระบบแฟ้มข้อมูล HPFS เหมือน NTFS ที่มีการรักษาระบบความปลอดภัยที่ดีมีความเชื่อถือได้ มีประสิทธิภาพและความเร็วสูงกว่า FAT • FAT32 (32-bit File Allocation Table)ระบบนี้อยู่ใน Windows 95, OSR2 ในเวอร์ชั่นที่มีการติดตั้งจากผู้ผลิต และ Windows98 โดยที่ FAT32 มีการแก้ปัญหาข้อจำกัดของ FAT หลายประการ และไม่สามารถใช้กับระบบปฏิบัติการอื่นนอกจาก Windows 95, OSR2 และ Windows98
การจัดเวลาการใช้ดิสก์ (Disk Scheduling) • ระยะเวลาที่ระบบใช้ในการเข้าถึงดิสก์ (Disk Access Time) หมายถึง ระยะเวลาที่ระบบต้องใช้ในการเคลื่อนหัวอ่าน-เขียนไปยังไซลินเดอร์ที่มีเซคเตอร์ที่ต้องการ จากนั้นรอให้ดิสก์หมุนจนกระทั่งเซคเตอร์ที่ต้องการถูกหมุนให้มาอยู่ใต้หัวอ่าน-เขียน และเวลาที่ใช้ในการโอนย้ายข้อมูลระหว่างหน่วยขับดิสก์(Disk drive) และซีพียู (เวลาในการเข้าถึงข้อมูล= เวลาค้นหา+เวลาที่ใช้หมุนดิสก์+เวลาโอนย้ายข้อมูล) • โดยทั่วไปดิสก์ถูกหมุนด้วยความเร็วสูง ทำให้เวลาที่ใช้หมุนดิสก์มีค่าน้อยมาก เมื่อเทียบกับเวลาส่วนอื่น จึงสามารถตัดเวลาส่วนนี้ทิ้งไปได้ ส่วนเวลาที่ใช้ในการโอนย้ายข้อมูล ขึ้นกับปริมาณข้อมูลที่ระบบต้องการอ่านหรือเขียน และความเร็วของการส่งข้อมูล ซึ่งค่าทั้งสองนี้ไม่อยู่ในการควบคุมของระบบปฏิบัติการ • ดั้งนั้นเฉพาะเวลาการค้นหาเท่านั้นที่ระบบปฏิบัติการควบคุมได้บ้างบางส่วน
การจัดเวลาการใช้ดิสก์ที่สำคัญมีดังนี้การจัดเวลาการใช้ดิสก์ที่สำคัญมีดังนี้ • แบบมาก่อนได้ก่อน (First Come First Serve Scheduling : FCFS) • แบบสั้นที่สุดได้ก่อน (Shortest Seek Time First Scheduling : SSTF) • แบบสแกน (Scan Scheduling : SCAN) • แบบลุค (LOOK) • แบบซี-สแกน (Circular Scan Scheduling : C-SCAN) • แบบซี-ลุค (C-LOOK)
การจัดเวลาแบบมาก่อนได้ก่อน (First Come First Serve Scheduling : FCFS) • เป็นวิธีการจัดเวลาการใช้ดิสก์ที่ง่ายที่สุด โดยจัดสรรดิสก์ให้กับโปรเซสที่ขอใช้ดิสก์ก่อน
การจัดเวลาแบบมาก่อนได้ก่อน (First Come First Serve Scheduling : FCFS) • จากภาพการทำงานของหัวอ่านแบบการจัดเวลาการใช้ดิสก์แบบมาก่อนได้ก่อน หัวอ่าน-เขียน ต้องเคลื่อนที่มาก ทำให้ประสิทธิภาพการทำงานค่อนข้างต่ำ
การจัดเวลาแบบสั้นที่สุดได้ก่อน (Shortest Seek Time First Scheduling : SSTF) • เป็นวิธีการจัดเวลาแบบสั้นที่สุดได้ก่อน จะให้หัวอ่าน-เขียน เคลื่อนไปยังไซลินเดอร์ที่อยู่ใกล้ตำแหน่งปัจจุบันมากที่สุด เป็นผลให้เสียเวลาค้นหาน้อย
การจัดเวลาแบบสั้นที่สุดได้ก่อน (Shortest Seek Time First Scheduling : SSTF) • เวลาที่ได้จากการจัดเวลาแบบสั้นที่สุดได้ก่อน ใช้เวลาน้อยกว่าการจัดแบบมาก่อนได้ก่อน • แต่ปัญหาของการจัดเวลาแบบนี้คือ การอดตาย เป็นการร้องขอใช้ดิสก์ที่ไม่มีโอกาสได้รับจัดสรรให้ใช้ดิสก์ เช่น เมื่อมีการขอใช้ไซลินเดอร์ที่ 67 และ 37 โดยขณะที่กำลังให้บริการการร้องขอไซลินเดอร์ที่ 67 มีการขอใช้ไซลินเดอร์ใหม่ ที่อยู่ใกล้กับไซลินเดอร์ปัจจุบันก็จะได้รับบริการก่อน ทำให้ผลการขอใช้ไซลินเดอร์ที่ 37 ต้องรอ และถ้าหามีไซลินเดอร์ที่ใกล้กับ 67 เข้ามาอีก ก็ต้องมีการรอต่อไปเรื่อย ๆ
การจัดเวลาแบบสแกน (SCAN) • หัวอ่าน-เขียนจะเคลื่อนที่จากตำแหน่งปัจจุบันไปยังไซลินเดอร์ที่อยู่ใกล้ขอบเขตของดิสก์มากที่สุด (ขอบในหรือขอบนอกก็ได้)และต้องเคลื่อนไปจุดขอบในหรือนอกด้วย
การจัดเวลาแบบลุค (LOOK) • หัวอ่าน-เขียนจะเคลื่อนที่จากตำแหน่งปัจจุบันไปยังไซลินเดอร์ที่อยู่ใกล้ขอบเขตของดิสก์มากที่สุด (ขอบในหรือขอบนอกก็ได้) แต่ไม่ต้องไปถึงขอบในหรือนอกจะตรงข้ามกับวิธี SCAN
การจัดเวลาแบบซี-สแกน (C-SCAN) • หัวอ่าน-เขียนจะเคลื่อนที่จากด้านหนึ่งของดิสก์ไปยังอีกด้านหนึ่งของดิสก์ โดยทันทีที่หัวอ่าน-เขียนเคลื่อนที่ไปถึงขอบด้านหนึ่งของดิสก์แล้ว หัวอ่านก็จะเคลื่อนที่กลับไปยังขอบอีกด้านของดิสก์ทันที โดยไม่มีการให้บริการในระหว่างเคลื่อนกลับ
การจัดเวลาแบบซี-ลุค (C-LOOK) • การเคลื่อนตำแหน่งหัวอ่าน-เขียนคล้ายวิธี C-SCAN แต่วิธีนี้หัวอ่านไม่ต้องไปแตะขอบจบที่การเคลื่อนที่ตำแหน่งที่ใกล้สุดก็ให้เลื่อนไปอีกฝั่งและไม่ต้องแตะขอบเช่นกันเลื่อนหัวอ่านเขียนไปที่ตำแหน่งงานต่อไปได้เลย
หลักการจัดการแฟ้มข้อมูล (File Management Concept) • การจัดการแฟ้มข้อมูลเป็นบริการหนึ่งของระบบปฏิบัติการ ซึ่งระบบปฏิบัติการต้องสร้างระบบแฟ้มข้อมูลที่ผู้ใช้จับต้องได้ขึ้นมา • ผู้ใช้จะเห็นเพียงภาพจำลองที่ระบบสร้างขึ้น(Logical View) เพื่อให้มองเห็นภาพและสั่งงานได้ • ระบบปฏิบัติการต้องแปลงงานจากภาพจำลองเป็นการจัดการแฟ้มข้อมูลจริง(Physical View) ที่อยู่บนหน่วยความจำสำรอง • ผู้ใช้สั่งงานผ่านระบบแฟ้มข้อมูลที่ถูกสร้างขึ้น โดยไม่จำเป็นต้องรู้ว่าข้อมูลในหน่วยความจำสำรองจัดเก็บในลักษณะใด
หลักการจัดการแฟ้มข้อมูล (File Management Concept) • Logical View : สภาพจำลองที่ระบบปฏิบัติการสร้างขึ้นมาโดยอ้างอิงจากข้อมูลทางกายภาพ • Physical View : สภาพกายภาพ เป็นสภาพจริงที่ผู้ใช้งานไม่จำเป็นต้องทราบ เพียงสั่งงานทาง logical view ระบบจะจัดการให้เอง • แฟ้มข้อมูล คือชุดข้อมูลที่ถูกสร้างขึ้นให้มีลักษณะเฉพาะตามแบบผู้สร้าง ทั้งตัวโปรแกรมประยุกต์ หรือไฟล์แบบข้อความ หรือไฟล์เสียง ฯลฯ ซึ่งไฟล์ต้องมีชื่อเสมอ(File name) เพื่อใช้อ้างอิงและค้นหา นอกจากนี้ต้องมีชนิดของไฟล์(File type) เวลาที่สร้าง(Create Time) ชื่อผู้สร้าง ความยาวของไฟล์ เป็นต้น
หลักการจัดการแฟ้มข้อมูล (File Management Concept) • ระบบปฏิบัติการต้องรู้โครงสร้างไฟล์ด้วย เช่น ไฟล์โปรแกรม ไฟล์ระบบ หรือไฟล์ Setup โปรแกรม เพื่อสามารถทำงานกับไฟล์ต่าง ๆ ได้ทันที แต่ไม่จำเป็นต้องรู้จักโครงสร้างไฟล์ทุกชนิด เพราะถ้ารู้จักมากไปจะทำให้ระบบปฏิบัติการมีขนาดใหญ่และกินหน่วยความจำมาก • ไฟล์ทุกไฟล์จะเก็บในหน่วยความจำสำรองเสมอ โดยโครงสร้างการจัดเก็บจะมีรูปแบบที่แตกต่างกัน เช่น ถ้าเป็นแบบเทปแม่เหล็กจะจัดเก็บแบบเรียงลำดับ (Sequential access) แต่ถ้าเป็นดิสก์จะเก็บแบบโดยตรง (Direct access) ซึ่งระบบปฏิบัติการต้องทราบและเลือกวิธีในการอ่านเขียนข้อมูลให้ถูกต้อง
หลักการจัดการแฟ้มข้อมูล (File Management Concept) • ในหน่วยความจำสำรองจะแบ่งพื้นที่เป็นบล็อกเพื่อเก็บข้อมูล และในการเก็บข้อมูลสามารถเก็บแบบใช้บล็อกไม่ต่อเนื่องกันได้ การจองบล็อกเพื่อเก็บข้อมูลจะจองเต็มบล็อกเสมอ เช่น ข้อมูลใช้พื้นที่ 3 บล็อกครึ่ง การจองต้องจอง 4 บล็อก เหลือพื้นที่ไม่ใช้ (Wasted space) ครึ่งบล็อก เกิดเป็น Internal fragmentation ส่วนต่างของขนาดไฟล์จริง(size) กับ ขนาดพื้นที่ที่จองไว้เก็บไฟล์ (size on disk) ส่วนต่างคือ Internal fragmentation
คุณลักษณะของแฟ้มข้อมูลคุณลักษณะของแฟ้มข้อมูล • ชื่อ – สัญลักษณ์ของแฟ้มที่ถูกจัดเก็บไว้ในรูปแบบที่มนุษย์เข้าใจได้ • ตัวระบุ(Identifier) – ป้ายเอกลักษณ์ มักใช้เป็นตัวเลขที่ใช้ในการระบุแฟ้มที่อยู่ในระบบ เป็นรูปแบบที่มนุษย์ไม่สามารถอ่านได้ • ประเภท – เพื่อบอกว่าต้องการระบบใดในการสนับสนุนแฟ้มชนิดต่าง ๆ • ที่อยู่ – เป็นตัวชี้ไปยังอุปกรณ์และที่ซึ่งใช้เก็บแฟ้มนั้นอยู่ • ขนาด – ขนาดปัจจุบันของแฟ้ม (อยู่ในรูปไบต์ คำ หรือบล็อก) • การป้องกัน – ข้อมูลที่ใช้ในการควบคุมการเข้าถึงเพื่อพิจารณาว่าใครสามารถอ่านเขียน กระทำการ และอื่นๆ • เวลา วัน เดือน ปี และข้อมูลเกี่ยวกับผู้ใช้ – ประโยชน์ไว้ตรวจตรา ป้องกัน และความปลอดภัย
การทำงานกับแฟ้มข้อมูล (File Management Operations) มีอยู่ 5 ประการที่ระบบต้องสามารถทำได้ในการบริหารจัดการไฟล์ • การสร้างไฟล์ (Creating)มี 2 ขั้นตอนคือ 1)หาที่ว่างเพื่อใช้เก็บแฟ้ม 2) หาที่ว่างที่ใช้เก็บสารบบซึ่งไว้เก็บข้อมูลที่จำเป็นของแฟ้มนั้น • การเขียนข้อมูล (Writing)ระบบต้องรู้ชื่อและตำแหน่งไดเร็กทอรี่ที่เก็บไฟล์ เพื่อค้นหาเมื่อพบจะทำการเปิดไฟล์ โดยที่ปลายสุดของไฟล์ จะมีตัวชี้การเขียน(Write Pointer) ชี้ไว้ เมื่อมีการเขียนข้อมูลต่อไฟล์ ตัวชี้จะเปลี่ยนตำแหน่งไปสุดท้ายของข้อมูลที่เขียนเพิ่ม ทำเช่นนี้ไปเรื่อย ๆ จนหมดข้อมูลที่ต้องการเขียน
การทำงานกับแฟ้มข้อมูล (File Management Operations) • การอ่านข้อมูล (Reading)ระบบจะต้องรู้ชื่อและตำแหน่งไดเร็กทอรี่ที่เก็บไฟล์เพื่อค้นหา เมื่อพบก็ทำการเปิดไฟล์ โดยต้นไฟล์มีตัวชี้การอ่านชี้ไว้(read pointer) เมื่ออ่านข้อมูลเสร็จ ตัวชี้จะเลื่อนไปตำแหน่งสุดท้ายของข้อมูลที่ถูกอ่านออกไป ทำเช่นนี้ไปเรื่อย ๆ จนหมดข้อมูลที่ต้องการอ่าน การอ่านและเขียนไฟล์ ต้องใช้ตัวชี้ 2 ตัว คือ Read Pointer , Write Pointer ซึ่งระบบส่วนใหญ่ใช้เป็นตัวเดียวกันเรียกว่า Current File Position Pointer ใช้ทั้งอ่านและเขียน เพื่อประหยัดและลดความซ้ำซ้อน • การลบไฟล์ (Delete)เมื่อค้นหาในไดเร็กทอรี่พบไฟล์ที่ต้องการ ก็ทำการลบไฟล์นั้นและลบรายการสารบบนั้นทิ้งไป • การย้ายตำแหน่งภายในของแฟ้ม สารบบจะถูกค้นหาไว้เพื่อรายการที่เหมาะสมและตัวชี้ตำแหน่งปัจจุบันจะถูกตั้งค่า การย้ายภายในไม่จำเป็นต้องใช้การปฏิบัติการของ I/O การปฏิบัติการนี้เรียกว่าการแสวงหา (Seek)
การทำงานกับแฟ้มข้อมูล (File Management Operations) • การทำงานทั้ง 5 ประการของระบบปฏิบัติการ ทุกหน้าที่มีการค้นหาไฟล์ ในไดเร็กทอรี่เหมือนกันหมดจะทำอย่างไร? ถ้าสมมติให้เปิดไฟล์ A เพื่ออ่านข้อมูล เสร็จแล้วเขียนข้อมูล และลบไฟล์ข้อมูล จึงต้องค้นหาไฟล์ในไดเร็กทอรี่ถึง 3 ครั้ง และถ้าในไดเร็กทอรี่มีไฟล์เก็บไว้จำนวนมาก จะเปลืองเวลาในการค้นหามากเกินไป Ans.– ระบบปฏิบัติส่วนใหญ่จะใช้ตารางที่เก็บข้อมูลของไฟล์ที่ถูกเปิด(Open files table)เมื่อมีการค้นหาไฟล์ครั้งแรก ข้อมูลไฟล์นั้นจะถูกเก็บลงตาราง และถ้ามีการค้นหาไฟล์นั้นอีกจะใช้ข้อมูลที่เก็บในตารางแทนการค้นหาซ้ำ และถ้าไฟล์ตัวนั้นไม่ได้ถูกใช้สักช่วง ข้อมูลไฟล์นั้นจะถูกลบออก จากตาราง หรือบางระบบปฏิบัติการจะใช้การเปิดไฟล์ค้างไว้และจะปิดไฟล์ ก็ต่อเมื่อโปรแกรมที่เปิดไฟล์นั้นถูกสั่งปิด
ประเภทของแฟ้ม • เนื่องจากแฟ้มมีหลายประเภทและมีความแตกต่างกันมากในระบบปฏิบัติแต่ละระบบ มีเทคนิคในการใช้ประเภทของแฟ้มคือ การรวมประเภทของแฟ้มเข้าไว้เป็นส่วนหนึ่งของชื่อแฟ้ม โดยชื่อจะแบ่งเป็น 2 ส่วน คือ ชื่อ และส่วนขยาย (Extension) หรือที่เรียกว่านามสกุล มักคั่นด้วยเครื่องหมาย “.” โดยที่ความยาวส่วนขยายไม่เกิน 3 อักขระจะมีแฟ้มประเภท .com, .exe และ .bat เท่านั้นสามารถใช้งานได้ทันที • แฟ้มประเภท .com , .exe จะอยู่ในรูปแบบของแฟ้มไบนารีที่สามารถกระทำการได้ (Executable File) ในขณะที่แฟ้มประเภท .bat (Bath File) เป็นแฟ้มรูปแบบแอสกีที่สามารถสั่งการไปยังระบบปฏิบัติการได้
การเข้าถึงแฟ้มข้อมูล (Access Methods) การเข้าถึงแฟ้มข้อมูลหรือการเข้าถึงไฟล์ เพื่อเปิดอ่านข้อมูลจากหน่วยความจำสำรอง ไปเก็บในหน่วยความจำหลักเพื่อทำงาน มีหลายวิธีดังนี้ • ตามลำดับ (Sequential access) การเข้าถึงข้อมูลแบบตามลำดับ เป็นการเข้าถึงข้อมูลของสื่อบันทึกแบบเทป มีลักษณะในการอ่านข้อมูลตามลำดับต่อเนื่อง ในการอ่านไม่จำเป็นต้องอ่านไปเรื่อย ๆ ทุก ๆ ส่วน ส่วนที่ไม่ต้องการก็สามารถกรอข้ามไปข้างหน้าเพื่ออ่านข้อมูลที่ต้องการได้ หรือกรอกลับหลังกรณีที่ต้องการอ่านข้อมูลเดิมซ้ำ ตัวอย่างเช่น เทปเพลง
การเข้าถึงแฟ้มข้อมูล (Access Methods) • โดยตรง (Direct access) การเข้าถึงที่ใช้กับสื่อแบบดิสก์ ลักษณะการอ่านข้อมูลสามารถอ่านได้อย่างอิสระ และเข้าถึงข้อมูลได้โดยตรงโดยไม่ต้องผ่านข้อมูลที่ขวางอยู่ เช่น ซีดีเพลง ถ้าต้องการฟังเพลงที่ 7 ก็สามารถเลือกฟังได้ทันที โดยไม่ต้องผ่านเพลงที่ 1 ถึง 6 เลย บางครั้งเรียกการเข้าถึงแบบนี้ว่า การเข้าถึงแบบสุ่ม (Random Access)
การเข้าถึงแฟ้มข้อมูล (Access Methods) การเข้าถึงโดยตรงของสื่อบันทึกแบบดิสก์ จะใช้การเคลื่อนที่ 2 ทิศทางคือ จานดิสก์ที่หมุนจากซ้ายไปขวาในแนวขวาง และหัวอ่านที่ขยับขึ้นลงในแนวตั้ง ทำให้สามารถเข้าถึงข้อมูลได้โดยตรง โดยใช้ระยะทางที่สั้นที่สุดได้ การเคลื่อนที่ของจานดิสก์ และหัวอ่านในการเข้าถึงข้อมูลแบบโดยตรง
Disk Partition C: Partition D: Files Directory Directory Files ระบบไดเร็กทอรี่ (Directory System) การจัดการไดเร็กทอรี่มีอยู่ 2 ส่วนคือ • พาร์ติชั่น (Partition)หรือ มินิดิสก์(Minidisk) ใน IBM PC และ Volume ในเครื่องแมคอินทอช โดยปกติในดิสก์ต้องมี 1 พาร์ติชั่นเสมอ และแต่ละพาร์ติชั่นจะนับเป็น 1 ไดรว์ ถ้าในดิสก์แบ่งเป็นหลายพาร์ติชั่น ดิสก์นั้นก็จะมีหลายไดรว์ • ไดเร็กทอรี่ (Directory)ในแต่ละพาร์ติชั่นจำเป็นต้องมีไดเร็กทอรี่ ใช้เก็บข้อมูลไฟล์ เช่น ชื่อไฟล์, ตำแหน่ง ขนาดไฟล์ ชนิดของไฟล์ เป็นต้น เรียกส่วนนี้ว่า Device Directory หรือ Volume Table of Contents ก็ได้
บทบาทหน้าที่ของไดเร็กทอรี่บทบาทหน้าที่ของไดเร็กทอรี่ • ค้นหาไฟล์ (Search for a file) • ลบไฟล์ (Delete a file) • สร้างไฟล์ (Create a file) • แสดงรายชื่อ (List of Directory) • เปลี่ยนชื่อไฟล์ (Rename a file) • การสำรอง (Backup)
โครงสร้างของไดเร็กทอรี่ (Directory Structure) การจัดโครงสร้างไดเร็กทอรี่ทำได้หลายวิธี มีข้อดีข้อเสียต่างกันดังนี้ • ไดเร็กทอรี่ 1 ระดับ (Single-Level Directory) • ไดเร็กทอรี่ 2 ระดับ (Two-Level Directory) • ไดเร็กทอรี่แบบต้นไม้ (Tree-Structured Directory) • ไดเร็กทอรี่แบบไม่มีวง (Acyclic-Graph Directory) • ไดเร็กทอรี่แบบกราฟ (General Graph Directory)
ไดเร็กทอรี่ 1 ระดับ (Single-Level Directory) • เป็นโครงสร้างไดเร็กทอรี่อย่างง่าย ไฟล์ทั้งหมดจะเก็บรวมในไดเร็กทอรี่เดียวกัน ไม่มีไดเร็กทอรี่ย่อย การอ้างไฟล์ไม่ต้องระบุไดเร็กทอรี่ เพราะทุกไฟล์อยู่ในไดเร็กทอรี่เดียวกันทั้งหมด เหมาะสำหรับนำมาใช้กับระบบง่าย ๆ ที่มีจำนวนไฟล์ไม่มากนัก • จุดอ่อน คือ การตั้งชื่อสับสน ในกรณีที่มีไฟล์จำนวนมาก การตั้งชื่อไฟล์ให้ไม่ซ้ำ เป็นเรื่องยาก ถึงจะทำได้แต่ชื่อก็ไม่สื่อให้เข้าใจรายละเอียดไฟล์มากนัก เช่น account1.txt,account2.txt,account3.txt เป็นต้น • อีกปัญหาคือ การจัดกลุ่มไฟล์ทำได้ยาก ถึงตั้งชื่อคล้ายกันเพื่อจัดกลุ่มไฟล์ แต่ก็ทำได้ไม่ละเอียดเท่าที่ต้องการ