1 / 85

บทที่ 10 โครงสร้างไฟล์ (File System)

บทที่ 10 โครงสร้างไฟล์ (File System). การจัดการไฟล์. ขณะทำงานข้อมูลจะถูกเก็บอยู่ในหน่วยความจำในแอ็ดเดรสเฉพาะ เนื่องจากเมื่อไม่ได้ใช้งานข้อมูลจะสูญหายไปทันทีที่ปิดเครื่อง จึงมีความจำเป็นที่จะต้องมีสื่อจัดเก็บข้อมูลเหล่านั้น ในการจัดเก็บข้อมูลจะต้องมีการกำหนดชื่อเพื่อแทนกลุ่มข้อมูลที่จัดเก็บ

Télécharger la présentation

บทที่ 10 โครงสร้างไฟล์ (File System)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 10โครงสร้างไฟล์(File System)

  2. การจัดการไฟล์ • ขณะทำงานข้อมูลจะถูกเก็บอยู่ในหน่วยความจำในแอ็ดเดรสเฉพาะ • เนื่องจากเมื่อไม่ได้ใช้งานข้อมูลจะสูญหายไปทันทีที่ปิดเครื่อง จึงมีความจำเป็นที่จะต้องมีสื่อจัดเก็บข้อมูลเหล่านั้น • ในการจัดเก็บข้อมูลจะต้องมีการกำหนดชื่อเพื่อแทนกลุ่มข้อมูลที่จัดเก็บ • ชื่อที่ใช้แทนกลุ่มข้อมูลก็คือชื่อไฟล์ (File) นั่นเอง

  3. ไฟล์ • ไฟล์ข้อมูล (file) หมายถึง สิ่งที่บรรจุข้อมูลต่าง ๆ ไว้ในที่เดียวกัน อาจหมายถึงโปรแกรมหรืออะไรก็ตามที่ต้องการเก็บไว้ด้วยกัน • ระบบปฏิบัติการมีหน้าที่จัดการให้ผู้ใช้ติดต่อไฟล์ โดยผู้ใช้ไม่ต้องอ้างถึงแอ็ดเดรสของไฟล์นั้น ๆ โดยตรง • ในระบบปฏิบัติการจะมีโอเปอร์เรชันที่เรียกว่า System call เป็นตัวจัดการที่เกี่ยวข้องกับไฟล์ เช่น การสร้างไฟล์ การลบไฟล์ การอ่าน/เขียนไฟล์ เป็นต้น

  4. การตั้งชื่อไฟล์ • จุดประสงค์ในการออกแบบระบบปฏิบัติการอย่างหนึ่งคือต้องการที่จะให้ผู้ใช้เป็นอิสระจากอุปกรณ์ใด ๆ (device independent) ดังนั้นในการเข้าถึงไฟล์ข้อมูลใด ๆ จะต้องมีรูปแบบเดียวกัน • ผู้ใช้ไม่จำเป็นต้องกำหนดรายละเอียดเกี่ยวกับแอ็ดเดรส เพียงแค่ระบุชื่อและนามสกุลของไฟล์ให้ถูกต้องก็เพียงพอแล้ว • การกำหนดชื่อของไฟล์ ในแต่ละระบบปฏิบัติการมีความแตกต่างกันอยู่พอควร แต่ส่วนใหญ่แล้วจะมีข้อกำหนดที่ใกล้เคียงกัน

  5. การตั้งชื่อไฟล์ • ระบบปฏิบัติการบางตัวกำหนดให้การตั้งชื่อโดยขึ้นต้นด้วยอักษร และตามด้วยตัวเลข หรือตัวอักษรไม่เกิน 8 ตัว • บางระบบกำหนดการตั้งชื่อทำได้โดยอิสระแต่ไม่เกิน 255 ตัว • ในบางระบบ การตั้งชื่อด้วยอักษรตัวใหญ่ และตัวเล็กไม่เหมือนกัน เช่นใน UNIX การตั้งชื่อถ้าเป็นตัวใหญ่ และตัวเล็กจะถือว่าเป็นคนละชื่อกัน ตัวอย่างเช่น Name, NAME,name กรณีของ UNIX จะถือว่าทั้ง 3 ไฟล์แตกต่างกัน แต่สำหรับ MS-DOS หรือ Windows จะหมายถึงไฟล์เดียวกัน • ระบบส่วนใหญ่ชื่อไฟล์จะมี 2 ส่วนคือชื่อและส่วนขยายโดยคั่นด้วยจุด (.) โดยชื่อจะมีขนาด 1-8 ตัวอักษร เช่น report.doc เป็นต้น แต่บางระบบมีส่วนขยายได้มากกว่า 1 ส่วน เช่น prog.c.Z เป็นต้น

  6. ตัวอย่างชื่อไฟล์

  7. โครงสร้างไฟล์ • การจัดโครงสร้างไฟล์ที่ใช้กันโดยทั่วไปมี 3 วิธี แบบไบต์เรียงต่อกัน มีการเก็บเป็นไบต์เรียงต่อ ๆ กันไป ดังเช่นในระบบปฏิบัติการของ UNIX และ Windows การเก็บไฟล์ในลักษณะนี้เป็นแบบที่ไม่มีโครงสร้างในการจัดเก็บ ไฟล์ที่ถูกสร้างใหม่จะถูกนำมาเรียงต่อกันไปเรื่อย ๆ จนเต็มเนื้อที่ โดยที่ตัวระบบปฏิบัติการแทบจะไม่ทำหน้าที่อะไรเลย

  8. โครงสร้างไฟล์ เก็บเป็นเรกคอร์ด โดยมีขนาดของเรกคอร์ดคงที่ ในแต่ละไฟล์จะถูกจัดเก็บอยู่ในรูปของเรกคอร์ดจัดเรียงกันไปตามลำดับจนถึงเรกคอร์ดสุดท้าย ซึ่งในเรกคอร์ดสุดท้ายอาจจะไม่เต็มเรกคอร์ดก็ได้ ในการอ่านและเขียนจะทำไปทีละเรกคอร์ด ในบางระบบอาจจะกำหนดให้แต่ละเรกคอร์ดมีขนาดเท่ากับ 80 อักษร ซึ่งเท่ากับ 1 บรรทัดพอดี เช่นในระบบปฏิบัติการ CP/M

  9. โครงสร้างไฟล์ เก็บเป็นแบบต้นไม้หรือทรี (tree) แต่ละบล็อกจะประกอบไปด้วย เรกคอร์ด โดยมีขนาดของเรกคอร์ดขึ้นอยู่กับปัจจัยหลายประการ เช่น ขนาดของไฟล์ข้อมูล เวลาที่ใช้ในการเข้าถึงข้อมูล (access time) เป็นต้น วิธีนี้ใช้ในระบบปฏิบัติการหลายเครื่องด้วยกัน

  10. ไดเร็กทอรี • ระบบปฏิบัติการทุกตัวจะต้องมีสารบัญที่เก็บรวบรวมรายชื่อของไฟล์ทั้งหมดไว้ในที่เดียวกัน เพื่อให้ผู้ใช้สามารถตรวจสอบดูไฟล์ต่าง ๆ ได้ • สิ่งที่ทำหน้าที่จัดเก็บเรียกว่า “ไดเร็กทอรี” (Directory) ในบางระบบอาจจะเรียก “โฟลเดอร์” (Folder) • ไดเร็กทอรีเองก็ถือว่าเป็นไฟล์อีกประเภทหนึ่ง • โครงสร้างในไดเร็กทอรีประกอบไปด้วยหน่วยย่อยหลาย ๆ หน่วย ในแต่ละหน่วยก็อาจจะมีโครงสร้างเดียวกับมันก็ได้ หรืออาจจะประกอบด้วยไฟล์เดี่ยวย่อย ๆ อยู่ภายในก็ได้

  11. โครงสร้างไดเร็กทอรี • ระบบไดเร็กทอรีเดี่ยว (Single-Level Directory Systems) • ระบบไดเร็กทอรีเดี่ยวเป็นระบบที่มีโครงสร้างที่ง่ายที่สุด • ภายในระบบจะมีอยู่เพียงไดเร็กทอรีเดียวและรวบรวมไฟล์ทุกไฟล์ไว้ที่เดียวกัน • ทุกไฟล์จะจัดเก็บอยู่ในระดับเดียวกัน • ไม่สะดวกสำหรับผู้ใช้หลาย ๆ คน แต่ละคนมีหลายไฟล์ ไฟล์หลากหลายชนิดต้องอยู่ปะปนกันทำให้ไม่สะดวกในการค้นหา • ในกรณีที่มีการสร้างไฟล์ให้มีชื่อเดียวกันกับที่มีอยู่ก่อนนั้นอาจทำให้ไฟล์เก่าถูกเขียนทับลงไปโดยไม่ตั้งใจ ทำให้ข้อมูลสูญหายได้

  12. โครงสร้างไดเร็กทอรี • ระบบไดเร็กทอรีเดี่ยว (Single-Level Directory Systems)

  13. โครงสร้างไดเร็กทอรี • ระบบไดเร็กทอรี 2 ระดับ (Two-Level Directory Systems) • แก้ไขปัญหาของระบบไดเร็กทอรีเดี่ยวได้ • การจัดโครงสร้างไดเร็กทอรี 2 ระดับ จะกำหนดให้ผู้ใช้แต่ละคนสามารถสร้างไดเร็กทอรีย่อยของตนได้เรียกว่า “สับไดเร็กทอรี“(Sub-directory) หรือไดเร็กทอรีย่อย 1 ก็ได้ • แต่ละสับไดเร็กทอรี จะอยู่ภายใต้ไดเร็กทอรีรากเดียวกัน (root directory)

  14. โครงสร้างไดเร็กทอรี • ระบบไดเร็กทอรี 2 ระดับ (Two-Level Directory Systems)

  15. โครงสร้างไดเร็กทอรี • ระบบไดเร็กทอรีหลายระดับ (Hierarchical Directory Systems) • สามารถแก้ปัญหาระบบไดเร็กทอรีทั้ง 2 ระบบได้ • อาจจะเรียกโครงสร้างแบบนี้เป็น “โครงสร้างต้นไม้” (Tree structure) ผู้ใช้สามารถสร้างไดเร็กทอรีขึ้นมาได้โดยไม่จำกัดอยู่ในไดเร็กทอรีเดียวกัน • ระบบไฟล์ในปัจจุบันใช้โครงสร้างไดเร็กทอรีแบบนี้ เพราะสามารถแก้ปัญหาที่มีอยู่ได้ทั้งหมด

  16. โครงสร้างไดเร็กทอรี • ระบบไดเร็กทอรีหลายระดับ (Hierarchical Directory Systems)

  17. โครงสร้างไดเร็กทอรี • ชื่อพาธ (Path name) • ในการอ้างถึงไฟล์ใด ๆ จำเป็นต้องระบุที่อยู่ของไฟล์นั้น ๆ ให้ถูกต้อง ว่าอยู่ในไดเร็กทอรี หรือสับไดเร็กทอรีใด • การกำหนดที่อยู่หรือเส้นทางที่จะเข้าไปถึงไฟล์นั้น ๆ เรียกว่า “พาธ” (path) • ปกติคุณสามารถสร้างชื่อไฟล์ช้ำกันได้ในกรณีที่ไฟล์เหล่านั้นอยู่ต่างไดเร็กทอรีกัน • การบอกพาธจะทำให้ระบบทราบว่าคุณกำลังอ้างถึงไฟล์ใดและอยู่ที่ไหนในระบบ

  18. โครงสร้างไดเร็กทอรี • วิธีอ้างถึงชื่อไฟล์นั้นมีอยู่ 2 วิธี • การอ้างชื่อไฟล์แบบสัมบูรณ์ (absolute path name) • การอ้างชื่อแบบสัมพัทธ์ (relative path name) • การอ้างชื่อไฟล์แบบสัมบูรณ์ เป็นการอ้างถึงไฟล์โดยเริ่มต้นจากราก (root) เสมอตามด้วยชื่อสับไดเร็กทอรีย่อยต่าง ๆ ไล่ลงมาตามลำดับชั้นของไดเร็กทอรีที่สร้างขึ้นจนกระทั่งถึงไดเร็กทอรีที่ไฟล์บรรจุอยู่ และจบลงด้วยชื่อไฟล์นั้น • ใน Windows (MS DOS) \user\lib\dict.doc • ใน UNIX /user/lib/dict.doc • ใน MULTICS <user>lib>dict.doc

  19. รูปแบบโครงสร้างไดเร็กทอรีของ UNIX

  20. โครงสร้างไดเร็กทอรี • การอ้างถึงชื่อไฟล์แบบสัมพัทธ์ • ผู้ใช้จะต้องทราบไดเร็กทอรีปัจจุบัน (current directory) ก่อน • ปกติผู้ใช้สามารถอ้างถึงไฟล์ใด ๆ จากไดเร็กทอรีปัจจุบันได้โดยตรงและยังสามารถย้ายการทำงานจากไดเร็กทอรีปัจจุบันไปยังไดเร็กทอรีใด ๆ ของดิสก์ได้ • วิธีการในการอ้างชื่อพาธแบบสัมพัทธ์จะเริ่มต้นจากไดเร็กทอรีปัจจุบันไล่ไปตามลำดับชั้นของไดเร็กทอรีที่ไฟล์นั้นอยู่และจบลงด้วยชื่อไฟล์นั้น ๆ • สมมุติไดเร็กทอรีปัจจุบันคือ usr (ตามรูป) ถ้าต้องการอ้างถึงไฟล์ dict.doc จะต้องอ้างด้วย lib\dict.doc และถ้าไดเร็กทอรีปัจจุบันคือ lib คุณสามารถอ้างชื่อไฟล์ dict.doc โดยตรงได้เลย

  21. โครงสร้างไดเร็กทอรี • การอ้างถึงชื่อไฟล์แบบสัมพัทธ์ • ในกรณีทีไฟล์ที่คุณต้องการอ้างถึงไฟล์ที่อยู่คนละแขนงของทรีจำเป็นที่จะต้องใช้สัญลักษณ์ .. เข้ามาช่วย เช่นถ้าต้องการอ้างถึงไฟล์ math.h ในไดเร็กทอรี bin ในขณะที่ไดเร็กทอรีปัจจุบันอยู่ที่ lib • สามารถอ้างได้ด้วย ..\..\bin\math.h • สัญลักษณ์ ..ในกรณีนี้หมายถึงไดเร็กทอรีที่อยู่เหนือขึ้นไปหนึ่งระดับ • ส่วนสัญลักษณ์ . จะหมายถึงไดเร็กทอรีปัจจุบัน ตัวอย่างการใช้ได้แก่กรณีที่ต้องการ copy ไฟล์ math.h มาเก็บไว้ในไดเร็กทอรี lib ซึ่งเป็นไดเร็กทอรีปัจจุบันคุณสามารถใช้คำสั่ง copy \bin\math.h ได้ทันที • ข้อสังเกต ถ้าอ้างถึงไฟล์โดยตรงจะใช้ \ หรือ / แต่ถ้าเป็นการอ้างแบบสัมพัทธ์จะขึ้นต้นไดเร็กทอรีย่อย หรือชื่อไฟล์โดยตรง

  22. โครงสร้างไดเร็กทอรี • คำสั่งของไดเร็กทอรี (DIRECTORY OPERATIONS) • คำสั่งต่าง ๆ ที่ใช้ เกี่ยวกับไดเร็กทอรีมีอยู่มากมายหลายคำสั่ง ทั้งนี้ก็ขึ้นอยู่กับแต่ละระบบปฏิบัติการ • คำสั่งต่าง ๆ จะมีชื่อคล้าย ๆ กัน เช่นในระบบปฏิบัติการ UNIX มีคำสั่งต่าง ๆ ที่เกี่ยวกับไดเร็กทอรี เช่น Create, Delete, Opendir, Closedir, Readdir, Rename หรือ Link

  23. การทำงานของระบบไฟล์ • มุมมองในระบบไฟล์มองได้เป็น 2 มุมมอง • มุมมองของผู้ใช้ ในมุมมองนี้ผู้ใช้รู้เพียง • จะตั้งชื่อไฟล์อย่างไร • ข้อกำหนดในการตั้งชื่อ ซึ่งผู้ใช้จะต้องข้อกำหนดในการตั้งชื่อไฟล์ของแต่ละระบบปฏิบัติการ • ผู้ใช้จะต้องรู้คำสั่งต่าง ๆ (Operation) ของไฟล์ว่ามีคำสั่งอะไรบ้าง • โครงสร้างของไดเร็กทอรีของแต่ละระบบไฟล์เป็นอย่างไร

  24. การทำงานของระบบไฟล์ • มุมมองของผู้สร้างระบบไฟล์ ในมุมมองนี้ผู้สร้างจะต้อง • รู้และเข้าใจว่าไฟล์และไดเร็กทอรีต่าง ๆ ที่สร้างขึ้นมาถูกจัดเก็บลงบนดิสก์อย่างไร • ทราบวิธีจัดสรรเนื้อที่ดิสก์ว่าเป็นอย่างไร เพื่อให้สามารถจัดเก็บข้อมูลได้มากที่สุดและคงประสิทธิภาพสูงสุด • สร้างความเชื่อมั่นให้กับผู้ใช้ว่าข้อมูลที่มีการบันทึกใส่ลงบนดิสก์แล้วจะไม่สูญหายไปไหน • วิเคราะห์เพื่อหาจุดที่เหมาะสมในการสร้างระบบแต่ละระบบที่มีตัวแปรต่าง ๆ ที่ไม่เหมือนกัน

  25. โครงสร้างระบบไฟล์ • ระบบไฟล์ทุก ๆ ระบบจำเป็นต้องมีการจัดเก็บข้อมูลลงบนสื่อต่าง ๆ ที่ใช้เก็บข้อมูล • ในปัจจุบันสื่อเหล่านี้มีหลายชนิดได้แก่ แผ่นดิสก์ เทป ซีดีรอมเป็นต้น • สื่อที่เป็นที่นิยมแพร่หลาย และมีราคาถูก ได้แก่ ดิสก์ • โครงสร้างของระบบดิสก์สนับสนุนการเข้าถึงข้อมูลแบบสุ่ม (Random access) • โครงสร้างดิสก์สามารถแบ่งพาร์ติชันในการเก็บข้อมูลได้ แต่ละพาร์ติชันมีความเป็นอิสระต่อกัน • สามารถกำหนดให้แต่ละพาร์ติชันมีระบบปฏิบัติการที่ต่างกันได้อีกด้วย

  26. โครงสร้างระบบไฟล์ • ภายในดิสก์จะถูกแบ่งออกเป็นเซ็กเตอร์ (Sector) เริ่มต้นจากเซ็กเตอร์ 0 ซึ่งถือว่าเป็น Master Boot Record (MBR) ที่ใช้เก็บค่าเริ่มต้นของระบบปฏิบัติการสำหรับการบูตเครื่องคอมพิวเตอร์เมื่อเริ่มต้นใช้งาน • ตอนท้ายของเซ็กเตอร์ประกอบด้วยตารางพาร์ติชัน (Partition table) ซึ่งจะเก็บแอ็ดเดรสเริ่มต้น และแอ็ดเดรสสุดท้ายของแต่ละพาร์ติชันเอาไว้ • ในแต่ละพาร์ติชันจะประกอบไปด้วย Boot block โปรแกรมใน Boot block จะทำหน้าที่ในการโหลดระบบปฏิบัติการในพาร์ติชันออกมาทำงาน

  27. โครงสร้างระบบไฟล์ • ทุก ๆ พาร์ติชันจะมี Boot block เป็นของตัวเอง แต่ว่าในพาร์ติชันอาจจะไม่มีระบบปฏิบัติการก็ได้ • โครงสร้างภายในแต่ละพาร์ติชันจะแตกต่างกันขึ้นอยู่กับระบบปฏิบัติการที่ใช้อยู่ซึ่งจะกำหนดโครงสร้างของไฟล์ในดิสก์ในขณะที่ทำการฟอร์แมตดิสก์

  28. โครงสร้างระบบไฟล์

  29. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • สิ่งสำคัญสำหรับการจัดเก็บไฟล์ข้อมูลลงบนสื่อเก็บข้อมูลคือ จะต้องทราบว่าแต่ละไฟล์มีการเก็บอย่างไร เก็บไว้ที่ไหน และสามารถเรียกออกมาใช้งานได้อย่างไร • ไฟล์ต่าง ๆ เหล่านั้นมีการจัดเก็บทั้งไฟล์ หรือแต่ละไฟล์ถูกแยกเก็บเป็นบล็อก และบล็อกต่าง ๆ เหล่านั้นจัดเรียงกันอย่างไร

  30. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • การจัดเก็บข้อมูลแบบต่อเนื่อง (Contiguous allocation) • เป็นวิธีการจัดเก็บข้อมูลของไฟล์แบบที่ง่ายที่สุด • แต่ละไฟล์จะถูกแบ่งออกเป็นบล็อก แต่ละบล็อกมีขนาดเท่า ๆ กัน เพื่อง่ายในการบริหารและการเก็บข้อมูล • วิธีการนี้ไฟล์ข้อมูลจะแบ่งออกเป็นบล็อกเก็บลงบนดิสก์อย่างต่อเนื่องทั้งไฟล์ • เช่น ถ้ากำหนดขนาดของบล็อกบนดิสก์ไว้เท่า ๆ กันที่ 1KB ถ้าไฟล์ข้อมูล A มีขนาด 50 KB ดังนั้นสำหรับไฟล์ข้อมูล A จะต้องใช้ 50 บล็อก โดยจะเก็บแบบต่อเนื่องเริ่มจากบล็อกที่ 1 ถึงบล็อกที่ 50

  31. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • การจัดเก็บข้อมูลแบบต่อเนื่อง (Contiguous allocation) • ถ้าข้อมูลของไฟล์ใดเก็บในบล็อกสุดท้ายไม่เต็ม ไฟล์ต่อไปจะต้องเก็บในบล็อกถัดไปเท่านั้น ไม่สามารถเก็บลงบล็อกของไฟล์อื่นได้ • ข้อดีในการเก็บข้อมูลแบบต่อเนื่องที่สำคัญมีอยู่ 2 ประการ คือ • เป็นการจัดเก็บข้อมูลแบบที่ง่ายที่สุด และสะดวกที่สุดเนื่องจากใช้เนื้อต่อเนื่องกันไป ระบบสามารถบันทึกการเก็บข้อมูลด้วยการบันทึกบล็อกแรก และบล็อกสุดท้ายก็เพียงพอแล้ว ภายในต่อเนื่องกันอยู่แล้ว • สร้างประสิทธิภาพได้สูงสุดในการค้นหาข้อมูล เนื่องจากการจัดเก็บบล็อกข้อมูลเรียงต่อเนื่องจึงไม่เสียเวลาในการค้นหาบล็อกทุก ๆ บล็อก เพียงแต่หาบล็อกแรกพบก็สามารถอ่านข้อมูลได้ทั้งไฟล์แล้ว

  32. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • การจัดเก็บข้อมูลแบบต่อเนื่อง (Contiguous allocation) • ข้อเสียของการเก็บข้อมูลแบบนี้ก็คือ ถ้าจำนวนไฟล์ข้อมูลเพิ่มจำนวนมากขึ้น หรือขนาดของข้อมูลเมื่อมีการแก้ไขมีขนาดใหญ่ขึ้น ทำให้ไม่สามารถหาเนื้อที่ในการบรรจุไฟล์ข้อมูลดังกล่าวได้ เนื่องจากมีการจัดเก็บแบบต่อเนื่องกันไป • ถ้ามีการแก้ไขแล้วทำให้ขนาดของไฟล์ใหญ่ขึ้น ต้องย้ายไปเก็บที่อื่น • ทำให้เกิดเนื้อที่ว่างกระจายอยู่ทั่วไป (Fragment) ทำให้ไม่สามารถหาเนื้อที่ว่างในการเก็บข้อมูล • การแก้ไขข้อเสียดังกล่าวทำได้โดยการใช้สื่อประเภทซีดีรอม เนื่องจากยอมให้จัดเก็บข้อมูลเพียงครั้งเดียว (Read Only)

  33. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • การจัดเก็บข้อมูลแบบลิงค์ลิสต์ (Link List Allocation) • วิธีการนี้มีการแบ่งไฟล์ออกเป็นบล็อก ๆ • การจัดเก็บเนื้อที่ของแต่ละบล็อกจะไม่ต่อเนื่องเหมือนวิธีการจัดเรียงกันอย่างต่อเนื่อง • แต่ละบล็อกจะถูกเชื่อมโยงกันด้วยพอยเตอร์ตั้งแต่บล็อกแรกจนกระทั้งบล็อกสุดท้ายของไฟล์ข้อมูลนั้น ๆ • ทำให้ไม่เสียเนื้อที่ว่างภายในดิสก์ ยกเว้นมีเนื้อที่ว่างในแต่ละบล็อก ซึ่งจะมีมากน้อยเพียงใดขึ้นอยู่กับการหาขนาดที่เหมาะสมของบล็อกข้อมูล และจะเกิดกับบล็อกสุดท้ายของแต่ละไฟล์เท่านั้น

  34. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • การจัดเก็บข้อมูลแบบลิงค์ลิสต์ (Link List Allocation) • ข้อเสียที่สำคัญคือเสียเวลากับการค้นหาแต่ละบล็อกข้อมูล เนื่องจากแต่ละบล็อกอยู่กระจัดกระจายทั่วไปบนดิสก์ • วิธีการเก็บข้อมูลแบบนี้ยังเสียเนื้อที่ไปกับพอยเตอร์ที่ทำหน้าที่ชี้ไปยังบล็อกต่าง ๆ ด้วย • ในขณะที่ระบบทำการอ่านข้อมูลระบบจะต้องทำการก็อปปี้ตารางบันทึกการจัดเก็บไฟล์ที่เรียกว่า FAT (File Allocation Table) ลงบนหน่วยความจำก่อนที่จะทำการอ่านข้อมูลจากดิสก์

  35. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • การจัดเก็บข้อมูลแบบลิงค์ลิสต์ (Link List Allocation)

  36. A = 4-7-2-10-12 B = 6-3-11-14

  37. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • ไอโหนด(I-nodes หรือ Index node) • ใช้ในระบบปฏิบัติการ UNIX โดยการสร้างตารางเล็กเรียกว่า “ไอโหนด” (I-node) ให้กับแต่ละไฟล์ • ไอโหนดจะเก็บข้อมูลต่าง ๆ ที่เกี่ยวข้องกับไฟล์เอาไว้ • ภายในไอโหนดจะมีหมายเลขบล็อก 4 แบบ • แบบ direct 10 หมายเลข • แบบ single direct 1 หมายเลข • แบบ double direct 1 หมายเลข • แบบ triple direct 1 หมายเลข

  38. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • ไอโหนด(I-nodes หรือ Index node) • ไฟล์ข้อมูลขนาดไม่เกิน 10 KB • หมายถึงแต่ละหมายเลขจะเก็บหมายเลขของแต่ละบล็อกไว้ 10 บล็อก • ถ้าแต่ละบล็อก มีขนาด 1 KB ทั้ง 10 หมายเลข จะเก็บข้อมูลได้ 10 KB • ถ้าขนาดไฟล์ข้อมูลไม่ เกิน 10 KB จะสามารถใช้ ไอโหนดแบบ direct ก็เพียงพอแล้ว

  39. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • ไอโหนด(I-nodes หรือ Index node) • ไฟล์ข้อมูลขนาดใหญ่กว่า 10 KB แต่ไม่เกิน 266 KB (10+256 KB) • จะมีหมายเลขบล็อกแบบ direct 10 หมายเลข และแบบ single direct 1 หมายเลข • แบบ direct 10 หมายเลข สามารถอ้างจำนวนบล็อกได้ 10 บล็อก บวกกับ single direct สมมุติว่า 1 หมายเลขของ single direct มีขนาด 1 KB (1024 byte) แต่ละบล็อกใช้พอยเตอร์ 4 ไบต์ ในการเชื่อมโยงแต่ละบล็อกเป็นลิงค์ลิสต์ของไฟล์ข้อมูลเข้าด้วยกัน ดังนั้นในแต่ละบล็อกสามารถเก็บจำนวนลิงค์ได้เท่ากับ 1024 /4 = 256 หมายเลข

  40. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • ไอโหนด(I-nodes หรือ Index node) • ไฟล์ข้อมูลขนาดใหญ่กว่า 266 KB แต่ไม่เกิน 65802KB (10+256 + (256*256)KB) • จะมีหมายเลขบล็อกแบบ direct 10 หมายเลข, แบบ single direct 1 หมายเลข และแบบ double direct 1 หมายเลข • สำหรับแบบ double direct สามารถใช้เก็บจำนวนบล็อกได้ถึง 256 * 256 บล็อก

  41. วิธีการจัดเก็บข้อมูลของไฟล์วิธีการจัดเก็บข้อมูลของไฟล์ • ไอโหนด(I-nodes หรือ Index node) • ไฟล์ข้อมูลขนาดใหญ่กว่าเกินกว่า 65802 KB • ใช้ไอโหนดแบบ triple direct 1 หมายเลข • สามารถเพิ่มจำนวนบล็อกได้อีก 256*256*256 ซึ่งจะเท่ากับ 16 GB

  42. โครงสร้าง I-node ของ Unix

  43. โครงสร้างไดเร็กทอรี • ไดเร็กทอรีใช้เป็นที่เก็บรวบรวมไฟล์ข้อมูลต่าง ๆ เข้าไว้ด้วยกัน • ก่อนที่จะเปิดไฟล์เพื่อทำการใด ๆ จะต้องทราบว่าไฟล์ต่าง ๆ เหล่านั้นเก็บอยู่ที่ใด หรือในไดเร็กทอรีใด • ผู้ใช้จะต้องระบุพาธของไดเร็กทอรีนั้นเสียก่อน เพื่อเป็นการระบุบล็อกต่าง ๆ ที่เก็บไว้ในไดเร็กทอรีนั้น • แต่ละไฟล์ที่เก็บในไดเร็กทอรีสามารถเข้าถึงบล็อกต่าง ๆ ของไฟล์ได้โดยการอ้างชื่อไฟล์ • ไฟล์หนึ่ง ๆ จะมีชื่อเรียกได้เพียงชื่อเดียว หรือไม่ก็ใช้นามสกุลเป็นการแยกประเภทของไฟล์

  44. โครงสร้างไดเร็กทอรี • การสร้างไฟล์เป็นการจัดสรรเนื้อที่บนดิสก์ไห้กับไฟล์นั้น • ไดเร็กทอรีจำเป็นจะต้องรู้และสามารถตรวจสอบได้ว่าไฟล์ในไดเร็กทอรีของตัวเองนั้นเก็บอยู่ที่ใด ทำให้ต้องมีตารางบันทึกไฟล์ต่าง ๆ เอาไว้ • ภายในตารางไดเร็กทอรีจะประกอบไปด้วยชื่อไฟล์ และคุณลักษณะไฟล์ (File attribute) ว่าเป็นไฟล์ประเภทใด เก็บอยู่ในบล็อกใด • รูปแบบการเก็บชื่อไฟล์และคุณลักษณะของไฟล์มี 2 แบบ • เก็บชื่อไฟล์และคุณลักษณะไฟล์ไว้ด้วยกัน • เก็บชื่อไฟล์และพอยเตอร์ของไฟล์ไปยังบล็อกต่าง ๆ

  45. โครงสร้างไดเร็กทอรี • การเก็บชื่อไฟล์ และคุณลักษณะไฟล์ไว้ด้วยกันนี้ • ภายในตารางแต่ละไฟล์จะเก็บชื่อไฟล์ที่มีขนาดตามที่กำหนดไว้ขนาดหนึ่ง (ใน MS-DOS 8.3) ตามด้วยคุณลักษณะไฟล์จะบอกถึงบล็อกต่าง ๆ ที่ใช้เก็บไฟล์มีจำนวนบล็อกเท่าไรจะถูกระบุลงไปในตารางด้วยกัน • ไฟล์ยิ่งมีขนาดใหญ่ จำนวนบล็อกที่ใช้ยิ่งเพิ่มขึ้นตามขนาดของไฟล์ • เกิดปัญหาว่าจะกำหนดขนาดของตารางนี้อย่างไร

  46. โครงสร้างไดเร็กทอรี • เก็บชื่อไฟล์และพอยเตอร์ไฟล์ไว้ด้วยกัน • วิธีนี้ทำให้ขนาดข้อมูลในตาราง File attribute มีขนาดคงที่ • พอยเตอร์ในตารางจะชี้ไปยังเนื้อที่ที่เรียกว่า “ฮีพ” (heap) ซึ่งใช้เก็บบล็อกต่าง ๆ ของไฟล์ ทำให้ขนาดของไฟล์ ใหญ่เท่าใดก็ได้จะไม่มีผลต่อการจัดเก็บในตาราง • เนื้อที่บริเวณฮีพเป็นการจองเนื้อที่แบบไดนามิก ซึ่งจะมีการจองและคืนเนื้อที่อยู่ตลอดเวลา

  47. การใช้ไฟล์ร่วม • ถ้ามีผู้ใช้ไฟล์ในระบบหลาย ๆ คน --> ก็อปปี้ไฟล์เหล่านี้ให้ทุกคน • วิธีการนี้ไม่สะดวกและทำให้เปลืองเนื้อที่จัดเก็บเป็นอย่างมาก • ถ้ามีผู้ใช้คนใดคนหนึ่งต้องการแก้ไขไฟล์นี้ ก็จะต้องไปบอกกับทุก ๆ คนให้ทำการแก้ไขตามไปด้วยหรือไม่ก็ให้มาก็อบปี้ไฟล์นี้ไปใหม่ • ทำให้เสียเวลา และเกิดความยากลำบากในการทำงาน ถ้าไม่ประสานงานกันให้ดีจะทำให้เกิดข้อผิดพลาดและเกิดความเสียหายได้ • วิธีแก้ปัญหานี้คือการใช้งานในลักษณะ “ไฟล์ร่วม” (shared files) • โดยเก็บไฟล์ที่ใช้งานร่วมกันนี้ไว้ในไดเร็กทอรี่ที่เป็นส่วนกลางให้ทุกคนสามารถเข้าถึงได้ --> สะดวกและประหยัดเวลาในการทำงาน

  48. link

  49. การใช้ไฟล์ร่วม • ไฟล์ในไดเร็กทอรี A และในไดเร็กทอรี B จะถูกใช้ร่วมกันด้วยการเชื่อมต่อระหว่างไดเร็กทอรี A และไฟล์ในไดเรกทอรี B เรียกการ “ลิงค์” (link) • โครงสร้างของระบบไดเร็กทอรีเปลี่ยนไปไม่เป็นแบบต้นไม้ • แต่จะเป็นโครงสร้างที่เรียกว่า Direct Acyclic Graph หรือ DAG • วิธีการลิงค์ขึ้นอยูกับโครงสร้างไดเร็กทอรีของระบบไฟล์ • ใน UNIX สามารถทำการลิงค์ได้ง่ายมากด้วยการกำหนดชื่อไฟล์และก็อบปี้ไอโหนดไปยังไดเร็กทอรีที่ต้องการใช้ไฟล์ร่วมกัน พร้อมกับการเพิ่มจำนวนลิงค์ลงไปที่ไอโหนด • ทำให้เข้าถึงไฟล์ข้อมูลเดียวกันได้ทั้งหมด

More Related