บทที่ 8 การจัดการแฟ้มข้อมูล
File Management
การจัดการแฟ้มข้อมูล
• หน้าที่ส าคัญของระบบปฏิบัติการ คือ การจัดการแฟ้มข้อมูล (File Management) ซึ่งเป็นการช่วยอ านวยความสะดวกแก่ผู้ใช้งานในการเรียกใช้ แฟ้มข้อมูลต่างๆ และท าให้ผู้ใช้มีความเป็นอิสระจากอุปกรณ์ • ผู้ใช้งาน (User) สามารถเรียกใช้ค าสั่งเพื่อด าเนินการต่างๆ กับแฟ้มข้อมูลได้ เช่น สร้างแฟ้มข้อมูล (Create), เปิดแฟ้มข้อมูล (Open) หรือลบ แฟ้มข้อมูล (Delete)แฟ้มข้อมูล (File)
• แฟ้มข้อมูล (File) หมายถึง สิ่งที่บรรจุข้อมูลต่างๆ ไว้ด้วยกัน โดยมีการจัด โครงสร้าง และแต่ละแฟ้มข้อมูลจะมีลักษณะเฉพาะหรือลักษณะประจ าของ แฟ้มข้อมูล เช่น ชื่อแฟ้มข้อมูล ชนิดของแฟ้มข้อมูล ขนาดของแฟ้มข้อมูล โดย ลักษณะเหล่านี้จะเป็นประโยชน์ในการป้องกัน การรักษาความปลอดภัย และ การควบคุมการใช้งานแฟ้มข้อมูล • ในการอ้างถึงต าแหน่งที่อยู่ของแฟ้มข้อมูล ผู้ใช้ไม่จ าเป็นต้องอ้างถึงเลขที่อยู่เชิง กายภาย (Physical Address) ที่บรรจุแฟ้มข้อมูลนั้นโดยตรง แต่ สามารถระบุชื่อทางตรรกะของแฟ้มข้อมูล (Logical filename) ซึ่งเป็นชื่อ แฟ้มข้อมูล ส าหรับให้ผู้ใช้เรียกใช้งานได้อย่างสะดวกแฟ้มข้อมูล (File)
• ระบบปฏิบัติการจะเข้ามาจัดการส่ง (map) จากแฟ้มข้อมูลเชิงตรรกะไปยัง
แฟ้มข้อมูลเชิงกายภาพ รวมถึงการเรียก system call เพื่อสร้างแฟ้มข้อมูล, ลบแฟ้มข้อมูล, อ่าน/เขียนแฟ้มข้อมูล
ไดเรกทอรีแฟ้มข้อมูล
• ไดเรกทอรี (Directories) เป็นที่เก็บรวบรวมชื่อของแฟ้มข้อมูล และข้อมูลที่ ส าคัญของแฟ้มข้อมูล • โดยมีวัตถุประสงค์ส าคัญคือ เพิ่มประสิทธิภาพการท างานของระบบ และความ สะดวกส าหรับผู้ใช้ ด้วยการช่วยให้ผู้ใช้สามารถเข้าถึงแฟ้มข้อมูลที่ต้องการได้ อย่างรวดเร็วมากขึ้น • รวมถึงช่วยให้ผู้ใช้สะดวกสบายในการใช้แฟ้มข้อมูล ทั้งการตั้งชื่อแฟ้มข้อมูล การ จัดกลุ่มแฟ้มข้อมูลตามความต้องการของผู้ใช้ไดเรกทอรีแฟ้มข้อมูล
• โดยทั่วไป ไดเรกทอรีประกอบด้วยข้อมูลต่างๆ ดังนี้ o ข้อมูลพื้นฐาน (Basic information) เป็นข้อมูลพื้นฐานทั่วไปของแฟ้มข้อมูล เช่น ชื่อแฟ้มข้อมูล และชนิดของ แฟ้มข้อมูล o ข้อมูลเลขที่อยู่ (Address information) เป็นข้อมูลเกี่ยวกับเลขที่อยู่ของแฟ้มข้อมูล ได้แก่ ต าแหน่งเริ่มต้นของ หน่วยความจ าส ารองที่เก็บแฟ้มข้อมูลนี้, ขนาดของแฟ้มข้อมูลไดเรกทอรีแฟ้มข้อมูล
o ข้อมูลการควบคุมการเข้าถึง (Access control information)
เป็นข้อมูลที่ระบบใช้ในการควบคุมการเข้าถึงแฟ้มข้อมูลนั้นๆ เช่น ชื่อ เจ้าของแฟ้มข้อมูล สิทธิในการเข้าถึงแฟ้มข้อมูล o ข้อมูลการใช้งาน (Usage information) เป็นข้อมูลเกี่ยวกับการใช้งานแฟ้มข้อมูลนั้นๆ เช่น วันที่ใช้งานแฟ้มข้อมูล อาจเป็นวันที่ท าการสร้างแฟ้มข้อมูล วันที่ท าการเข้าถึงแฟ้มข้อมูลล่าสุด วันที่ ท าการแก้ไขแฟ้มข้อมูลล่าสุด วันที่ท าการเรียกใช้งานแฟ้มข้อมูลล่าสุด
ไดเรกทอรีแฟ้มข้อมูล
• ตัวอย่างการน าไดเรกทอรีไปใช้ในการด าเนินการกับแฟ้มข้อมูล o การค้นหาแฟ้มข้อมูล (search) เมื่อผู้ใช้หรือโปรแกรมเรียกใช้แฟ้มข้อมูลใด ระบบต้องค้นหาแฟ้มข้อมูลนั้นจากไดเรกทอรี o การสร้างแฟ้มข้อมูล (create file) เมื่อมีการสร้างแฟ้มข้อมูลใหม่ ระบบต้อง บันทึกลักษณะประจ าและข้อมูลต่างๆ ของแฟ้มข้อมูลนั้น เพิ่มเข้าไปในไดเรกทอรี o การลบแฟ้มข้อมูล (delete file) เมื่อมีการลบแฟ้มข้อมูล รายการของ แฟ้มข้อมูลจะต้องถูกลบออกจากไดเรกทอรี และเมื่อมีการค้นหาก็จะไม่พบ แฟ้มข้อมูลนี้อีกต่อไป o การเปลี่ยนแปลงแฟ้มข้อมูล (update file) เมื่อต้องการเปลี่ยนแปลงลักษณะ ประจ าต่างๆ ของแฟ้มข้อมูล สามารถท าได้โดยการเปลี่ยนแปลงรายการใน ไดเรกทอรีตัวอย่างโครงสร้างของไดเรกทอรี
• ตัวอย่างโครงสร้างของไดเรกทอรี
oไดเรกทอรีระดับเดียว (Single-level directory) oไดเรกทอรีสองระดับ (Two-level directory)
ไดเรกทอรีระดับเดียว
• ไดเรกทอรีระดับเดียว (Single-level directory) เป็นไดเรกทอรีที่มี โครงสร้างง่ายที่สุด โดยแฟ้มข้อมูลทุกแฟ้มจะถูกรวบรวมไว้ในระดับเดียวกัน ทั้งหมด • ท าให้ไม่สะดวกส าหรับระบบที่มีผู้ใช้หลายคน เนื่องจากผู้ใช้แต่ละคนมีแฟ้มข้อมูล จ านวนมาก และเป็นแฟ้มข้อมูลหลากหลายชนิด เมื่อน ามาเก็บรวมกันไว้ใน ระดับเดียวกัน ท าให้ไม่สะดวกในการค้นหาแฟ้มข้อมูลที่ผู้ใช้ต้องการ • อาจเกิดปัญหาในการสร้างแฟ้มข้อมูลมีชื่อเดียวกับแฟ้มข้อมูลที่มีอยู่แล้ว เป็นผล ให้เกิดการเขียนทับแฟ้มข้อมูลเดิม ท าให้ข้อมูลเดิมเกิดสูญหายได้ไดเรกทอรีสองระดับ
• ไดเรกทอรีสองระดับ (Two-level directory) เป็นโครงสร้างไดเรกทอรีที่ แก้ไขปัญหากรณีชื่อแฟ้มข้อมูลตรงกันของไดเรกทอรีระดับเดียว • โดยจะก าหนดให้ผู้ใช้แต่ละคน สามารถสร้างไดเรกทอรีย่อยของตนเอง (sub directory) โดยที่แต่ละไดเรกทอรีย่อยอยู่ภายใต้ไดเรกทอรีราก (root directory) เดียวกัน ดังนั้นภายในไดเรกทอรีย่อยของผู้ใช้แต่ละคน สามารถ ก าหนดชื่อแฟ้มข้อมูลได้ตามความต้องการ • อาจเกิดปัญหาในกรณีที่ผู้ใช้มีแฟ้มข้อมูลหลายประเภท เช่น แฟ้มข้อมูลงานวิจัย (research.doc) แฟ้มข้อมูลคะแนน (score.xls) แฟ้มข้อมูลการสอน (lecture.ppt) การใช้ไดเรกทอรีสองระดับ ท าให้แฟ้มข้อมูลทุกแฟ้ม ต้องถูก จัดเก็บในระดับเดียวกันไดเรกทอรีแบบต้นไม้
• โครงสร้างไดเรกทอรีสองระดับ แม้จะแก้ปัญหาความซ้ าซ้อนของชื่อแฟ้มข้อมูลใน ระบบที่มีผู้ใช้หลายคนได้แล้ว แต่ยังเกิดปัญหาในกรณีที่ผู้ใช้แต่ละคนมี แฟ้มข้อมูลจ านวนมาก • ไดเรกทอรีแบบต้นไม้ (Tree-structured directory) เป็นการจัด โครงสร้างของไดเรกทอรี โดยก าหนดให้ผู้ใช้แต่ละคนสามารถแยกกลุ่มของ แฟ้มข้อมูลตามงานที่ท า หรือตามความต้องการ • โดยท าการรวบรวมแฟ้มข้อมูลแต่ละกลุ่มไว้ภายใต้ไดเรกทอรีที่แยกจากกัน คือ ให้มีไดเรกทอรีย่อยภายใต้ไดเรกทอรีแฟ้มข้อมูลของผู้ใช้แต่ละคนได้ • ในการอ้างถึงแฟ้มข้อมูล จ าเป็นต้องระบุที่อยู่ของแฟ้มข้อมูลนั้นๆ ให้ถูกต้องการจัดระเบียบและการเข้าถึงแฟ้มข้อมูล
• การจัดระเบียบแฟ้มข้อมูล (File Organization) หมายถึง การจัด โครงสร้างทางตรรกะของแฟ้มข้อมูล ที่ได้มีการรวบรวมระเบียนหรือเรคคอร์ดไว้ ในแฟ้มข้อมูล • เมื่อผู้ใช้ต้องการใช้ข้อมูลเหล่านั้น ผู้ใช้ต้องเข้าถึงแฟ้มข้อมูลในรูปแบบที่ สอดคล้องกับการจัดระเบียบแฟ้มข้อมูลนั้นๆ โดยรูปแบบการเข้าถึงแฟ้มข้อมูล o การเข้าถึงแบบล าดับ (Sequential access) ซึ่งต้องมีการอ่านข้อมูลตั้งแต่ต้น ระเบียนแรกของแฟ้มข้อมูลจนกระทั่งถึงระเบียนข้อมูลที่ต้องการ o การเข้าถึงโดยตรง (direct access) ที่มีการเข้าถึงเลขที่อยู่ระเบียนที่ต้องการ โดยตรง o การเข้าถึงแบบสุ่ม (random access) ที่มีการใช้วิธีการต่างๆ ในการหาต าแหน่ง ของระเบียนที่ต้องการโครงสร้างระบบแฟ้มข้อมูล
• แฟ้มข้อมูลต้องถูกจัดเก็บลงบนสื่อบันทึกข้อมูล สื่อที่นิยมใช้ คือ ดิสก์ (disk) • ในการออกแบบระบบแฟ้มข้อมูลที่มีประสิทธิภาพ และอ านวยความสะดวกให้แก่ ผู้ใช้ ระบบปฏิบัติการจ าเป็นต้องก าหนดให้ระบบแฟ้มข้อมูลสามารถจัดเก็บและ เรียกใช้ข้อมูลต่างๆ ได้ง่าย • โดยแบ่งโครงสร้างการท างานของระบบแฟ้มข้อมูลออกเป็น 4 ระดับ แต่ละ ระดับถูกออกแบบให้ใช้คุณสมบัติของระดับที่อยู่ต่ ากว่าในการสร้างคุณลักษณะ ใหม่ เพื่อให้ระดับที่อยู่สูงกว่าน าไปใช้งานต่อไปการแบ่งระดับของระบบแฟ้มข้อมูล
• Application Program คือ โปรแกรมที่น าไป
ใช้งาน เช่น MS Word, Game
• Devices คือ อุปกรณ์ที่เก็บข้อมูล หรือแฟ้ม
โครงสร้างระบบแฟ้มข้อมูล
• I/O Control เป็นระบบแฟ้มข้อมูลระดับล่างสุด ที่ประกอบด้วย โปรแกรม
ขับอุปกรณ์ (device driver) และชุดค าสั่งเรื่องขัดจังหวะ เพื่อท าหน้าที่ ส่งผ่านข้อมูลระหว่างหน่วยความจ าหลักและอุปกรณ์
• Basic File System ประกอบด้วยค าสั่งที่สั่งให้โปรแกรมขับอุปกรณ์ท าการ
อ่าน/เขียนข้อมูลบนอุปกรณ์
• File-organization Module ท าหน้าที่แปลงเลขที่อยู่เชิงตรรกะของบล็อค
เป็นเลขที่อยู่เชิงกายภาพที่บรรจุข้อมูล และท าหน้าที่จัดการพื้นที่ว่างของ อุปกรณ์
• Logical File System มีหน้าที่เชื่อมระบบปฏิบัติการกับผู้ใช้ ป้องกัน
โครงสร้างระบบแฟ้มข้อมูล
• เมื่อผู้ใช้ต้องการเข้าถึงอุปกรณ์ต่างๆ (Devices) ด้วยการเขียนข้อมูลลง อุปกรณ์ หรืออ่านข้อมูลที่ถูกจัดเก็บบนอุปกรณ์ต่างๆ ผู้ใช้สามารถท าได้ด้วย การเรียกใช้โปรแกรมประยุกต์ (Application program) ที่ส่งผ่านความ ต้องการของผู้ใช้ผ่านไปตามระดับชั้นต่างๆ ของระบบแฟ้มข้อมูล เพื่อให้ได้งาน ตามที่ผู้ใช้ต้องการ • เช่น เมื่อโปรแกรมประยุกต์ เช่น โปรแกรมเอดิเตอร์ ต้องการสร้างแฟ้มข้อมูล ใหม่ (create) โปรแกรมประยุกต์จะเข้าไปท างานที่ระดับของ Logical file system ด้วยการอ่านไดเรกทอรีของดิสก์ และน าไปไว้ที่หน่วยความจ า หลัก จากนั้นท าการเปลี่ยนแปลง (update) ไดเรกทอรีด้วยการเพิ่มรายการ ใหม่ที่ประกอบไปด้วย ลักษณะเฉพาะของแฟ้มข้อมูลที่ต้องการสร้าง แล้วจึง บันทึกไดเรกทอรีที่ถูกเปลี่ยนแปลงกลับลงดิสก์โครงสร้างระบบแฟ้มข้อมูล
• จากนั้นท างานต่อไปที่ระดับของ Logical file system ด้วยการเรียก
File-organization module ที่จะแปลงเลขที่อยู่เชิงตรรกะของดิสก์บล็อค เป็นเลขที่อยู่เชิงกายภาพของดิสก์บล็อค รวมถึงจัดการหาที่ว่างบนดิสก์
• ข้อมูลต่างๆ จะถูกส่งต่อไปยังระดับ Basic file system ที่เรียกใช้ค าสั่งที่
จะสั่งให้โปรแกรมขับอุปกรณ์ท าการเขียนข้อมูลลงบนดิสก์บล็อคในระดับ I/O Control system ต่อไป • การท างานระดับ I/O control จะต้องมีการเรียกใช้โปรแกรมขับอุปกรณ์ และโปรแกรมขัดจังหวะ เพื่อให้ระบบสามารถถ่ายโอนข้อมูลระหว่าง หน่วยความจ าหลัก และดิสก์ ด้วยการเขียนข้อมูลที่ต้องการลงบนบล็อคที่มีอยู่ จริงบนดิสก์