悍氛1 by liaoxiuli2

VIEWS: 10 PAGES: 31

									                                                                                                                    357


                                                     บทที่ 11

                                     Implementing File Systems

             ข ณ ะ ที่ เ ร า เ ห็ น บ ท ที่ 10               ร ะ บ บ ไ ฟ ล์ ใ ห้ ก ล ไ ก ใ น บ ร ร ทั ด ที่ จั ด เ ก็ บ
และการเข้ า ถึ ง ไปยั ง เนื้ อ หาไฟล์ รวมทั้ ง ข้ อ มู ล และโปรแกรม                              file            system
อ ยู่ บ น ที่ ที่ ถู ก อ อ ก แ บ บ ม า เ พื่ อ เ ก็ บ ข อ ง ข น า ด ใ ห ญ่ ข้ อ มู ล ถ า ว ร
บทนี้ เ ป็น หลั กที่ เ กี่ ยวข้ อ งกั บ ประเด็ นรอบพื้ น ที่ จั ดเก็ บ file และเข้ า ถึง file ในที่ สุ ด
เราส ารวจโค รง สร้ า ง                       file        วิ ธี ก ารใ ช้ เ พื่ อ จั ด สรรพื้ นที่ ดิ ส ก์ เ พื่ อ กู้ freed
พื้ น ที่ เ พื่ อ ติ ด ตามต าแหน่ ง ของข้ อ มู ล และอิ น เตอร์ เ ฟสส่ ว นอื่ น ๆของระบบ ปฏิ บั ติ ก าร
เพื่อรองรับการจัดเก็บ ประสิทธิภาพของระบบไฟล์จะถือว่าประเด็นตลอดบท

11.1 ไฟล์ระบบโครงสร้าง
           ดิสก์ให้เป็นกลุ่มการจัดเก็บข้อมูลที่สารองไฟล์ระบบรักษา
มีสองลักษณะที่ทาให้สะดวกในการสื่อจัดเก็บหลายไฟล์
           ดิสก์สามารถเขียนใหม่ในตาแหน่งนั้น
เป็นไปได้ที่จะอ่านบล็อกจากดิสก์แก้ไขบล็อกและเขียนมันกลับสู่ที่เดียวกัน
           ดิสก์สามารถเข้าถึงโดยตรงใด ๆ ที่ระบุบล็อกของข้อมูลที่มี. ดังนั้นจึงเป็นงานง่าย ๆ
เพื่อเข้าถึง file ใด ๆ ตามลาดับ หรือ สุ่มและสลับจากในไฟล์อื่น โดยการย้าย หัวอ่าน- เขียน
และรอดิสก์หมุนมาตรงตาแหน่งนั้น
           เราจะอธิบายโครงสร้างใหญ่ของดิสก์ในรายละเอียดในบทที่ 12 แทนที่จะโอนเป็นไบต์ที่
เวลาเพื่ อ ปรั บ ปรุ ง I                    /            O               ของประสิ ท ธิ ภ าพ I             /          O
ข อ ง ก า ร โ อ น ร ะ ห ว่ า ง ห น่ ว ย ค ว า ม จ า ดิ ส ก์ แ ล ะ มี ป ร ะ สิ ท ธิ ภ า พ ใ น ห น่ ว ย บ ล็ อ ก
แต่ละบล็อกมีอย่างน้อยหนึ่งส่วน ขึ้นอยู่กับดิสก์ไดรฟ์แตกต่างกันจาก 32 ถึง 4096 ไบต์ ส่วนใหญ่
512 ไบต์ เพื่อให้มีประสิทธิภาพและสะดวกในการเข้าถึงดิสก์ระบบ
           ป ฏิ บั ติ ก า ร imposes                                          ห นึ่ ง ห รื อ ร ะ บ บ ไ ฟ ล์ เ พื่ อ ใ ห้
ข้ อ มู ล ที่ จ ะ จั ด เ ก็ บ ง่ า ย อ ยู่ แ ล ะ ดึ ง ใ ช้ ง า น ไ ด้ ง่ า ย              file        ร ะ บ บ poses
สองที่ แ ตกต่ า งกั น ค่ อ นข้ า งมากในด้ า นของปั ญ หา ส่ ว นแรกที่ มี ปั ญ หาการระบุ ว่ า                        file
ร ะ บ บ ค ว ร ดู ที่ ผู้ ใ ช้ ง า น นี้ ก า ร ก า ห น ด                                                            file
และแอตทริบิวต์การดาเนินการอนุญาตให้ใช้งานในไฟล์และโครงสร้างไดเรกทอรีสาหรับการจัดกา
ร file ปัญหาที่สองคือการสร้าง algorithms และโครงสร้างข้อมูลแผนที่เพื่อที่ file system
                                                                                                          358


logical              จ ะ เ ก็ บ สู่ storage ไ ฟ ล์ ที่ ร ะ บ บ เ อ ง เ ป็ น ป ร ะ ก อ บ ด้ ว ย ห ล า ย ร ะ ดั บ
โครงสร้ า งแสดงในรู ป ภาพที่ 11.1                   เป็ น ตั ว อย่ า งของ การออกแบบ                       layer
แต่ ล ะระดั บ ในการออกแบบใช้ คุ ณ สมบั ติ ข องระดั บ ต่ าเพื่ อ สร้ า งคุ ณ ลั ก ษณะใหม่ ๆ
สาหรับการใช้งานโดยระดับสูง
         ที่ระดับที่ต่าสุดที่ I / O ควบคุมประกอบด้วยไดรเวอร์อุปกรณ์และ interrupt handlers
เพื่อโอนข้อมูลระหว่างหน่วยความจาหลักและดิสก์ ไดรเวอร์ของอุปกรณ์สามารถคิดเป็นแปล.
มี อิ น พุ ต ป ร ะ ก อ บ ด้ ว ย ร ะ ดั บ สู ง เ ช่ น ค า สั่ ง                       "เ รี ย ก บ ล็ อ ก 123"
มีเอาท์พุตประกอบด้วยคาแนะนาระดับต่าคาแนะนาฮาร์ดแวร์ที่ใช้โดยฮาร์ดแวร์ควบคุมซึ่งอินเตอร์
เ ฟ ส ที่                                 I                                  /                                O
ของเครื่องที่เหลือของระบบไดรเวอร์อุปกรณ์ที่มักจะเขียนเฉพาะบิตรูปแบบพิเศษตาแหน่งใน I / O
ของ คว บคุ ม ขอ ง หน่ วย ควา มจ าเพื่ อบ อกตั วค วบคุ มอุ ปกร ณ์ ที่ สถา นที่ ที่ จ ะ กร ะท า
และการกระทาที่จะทารายละเอียดของไดรเวอร์อุปกรณ์และ I / O ของโครงสร้างพื้นฐานเป็น
convered ในบทที่ 13
         พื้ น ฐ า น                                          file                                     system
ต้องการเฉพาะกับปัญหาทั่วไปคาสั่งที่เหมาะสมไดรเวอร์อุปกรณ์อ่านและเขียนทางphysicalบล็อก
บนดิสก์ แต่ละบล็อกคือ indentified โดยตัวเลขที่อยู่ดิสก์
         ไฟล์-องค์กรโมดูลรู้เกี่ยวกับ file และตรรกวิทยาบล็อกของพวกเขาเป็น physicalบล็อก
โดยทราบประเภทของไฟล์จัดสรรใช้และตาแหน่งของ file file -องค์กรโมดูลสามารถแปล
logicalปิดกั้นที่อยู่เพื่อphysicalปิดกั้นที่อยู่ใน file system พื้นฐานเพื่อโอน. แต่ละไฟล์ของ
logicalบ ล็ อ ค มี ห ม า ย เ ล ข จ า ก 0                            (ห รื อ 1)                      ผ่ า น N.
เนื่องจากphysicalบล็อคข้อมูลที่มักจะไม่ตรงกับตรรกวิทยาตัวเลขการแปลเป็นสิ่งจาเป็นเพื่อค้นห
าแต่ ล ะบล็ อ ก.            ไฟล์ -โมดู ล องค์ ก รรวมทั้ ง ฟรี -พื้ น ที่ ผู้ จั ด การที่ แ ทร็ ค unallocated
บล็อกและให้บล็อกเหล่านี้ในไฟล์องค์กรโมดูลเมื่อร้องขอ
                                                                                                             359




           สุ ด ท้ า ยที่         logical            file        system          ผู้ จั ด การข้ อ มู ล เมตาดาต้ า
เมตาดาต้าทั้งหมดของไฟล์ระบบโครงสร้างยกเว้นข้อมูลจริง (หรือเนื้อหาของไฟล์)ที่ logical file
system จัดการไดเรกทอรีโครงสร้างให้ไฟล์องค์กรโมดูลกับข้อมูลหลังต้องการให้สัญลักษณ์ชื่อไฟล์
ซึ่งเก็บไฟล์โครงสร้างผ่านไฟล์ควบคุมบล็อค file -ควบคุมป้องกัน (FCB) มีข้อมูลเกี่ยวกับ file
รวมถึ ง การเป็น เจ้ า ของ, สิ ทธิ , การป้ องกั นและการรักษาความปลอดภั ยที่ไ ด้ ในบทที่ 10
จะถูกเพิ่มเติมในบทที่ 17
           เมื่อ โครงสร้าง layer ใช้สาหรับไฟล์ระบบการใช้งาน การก๊อปปี้ของรหัส ที่ I / O
ของการควบคุมและบางทีพื้นฐานไฟล์ระบบรหัสสามารถใช้หลาย file system แต่ละ file system
สามารถมี logical file system และไฟล์องค์กรโมดูล
           file system ที่ใช้ในปัจจุบัน ส่วนใหญ่มีการสนับสนุนระบบปฏิบัติการมากกว่าหนึ่ง
ตั ว อ ย่ า ง เ ช่ น ที่ สุ ด ซี ดี ร อ ม ที่ เ ขี ย น ใ น รู ป แ บ บ ม า ต ร ฐ า น ISO                    9660,
รู ป แบบมาตรฐานตกลงโดยซี ดี ร อมผลิ ต นอกจากถอด -สื่ อ                                        file        system
แต่ละระบบปฏิบัติการได้ดิสก์ตาม file system (หรือมากกว่า) ยูนิกซ์ใช้ file system ยูนิกซ์ (UFS)
ซึ่ง จะขึ้นอยู่กับระบบไฟล์ Berkeley รวดเร็ว (FFS) ของ Windows NT, 2000, XP
และสนับสนุนดิสก์ file ระบบ formate ของ FAT, FAT32 และเป็น NTFS (หรือ Windows NT
ร ะ บ บ ไ ฟ ล์ )                       เ ป็ น ซี ดี ร อ ม ดี วี ดี แ ล ะ ห้ อ ย -ดิ ส ก์ ร ะ บ บ รู ป แ บ บ ไ ฟ ล์
แม้ว่าลินุกซ์ สนับสนุนที่แตกต่างกันกว่าสี่สิบ file system , มาตรฐานลีนุกซ์ file system
                                                                                                           360


เป็นที่ รู้จั กกั นเป็ นวงกว้าง file system โดยส่ว นใหญ่ เวอร์ชั นเริ่ม ext2 และ ext3.
นอกจากนี้ยังมีการกระจาย file system ที่ file system ในเซิร์ฟเวอร์การติดตั้งโดย client

11.2 ไฟล์ระบบการดาเนิน
          ดังที่ได้อธิบายไว้ในข้อ 10.1.2 สาหรับกระบวนการที่จะร้องขอการเข้าถึงเนื้อหาของ file
ในส่วนนี้เราเจาะโครงสร้างการดาเนินงานและวิธีการใช้ file ระบบการดาเนินงาน 11.2.1 ภาพ
รวม
          ส่วนใหญ่ในดิสก์และในโครงสร้างหน่วยความจาที่ใช้ในการปรับใช้เป็น file system
โครงสร้างที่แตกต่างกันเหล่านี้ขึ้นอยู่กับหลักการใช้ ระบบปฏิบัติการและระบบไฟล์ บนดิสก์
 file ระบบอาจมีข้อมูลเกี่ยวกับวิธีการบูตระบบปฏิบัติการจัดเก็บมีจานวนการบล็อค,
หมายเลขและตาแหน่งของฟรีบล็อค, ไดเรกทอรีโครงสร้างและแต่ละไฟล์
หลายโครงสร้างเหล่านี้มีราย
ละเอียดในส่วนที่เหลือของบทนี้ โดยการอธิบายสั้น ๆ
          A                      boot                   control                   block ( ต่ อ ป ริ ม า ณ )
ส า ม า ร ถ มี ข้ อ มู ล ที่ ต้ อ ง ก า ร โ ด ย ร ะ บ บ จ ะ บู ต ร ะ บ บ ป ฏิ บั ติ ก า ร จ า ก ที่ ป ริ ม า ณ .
หากดิสก์ไม่มีระบบปฏิบัติการนี้สามารถป้องกันการว่างเป็นครั้งแรกมักมาจากจะบล็อกวอลุ่ม ใน
UFS จะเรียกบูตป้องกัน ใน NTFS ให้เป็นพาร์ทิชันบูตเซกเตอร์
          A                           volume                            control                           block
มีปริมาณรายละเอียดเช่นจานวนการป้องกันในพาร์ทิชันขนาดของ free-block countและfree-
block pointer FCB count และ FCB pointer ใน UFS นี้ที่เรียกว่า superblock; ใน NTFS
ให้เป็นที่เก็บไว้ในตารางมาสเตอร์ file
          ไดเรกทอรี ต่ อ โครงสร้ า ง file system ที่ ใ ช้ ก ารจั ด ระเบี ย บ file ใน UFS
นี้รวมถึงชื่อไฟล์และบริษัทรอินโนดี้หมายเลข ในแบบ NTFS เป็นร้านในมาสเตอร์ไฟล์ตาราง
          จ          า           น          ว         น         ไ         ฟ           ล์                    FCB
มีหลายรายละเอียดเกี่ยวกับไฟล์เช่นไฟล์ได้รับอนุญาตเป็นเจ้าของขนาดและตาแหน่ง ของข้อมูลบ
ล็ อ ค ใ น UFS                                                 นี้ เ รี ย ก อิ น โ น ดี้ ใ น NTFS
ให้ข้อมูลจริงที่เก็บภายในมาสเตอร์ไฟล์ตารางที่ใช้ฐานข้อมูลโครงสร้างสัมพันธ์โดยมีแถวละไฟล์
          มีหน่วยความจาที่มี ข้อมู ล เกี่ยวกับทุกการติดตั้ง การในหน่วยความจ าแคชไดเรกทอรี -
โครงสร้างไดเรกทอรีในแถวที่เพิ่งเข้าถึงไดเรกทอรี
          The system-wide open-file table มีสาเนาของ FCB ของแต่ละไฟล์ตลอดจนข้อมูลอื่น ๆ
                                                                                            361


       The per-process open-file table มีตัวชี้ที่เหมาะสมใน system-wide open-file table
ตลอดจนข้อมูลอื่น ๆ
       เมื่อต้องการสร้าง file ใหม่ แอปพลิเคชันโปรแกรมสายที่ logical file system ที่ logical
file system รู้รูปแบบของโครงสร้างไดเรกทอรี เมื่อต้องการสร้าง file ใหม่มาจัดสรร FCB
ระบบจะอ่านไดเรกทอรีที่เหมาะสมไปยังหน่วยความจาปรับปรุงด้วยชื่อใหม่ให้กับ file และ FCB
และเขียนกลับสู่ดิสก์ ปรากฏในภาพที่ 11.2




                            รูปที่ 11.2 A typical file-control block.




         บางระบบปฏิบัติการเก็บไดเรกทอรีเประเภทเดียวกันเป็นไฟล์ประเภทหนึ่งที่มีฟิลด์ที่ระบุว่
าเป็นไดเรกทอรี ระบบปฏิบัติการอื่นๆการปรับใช้ระบบการแยกต่างหากสาหรับ file
และไดเรกทอรีและเก็บไดเรกทอรีเป็นองค์กรที่แยกจาก file ใดๆที่มีขนาดใหญ่โครงสร้างปัญหาของ
logical file system สามารถเรียกไฟล์องค์กรโมดูลเพื่อแมปไดเรกทอรี I / O ของดิสก์เข้า-
ป้องกันหมายเลขที่ผ่านไปยังพื้นฐานระบบ file และ I / O ของระบบการควบคุม
         เดี๋ยวนี้ที่fileได้รับการสร้างให้สามารถใช้สาหรับ I/O เริ่มแรกแม้ว่าจะต้องถูกเปิด open ()
เรียกผ่านชื่อ file ที่ระบบ file open () ระบบแรกเรียกค้นหาที่ system-wide open-file table
เพื่อดูหากเจอ file แล้วการใช้งานโดยกระบวนการอื่นหากจะมีต่อกระบวนการเปิด file
ตารางรายการจะถูกสร้างขึ้นชี้ไปที่เดิมทั้งระบบเปิด file ตาราง กลไกนี้สามารถป้องกันการ
overhead เมื่อเปิด file ที่ไดเรกทอรีโครงสร้างคือให้ค้นหาชื่อไฟล์
ส่วนของโครงสร้างไดเรกทอรีปกติแคชในหน่วยความจาเพื่อความเร็วไดเรกทอรีการดาเนินงาน
                                                                                                             362


เมื่อ file พบ FCB เป็นสาเนาที่เป็น system-wide open-file table ในหน่วยความจา
ตารางนี้จะไม่เพียงแต่เก็บ FCB แต่ยังติดตามจานวนของกระบวนการที่มีการเปิดไฟล์
           ถัดจากนั้นรายการจะทาต่อในขั้นตอนการเปิดไฟล์ตารางโดยชี้ไปที่ทั้งระบบเปิดแฟ้มตารา
ง แ ล ะ อื่ น ๆ ใ น ฟิ ล ด์                                               ฟิ ล ด์ เ ห ล่ า นี้ อื่ น ๆ
ที่ ส ามารถรวมชี้ ไ ปยั ง ต าแหน่ ง ปั จ จุ บั น ในแฟ้ ม และเข้ า ถึ ง โหมดที่ มี ก ารเปิ ด แฟ้ ม open ()
เ รี ย ก คื น ค่ า ชี้ ที่ เ ห ม า ะ ส ม ใ น ร า ย ก า ร ต่ อ ก ร ะ บ ว น ก า ร ไ ฟ ล์ ร ะ บ บ ต า ร า ง .
ไ ฟ ล์ ทั้ ง ห ม ด ที่ ด า เ นิ น ก า ร อ ยู่ แ ล้ ว ด า เ นิ น ก า ร ผ่ า น ชี้
ชื่อไฟล์ที่ไม่สามารถเป็นส่วนหนึ่งของเปิดแฟ้มตารางตามระบบไม่ได้ใช้สาหรับมันครั้งที่เหมาะสม
FCB                         คื อ ร ะ บุ ต า แ ห น่ ง บ น ดิ ส ก์ มั น clued                        จ ะ chaced
แม้ ว่ า เพื่ อ ประหยั ด เวลาในภายหลั ง เปิ ด เดี ย วกั น แฟ้ ม . ชื่ อ ให้ กั บ รายการจะแตกต่ า งกั น .
ระบบยู นิ กซ์ ดู ที่ เ ป็ น ไ ฟ ล์ อ ธิ บ าย             ของ Windows               ดู ที่ เ ป็ น ไ ฟ ล์ จั ด การ .
ดังนั้นตราบแฟ้มไม่ปิดไฟล์ทั้งหมดที่มีการดาเนินการกระทาบนเปิดแฟ้มตาราง
           ปฏิบัติการโครงสร้างของไฟล์ระบบจะดาเนินการสรุปในรูปที่ 11.3




หลังจากใช้ block และหาความต้องการของ data block วิธีนี้จะสามารถทาไปถึงที่ level 3 และ 4
และอ้างอิงไปยัง file ขนาดใหญ่ที่สุด ซึ่งมีขนาด 4,096-byte block เราสามารถเก็บ 1,024-4 byte
pointers แต่ละ index block, 2 levels ของ index แบ่งเป็น 1,048,576 data block และขนาด
file สามารถเพิ่มขึ้นถึง 4 GB

- Combined scheme สาหรับทางเลือกอื่น สามารถใช้ UFS เริ่มแรกเราจะพูดถึง 15 pointer ของ
index block ใน file’s inode โดย 12 pointer แรกนั้นจะเป็น direct block ซึ่งจะประกอบด้วย
address ของ blocks และ ข้อมูลของ file ดังนั้น ข้อมูลของ file ขนาดเล็ก(ไม่เกิน 12 blocks)
จะไม่ต้องแบ่ง index block แต่ถ้าขนาดของ block เป็น 4 KB และเพิ่มขึ้นเป็น 48 KB
                                                                                        363


ข้อมูลจะถูกเข้าถึงได้โดยตรง ส่วน 3 pointer ที่เหลือจะเป็น indirect block โดย point
แรกนั้นจะเป็น single indirect point ซึ่งแต่ละ index block จะไม่มีส่วนของข้อมูล
แต่จะถูกเก็บไว้ใน address ของ block, point ที่ 2 จะเป็น double indirect block ซึ่งประกอบด้วย
address ของ block รวมถึง pointer ของข้อมูลใน block สาหรับ pointer สุดท้ายจะประกอบด้วย
address ของ triple indirect block ภายใต้กฎนี้ จานวน block สามารถแบ่ง file
ได้เกินกว่าผลรวม ของระยะของ addressโดย file ขนาด 4-byte pointers
จะถูกใช้ในหลายระบบปฏิบัติการ, 32 bit file pointer ไปถึงเพียง 232 byte หรือ 4 GB
จะใช้งานในระบบปฏิบัติการแบบ UNIX หลายๆแบบ รวมถึง Solaris และ IBM’s AIX
ซึ่งปัจจุบันสนับสนุนถึง 64 bit file pointer, Pointer ขนาดนี้รองรับ files และ ระบบ files ขนาด
terabytes, UNIX inode แสดงใน รูปที่ 11.9

         การแบ่ง Index เพื่อป้องกันปัญหาต่างๆ โดยที่ index block
นี้จะถูกเก็บไว้ในหน่วยความจาแต่ block ของข้อมูลสามารถกระจายมากกว่าขนาดทั้งหมด
                                                                                           364




                                     รูปที่ 19 UNIX inode

11.4.4 Performance(ประสิทธิภาพ)
             สาหรับวิธีการแบ่งการจัดเก็บข้อมูลที่มีประสิทธิภาพ และ จานวนครั้งในการเข้าถึง data-
           ้
block ทัง criteria ที่สาคัญในการคัดเลือกวิธีการที่เหมาะสม หรือวิธีที่ใช้งานในระบบปฏิบัติการ
             ก่อนที่เราจะเลือกวิธีการแบ่ง เราต้องระบุก็ว่าเราจะใช้งานอะไรจากระบบ
โดยระบบที่มีการเข้าถึงอย่างต่อเนื่องเป็นส่วนใหญ่ก็จะไม่ใช้วิธีเดียวกับระบบที่มีการเข้าถึงแบบสุ่
ม
             สาหรับชนิดการเข้าถึง การแบ่งส่วนที่ติดกันนั้นต้องการการเข้าถึง disk block
เพียงแค่ชนิดเดียว ตั้งแต่ที่เราสามารถเก็บ address เริ่มต้น ของ file ใน memory
เราก็จะสามารถคานวณหา address ของ ith block (block ถัดไป) และอ่านได้ทันที
             สาหรับ linked allocation          เราสามารถเก็บ address ของ block ถัดไปใน
memory และสามารถนามาอ่านได้ในทันที วิธีการนี้เหมาะสาหรับการเข้าถึงที่ติดต่อกัน
หรือการเข้าถึงจริงๆ อย่างไรก็ตาม การเข้าถึงไปที่ ith block อาจจะต้องการอ่าน disk ตาแหน่งที่ i
ปัญหานี้ระบุว่าทาไม linked allocation จะต้องไม่ใช้ใน application ที่ต้องการการเข้าถึงโดยตรง
             จากผลลัพธ์ข้างต้น บางระบบจะสนับสนุน files ที่มีการเข้าถึงโดยตรง
ด้วยการใช้การแบ่งส่วนที่ใกล้กันและและการเข้าถึงแบบต่อเนื่องกัน โดย linked allocation
สาหรับระบบเหล่านี้ ประเภทของการเข้าถึงจะต้องมีการกาหนดเมื่อ file ถูกสร้างขึ้น โดย file
ที่สร้างขึ้นมีการเข้าถึงแบบต่อเนื่องและไม่สามารถใช้สาหรับการเข้าถึงจริงๆได้ ส่วน file
ที่สร้างขึ้นเพื่อการเข้าถึงแบบจริงนั้นจะมีความใกล้กัน
และสนับสนุนทั้งการเข้าถึงจริงๆและการเข้าถึงแบบต่อเนื่อง
แต่จะต้องมีการกาหนดความยาวสูงสุดทุกครั้งที่ทาการสร้าง ในกรณีนี้
ในระบบปฏิบัติการจะต้องมีโครงสร้างข้อมูลและขั้นตอนวิธีที่เหมาะสมที่จะ
                                                                                           365


สนับสนุนวิธีการเข้าถึงทั้ง 2 วิธี นอกจากนี้ file สามารถเปลี่ยนชนิดไปได้ขึ้นอยู่กับการสร้าง file
ใหม่ว่าต้องการให้ file เป็นชนิดใด โดยที่ file เดิมจะถูกคัดลอก จากนั้นจะถูกลบและ file
ใหม่จะเปลี่ยนชื่อ
          Indexed allocation จะมีความซับซ้อนขึ้น ถ้า index block
มีอยู่แล้วในหน่วยความจาและมีการเข้าถึงแบบโดยตรง อย่างไรก็ตามการเก็บ index block
ในหน่วยความจาจาเป็นต้องมีพื้นที่มาก และถ้าหากพื้นที่ในหน่วยความจามีไม่พอใช้
เราจะต้องอ่านที่ index block ก่อนจากนั้นค่อยอ่านข้อมูลที่เราต้องการ สาหรับ Two-level index,
การอ่าน Two-level index มีความสาคัญ สาหรับ file ขนาดใหญ่มากๆ ขณะที่เราทาการเข้าถึง
block ที่ตาแหน่งใกล้จะจบ file เราจะต้องอ่าน index block ทั้งหมดก่อนที่จะอ่าน block
ที่ต้องการ ดังนั้น ประสิทธิภาพของ index allocation จะขึ้นอยู่กับโครงสร้างของ index
          ในบางระบบ มีการรวม Contiguous allocation กับ Indexed allocation โดยการใช้
Contiguous allocation สาหรับ file ขนาดเล็ก (จนถึงขนาด 3 หรือ 4 block)
และมีการเปลี่ยนแปลงไปใช้ Indexed allocation ได้ทันทีเมื่อ file มีขนาดใหญ่ขึ้น ตั้งแต่ file
มีขนาดเล็ก Contiguous allocation จะใช้กับได้ดีกับ file ขนาดเล็ก และมีประสิทธิภาพโดยรวมดี
          ในกรณีนี้ ที่เวอร์ชัน ของระบบปฏิบัติการ UNIX ของบริษัท Sun Microsystems
ในมีการเปลี่ยนแปลงในปี 1991 โดยมีการเพิ่มประสิทธิภาพวิธีการของ file-system allocation
ซึ่งประสิทธิภาพนี้ชี้ให้เห็น ขนาดที่ใหญ่ที่สุดของที่ทางานใน disk ใน workstation ตัวอย่าง (12-
MIPS SPARCstation1) ใช้ CPU ในการทางาน 50 เปอร์เซ็นต์ และใช้ disk bandwidth
เพียงแค่ 15 MB ต่อวินาที ในการเพิ่มประสิทธิภาพ บริษัท Sun ได้มีการเปลี่ยน การแบ่งเนื้อที่ใน
cluster เป็น 56 KB เมื่อไรก็ตามที่เป็นไปได้ (56 KB เป็นขนาดที่ใหญ่ที่สุดของการเคลื่อนย้าย
DMA ของบริษัท Sun Microsystems ในปัจจุบัน) การแบ่งส่วนนี้มี fragmentation
ภายนอกที่ลดลง นอกจากนี้ การอ่าน disk เป็นประจา จะเหมาะสมสาหรับการอ่าน cluster
ขนาดใหญ่เหล่านี้ โครงสร้าง inode จะไม่เปลี่ยนแปลง และผลของการเปลี่ยนแปลงเหล่านี้
บวกกับการใช้การอ่านล่วงหน้า และ ( อธิบายใน section 11.6.2), มีการใช้ CPU น้อยที่เพียง 25
เปอร์เซ็นต์ และมีการเพิ่มขึ้นอย่างมากในช่วงเวลาหนึ่ง
          ยังมีอื่นๆอีกมากมายในการเพิ่มประสิทธิภาพการใช้งาน สิ่งที่ไม่เหมือนกันระหว่าง
ความเร็วของ CPU กับ ความเร็วของ disk
มันมีเหตุผลที่มีการเพิ่มคาสั่งมากมายลงระบบปฏิบัติการ
และยังเป็นการประหยัดการเคลื่อนที่ของ disk-head นอกจากนี้ การเพิ่มของเวลาที่ไม่เหมือนกัน
จะทาให้ระบุคาสั่งมากมายเหล่านี้ว่ามีเหตุผลที่จะใช้ การเคลื่อนที่ของ head ที่เหมาะสมหรือไม่
11.5 Free-Space Management (การจัดการพื้นที่ว่าง)
                                                                                                366


          ตั้งแต่พื้นที่ของ disk ถึงขีดจากัด เราต้องการที่จะนาพื้นที่เหล่านั้นจาก file
ที่ลบไปแล้วกลับมาใช้สาหรับ file ใหม่ ถ้าเป็นไปได้(การเขียนหนึ่งครั้ง disk
อนุญาตเฉพาะให้เขียนใน sector ที่กาหนดให้ ดังนั้นการนาพื้นที่กลับมาใช้ใหม่จึงเป็นไปไม่ได้)
ในการเก็บ track ในพื้นที่ disk ที่ว่าง ระบบจะต้องเก็บรักษา free-space list เอาไว้ โดยที่ free-
space list นี้จะบันทึก disk block ที่ว่างทั้งหมด โดยมันจะไม่แบ่งเป็น file หรือ directory
เพื่อที่จะสร้าง file ใหม่ เราจะหา free-space list โดยที่หาพื้นที่ทั้งหมดและแบ่งพื้นที่นั้นเป็น file
ใหม่ และพื้นที่ที่นี้จะถูกลบออกจาก free-space list เมื่อ file ถูกลบไปแล้ว พื้นที่ของ disk
นั้นจะถูกเพิ่มลงใน free-space list

         11.5.1 Bit Vector
         บ่อยๆครั้ง ที่พื้นที่ว่างจะใช้ bit map หรือ bit vector ในแต่ละ block จะแทนด้วย 1 bit ถ้า
block นั้นว่าง bit จะแทนที่ด้วย 1 แต่ถ้า block นั้น ถูกใช้ bit ก็จะแทนที่ด้วย 0
         ดังตัวอย่าง พิจารณา disk ที่ block 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26 และ
27 ให้เป็นว่าง free-space bit map จะเป็น ดังนี้

                 001111001111110001100000011100000….

           ความได้เปรียบของวิธีการนี้คือความสัมพันธ์ที่เรียบง่ายและมันง่ายต่อการหา block
แรกที่ว่างหรือ block ที่ n ที่ต่อเนื่องจาก free blocks ใน disk จริงๆแล้ว คอมพิวเตอร์จานวนมาก
ได้จัดเตรียม คาสั่งที่เหมาะสมไว้สาหรับการจัดการกับ bit เหล่านี้ ดังตัวอย่าง ที่ Intel เริ่มต้นที่
80386 และ ที่ Motorola เริ่มต้มที่ 68020 โดยมีคาสั่ง return the offset ในคาที่ bit แรก
ที่มีค่าเป็น 1 เทคนิคหนึ่งในการหา block แรกที่ว่างในระบบโดยใช้ bit-vector ในการแบ่งพื้นที่ใน
disk ที่ต่อเนื่องกันเพื่อตรวจสอบว่าแต่ละคาใน bit map เพื่อที่จะหาค่าที่ไม่มีค่าเป็น 0
ตั้งแต่ที่ตัวที่มีค่าเป็น 0 มี 0 bits และตัวแรกที่มีค่าไม่ใช่ 0 ซึ่งก็คือ bits แรกที่เป็น 1
ที่ตาแหน่งแรกของ block ว่าง จะคานวณโดย

        (จานวนของ bits ต่อตัว)*(จานวนของตัวที่เป็น 0) + offset ของbit ที่เป็น 1 bit แรก

        เป็นที่ทราบกันแล้วว่า เราจะเห็น hardwere มีการใช้งานรวมกับฟังก์ชันของ softwere
โชคไม่ดีที่ bit vectors ไร้ประสิทธิภาพถ้า vector ทั้งหมดไม่ถูกเก็บใน
หน่วยความจาหลัก(และเขียนข้อมูลลง disk ก็ต้องการการพักเป็นครั้งคราว)
                                                                                               367


ถ้าเราจะเก็บมันลงในหน่วยความจาหลักมันเป็นไปได้สาหรับ disk
ที่มีขนาดเล็กกว่าแต่ไม่จาเป็นสาหรับ disk ที่มีขนาดใหญ่,disk ที่, disk ที่มีขนาด 1.3 GB ที่มี
512-byte blocks จะต้องการ bit map ขนาด มากกว่า 332 KB ในการ track free blocks
                                             ่
ถึงแม้ว่า การทา clustering ของ block ในกลุม ในเป็น 4 จานวนที่ใช้ก็จะเป็น 83 KB ต่อ disk
โดยที่ disk ขนาด 40 GB ที่มี 1-KB blocks ต้องการ 5 MB ในการเก็บ bit map

           11.5.2 Linked list (list ต่อเนื่อง)
           ในการจัดการพื้นที่ว่างวิธีอื่น เพื่อที่จะ link disk block ที่ว่างทั้งหมดเข้าด้วยกัน
จะต้องเก็บ pointer ของ block แรกที่ว่าง ลงในพื้นที่พิเศษบน disk และ cache ลงใน memory,
block แรก ประกอบไปด้วย pointer ที่จะชี้ไปยังdisk block ว่างถัดไป
อาทิเช่นตัวอย่างก่อนหน้านี้(Section 11.5.1) เราจะเก็บ pointer ที่จะชี้ไปยัง block 2 ไว้ใน block
แรก และ block ที่ 2 ก็จะประกอบด้วย pointer ที่จะชี้ไปยัง block ที่ 3, ชี้ไป block ที่ 4,ชี้ไป block
ที่ 5,ชี้ไป block ที่ 8,เป็นต้น (รูปที่ 11.10)
อย่างไรก็ตามวิธีการนี้ไม่มีประสิทธิภาพสาหรับการข้าม list เราจะต้องอ่านแต่ละ block
ซึ่งจะใช้เวลาในการ input และ output มาก โชคดีที่การข้าม list จะเกิดขึ้นไม่บ่อย
โดยปกติระบบปฏิบัติการธรรมดาต้องการ block ว่างเพื่อแบ่ง block เป็น file ดังนั้น block แรก ใน
list ว่างจะถูกใช้ วิธีการFAT จัดการการใช้โครงสร้างข้อมูลในการจัดแบ่ง
จึงไม่ต้องการการแยกวิธีการ

        11.5.3 Grouping (การจัดกลุ่ม)
        การแก้ไขของวิธีการ list ว่างโดยจัดเก็บ address ของ block ว่างจานวน n block ใน
block ว่างตาแหน่งแรก ที่ตาแหน่ง n-1เป็นตาแหน่งที่ว่างจริงๆ block สุดท้ายประกอบด้วย
address ของ block ว่างที่ n อื่นๆ อาทิเช่น address block ว่างที่มีจานวนมากที่สุด
สามารถหาเจอได้เร็วที่สุด แตกต่างจากสถานการณ์ที่ใช้วิธีการ link-list แบบปกติ
                                                                                         368




                         รูปที่ 11.10 Linked free-space list on disk
          11.5.4 Counting
          วิธีอื่นนั้นมีจุดเด่นมากกว่า โดยทั่วไปแล้วหลายๆ block
ที่เชื่อมต่อกันจะสามารถแบ่งหรือปล่อยให้ว่างได้ไปพร้อมๆกัน
โดยเฉพาะเมื่อพื้นที่ถูกแบ่งโดยวิธีการการแบ่งส่วนที่ต่อเนื่องกันหรือด้วยวิธี clustering ดังนั้น
แทนที่จะเก็บ list ของ n ใน address ของ disk ว่าง เราสามารถเก็บ address ของ block
แรกที่ว่าง และจานวนของ block ว่างที่ติดต่อกันตามแบบ block ว่าง แต่ละการเข้าใช้พื้นที่ว่างของ
list ประกอบด้วย disk address และตัวนับ ถึงแม้ว่าแต่ละการเข้าใช้ต้องการพื้นที่มากกว่า การใช้
disk address ปกติ โดยที่ list ทั้งหมดจะสั้นกว่า ตราบเท่าที่ตัวนับนั้นดีกว่า 1

11.6 Efficiency and Performance (ประสิทธิภาพ และ สมรรถภาพ)
          ปัจจุบันเราสามารถอธิบายความแตกต่างของ block-allocation และ directory-
management options , เราสามารถพิจารณาผลลัพธ์ของประสิทธิภาพ และ สมรรถภาพ ที่ disk
ใช้ disk จะเฝ้าดู การแสดงผลของ การความขัดข้องขนาดใหญ่ในประสิทธิภาพของระบบ
ตั้งแต่เป็นส่วนประกอบคอมพิวเตอร์ที่ช้าที่สุด ใน section นี้
เราจะอธิบายถึงเทคนิคต่างในการเพิ่มประสิทธิภาพและสมรรถภาพ ของหน่วยความจาสารอง




11.6.1 Efficiency
        ประสิทธิภาพในการใช้พื้นที่ว่างความมากของ disk allocation และวิธีการในการใช้
directory ตัวอย่าง ก่อนที่ UNIX inode จะทาการแบ่งระดับ แม้ว่า disk
                                                                                              369


ว่างจะมีเปอร์เซ็นต์ของพื้นที่ที่สูญเสียไปให้กับ inode อย่างไรก็ตาม ก่อนที่จะทาการแบ่ง inodes
และกระจายค่า เราจะต้องเพิ่มประสิทธิภาพของระบบ file
ผลจากการเพิ่มประสิทธิภาพจากการแบ่งของ UNIX และวิธีการของพื้นที่ว่าง
                                                 ่
ซึ่งพยายามที่จะทาให้ block ข้อมูลของ file ทีใกล้กับ inode ของ file ลดเวลาในการค้นหาลง
            สาหรับตัวอย่างอื่นๆ มาพิจารณาวิธีการ Clustering ที่อธิบายใน section 11.4
ซึ่งช่วยในการเพิ่มประสิทธิภาพในการค้นหาและขนส่ง file ในการแบ่ง เพื่อลดการแบ่งนี้, BSD
UNIX แตกต่างไปที่ขนาดในการจัดกลุ่มของ file การจัดกลุ่มที่ใหญ่ที่สุดจะใช้เมื่อ file ใกล้จะเต็ม
และการจัดกลุ่มขนาดเล็กจะใช้ต่อเมื่อ file มีขนาดเล็ก และเป็นการจัดครั้งสุดท้ายของ file
ระบบนี้จะอธิบายใน ภาคผนวกA
            ชนิดของข้อมูลที่ปกติแล้วจะเก็บใน File directory (หรือ inode) โดยต้องมีการพิจารณา
โดยทั่วไป “last write date” (การเขียนครั้งสุดท้าย)
จะถูกบันทึกเพื่อสารองข้อมูลไว้ให้กับผู้ใช้และเพื่อตรวจสอบว่า file ต้องการการสารองข้อมูล
ในบางระบบจะใช้ “last access date” (การเข้าถึงครั้งสุดท้าย)
เพื่อที่ผู้ใช้จะสามารถตรวจสอบได้ว่า file ถูกอ่านครั้งสุดท้ายเมื่อใด ผลจากการเก็บข้อมูลนี้ทาให้
เมื่อใดก็ตามที่ file ถูกอ่าน พื้นที่ใน directory ก็จะถูกเขียน ซึ่งหมายความว่า block
จะถูกอ่านจาก memory ถ้ามีการเปลี่ยนและ block จะถูกเปลี่ยนไปเขี่ยนบน disk
เพราะว่าการใช้บน disks มีอยู่เฉพาะใน block (หรือในกลุ่ม) ดังนั้นเมื่อใดที่ file มีการเปิดอ่าน
directory นั้นจะมีการอ่านและเขียนด้วย ความต้องการนี้อาจจะไม่มีสมรรถภาพสาหรับ file
ที่มีการเข้าถึงบ่อยๆ ดังนั้นเราจึงต้องหาผลของประสิทธิภาพเมื่อมีการออกแบบระบบ
โดยปกติข้อมูลทุกอย่างมีการเชื่อมโยงกับความต้องการของ file โดยจะต้องพิจารณาผลลัพธ์ของ
ประสิทธิภาพและสมรรถภาพ
            ตัวอย่าง พิจารณาว่าประสิทธิภาพถูกกระทบโดยขนาดของ pointer
ที่ใช้ในการเข้าถึงข้อมูล ระบบส่วนมากจะใช้ 16-bit หรือ 32-bit pointer
อย่างใดอย่างหนึ่งโดยตลอด ในระบบปฏิบัติการ pointer นี้จะมีขนาดความยาวสูงสุดที่ 216
(64KB) หรือ 232 (4GB) บางระบบใช้ 64-bit pointer เพิ่มเป็น 264 bytes อย่างไรก็ตาม 64-bit
pointer ต้องการพื้นที่สาหรับจัดเก็บมาก และต้องการวิธีในการจัดการพื้นที่ จึงต้องใช้พื้นที่เพิ่มขึ้น
            หนึ่งในความยากของการเลือกขนาดของ pointer,
หรือการแบ่งขนาดให้เข้ากับระบบปฏิบัติการ จาเป็นต้องมีการวางแผนให้เข้ากับเทคโนโลยี
พิจารณาจากเครื่องคอมพิวเตอร์ของ IBM XT ซึ่งมี hard drive 10 MB และระบบ file ของ MS-
DOS ซึ่งสนับสนุนเฉพาะ 32 MB เท่านั้น โดย disk เพิ่มได้สูงสุดมี disk
ขนาดใหญ่ซึ่งแบ่งเป็นส่วนละ 32 MB เพราะว่าระบบ file จะไม่สามารถทางานกับ block
                                                                                          370


ที่มีขนาดใหญ่กว่า 32 MB ได้ แต่ hard drive สามารถจะทางานได้ถึง 100 MB,
วิธีการทางานและโครงสร้างข้อมูลของ disk ใน MS-DOS
จะถูกแก้ไขตามระบบไฟล์ที่ขนาดใหญ่ขึ้น โดยที่ระบบ file เริ่มต้นจะตัดสินใจตามประสิทธิภาพ
อย่างไรก็ตามที่ MS-DOS เวอร์ชัน 4
หลายล้านคนของผู้ใช้จะพบกับความไม่สะดวกเมื่อพวกเขาเริ่มทางานใหม่ ระบบ file ขนาดใหญ่
ของ SUN ZFS ใช้ pointer ขนาด 128 bit ด้วยทฤษฎีที่ว่าไปต้องเพิ่มใหม่ในภายหลัง
         สาหรับตัวอย่างอื่นๆ มาพิจารณาที่ระบบปฏิบัติการ SUN Solaris
โดยปกติแล้วโครงสร้างข้อมูลจะมีการกาหนดขนาด โครงสร้างนี้มีการกาหนด process table และ
open-file table เมื่อ process table เต็ม จะไม่มีการสร้าง process table เพิ่ม เมื่อ open-file
table เต็มก็จะไม่มีการสร้าง open-file table เพิ่ม ระบบนี้ล้มเหลวในการให้บริการลูกค้า
ขนาดของ table จะถูกเพิ่มขึ้นโดยการคอมไพล์และ reboot ระบบขึ้นมาใหม่ ตั้งแต่ที่มีการออก
Solaris เวอร์ชัน 2 โครงสร้างของ kernel จะถูกแบ่งแบบ dynamic การกาจัด limit
ปลอมในสมรรถภาพระบบ แน่นอนว่าวิธีการนี้จะทาให้การจัดการ table ยากขึ้น
และระบบปฏิบัติการจะช้าลงเล็กน้อยเนื่องจากการทางานจะเป็นแบบ dynamic เท่านัน          ้
แต่ราคาก็ถือว่าธรรมดาหรับประโยชน์การใช้งานที่เพิ่มขึ้น




11.6.2 Performance (สมรรถภาพ)
           แต่ละวิธีการของระบบ file ที่ถูกเลือก เรายังสามารถเพิ่มสมรรถภาพได้ในหลายๆทาง
ซึ่งจะอธิบายใน Chapter 13 disk ส่วนมากจะควบคุมการเพิ่มของ memory จาก on-board
cache ซึ่งมีขนาดใหญ่พอที่จะเก็บ track ทั้งหมด track จะถูกอ่านเมื่อเริ่ม cache ที่ sector ใต้
disk head ตัวควบคุม disk จะถ่ายโอน sector ต่างๆโดยส่งคาขอไปที่ ระบบปฏิบัติการ disk
หนึ่งจะสร้างจากตัวควบคุม disk ไปยังหน่วยความจาหลัก ระบบปฏิบัติการจะ cache block ทีน่ี        ่
           บางระบบจะรักษา section ที่แยกออกจากกันของหน่วยความจาหลักเพื่อ buffer cache,
ที่ซึ่ง block เก็บสมมุติฐานซึ่งจะเป็นแบบรวบรัด, ที่ระบบอื่นการ cache file ข้อมูลจะใช้ page
cache โดย page cache จะใช้เทคนิคหน่วยความจาเสมือนในการ cache file ข้อมูลโดยจะใช้
pages มากกว่า file-system-oriented block การ cache file ข้อมูลจะใช้ address
เสมือนซึ่งมีประสิทธิภาพมากกว่า การเข้าถึง interface โดยใช้
หน่วยความจาเสมือนมากกว่าระบบ file ในระบบปกติ เช่น Solaris Linux and Window NT 2000
                                                                                        371


และ XP จะใช้ page caching เพื่อ cache ทั้ง process page และ file ข้อมูล โดยจะทาให้รู้
unified virtual memory




                            รูปที่ 11.11 I/O ซึ่งไม่ใช้ unified buffer cache



        บางเวอร์ชันของ UNIX และ Linux จะเตรียม unified buffer cache
สาหรับข้อได้เปรียบของ unified buffer cache
พิจารณาทางเลือกสองทางสาหรับการเปิดและการเข้าถึง file หนึ่งในวิธีการเข้าใช้ mapping
(section 9.7) วิธีที่ 2 คือใช้ standard system call read() และ write() นอกจาก unified buffer
cache เรามีการจาลองสถานการณ์ที่รูปที่ 11.11 โดย read() และ write() system calls
the memory-mapping call อย่างไรก็ตาม เมื่อมีความต้องการจะใช้สอง cache คือ page cache
และ buffer cache ขั้นตอนหน่วยความจา mapping จะทาโดยอ่าน disk block จากระบบ file
และเก็บลงใน buffer cache เพราะว่าในระบบหน่วยความจาเสมือนจะไม่มี interface สาหรับ
buffer cache โดยปริมาณของfile ใน buffer cache จะถูกคัดลอกไปที่ page cache
                                                                                        372


สถานการณ์นี้ทาให้รู้double cachingและ ต้องการ caching file ระบบ
ไม่เฉพาะหน่วยความจาที่เสียแม้แต่ CPU และ I/O เสียด้วยเช่นกัน
นอกจากความไม่สอดคล้องของ cache ทั้งสอง ทาให้ file ไม่ถูกต้อง ตรงกันข้าม เมื่อ unified
buffer cache มีการเตรียมไว้ ทั้ง memory mapping และ read() write() system call จะใช้
page cache เหมือนกัน มันเป็นประโยชน์ต่อ avoiding double caching และมันจะใช้
ระบบหน่วยความจาเสมือนเพื่อจัดการกับ ข้อมูลของ file ระบบ unified buffer cache
จะแสดงในรูป 11.12
          โดยไม่คานึงถึงว่า เราจะ caching disk block หรือ page (หรือทั้งคู่), LRU (section
9.4.4) คล้ายกับความเหมาะสมของ วิธีการ general-purpose สาหรับ block หรือ
การทาหน้าที่แทน page
อย่างไรก็ตามพัฒนาการของวิธีการ page-caching ของ Solaris
แสดงให้เห็นความยากในการเลือกวิธีการSolaris อนุญาตให้กระบวนการและ page cache
แชร์หน่วยความจาที่ไม่ใช้ เวอร์ชันก่อนหน้า Solaris 2.5.1 ไม่แตกต่างระหว่างการแบ่งสรร page
ในการดาเนินการ และจัดสรรไปให้ page cache ผลลัพธ์ก็คือระบบใช้งาน I/O operation
จานวนมากได้อย่างมีประสิทธิภาพสาหรับ caching page เพราะว่าที่ I/O ระดับสูง page
scanner (section 9.10.2) จะเรียก page กลับคืนจากกระบวนการมากกว่า page cache ทาให้
memory ทางานช้า Solaris 2.6 และ Solaris 7 มีการเพิ่ม priority paging ที่ page จะจัด priority
ของ process page Solaris 8 มีการเพิ่มการกาหนด limit ของ process page และ file-system
page cache และป้องกันการทั้งการบังคับให้ออกจากหน่วยความจา Solaris 9 และ10
มีการเปลี่ยนวิธีการอีกครั้ง ซึ่งก็คือการใช้ maximize memory และ minimize thrashing
นี่คือตัวอย่างจริงที่แสดงความยุ่งยากของสมรรถภาพที่เหมาะสมและการ caching
          นี่คือปัญหาอื่นๆที่จะส่งผลกระทบต่อสมรรถภาพของ I/O เช่นไม่ว่าจะการเขียนลงบนfile
ระบบในเวลาเดียวกัน หรือ คนละเวลากัน Synchronous write เกิดขี้นในรายการที่ disk
subsystem รับมา และเขียนโดยไม่ได้ buffer ดังนั้น the calling routine
จาเป็นต้องรอให้ข้อมูลติดต่อกับ disk drive ก่อนถึงจะทางานต่อ Asynchronous write
จะเสร็จสิ้นก็ต่อเมื่อเป็นเสียงส่วนใหญ่ในขณะนั้น Asynchronous write ข้อมูลจะถูกเก็บใน cache
และจะกลับไปหาผู้เรียก Metadata write ในอื่นๆสามารถจะใช้ Synchronous
เป็นประจาที่ระบบปฏิบัติการจะเพิ่ม flag ในระบบเปิด file
จะต้องขออนุญาตโดยส่งคาขอไปที่กระบวนการว่าจะทางานด้วย Synchronous
ตัวอย่างฐานข้อมูลจะใช้วิธีนี้ในการดาเนินการเพื่อให้มั่นใจว่าข้อมูลนั้นถูกต้องตาม order
                                                                                          373




                              รูปที่ 11.12 I/O ซึ่งใช้ unified buffer cache



        บางระบบจะใช้ page cache ในวิธีที่แต่ต่างออกไป
                                                   ้
โดยอ้างอิงจากชนิดของการเข้าถึงของ file ซึ่ง file นัน จะเริ่มอ่านหรือเขียนตามลาดับ โดยไม่ต้องมี
page มาแทนที่ใน LRU order เพราะว่าส่วนมาก page จะถูกนามาใช้เป็นอันดับสุดท้าย
หรืออาจจะไม่มีเลย ลาดับของการเข้าถึงนั้นจะเหมาะสมหากใช้เทคนิค free-behind และ read-
ahead free-behind จะลบ page ออกจาก buffer ทันทีเมื่อ page ต่อไปส่งคาร้องมา page
ก่อนหน้านั้นจะไม่มีการนามาใช้ซ้า ส่วน read-ahead จะร้องขอ page หลายๆ page
ให้มีการอ่านและ cache โดย page นี้จะร้องขอภายหลังจากที่ page ปัจจุบันทางานเสร็จแล้ว
การก็ข้อมูลจาก disk จากการขนส่งและ caching ทาให้ประหยัดการพิจารณาผลรวมของเวลา
ความคิดเกี่ยวกับ track cache บนตัวควบคุมการกาจัดต้องการ read-ahead บนระบบ
                                                                                       374


multiprogramed อย่างไรก็ตามเพราะว่าศักยภาพที่สูงและส่วนเกี่ยวข้องกับการสร้าง
การถ่ายโอนขนาดเล็กจานวนมากจากการ track cache ที่หน่วยความจาหลัก การทา read-
ahead ก็เป็นผลดี
         the page cache, ระบบ file และ disk disk driver มีความน่าสนใจบางอย่าง
โดยเมื่อข้อมูลถูกเขียนลงบน disk page ก็จะทาการ buffer ลงบน cache และ disk driver
ก็จะเรียงลาดับ output ตาม disk address นั่นคือการดาเนินการสองอย่างที่ อนุญาตให้ disk
driver ค้นหา disk-head ที่มีขนาดเล็กที่สุดและเขียนข้อมูลในเวลาเดียวกันซึ่งเหมาะสาหรับ disk
rotation ยกเว้นแต่ว่าต้องการ synchronous write โดยการเขียน process ปกติจะทาลงบน
cache และระบบ asynchronous write จะเขียนลงบน disk ถ้าสะดวก การดาเนินการของ user
นั้นดูเหมือนจะเร็วมาก เมื่อข้อมูลถูกอ่านจาก disk file ระบบ block I/O จะทา read-ahead
อย่างไรก็ตามการเขียนนี้ก็ใกล้เคียง asynchronous มากกว่าการเขียน ดังนั้น output
จากการทาด้วยระบบ file system ส่วนมากจะเร็วมากกว่า input ของการถ่ายโอนขนาดใหญ่

11.7 Recovery (การกู้คืน)
         File และ directory จะเก็บทั้งในหน่วยความจาหลักและบน disk
และเราต้องแน่ใจว่าเมื่อระบบทางานไม่ได้จะไม่ทาให้ข้อมูลสูญหายหรือเกิดการซ้าซ้อนของข้อมูล
เราจึงต้องทาตาม section ต่อไปนี้
         11.7.1 Consistency Checking (การตรวจสอบความสอดคล้อง)
         ตามที่อธิบายไว้ใน section 11.3, ข้อมูลของบาง directory
จะเก็บไว้ในหน่วยความจาหลัก (หรือ cache) เพื่อทาให้การเข้าถึงเร็วขึ้น
ข้อมูลในหน่วยความจาหลักปกติแล้วจะใหม่มากกว่าข้อมูลเดียวกันที่อยู่บน disk
เนื่องจากข้อมูลในcache ไม่จาเป็นต้องเขียนลงบน disk เมื่อมีการ update
         เมื่อพิจารณาถึงผลของความเป็นไปได้ว่าคอมพิวเตอร์จะพัง ขนาดของcache และ buffer
ตลอดจนความก้าวหนาของ I/O operation สามารถล้มเหลวได้ และการเปลี่ยนใดๆของใน
directory ของการเปิด file มีหลากหลายวิธีการหลีกเลี่ยงการไม่สอดคล้องของข้อมูลของ file
มีบางสถานการณ์ที่ไม่ได้อธิบายในโครงสร้าง directory
หลายๆครั้งที่โปรแกรมพิเศษจะทะงานตอน reboot เพื่อตรวจสอบความไม่สอดคล้องของ disk
         The consistency checker, โปรแกรมในระบบเช่น fsck ใน UNIX หรือ chkdsk ใน MS-
DOS จะเปรียบเทียบข้อมูลในโครงสร้างของ directory กับ ข้อมูลใน block
และแก้ไขความไม่สอดคล้องของข้อมูลที่เจอ วิธีการแบ่งและ การจัดการพื้นที่ว่างจะสั่งการให้หา
type ที่ผิดปกติแล้วเมื่อหาเจอก็จะทาการแก้ไขมัน ตัวอย่างถ้า link allocation มีการใช้และ link
                                                                                                 375


ไปยัง block ใดๆหรือ block ถัดไป file ทั้งหมดจะถูกสร้างขึ้นมาใหม่จาก data block
และโครงสร้างของ directory ก็จะสร้างขึ้นมาใหม่ ในทางตรงข้าม directory
ที่สูญหายจะเข้าไปยังระบบ indexed allocation ซึ่งสามารถพังได้ เพราะว่า data block
ไม่มีข้อมูลใดๆ สาหรับเหตุผลนี้ UNIX cache directory ทั้งหมด ที่ใช้อ่าน
แต่ข้อมูลใดๆจะไม่ถูกเขียนลงใน space allocation หรือ metadata อื่นๆ เป็นการเสร็จสิ้น
synchronously ก่อนที่ติดต่อกับข้อมูลเพื่อเขียน แน่นอนปัญหาการยังคงมีอยู่ถ้า synchronous
write ใช้ interrupted ด้วย crash

11.7.2 Backup and Restore (การสารองและการกู้คืน)
         บางครั้ง disk ที่เป็นจานแม่เหล็กอาจเสียได้ เพื่อให้แน่ใจว่าข้อมูลจะไม่สูญหาย
โปรแกรมระบบจะทาการ backup ข้อมูลนั้นๆไว้ในที่อื่น เช่น floppy disk, magnetic
tape,แผ่นเก็บข้อมูล หรือ hard disk อื่นๆ และทาการกู้คืนกลับมาในภายหลัง
         เราต้องการการลักลอกข้อมูลน้อยๆ โดยสามารถใช้ข้อมูลจากแต่ละ directory
ตัวอย่างเช่น โปรแกรม backup จะตรวจสอบครั้งสุดท้ายที่ file ถูกแก้ไข
ถ้าไม่มีการแก้ไขก็จะไม่ต้องคัดลอก file นั้นซ้าอีก ตัวอย่างจากรายการดังนี้

         วันที่ 1 คัดลอก และ backup ข้อมูลทั้งหมดจาก disk เรียกว่า full backup
         วันที่ 2 คัดลอก file ทั้งหมดที่มีการเปลี่ยนแปลงไปตั้งแต่วันที่ 1 เรียกว่า incremental
backup
         วันที่ 3 คัดลอก file ทั้งหมดที่มีการเปลี่ยนแปลงไปตั้งแต่วันที่ 2
                                                   .
                                                   .
                                                   .
         วันที่ N คัดลอก file ทั้งหมดที่มีการเปลี่ยนแปลงไปตั้งแต่วันที่ N-1 จากนั้นกลับไปที่วันที่ 1

         วัฎจักรนี้มีการสารองการเขียนมากกว่าการจัดก่อนหน้าหรือไปยังการจัดใหม่ของ backup
media ในลักษณะนี้เราสามารถกู้คืนข้อมูลทั้งหมดโดยเริ่มจากการกู้ข้อมูลที่ full backup
ก่อนและไปทาในแต่ละ incremental backup แน่นอนว่า ค่าที่มากกว่าค่าของ N
ยิ่งกว่าจานวนของ tape หรือ disk ที่จะต้องอ่านเพื่อสาเร็จการกู้คืน การเพิ่มประโยชน์ของวัฎจักร
backup นี้ทาให้เราสามารถกู้คืน file ใดๆที่เราลบไปโดยบังเอิญโดยกู้คืนไปวันก่อนหน้านี้
ขนาดของวัฎจักรขึ้นอยู่กับ ความต้องการที่จะกู้คืนข้อมูลกับผลรวมของวันที่เรากู้ข้อมูลคืนกลับมา
                                                                                               376


จานวนที่ลดลงของ tape ที่เราจะต้องอ่านเพื่อกู้คืน ทางเลือกในการทา full backup และการทา
backup ในแต่ละวันที่ file ทั้งหมดมีการเปลี่ยนแปลงตั้งแต่ทา full backup
อย่างนี้การกู้คืนสามารถทาได้โดยการทา incremental backup ใหม่ที่สุด และ full backup
โดยไม่มี incremental backup อื่น            ๆ, the trade-off คือมี file มากที่ถูกแก้ไขในแต่ละวัน
ดังนั้นในแต่ละ incremental backup ที่ต่อเนื่องกันเกี่ยวข้องกับ file และ backup media
จานวนมาก
         ผู้ใช้จะสังเกตเห็นว่าเฉพาะ file
ที่กาลังหายไปและผิดพลาดยาวกว่าหลังที่มีความเสียหายไปแล้ว สาหรับเหตุผลนี้
เราควรจะวางแผนที่จะทา full backup บ้างเพื่อที่จะให้ file คงอยู่ตลอดเวลา
เป็นความคิดที่ดีที่จะทาการ backup ถาวรเพื่อป้องกันความเสี่ยง
เช่นไฟไหม้คอมพิวเตอร์และข้อมูลที่ backup และถ้าวัฎจักร backup นา media มาใช้ใหม่
เราก็ไม่ต้องสนใจการกลับมาใช้ใหม่
11.8 Log-Structured File Systems
                    นักโปรแกรมเมอร์ มักพบว่า อัลกอริทึม และ เทคโนโลยีดั้งเดิม
ที่ใช้งานอยู่พื้นที่หนึ่งมักมีประโยชน์ในการนาไปประยุกต์ใช้กับพื้นที่อื่นๆ เช่น
ในตัวอย่างของการบรรยาย อัลกอริทึม log-based recovery ในหัวข้อ 6.9.2
อัลกอริทึมนี้ถูกนามาประยุกต์ใช้เป็นผลสาเร็จในการตรวจสอบปัญหาความสอดคล้อง
ทาให้ถูกเรียกว่า ระบบไฟล์ log-based transaction-oriented

         เมื่อมองกลับไปดูการชนกันของระบบที่มีสาเหตุมาจากการทางานที่ไม่สอดคล้องกันระหว่
               ั
าง ดิสก์ไฟล์กบระบบฐานข้อมูล เช่น โครงสร้าง ไดเรกทอรี่ , free-block pointer และ free FCB
pointers ก่อนที่จะมีการใช้ log-based techniques ในระบบปฏิบัติการ
การเปลี่ยนแปลงตาแหน่งของโครงสร้างในที่นี้ มักจะเกิดขึ้นสม่าเสมอในการทางานปกติ เช่น
การสร้างไฟล์นั้นมีส่วนเกี่ยวข้องกับการเปลี่ยนแปลงโครงสร้างภายในระบบไฟล์บนดิสก์อย่างมาก
โครงสร้างไดเรกทอรี่ จะมีการถูกแก้ไข , FCBs จะถูกจัดสรร ,data-block จะถูกจัดสรร
และจานวนที่ว่างใน block เหล่านี้จะลดลง การเปลี่ยนแปลงนี้จะขาดตอนเมื่อเกิดการชนกัน
ซึ่งสาเหตุมาจากการไม่สอดคล้องของโตรงสร้าง ตัวอย่างเช่น จานวนที่ว่างใน FCB ที่มากขึ้น
อาจระบุได้ว่า FCB มีการถูกจัดสรร แต่ไดเรกทอรี่ของโครงสร้าง อาจไม่ชี้ไปที่ FCB ดังนั้น FCB
จะสูญหายไป เมื่อ FCB ถูกตรวจสอบว่าไม่มีความสอดคล้อง
                 แม้ว่าในการกู้คืนเราจะมีการจัดโครงสร้างและซ่อมแซม
แต่ก็ยังมีปัญหาที่หลากหลายในการจัดการ
                                                                                           377


ความไม่สอดคล้องเป็นหนึ่งในปัญหาที่ไม่สามารถแก้ไขได้
การตรวจสอบความสอดคล้องอาจไม่สามารถกู้คืนโครงสร้างได้ ผลคือ จะทาให้มี ไฟล์หรือแม้แต่
ไดเรกทอรี่ สูญหาย การตรวจสอบความสอดคล้องสามารถที่จะถูกมนุษย์เข้าไปแก้ไขปัญหาได้
แต่ประสิทธิภาพในการแก้ไขปัญหานั้นขึ้นอยู่กับประสิทธิภาพของมนุษย์ด้วย
ดังนั้นระบบจะไม่ดีขึ้นถ้าไม่มีมนุษย์ที่มีประสิทธิภาพ
ระบบจะยังคงไม่มีประสิทธิภาพจนกว่ามนุษย์จะบอกวิธีดาเนินการ
การตรวจสอบความสอดคล้องจะถูกกระทาโดยระบบและ clock time ข้อมูลขนาด Terabytes
จะถูกตรวจสอบประมาณมากกว่า 1 ชม. โดย clock time
                  วิธีแก้ปัญหานี้จะถูกทาโดยระบบตามเทคนิคเพื่อการกู้คืนไฟล์ในระบบ file-
system metadata updates ทั้ง NTFS และ Veritas ต่างก็ใช้ระบบไฟล์แบบนี้
มันเป็นทางเลือกนอกจาก UFS บน Solaris7
ในความเป็นจริงระบบนี้เป็นตัวหลักในระบบปฏิบัติการ
                  โดยพื้นฐานนั้นข้อมูลที่เปลี่ยนแปลงทั้งหมดจะถูกเขียนอย่างเป็นลาดับลงใน log
แต่ละชุดการดาเนินงานจะถูกแบ่งออกเฉพาะเจาะจงเป็น transaction
ซึ่งการเปลี่ยนแปลงจะถูกบันทึกลง log ทันที ข้อมูลเหล่านั้นจะถูกพิจารณาตรวจสอบ และ
System call สามารถจะโต้ตอบกลับไปที่ตัวผู้ใช้งานได้ เพื่อจัดสรรข้อมูลในการดาเนินการใหม่
ในขณะที่ข้อมูลใน log จะถูกกระทาซ้าที่ระบบโครงสร้างข้อมูลที่มีอยู่ เนื่องจากมีการเปลี่ยนแปลง
pointer
จะเป็นตัวชี้ให้เห็นว่าการดาเนินการอันไหนที่เสร็จสิ้นแล้วและการดาเนินการอันไหนที่ยังไม่เสร็จสิ้น
เมื่อทุก transaction ทางานเสร็จสิ้นแล้ว ก็จะถูกลบออกจาก log file ซึ่งเป็น circular buffer โดย
circular buffer จะบันทึกเป็นลาดับสุดท้ายของพื้นที่ว่าง
กระบวนการนี้จะเริ่มต้นกระทาใหม่เมื่อมีการเริ่มต้นโดยเขียนทับข้อมูลเก่า พวกเราไม่ต้องการให้
buffer เขียนทับ ข้อมูลที่ยังไม่ได้มีการบันทึก ดังนั้นแผนการจึงถูกหลีกเลี่ยง log
อาจถูกแยกต่างหากในส่วนของระบบแฟ้ม หรือแม้กระทั่งบนการแยก disk spindle
มันจะทาให้มีประสิทธิภาพมากขึ้น แต่จะมีความซับซ้อนที่มากขึ้น โดยจะมีอยู่ภายใต้
หัวอ่านและหัวเขียน แยกจากกัน
โดยวิธีนั้นจะเป็นการลดความขัดแย้งการทางานของหัวอ่านและเวลา
                  ถ้าระบบเกิดชนกัน log file จะมี transaction เป็นศูนย์หรือมากกว่า transaction
ใดๆที่ยังดาเนินการไม่เสร็จสิ้นในระบบโครงสร้างข้อมูล อย่างไรก็ตาม Operating system
จะเป็นส่วนที่รับผิดชอบในส่วนนี้ ดังนั้น transaction จึงดาเนินการเสร็จสิ้น transaction
สามารถที่จะดาเนินการจาก pointer ตลอดจนงานเสร็จสิ้น ดังนั้นโครงสร้างข้อมูล
                                                                                       378


จึงยังคงมีความสอดคล้องกันอยู่ ปัญหาเดียวที่ยังคงมีอยู่ คือ เมื่อ transaction ล้มเหลว
โดยไม่ถูกมอบหมายงานก่อนระบบล้มเหลว การเปลี่ยนแปลงใดๆ จาก transaction
มีผลทาให้ระบบโครงสร้างข้อมูลค้าง การกู้คืนทั้งหมดมีความจาเป็นมากหลังจากระบบล่ม
การตรวจสอบความสอดคล้องจึงเป็นสิ่งที่สามารถขจัดปัญหาต่างๆได้
               ข้อได้เปรียบของการปรับปรุงข้อมูลบนดิสก์ คือ
การดาเนินการปรับปรุงจะมีความรวดเร็วกว่าการประยุกต์ใช้โดยตรง บนดิสก์ โครงสร้างข้อมูล
เหตุผลในการปรับปรุงนี้จะพบได้ใน การแสดงข้อดีของการ sequential I/O ผ่าน random I/O

11.9 NFS
                   ระบบเครือข่ายไฟล์เป็นระบบสามัญ
ระบบนี้จะผสมผสานระหว่างโครงสร้างไดเรกทอรี่ และ อินเตอร์เฟสของระบบผู้ใช้งาน NFS
เป็นตัวอย่างที่ดีในการนามาใช้อย่างกว้างขวาง ทาให้มีผลดีในระบบเครือข่ายเซิร์ฟเวอร์
กับผู้ใช้งาน เราใช้ระบบนี้เป็นตัวอย่างในการดาเนินการสารวจรายละเอียดของเครือข่าย
ระบบแฟ้ม NFS เป็นทั้งการใช้งานและข้อกาหนดของระบบซอฟต์แวร์
สาหรับการเข้าถึงไฟล์ในระยะไกล ข้ามระบบ LAN (หรือแม้กระทั่ง WANs) NFS เป็นส่วนหนึ่งของ
ONC+ , ซึ่งส่วนมากจะเป็นผู้จาหน่าย UNIX และระบบปฏิบัติการ PC การดาเนินการในที่นี้จะ
เรียกว่า เป็นระบบปฏิบัติการ Solaris ซึ่งเป็นการแก้ไขเวอร์ชั่นของ ยูนิกซ์ SVR5 ทางานบน
สถานีงาน Sun และ ฮาร์ดแวร์ อื่นๆ โดยระบบจะใช้ทั้ง TCP หรือ UDP/IP ที่โปรโตคอล
   ้
(ขึนอยู่กับการเชื่อมต่อเครือข่าย) ข้อกาหนดและการดาเนินการมีความเป็นคู่ขนาน
เป็นประเภทของ NFS เมื่อใดที่มีความต้องการรายละเอียด เราก็จะอ้างอิงถึงการดาเนินการของ
SUN เมื่อใดที่เป็นประเภททั่วไปมันก็จะถูกประยุกต์ใช้กับข้อมูลจาเพาะ

11.9.1 Overview (NFS)
                 NFS มองกลุ่มของคอมพิวเตอร์ที่เชื่อมต่อกันเป็นเครือข่าย เหมือนกับกลุ่มของ
ระบบปฏิบัติงานที่เป็นอิสระต่อกัน ด้วยโครงสร้างข้อมูลที่เป็นอิสระ เป้าหมาย คือ
เพื่อให้มีระดับการใช้งานร่วมกันระหว่างระบบไฟล์เหล่านี้ (บนคาขอที่ชัดเจน) ในลักษณะโปร่งใส
การใช้งานร่วมกันจะขึ้นอยู่กับความสัมพันธ์ ของผู้ใช้งานและเซิร์ฟเวอร์
และในบางทีก็ขึ้นอยู่กับเครื่องจักร ที่ปกติเป็นทั้งผู้ใช้งาน และ เซิร์ฟเวอร์
การใช้งานร่วมกันระหว่างคู่เครื่องจักรใดๆ เพื่อให้แน่ใจว่าเครื่องจักรอิสระ
สามารถใช้งานร่วมกับโครงสร้างห่างไกลข้อมูลอิสระ ที่ส่งผลกระทบเพียงเครื่องผู้ใช้บริการ
ไม่ส่งผลกระทบถึงเครื่องอื่น
                                                                                              379


                   ดังนั้น ไดเรกทอรี่ ที่ห่างไกลจะมีรูปแบบที่เข้าไปใช้งานในลักษณะโปร่งใส
จากเครื่องลักษณะเฉพาะ จาก M1 ผู้ใช้งานเครื่องจะต้องดาเนินการที่ตั้งครั้งแรกให้สาเร็จ
การดาเนินการเกี่ยวกับการแสดง ไดเรกทอรี่ ที่ห่างไกลผ่าน ไดเรกทอรี่ ของโครงสร้างข้อมูลพื้นที่
โดยแทนที่ subtree ลงมาจากพื้นที่ ไดเรกทอรี่ ชั้นที่ได้เรกทอรี่จะเปลี่ยน ชื่อ root ที่ตั้ง
ของไดเรกทอรี่ ใหม่
ข้อมูลจาเพาะของไดเรกทอรี่ที่อยู่ห่างไกลจะเป็นข้อพิสูจน์การดาเนินการที่ตั้งที่ไม่เสร็จสิ้นอย่างโปร่
งใส ตาแหน่ง (หรือชื่อ Host) ของไดเรกทอรี่ที่อยู่ห่างไกลจะถูกจัดหา อย่างไรก็ตาม
เมื่อมีการเปิดใช้งาน ผู้ใช้บนเครื่อง M1 สามารถเข้าไปในระบบไฟล์ใน ไดเรกทอรี่ ที่อยู่ห่างไกล
โดยรูปแบบที่โปร่งใส
                   การแสดงโครงสร้างของไฟล์สามารถ พิจารณาโครงสร้างข้อมูล ได้จากรูป 11.13
จากรูปสามเหลี่ยม จะแสดงให้เห็น subtree ของไดเรกทอรี่ ที่เกี่ยวข้อง
จากรูปจะแสดงให้เห็นโครงสร้างที่เป็นอิสระจากกัน 3 โครงสร้าง โดยใช้ชื่อว่า U , S1 และ S2
จากจุดนี้จะเห็นได้ว่าแต่ละเครื่อง จะมีเพียงพื้นที่ข้อมูลที่สามารถเข้าถึงได้ ในรูปที่ 11.14 (a)
จะก่อให้เกิดที่ตั้ง S1:/usr/shared over U:/usr/local แสดงขึ้นมา
จากรูปจะแสดงให้เห็นถึงโครงสร้างข้อมูลบน U สังเกตได้ว่าหลังจากระบุที่ตั้งเสร็จสิ้น
พวกเขาสามารถเข้าถึงไฟล์ใดๆภายใน ไดเรกทอรี่ dir1 ได้ด้วยคานาหน้า /urs/local/dir1.
จากที่เดิม ไดเรกทอรี่ /usr/local บนเครื่องไม่สามารถมองเห็น




                       รูปภาพ 11.13 Three independent file systems.
                                                                                                 380


                      หัวข้อที่ได้เข้าถึง accreditation ต้องถูกต้อง โครงสร้างข้อมูลใดๆหรือไดเรกทอรี่
ภายในโครงสร้างข้อมูลใดๆ สามารถที่จะเอาวัตถุที่อยู่ห่างไกลไว้บนหัวข้อของพื้นที่ไดเรกทอรี่ได้
Diskless workstations สามารถทาให้ roots มีความเท่าเทียมกันได้
                      ที่ตั้งที่อยู่ล่างๆของสายก็เช่นกัน สามารถที่จะเข้าถึงใน NFS ทาให้
โครงสร้างข้อมูลที่อยู่ห่างไกล สามารถเข้าถึงโครงสร้างข้อมูลที่อยู่ห่างไกลได้เหมือนกัน
แต่โครงสร้างข้อมูลที่อยู่ห่างไกลจะไม่สามารถให้ผู้ใช้งานเข้ามาเปลี่ยนแปลงตัวข้อมูลอื่นๆได้
จึงแสดงให้เห็นถึงความโปร่งใส
                      ในรูป 11.14 (b)
เราจะแสดงตัวอย่างใหม่โดยใช้ตาแหน่งที่ตั้งของล่างๆของสายก่อน
โดยจากรูปภาพจะแสดงผลลัพธ์ที่ตั้งเป็น S2:/usr/dir2 ผ่าน U:/usr/local/dir1
ที่เป็นวัตถุที่อยู่ห่างไกลของ S1 ผู้ใช้สามารถเข้าถึงข้อมูลร่วมกันผ่าน ไดเรกทอรี่
ของผู้ใช้งานทางบ้าน ในการเชื่อมต่อ ผู้ใช้สามารถเข้าไปเชื่อมต่อเพื่อรับทรัพยากรในบ้านได้
เป็นสิทธิ user mobility




              รูปภาพ 11.14 Mounting in NFS.(a) Mount.(b)Cascading mounts.
                                                                                            381


                   หนึ่งในจุดมุ่งหมายของการออกแบบ NFS คือ
การทางานของสิ่งแวดล้อมเครื่องที่ต่างกัน ระบบปฏิบัติการที่ต่างกัน และ
สถาปัตยกรรมระบบเครือข่ายที่ต่างกัน NFS จะมีรายละเอียดในการทาให้ตัวกลางอิสระ
และเกื้อหนุน implementation อื่นๆ การจะเป็นอิสระโดยสมบูรณ์ได้จะต้องใช้ RPC
ที่เป็นมาตรฐาน สร้างไว้บนหัวของ implementation-independent ดังนั้นถ้าระบบประกอบด้วย
เครื่องและระบบข้อมูลที่ต่างกัน ก็จะเหมาะสมกับตัวประสานงานที่ NFS
                   ข้อมูลจาเพาะของ NFS
ที่มีชื่อเสียงระหว่างการจัดหาบริการโดยกลไกพื้นที่และบริการเข้าถึงข้อมูลที่อยู่ห่างไกลอย่างแท้จริ
ง เช่น การแยก protocol ออกเป็นเฉพาะเจาะจง สาหรับบริการ (NFS protocol) protocol พื้นที่
และ protocol สาหรับการเข้าถึงข้อมูลที่อยู่ห่างไกล ข้อมูลจาเพาะของ protocol จะถูกจัดอยู่ใน
RPCs RPCs จะสร้าง block เพื่อใช้เครื่องมือในการเข้าถึงข้อมูลที่อยู่ห่างไกล




11.9.2 The Mount Protocol
                     Mount protocol ได้สร้าง logical connection
เบื้องต้นระหว่างผู้ให้บริการและผู้ใช้บริการ ในเครื่องมือของ Sun
แต่ละเครื่องมีการจัดการทางานของ sever ไว้นอก kernel กระทาโดย การทางานของ protocol
                     ตาแหน่งการทางานประกอบด้วย ชื่อของ directory ที่อยู่ห่างไกล
ที่เป็นที่ตั้งและชื่อของเครื่อง sever ที่เก็บข้อมูล การร้องขอจะถูกระบุตาแหน่งที่ตัวการเชื่อมต่อ
RPG และส่งไปที่ sever ที่ทางานอยู่บนเครื่อง sever เซิร์ฟเวอร์จะมีการรักษา export list
(รายการส่งออก) เป็นโครงสร้างข้อมูลเฉพาะที่จะส่งไปพร้อมกับชื่อเครื่องที่ยอมให้ผ่านใช้งานที่
sever
                     การเรียกกลับของ ไดเรกทอรี่ใดๆภายในระบบไฟล์ที่ส่งออกไป
ซึ่งอยู่ห่างไกลโดยการมอบให้เครื่องเป็นตัวจัดการ ส่วนประกอบมี ไดเรกทอรี่เดียว
เมื่อผู้ให้บริการได้รับการส่งคาร้องที่สอดคล้องกับรายการที่ส่งออกไป
ผู้ให้บริการก็จะส่งตัวจัดการข้อมูลไปที่ผู้ใช้บริการ
ซึ่งทาหน้าที่เหมือนกุญแจที่สนับสนุนในการเข้าถึงข้อมูลภายในระบบข้อมูล
ตัวจัดการข้อมูลประกอบด้วยข้อมูลทั้งหมดที่ผู้ให้บริการ ต้องการแยกแยะข้อมูลบุคคลที่เก็บข้อมูล
                                                                                            382


ในระบบ UNIX ตัวจัดการข้อมูลประกอบด้วย ชื่อของระบบข้อมูล และเลขระบุไฟล์
ที่จะระบุตาแหน่งที่แน่นอนของไดเรกทอรี่ ภายในระบบข้อมูลที่ส่งออก
                 ผู้ให้บริการจะรักษารายการของเครื่องผู้ใช้บริการ และรักษาที่ตั้งของไดเรกทอรี่
ของผู้ใช้บริการ รายการส่วนใหญ่จะถูกใช้ในการจัดการความต้องการ เช่น
ในการบอกผู้ใช้ทั้งหมดว่าผู้ให้บริการจะเกิดการขัดข้อง มีเพียงวิธีในการเพิ่มหรือลด
ข้อมูลในรายการจึงสามารถบอกถึงสภาพของผู้ให้บริการโดย mount protocol

11.9.3 The NFS Protocol
                   The NFS Protocol เป็นตัวจัดหากลุ่มของ RPCs
สาหรับระบบปฏิบัติการข้อมูลที่ห่างไกล ขั้นตอนการดาเนินงาน มีดังนี้
           - ค้นหาไฟล์ภายใน ไดเรกทอรี่
           - อ่านกลุ่มของข้อมูล ไดเรกทอรี่
           - จัดการเชื่อมต่อ ไดเรกทอรี่
           - เข้าถึงคุณสมบัติของข้อมูล
           - อ่านและเขียนข้อมูล
                   ขั้นตอนนี้จะเกิดขึ้นหลังจากตัวจัดการข้อมูลสาหรับ ไดเรกทอรี่
ที่อยู่ห่างไกลถูกสร้างขึ้น การละเลยการดาเนินการของ open () และ close () เป็นเจตนา
จุดเด่นของ NFS sever
 คือ การไม่ผูกมัด (stateless ) sever จะไม่รักษา
ข้อมูลที่เกี่ยวกับผู้ใช้บริการจากการเข้าเพียงครั้งเดียว ไม่เหมือนกับการเปิดไฟล์ของ UNIX
หรือการออกจากโครงสร้างไฟล์ของ UNIX
เพราะฉะนั้นทุกคาร้องขอจะมีการจัดหาข้อเท็จจริงทั้งหมด ประกอบด้วยการระบุข้อมูลพิเศษ
และจัดสรรการดาเนินการข้อมูล ในที่สุดแล้วการออกแบบจะมีความมั่นคง
ไม่ใช่เฉพาะมาตรการที่ต้องการนามากู้ sever หลังจากเกิดการชนของระบบ การดาเนินการข้อมูล
จะต้องเป็นการดาเนินการทางคณิตศาสตร์ ทุกคาร้อง NFS จะต้องมีตัวเลขรหัส ตัวเลขรหัสที่
sever จะยอมรับในการยุติระบบ ถ้าคาร้องมีการกระทาซ้าหรือมีส่วนที่หายไป
ต้องมอบความหมายให้ดิสก์ของ server ก่อน ผลลัพธ์จะส่งค่ากลับไปที่ผู้ใช้บริการ นั้นจะทาให้
client สามารถเก็บและบันทึกลง block แต่เมื่อ block เต็ม มันก็จะถูกส่งมาที่ server
ก็จะมีการติดต่อกับดิสก์ของ server และ server ก็จะบันทึกข้อมูล NFS ทุกข้อมูลในขณะเดียวกัน
ดังนั้นเวลา server ล่มและถูกกู้คืน ก็จะทาให้มองไม่เห็น client ทุก block ใน server
จะถูกจัดการสาหรับ client จะไม่ได้รับความเสียหายใดๆ
                                                                                           383


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




                                                   NFS Protocol
                  การที่ NFS มีขั้นตอนการบันทึกแบบเดียว
เป็นการรับประกันได้น้อยมากและก็ไม่ได้มีการบันทึกข้อมูลที่คล้ายกันนี้ไว้ที่อื่นเลย อย่างไรก็ตาม
NFS protocol ก็ไม่ได้มีการจัดหากลไกควบคุมในเวลาเดียวกัน ในระบบ write ()
จะเกิดขัดข้องจึงต้องใช้ RPC หลายตัวในการบันทึก เพราะว่า แต่ละ NFS
ในการบันทึกหรืออ่านจะประกอบด้วย ข้อมูล 8 kb และหีบห่อของ UDP มีขอบเขตที่ 1500 bytes
ทาให้ผลคือ ผู้ใช้งาน 2 ที่มักมีการบันทึกข้อมูลที่อยู่ห่างไกลเหมือนกัน
พวกเขาจะได้รับข้อมูลที่ปนเปกันไป ที่เป็นอย่างนั้น เพราะว่า การล็อคการควบคุมโดยธรรมชาติ
การบริการนอก NFS จะทาให้เกิดการ ล็อค
ผู้ใช้งานจะถูกแจ้งให้ทราบเพื่อประสานงานเข้าไปในข้อมูลที่ใช้ร่วมกัน
โดยจะใช้วิธีการนอกขอบเขต ของ NFS
                                                                                          384


                    NFS จะถูกผสมผสานกับระบบปฏิบัติงานแบบ VFS
จากรูปประกอบของโครงสร้าง จะเข้าใจว่า
การดาเนินการในการเปิดตัวจัดการดูแลข้อมูลที่อยู่ห่างไกลทาอย่างไร
(ตามตัวอย่างรูปภาพประกอบ 11.15) ผู้ใช้งานจะเริ่มต้น
การดาเนินการด้านการเรียกใช้ระบบแบบปกติ ระบบปฏิบัติการจะแบ่งเป็นชั้น นี้จะเรียกว่า
การดาเนินงานแบบ VFS บน vnode ที่ลงตัว ชั้นของ VFS จะระบุถึงข้อมูลหนึ่งที่อยู่ห่างไกล
และก่อให้เกิดกระบวนการ NFS ที่ลงตัว RPC จะเรียกการสร้างจากชั้นของหินบริการ NFS
ที่ผู้ให้บริการที่อยู่ห่างไกล จะมีการเรียก ชั้นของ VFS ที่อยู่ในระบบที่ห่างไกล
ที่จะค้นหาพื้นที่และก่อให้เกิดความลงตัวของระบบปฏิบัติการข้อมูล เป็นเส้นทางที่ย้อน คือ
ผลลัพธ์กลับไป ผลประโยชน์ของโครงสร้างนี้จะทาได้ ผู้ใช้บริการและผู้ให้บริการ จะต้องเหมือนกัน
คือ เครื่องของผู้ใช้บริการ และ server จะต้องมีความคล้ายกัน การให้บริการแต่ละ server
เป็นกระทาโดย เส้นงานของ Kernel

11.9.4 Path-Name Translation
                    การเปลี่ยน Path-name ใน NFS เป็นเรื่องเกี่ยวกับการวิเคราะห์ Path-name เช่น
/usr/local/dir1/file.txt เข้าไปใน ไดเรกทอรี่ที่ต่างกัน ส่วนประกอบ (1)usr (2)local (3)dir1
การเปลี่ยน Path-name ทาโดยแยกเส้นทางเข้าไปใน ส่วนที่จะประกอบขอชื่อและรหัสไดเรกทอรี่
ตาแหน่งที่ตั้งเป็นจุดตัด ทุกส่วนประกอบจะค้นหาสาเหตุที่ RPC แตกต่างกัน ที่เซิร์ฟเวอร์ Path-
name-traversal มีราคาสูงแต่เป็นที่ต้องการของแผนงาน จนโครงการของแต่งละ logical name
space ของผู้ใช้บริการเป็นหนึ่งเดียวกับตัวควบคุม โดยที่ตั้งของผู้ใช้บริการจะเป็นตัวแสดง
มันต้องการประสิทธิภาพอย่างมากในการควบคุม ชื่อทางเดิน server
และได้รับรหัสของตาแหน่งซึ่งเป็นการเผชิญหน้ากัน ที่จุดใดๆ อย่างไรก็ตาม
   ่ ้ั
ทีนนสามารถเป็นตาแหน่งที่ต้ังอีกที่ สาหรับผู้ใช้บริการโดยเฉพาะของ server ไร้สัญชาติ
(stateless) ไม่คาดคิดมาก่อน
                    ดังนั้นจึงต้องค้นหาโดยเร็ว ค้นหาชื่อ ไดเรกทอรี่ ที่เก็บตัวสนับสนุน
ผู้ใช้บริการที่จัดเตรียมรหัส สาหรับชื่อ ไดเรกทอรี่ที่อยู่ไกล การจัดเก็บจะถูกทาให้เร็วขึ้น
เมื่ออ้างถึงข้อมูลด้วยชื่อเส้นทางเบื้องต้น การจัดเก็บจะถูกละทิ้ง เมื่อคุณลักษณะถูกส่งกลับจาก
server เมื่อคุณลักษณะไม่เข้ากับรหัส
                    การตอบกลับ นั้นขึ้นกับตาแหน่งของระบบข้อมูลที่อยู่ห่างไกลบนหัวอื่นๆ
แล้วตาแหน่งของระบบข้อมูลที่อยู่ห่างไกล ถูกอนุญาตในบางโครงการของ NFS อย่างไรก็ตาม
server ไม่สามารถเป็นเหมือนสื่อกลางระหว่างผู้ใช้บริการกับ server อื่นได้
                                                                                               385


แทนที่ผู้ใช้บริการจะต้องสร้างตัวควบคุม ผู้ใช้บริการกับ server ในการติดต่อกับ server ตัวที่ 2
โดยตรงกับจุดประสงค์ของ ไดเรกทอรี่ เมื่อ ไดเรกทอรี่ มีตาแหน่งสูงกว่า server
     ่
หนึงในสายตาแหน่งในการเปลี่ยน Path-name อย่างไรก็ตาม
การค้นหาแต่ละส่วนประกอบจะถูกกระทาระหว่างผู้ใช้เดิมและ server บางตัว เพราะฉะนั้น
เมื่อผู้ใช้บริการได้ค้นหา ได้เรกทอรี่ บน server ที่แสดงระบบข้อมูล
ผู้ใช้บริการจะเห็นไดเรกทอรี่ที่อยู่ต่ากว่าถูกแทนที่ด้วยตาแหน่งของไดเรกทอรี่

11.9.5 Remote Operation
                   กับการยกเว้นสาหรับการเปิดและการปิดข้อมูล ส่วนใหญ่เป็นการติดต่อแบบ 1
ต่อ 1 ระหว่าง ตัวติดต่อระหว่างระบบปฏิบัติงานกับโปรแกรมของผู้ใช้ในระบบ UNIX
สาหรับดาเนินการข้อมูล และ NFS protocol RPCs ดังนั้น
การดาเนินการข้อมูลที่อยู่ห่างไกลสามารถที่จะเปลี่ยน เมื่อสอดคล้องกับ RPC แนวความคิด NFS
ยึดมั่นที่จะใช้การให้บริการกับวัตถุที่อยู่ห่างไกล แต่ในการดาเนินการเทคนิคในการจัดเก็บ
ถูกนามาใช้ เพราะ ประสิทธิภาพ การจัดการที่ไม่สอดคล้องระหว่างการดาเนินการวัตถุห่างไกล
และ RPC แทนที่ block ข้อมูลและคุณสมบัติของข้อมูลจะถูกนามาโดย RPC
และถูกจัดเก็บในพื้นที่ ในอนาคตการดาเนินการกับวัตถุที่อยู่ห่างไกลจะใช้การจัดเก็บข้อมูล
ที่สอดคล้องกับข้อจากัด
                   มีการจัดเก็บ 2 แบบ คือจัดเก็บแบบ file-attribute และ จัดเก็บแบบ file-block
เมื่อข้อมูลถูกเปิด kernel จะทาการตรวจสอบกับ server ที่อยู่ไกลออกไป
โดยกาหนดทั้งการนามาซึ่งคุณสมบัติในการจัดเก็บ การจัดเก็บ file-blocks จะถูกใช้อย่างเดียว
ถ้าความสอดคล้องในการจัดเก็บคุณลักษณะจะเพิ่มขึ้นตามวัย การจัดเก็บตามคุณลักษณะ
การจัดเก็บคุณลักษณะที่เป็นค่าเริ่มต้น ยกเลิกหลังจาก 60 วินาที ทั้งอ่านล่วงหน้าและระหว่าง
server และ ผู้ใช้บริการ ผู้ใช้บริการที่ไม่เป็นอิสระ จะล่าช้า เพราะ จะบันทึกข้อมูลลง block
ได้จนกว่า server จะยืนยันข้อมูลที่ได้รับการบันทึกไปยังดิสก์
ในทางตรงกันข้ามแม้ว่าข้อมูลที่เปิดจะเห็นพ้องกันใน วิธีการความขัดแย้ง ดังนั้น UNIX
secmantic ในหมวด 10.5.3.1 จึงไม่ได้ถูกรักษาไว้
                   การปรับระบบเพื่อประสิทธิภาพทาให้ยากที่จะอธิบายลักษณะของความคงเส้นค
งวาของ NFS ข้อมูลใหม่ที่สร้างขึ้นในเครื่องอาจไม่สามารถมองเห็นจะที่ได้ก็ตามใน 30 วินาที
                   นอกจากนี้การเขียนไปยังข้อมูลที่เว็บไซต์หนึ่งอาจจะเหมือนหรืออาจจะไม่เห็นเว็บ
ไซต์ อื่นๆที่มีแฟ้มที่เปิดอ่าน
                                                                                     386


                  แฟ้มเปิดใหม่จะสังเกตเฉพาะการเปลี่ยนแปลงที่ haye แล้วส่งไปยังเซิร์ฟเวอร์
เช่นนั้น NFS จึงไม่จัดหารูปแบบมาชิงดีชิงเด่นกับ UNIX secmantic
                 ทั้งที่มีข้อเสีย แต่สามารถแสดงประสิทธิภาพของกลไกได้มาก โดยใช้ระบบ multi-
vender-distributed ในการดาเนินงาน

11.10 Summary (สรุป)
          ระบบไฟล์จะเปลี่ยนขนาดถาวรบนหน่วยความจารอง
ซึ่งก็คือการออกแบบเพื่อที่จะควบคุมผลรวมของข้อมูลที่ถาวร
หน่วยความจารองโดยปกติส่วนมากจะคือ disk disk
ทางกายภาพอาจจะแบ่งออกเป็นส่วนๆเพื่อมี่จะควบคุมข้อมูลและอนุญาตได้หลายๆอย่าง
ระบบไฟล์ที่อยู่บนแกนหนุนเดี่ยว ซึ่งระบบไฟล์นี้จะ mounted
ไปถึงสถาปัตยกรรมระบบไฟล์แบบตรรกะเพื่อประสิทธิภาพในการใช้งาน
ระบบไฟล์ส่วนมากจะแบ่งออกเป็นชั้นๆหรือว่าอาจจะยากเป็นโครงสร้างที่ชั้นต่ากว่าจะจัดการคุณ
สมบัติทางกายภาพของหน่วยความจาที่ขั้นที่สูงกว่าจะใช้เครื่องหมายเป็นชื่อไฟล์และคุณสมบัติทา
งตรรกะของไฟล์ map เป็นชั้นที่อยู่ตรงกลางระหว่างชั้นของไฟล์แบบตรรกะและไฟล์แบบกายภาพ
          ชนิดของระบบไฟล์ไดๆสามารถที่จะมีโครงสร้างและวิธีการที่แตกต่างกัน ที่ขั้น VFS
อนุญาตให้ชั้นที่อยู่สูงกว่าเป็นคนแจกจ่ายสาหรับแต่ละชนิดระบบไฟล์ทีเหมือนกัน
แม้แต่ระบบไฟล์ที่มีการสั่งการแบบระยะไกลสามารถที่จะรวมกันของระบบโครงสร้าง directory
และ รวมไปถึงการกระทาบนมาตรฐานของ system call โดยทาง VFS
          ไฟล์ที่แตกต่างกันสามารถแบ่งพื้นที่บน disk ได้สามแบบคือ การแบ่งแบบ contiguous
,linked หรือ indexed โดยแบบ contiguous นั้นสามารถแบ่งจากภายนอก
การเข้าถึงจริงๆนั้นไม่มีประสิทธิภาพอย่างมากโดยวิธีการแบบ linked การแบ่งแบบ indexed
นั้นอาจจะต้องการสิ่งที่อยู่ส่วนบนของหัวสา index block
วิธีการนี้สามารถที่จะเหมาะสมได้หลายแบบ แบบ contiguous
สามารถเพิ่มพื้นที่ให้ใหญ่ขึ้นตามสถานการณ์และลดลงจากการแบ่งภายนอก วิธีแบบ indexed
สามารถทาให้เป็นกลุ่มได้หลายๆ block ในช่วงเวลาหนึ่ง และการลดจานวนของ indexed
ทั้งหมดที่ต้องการ indexed ที่เป็นกลุ่มขนาดใหญ่ที่มีขอบเขตคล้ายๆกับวิธีแบบ contiguous
          วิธีการแบ่งพื้นที่ว่างเหมือนกับการกาหนดประสิทธิภาพของการใช้พื้นที่ disk
สมรรถภาพของระบบไฟล์และความน่าเชื่อถือของหน่วยความจารองวิธีนี้จะใช้ bit vector และ
linked lists ความเหมาะสมที่ประกอบด้วยวิธีการจัดกลุ่ม การนับ และ FAT ซึ่งพื้นที่ของ linked
lists จะอยู่ในส่วนหนึ่งของพื้นที่ contiguous
                                                                                     387


         การจัดการ directory จะต้องพิจารณาถึงประสิทธิภาพ สมรรถภาพ และ ความน่าเชื่อถือ
Hash table โดยปกติตะใช้วิธีซึ่งเร็ว และมีประสิทธิภาพโชคไม่ดีที่ ผลเสียของ table หรือ ระบบ
crash สามารถแสดงผลที่ไม่สอดคล้องระหว่างข้อมูลของ directory และ ปริมาณ disk
Consistency Checker สามารถจะซ้อมแซมความเสียหายนี้
เครื่องมือของระบบปฏิบัติการจะทาการสารองข้อมูลลงบนเทปและกู้คืนมาได้ในกรณีที่ disk
เสียหายอุปกรณ์พัง ระบบปฏิบัติการมี bug หรือเกิดจากความผิดพลาดของผู้ใช้
         ระบบเครือข่ายไฟล์ เช่น NFS จะใช้วิธีการของ client-server
เพื่ออนุญาตให้ผู้ใช้เข้าถึงไฟล์และ directory จาก
โดยใช้เครื่องรีโมทถ้าพวกเขาอยู่ในระบบไฟล์แบบพื้นที่ system calls บนเครื่อง client
จะทาการแปลงข้อมูลจากโปรโตคอลของเครือข่าย
และแปลงอีกครั้งไปสู่ตัวดาเนินการระบบไฟล์บนเครื่อง server เครื่องข่ายและการเข้าถึงหลายๆ
client จะสร้างสิ่งต่อต้านของความสอดคล้องของข้อมูลและสมรรถภาพ
         เนื่องจากหน้าที่พื้นฐานซึ่งระบบไฟล์จะทาในระบบปฏิบัติการ
นั้นต้องมีความสมรรถภาพและความน่าเชื่อถือเป็นสิ่งที่สาคัญ เทคนิคเช่น โครงสร้าง log และ การ
caching จะช่วยเพิ่มสมรรถภาพ ในขณะที่โครงสร้าง log และ RAID จะเพิ่มความน่าเชื่อถือ
ระบบไฟล์แบบ WAFL เป็นตัวอย่างของความเหมาะสมของสมรรถภาพโดยเข้ากับ I/O load
โดยเฉพาะ

								
To top