File System implementation

Download Report

Transcript File System implementation

บทที่ 7
การจัดการข้ อมูล
Page 1
บทนา
ข้อมูล เป็ นสิ่ งจำเป็ นสำหรับระบบงำนคอมพิวเตอร์ ที่จะ
ช่วยให้งำนนั้น ๆ สำเร็ จลุล่วงไปด้วยดี งำนส่ วนมำกจำเป็ นต้องมี
กำรเก็บรักษำข้อมูลเอำไว้ใช้ได้ต่อไป กำรเก็บรักษำข้อมูลให้เป็ น
ระบบจะช่วยให้กำรค้นหำข้อมูลที่เก็บไว้สะดวกรวดเร็ วยิง่ ขึ้น
ระบบปฏิบตั ิกำรจะต้องมีวธิ ีในกำรจัดเก็บข้อมูลให้เกิดควำม
คล่องตัวในกำรใช้งำน เป็ นระบบเรี ยบร้อย และผูใ้ ช้สำมำรถ
จัดแบ่งประเภทของข้อมูลได้โดยสะดวก
Page 2
บทนา
แอพพลิเคชัน่ ของคอมพิวเตอร์ท้ งั หมดจะเป็ นต้องมีกำรเก็บและนำ
ข้อมูลไปใช้งำน ในขณะที่สงั่ รันโปรแกรมข้อมูลและโค้ดของโปรแกรมจะถูก
โหลดเข้ำไปในหน่วยควำมจำหลักเพื่อกำรทำงำนที่รวดเร็ ว แต่หน่วยควำมจำ
หลักจะมีขอ้ จำกัดตรงที่มีขนำดเล็ก และที่สำคัญต้องมีไฟหล่อเลี้ยงจึงจะ
สำมำรถเก็บข้อมูลอยูไ่ ด้ ดังนั้นจึงมีกำรคิดหำวิธีที่จะเก็บข้อมูลหรื อโปรแกรม
ไว้ให้คงอยูแ่ ม้จะปิ ดเครื่ องคอมพิวเตอร์ไปแล้ว สื่ อที่จะใช้ในกำรเก็บข้อมูล
เหล่ำนี้เช่น ดิสก์เก็ต ฮำร์ดดิสก์ หรื อซีดีรอม ซึ่งได้ศึกษำถึงกำรที่
ระบบปฏิบตั ิกำร จะจัดกำรกับสื่ ออุปกรณ์เหล่ำนี้มำแล้วในบทที่ 6 ลองมำ
พิจำรณำว่ำสิ่ งที่เรำจัดเก็บไว้ในสื่ อสำรองต่ำง ๆ นี้เรำจะเรี ยกมันว่ำ “ไฟล์” (file)
และถ้ำเรำไม่มีกำรจัดระเบียบในกำรเก็บไฟล์แล้ว ก็ยอ่ มเป็ นกำรยำกที่เรำจะ
ค้นหำข้อมูลที่เรำต้องกำรได้อย่ำงรวดเร็ ว
Page 3
แฟ้ มข้ อมูล (File)
วิธีกำรเก็บข้อมูลที่ใช้กนั ใน OS ทุกตัว คือ จัดเก็บข้อมูลเป็ น
แฟ้ มข้อมูลหรื อไฟล์ (File) กำรอ้ำงถึงไฟล์หรื อข้อมูลต่ำง ๆ ภำยใน
ไฟล์ของโปรแกรมจะไม่มีควำมเกี่ยวข้องกับแอดเดรสของโปรแกรม
ใด ๆ ทั้งสิ้ น OS จะมีคำสัง่ พิเศษที่เรี ยกว่ำ system call ไว้ให้
โปรแกรมต่ำง ๆ เรี ยกใช้ เพื่อให้สำมำรถจัดกำรงำนเกี่ยวกับไฟล์ได้
เช่น สร้ำงไฟล์ ลบไฟล์ อ่ำนหรื อเขียนไฟล์ เป็ นต้น
Page 4
แฟ้ มข้ อมูล (File)
การตั้งชื่อไฟล์
จุดประสงค์ในกำรออกแบบระบบปฏิบตั ิกำรอย่ำงหนึ่งก็คือ
ต้องกำรที่จะให้ผใู้ ช้เป็ นอิสระจำกอุปกรณ์ใด ๆ (device independent)
ดังนั้น ในกำรแอกเซสไฟล์ขอ้ มูลใด ๆ จะต้องมีรูปแบบเดียวกัน
นอกจำกนั้นวิธีกำรในกำรแอกเซสไฟล์ขอ้ มูลใด ๆ ก็ไม่จำเป็ นต้อง
กำหนดรำยละเอียดหรื อแอดเดรสที่เก็บให้ยงุ่ ยำกวุน่ วำย เพียงแค่ระบุ
ชื่อและนำมสกุลของไฟล์ให้ถูกต้องก็เพียงพอแล้ว
Page 5
แฟ้ มข้ อมูล (File)
การตั้งชื่อไฟล์
กำรกำหนดชื่อไฟล์ในระบบปฏิบตั ิกำรแบบต่ำง ๆ ส่ วนใหญ่จะมี
ข้อกำหนดที่ใกล้เคียงกัน แต่กอ็ ำจจะมีขอ้ ปลีกย่อยบำงอย่ำงที่เฉพำะเจำะจงลง
ไป เช่น บางตัวจะกาหนดให้ การตั้งชื่อต้ องขึน้ ต้ นด้ วยตัวอักษรชื่อยาวไม่ เกิน 8
ตัวอักษร หรือตั้งชื่อได้ อย่ างอิสระ บำงระบบการตั้งชื่อด้ วยตัวอักษรเดียวกันแต่
เป็ นตัวพิมพ์เล็กหรือพิมพ์ใหญ่ ก็จะถือว่ำเป็ นคนละไฟล์ เช่ น name กับ
NAME จะถือว่ าเป็ นคนละไฟล์ ในขณะที่บำงตัวก็ถือว่ำเป็ นไฟล์เดียวกัน ใน
ระบบปฏิบตั ิกำรของตระกูลไมโครซอฟต์คือ Windows95, Windows98,
Windows2000 และ Windows NT ยังคงใช้ระบบไฟล์แบบเดียวกับ MS-DOS
เพียงแต่ยดื หยุน่ ให้สำมำรถตั้งชื่อไฟล์ได้ยำวขึ้นกว่ำเดิม
Page 6
แฟ้ มข้ อมูล (File)
การตั้งชื่อไฟล์
ระบบปฏิบัตกิ ารส่ วนใหญ่ แล้ วชื่อไฟล์ จะประกอบไปด้ วย 2 ส่ วน
ด้ วยกัน คือ ส่ วนที่เป็ นชื่อหลัก และส่ วนขยาย (file extension) ซึ่งจะถูกคัน่
ด้วยจุด (period) ใน MS-DOS ส่ วนที่เป็ นชื่อหลักจะประกอบด้วยตัวอักษร
ไม่เกิน 8 ตัวแล้วตำมด้วยส่ วนขยำยไม่เกิน 3 ตัว แต่ใน UNIX อำจจะมี
ส่ วนขยำยได้มำกกว่ำ 1 ส่ วนก็ได้ เช่น prog.c.Z เป็ นต้น
Page 7
โครงสร้ างไฟล์
โครงสร้ างหรือวิธีการจัดเก็บไฟล์ ทใี่ ช้ กนั อยู่ทวั่ ไป มี 3 วิธี คือ
1. เก็บเป็ นไบต์ เรียงต่ อกันไป (พบใน UNIX และ Windows ) วิธีน้ ีจะไม่มีโครงสร้ำงใน
กำรจัดเก็บ ไฟล์ที่สร้ำงใหม่จะถูกนำมำเรี ยงต่อกันไปเรื่ อย ๆ จนเต็มเนื้อที่ โดย OS เองแทบจะไม่
ต้องทำหน้ำที่อะไรเลย (ดังรู ป 7.1 a)
2. เก็บเป็ นเรคคอร์ ด ซึ่งมีขนาดคงที่ แต่ละไฟล์จะถูกจัดเก็บอยูใ่ นรู ปของเรคคอร์ดที่
จัดเรี ยงกันไปตำมลำดับจนถึงเรคคอร์ ดสุ ดท้ำย กำรอ่ำนและเขียนจะทำไปทีละเรคคอร์ด ใน OS
บำงระบบอำจจะกำหนดให้แต่ละเรคคอร์ ดมีขนำดเท่ำกับ 80 อักษร ซึ่ งเท่ำกับ 1 บรรทัด (พบใน
CP/M) (ดังรู ป 7.1 b)
3. เก็บเป็ นแบบต้ นไม้ หรือ tree ของบล็อกในดิสก์ แต่ละบล็อกจะประกอบไปด้วย
เรคคอร์ด (n records) แต่ละ record จะมีคีย ์ (key) เอำไว้ช่วยในกำรค้นหำเรคคอร์ ด เรคคอร์ด
สำมำรถเพิ่มหรื อลบออกที่ใดก็ได้ ถ้ำมี record ถูกเพิ่มเข้ำไปในบล็อกที่เต็มแล้ว บล็อกนั้นจะ
แยกออกเป็ น 2 บล็อกใหม่ในทรี และจัดเรี ยงตำมลำดับอักษร วิธีน้ ีใช้บนเครื่ องระดับ mainframe
หลำย ๆ เครื่ อง และเรี ยกว่ำเป็ นกำรจัดไฟล์แบบ ISAM (Indexed Sequential Access Method)
Page 8
โครงสร้ างไฟล์
Page 9
โครงสร้ างไฟล์
จุดประสงค์ หนึ่งของการออกแบบ OS คือ กำรทำให้ผใู้ ช้เป็ นอิสระจำกอุปกรณ์
(Device Independent) ดังนั้น กำรเข้ำถึงไฟล์จะต้องเหมือนกัน หรื อมีรูปแบบเดียวกันหมด
ไม่วำ่ จะเป็ นไฟล์หรื ออุปกรณ์ใด ๆ เช่น โปรแกรมที่อ่ำนข้อมูลจำกไฟล์อินพุตเข้ำมำ
เรี ยงลำดับข้อมูล แล้วเขียนผลลัพธ์กลับออกไปที่ไฟล์เอำต์พตุ ควรใช้ได้ท้ งั กับไฟล์บน
ฟลอปปี้ ดิสก์, ไฟล์บนฮำร์ ดดิสก์ และควรเขียนเอำต์พตุ ออกทำงไฟล์ จอภำพ หรื อ
เครื่ องพิมพ์ได้โดยไม่ตอ้ งเขียนโปรแกรมให้ตรวจสอบเพิ่มเติมอีก สิ่ งเหล่ำนี้ควรเป็ นหน้ำที่
ของ OS ในกำรตรวจสอบว่ำเอำต์พตุ นั้นเป็ นอะไร และเลือกวิธีกำรจัดกำรที่เหมำะสมกับ
เอำต์พตุ นั้นเอง
โดยทัว่ ไปแล้วเรำจะแบ่งไฟล์ออกเป็ นชนิ ดต่ำง ๆ ขึ้นอยูก่ บั กำรใช้งำนของไฟล์
นั้น ๆ โดยส่ วนมำกเรำจะแยกแยะได้จำก นำมสกุลหรื อส่ วนขยำย (file extension) ที่
แตกต่ำงกัน เช่น filename.pas, filename.asm, filename.dat, filename.doc, filename.txt,
filename.xls เป็ นต้น
Page 10
ไดเร็กทอรี่ (Directory หรือ Folder)
ความหมาย
คือสำรบัญที่เก็บรวบรวมรำยชื่อของไฟล์และข้อมูลบำงอย่ำงที่สำคัญของไฟล์
เอำไว้ โครงสร้ำงของไดเร็ กทอรี่ ประกอบด้วยหน่วยย่อยหลำย ๆ หน่วย ใน 1 หน่วยจะเก็บ
ข้อมูลของไฟล์ 1 ไฟล์ เช่น ชื่อ ส่ วนขยำย ชนิด ขนำด และอื่น ๆ ดังรู ป 7.2
1. ระบบไดเร็กทอรี่เดีย่ ว (Single-Level Directory Systems)
วิธีทำไดเร็ กทอรี่ ให้กบั ระบบที่ง่ำยที่สุดคือ ในระบบจะมีไดเร็ กทอรี่ เดียว หรื อ
เรี ยกว่ำ Single Directory หรื อ 1 level directory วิธีน้ ีทุกไฟล์จะจัดเก็บอยูใ่ นระดับเดียวกัน
เนื่องจำกกำรจัดเก็บในลักษณะนี้ทำให้ไม่สะดวกสำหรับผูใ้ ช้หลำย ๆ คน เพรำะแต่ละคนก็
ต้องกำรจะจัดเก็บหลำย ๆ ไฟล์ ไฟล์หลำกหลำยชนิดต้องปะปนกันอยูท่ ำให้ไม่สะดวกใน
กำรค้นหำ นอกจำกนี้ในกรณี ที่มีกำรสร้ำงไฟล์ให้มีชื่อเดียวกันกับที่เคยมีอยูก่ ่อนหน้ำอำจจะ
ทำให้ไฟล์เก่ำถูกเขียนทับลงไปโดยไม่ต้ งั ใจ
Page 11
ไดเร็กทอรี่ (Directory หรือ Folder)
2. ระบบไดเร็กทอรี่สองระดับ (Two-Level Directory Systems)
ต่อมำเพื่อแก้ปัญหำนี้ นักออกแบบ OS จึงพัฒนำระบบไดเร็ กทอรี่ ใหม่
โดยให้ผใู ้ ช้แต่ละคนสำมำรถสร้ำงไดเร็ กทอรี่ ยอ่ ย (Sub-directory) ได้ 1 ไดเร็ ก
ทอรี่ ซึ่งอยูภ่ ำยใต้ไดเร็ กทอรี่ หลักเดียวกันคือ ไดเร็ กทอรี่ รำก (root directory)
หรื อเรี ยกสั้น ๆ ว่ำ root ซึ่งจะมีไดเร็ กทอรี่ ยอ่ ยได้หลำยไดเร็ กทอรี่ ภำยใน
subdirectory ก็จะมีไฟล์ได้หลำยไฟล์ ผูใ้ ช้สำมำรถตั้งชื่อไฟล์และชนิดให้ตรงกับ
ไฟล์ผใู ้ ช้คนอื่น ได้ ถ้ำไฟล์ท้ งั สองอยูต่ ่ำงไดเร็ กทอรี่ กนั เรำเรี ยกไดเร็ กทอรี่ แบบ
นี้วำ่ ระบบไดเร็ กทอรี่ 2 ระดับ (2 level directory) แต่กย็ งั มีขอ้ จำกัดตรงที่วำ่
ผูใ้ ช้สำมำรถสร้ำงไดเร็ กทอรี่ ของตนเองได้เพียงไดเร็ กทอรี่ เดียว
Page 12
ไดเร็กทอรี่ (Directory หรือ Folder)
3. ระบบไดเร็กทอรี่สองระดับ (Two-Level Directory Systems)
OS ในรุ่ นถัดมำจึงพัฒนำให้ผใู ้ ช้สำมำรถสร้ำงไดเร็ กทอรี่ ของตนเองได้
ไม่จำกัด ทำให้ระบบไดเร็ กทอรี่ ในปัจจุบนั มีลกั ษณะโครงสร้ำงเหมือนต้นไม้
(Tree Structure) เรี ยกว่ำเป็ น ระบบไดเร็ กทอรี่ หลำยระดับ
4. ชื่อพาธ (Path name)
กำรอ้ำงถึงไฟล์แต่ละไฟล์ในไดเร็ กทอรี่ (ไดเร็ กทอรี่ กถ็ ือเป็ นไฟล์ชนิด
หนึ่งด้วยเหมือนกัน) จำเป็ นจะต้องบอกที่อยูห่ รื อ path ของไฟล์น้ นั ๆ เพื่อให้
ระบบรู ้วำ่ กำลังอ้ำงถึงไฟล์ใดในไดเร็ กทอรี่ กำรอ้ำงถึงไฟล์มี 2 วิธีคือ กำรอ้ำงชื่อ
ด้วยพำธสัมบูรณ์ (Absolute path name) และกำรอ้ำงชื่อด้วยพำธสัมพัทธ์
(Relative path name)
Page 13
ไดเร็กทอรี่ (Directory หรือ Folder)
กำรอ้ำงถึงโดยพำธสัมบูรณ์น้ นั เป็ นกำรอ้ำงถึงไฟล์โดยเริ่ มจำก
รู ทเสมอ ตำมด้วยชื่อไดเร็ กทอรี่ ยอ่ ยต่ำง ๆ ไล่ลงมำตำมลำดับชั้นของได
เร็ กทอรี่ เช่น ถ้ำพิจำรณำจำกรู ป 7.2 กำรอ้ำงถึงไฟล์ dict.doc ทำได้
โดย
Page 14
ไดเร็กทอรี่ (Directory หรือ Folder)
Page 15
ไดเร็กทอรี่ (Directory หรือ Folder)
ส่ วนกำรอ้ำงถึงไฟล์โดยใช้ชื่อพำธสัมพัทธ์น้ นั จะต้องทำควำมเข้ำใจเกี่ยวกับไดเร็กทอรี่ ปัจจุบนั
(working directory หรื อ current directory) ผูใ้ ช้สำมำรถย้ำยตำแหน่งกำรทำงำนจำกไดเร็ กทอรี่ หนึ่งไปยัง
อีกไดเร็กทอรี่ หนึ่งได้ ในขณะที่ผใู้ ช้ทำงำนอยูบ่ นไดเร็ กทอรี่ ใดเรำจะเรี ยกไดเร็ กทอรี่ น้ นั ว่ำ ไดเร็กทอรี่
ปัจจุบนั ชื่อพำธสัมพัทธ์จะเริ่ มต้นจำกไดเร็กทอรี่ ปัจจุบนั ไล่ไปตำมชั้นของไดเร็กทอรี่ ปัจจุบนั คือ usr ถ้ำ
ต้องกำรอ้ำงถึงไฟล์ dict.doc จะต้องอ้ำงด้วย lib\dict.doc และถ้ำไดเร็กทอรี่ ปัจจุบนั คือ lib จะอ้ำงเพียงแค่
ชื่อไฟล์เท่ำนั้นคืออ้ำงด้วย dict.doc
ถ้ำไฟล์ที่ตอ้ งกำรอ้ำงถึงอยูค่ นละกิ่งของทรี จะใช้สญ
ั ญลักษณ์ .. เข้ำมำช่วย เช่น ถ้ำต้องกำรอ้ำง
ถึงไฟล์ math.h ในขณะที่ไดเร็กทอรี่ ปัจจุบนั อยูท่ ี่ lib จะสำมำรถอ้ำงได้ดว้ ย .\.\bin\math.h สัญลักษณ์ ..
จะหมำยถึง ไดเร็กทอรี่ ที่อยุเ่ หนือขึ้นไปหนึ่งระดับ และมีอีกสัญญลักษณ์หนึ่งคือ . จะหมำยถึงไดเร็กทอรี่
ปัจจุบนั ตัวอย่ำงเช่น ในระบบปฏิบตั ิกำร DOS ถ้ำต้องกำรคัดลอกไฟล์ math.h มำเก็บไว้ในไดเร็กทอรี่ lib
ซึ่งเป็ นไดเร็กทอรี่ ปัจจุบนั จะใช้คำสัง่ copy \lib\math.h
เรำอำจสังเกตได้จำกสัญลักษณ์ที่ใช้อำ้ งถึง root ก็จะสำมำรถบอกว่ำเป็ นกำรอ้ำงพำธแบบใด คือ
ถ้ำขึ้นต้นด้วยเครื่ องหมำย “\” หรื อ “/” เป็ นกำรอ้ำงแบบสัมบูรณ์ แต่ถำ้ เป็ นกำรอ้ำงแบบสัมพัทธ์จะขึ้นต้น
ด้วยไดเร็กทอรี่ ยอ่ ย หรื อชื่อไฟล์โดยตรง
Page 16
การทางานของระบบไฟล์
(File System implementation)
เราสามารถมองระบบไฟล์ได้ 2 มุมมองด้ วยกัน คือ
มุมมองแรกเป็ นมุมมองของผูใ้ ช้ โดยผูใ้ ช้แค่รู้วำ่ จะตั้งชื่อไฟล์อย่ำงไร มี
ข้อกำหนดอย่ำงไรบ้ำงใน OS ที่ใช้อยู่ ผูใ้ ช้ตอ้ งรู ้คำสัง่ (Operations) ของไฟล์วำ่ มี
คำสัง่ อะไรบ้ำง โครงสร้ำงไดเร็ กทอรี่ ของแต่ละระบบเป็ นอย่ำงไร เท่ำนี้ก็
เพียงพอสำหรับกำรใช้งำนแล้ว
มุมมองทีส่ องเป็ นมุมมองของผูส้ ร้ำงระบบไฟล์ที่จะต้องรู ้และเข้ำใจว่ำ
ไฟล์และไดเร็ กทอรี่ ต่ำง ๆ ที่สร้ำงขึ้นมำถูกจัดเก็บลงในดิสก์อย่ำงไร จะมีวิธี
จัดสรรเนื้อที่ดิสก์อย่ำงไรให้สำมำรถจัดเก็บข้อมูลได้มำกที่สุดและคง
ประสิ ทธิภำพสูงสุ ด รวมไปถึงกำรสร้ำงควำมเชื่อมัน่ ให้กบั ผูใ้ ช้วำ่ ข้อมูลที่บนั ทึก
ลงบนดิสก์แล้วจะไม่สูญหำยไปไหน
Page 17
การทางานของระบบไฟล์
(File System implementation)
1. โครงสร้ างของระบบไฟล์ (File System Layout)
ระบบไฟล์ทุกระบบจำเป็ นต้องมีกำรจัดเก็บข้อมูลลงบนสื่ อต่ำง ๆ ปั จจุบนั สื่ อเหล่ำนี้มีหลำยชนิด
ได้แก่ แผ่นดิสก์ เทป ซีดีรอม เป็ นต้น โครงสร้ำงของระบบดิสก์จะสนับสนุนกำรแอกเซสข้อมูลแบบสุ่ ม
(Random access) และยังสำมำรถแบ่งพำร์ติชนั ในกำรเก็บข้อมูลได้ แต่ละพำร์ติชนั มีควำมเป็ นอิสระต่อกัน
และยังสำมำรถกำหนดให้แต่ละพำร์ติชนั มีระบบปฏิบตั ิกำรที่ต่ำงกันได้อีกด้วย
ภำยในดิสก์จะถูกแบ่งเป็ นเซกเตอร์ (sector) โดยเริ่ มต้นจำกเซกเตอร์ 0 ซึ่งเป็ น Master Boot
Record (MBR) เอำไว้เก็บค่ำเริ่ มต้นของระบบปฏิบตั ิกำรสำหรับกำรบูตเครื่ องคอมพิวเตอร์ ในส่ วนท้ำยของ
เซกเตอร์น้ ียงั ประกอบไปด้วยตำรำงพำร์ติชนั (partition table) ซึ่งจะเก็บแอดเดรสเริ่ มต้น และแอดเดรส
สุ ดท้ำยของแต่ละพำร์ติชนั เอำไว้ ในแต่ละพำร์ติชนั จะประกอบด้วย Boot block โปรแกรมใน Boot block
จะทำหน้ำที่ในกำรโหลดระบบปฏิบตั ิกำรในพำร์ติชนั นั้น ๆ ออกมำทำงำน ทุกพำร์ติชนั จะมี Boot block
เป็ นของตนเอง แต่ในพำร์ติชนั ก็อำจจะไม่มีระบบปฏิบตั ิกำรก็ได้ โครงสร้ำงภำยในพำร์ติชนั จะแตกต่ำงกัน
ไปตำมระบบปฏิบตั ิกำรที่ใช้อยู่ ซึ่งจะทำกำรกำหนดโครงสร้ำงของไฟล์ในดิสก์ขณะที่ฟอร์แมต (format)
Page 18
การทางานของระบบไฟล์
(File System implementation)
2.วิธีจัดเก็บข้ อมูลของไฟล์ (Implementation File)
- การจัดเก็บข้ อมูลแบบต่ อเนื่องและติดกัน (Contiguous Allocation)
เป็ นวิธีกำรจัดเก็บแบบง่ำยที่สุด แต่ละไฟล์จะถูกแบ่งเป็ นบล็อก แต่ละบล็อกมีขนำด
เท่ำ ๆ กัน เพื่อง่ำยในกำรบริ หำรและกำรเก็บข้อมูล ไฟล์ขอ้ มูลที่แบ่งออกเป็ นบล็อก ๆ จะถูก
เก็บลงบนดิสก์อย่ำงต่อเนื่องทั้งไฟล์ ตัวอย่ำงเช่น ถ้ำกำหนดขนำดของบล็อกบนดิสก์ไว้เท่ำ ๆ
กัน เท่ำกับ 1 KB ถ้ำไฟล์ขอ้ มูลมีขนำด 50 KB สำหรับไฟล์ขอ้ มูลนี้กจ็ ะต้องใช้บล็อกเท่ำกับ
50/1 = 50 บล็อก ในกำรเก็บไฟล์ขอ้ มูลด้วยวิธีกำรเก็บข้อมูลแบบต่อเนื่องนี้ถำ้ เริ่ มจำกบล็อกที่
1 เป็ นบล็อกแรก บล็อกสุ ดท้ำยจะเป็ นบล็อกที่ 50 ซึ่ งเรี ยงติดกัน ถ้ำหำกไฟล์มีขนำดไม่พอดี
กับจำนวนเท่ำของขนำดของบล็อก เศษที่เหลือก็จะกินเนื้อที่บล็อกนั้นไปเต็ม ๆ
Page 19
การทางานของระบบไฟล์
(File System implementation)
ข้ อดีในการเก็บข้ อมูลแบบต่ อเนื่องมี 2 ประการคือ ประกำรแรกเป็ นกำรจัดเก็บ
ข้อมูลแบบที่ง่ำยที่สุด และสะดวกที่สุด เนื่องจำกใช้เนื้อที่เก็บต่อเนื่องกันไปจึงไม่ตอ้ งกังวลว่ำ
บล็อกต่อไปจะเก็บตรงไหน และกำรจัดเก็บแบบนี้ไม่จำเป็ นต้องบันทึกทุก ๆ บล็อกที่จดั เก็บ
ลงบนดิสก์ จะจัดเก็บเฉพำะบล็อกแรกและบล็อกสุ ดท้ำยเท่ำนั้น บล็อกที่อยูภ่ ำยในสำมำรถ
ติดต่อกันได้ดว้ ยตำแหน่งที่จดั เรี ยงกันภำยในอยูแ่ ล้ว ประกำรที่สองวิธีน้ ีสำมำรถสร้ำง
ประสิ ทธิ ภำพได้สูงสุ ดในกำรค้นหำข้อมูล เนื่องจำกกำรจัดเก็บบล็อกข้อมูลเรี ยงต่อเนื่อง จึง
ไม่เสี ยเวลำในกำรค้นหำบล็อกทุก ๆ บล็อก เพียงแต่หำบล็อกแรกพบก็สำมำรถอ่ำนข้อมูลทั้ง
ไฟล์ได้
สาหรับข้ อเสี ยของวิธีนีค้ อื จำเป็ นต้องอำศัยกำรเก็บข้อมูลที่ต่อเนื่องเมื่อจำนวน
ไฟล์ขอ้ มูลเพิ่มจำนวนมำกขึ้น ประกอบกับขนำดของข้อมูลเมื่อมีกำรแก้ไขมีขนำดใหญ่ข้ ึน ทำ
ให้ไม่สำมำรถหำเนื้อที่ในกำรบรรจุไฟล์ขอ้ มูลดังกล่ำวได้
Page 20
การทางานของระบบไฟล์
(File System implementation)
Page 21
การทางานของระบบไฟล์
(File System implementation)
จากรูป 7.3 จะเห็นว่ าถ้ ามีไฟล์ทถี่ ูกย้ ายหรือถูกลบออกไป จะเหลือที่ว่าง
ตรงตาแหน่ งนั้น ซึ่งไม่ต่อเนื่องกัน ถ้ำหำกว่ำมีไฟล์ที่ตอ้ งกำรจัดเก็บ แต่มีขนำด
ใหญ่กว่ำที่วำ่ งที่มีอยูเ่ ดิม ก็จะไม่สำมำรถจัดเก็บได้ ระบบปฏิบตั ิกำรจะต้องจัดสรร
เนื้อที่ใหม่ที่วำ่ งให้กบั ไฟล์น้ นั ๆ ดังนั้นจึงมีโอกำสที่จะเหลือที่วำ่ งมำกมำยบน
ดิสก์ จนกระทัง่ สุ ดท้ำยแม้จะมองเห็นว่ำเนื้อที่โดยรวมเหลือมำกมำย แต่กไ็ ม่
สำมำรถจัดเก็บไฟล์ที่ตอ้ งกำรได้ เนื่องจำกเนื้อที่น้ นั กระจัดกระจำยเป็ นส่ วน ๆ
นัน่ เอง ดังนั้น กำรจัดเก็บแบบนี้จึงมักใช้กบั สื่ อที่มีกำรจัดเก็บข้อมูลเพียงครั้งเดียว
(Read Only Memory) เช่น CD-ROM
Page 22
การทางานของระบบไฟล์
(File System implementation)
2.วิธีจัดเก็บข้ อมูลของไฟล์ (Implementation File)
- การจัดเก็บข้ อมูลแบบลิงค์ ลสิ ต์ (Link List Allocation)
วิธีกำรนี้มีกำรแบ่งไฟล์ออกเป็ นบล็อก ๆ เช่นเดียวกัน แต่กำรจัดเก็บเนื้อที่ของแต่ละบล็อกจะไม่
ต่อเนื่องเหมือนวิธีแรก แต่ละบล็อกจะถูกเชื่อมโยงกันด้วยพอยเตอร์ต้ งั แต่บล็อกแรกจนถึงบล็อกสุ ดท้ำยของ
ไฟล์ขอ้ มูลนั้น ๆ ทำให้ไม่เสี ยเนื้อที่วำ่ งภำยในดิสก์ ยกเว้นแต่จะมีเนื้อที่วำ่ งในแต่ละบล็อก ซึ่งจะมีมำกน้อย
เพียงใดก็ข้ ึนอยูก่ บั กำรหำขนำดที่เหมำะสมของบล็อกข้อมูล และจะเกิดกับบล็อกสุ ดท้ำยของแต่ละไฟล์ขอ้ มูล
เท่ำนั้น วิธีกำรจัดเก็บแบบนี้มีขอ้ เสี ยตรงที่จะเสี ยเวลำในกำรค้นหำแต่ละบล็อกข้อมูล เนื่องจำกแต่ละบล็อก
จะอยูก่ ระจัดกระจำยกันไปทัว่ บนดิสก์ แถมยังเสี ยเนื้อที่ไปสำหรับพอยเตอร์ที่ทำหน้ำที่ช้ ีไปยังบล็อกต่ำง ๆๆ
อีกด้วย นอกจำกนี้ในขณะที่ระบบทำกำรอ่ำนข้อมูล ระบบจะต้องทำกำรคัดลอกตำรำงบันทึกกำรจัดเก็บไฟล์
(File Allocation Table : FAT) ลงบนหน่วยควำมจำก่อนที่จะทำกำรอ่ำนข้อมูลจำกดิสก์ ถ้ำหำกว่ำขนำดของ
ดิสก์เป็ น 20 GB ขณะที่ขนำดของบล็อกเท่ำกับ 1 KB ฮำร์ดดิสก์ตวั นี้จะสำมำรถเก็บจำนวนบล็อกได้เท่ำกับ
20 ล้ำนบล็อก ซึ่งจะต้องใช้เนื้อที่ 3 ไบต์ในลิงค์ลิสต์ ( 3 byte = 224  20 ล้ำน) ขนำดของ FAT จะใหญ่ถึง 60
MB แต่โดยทัว่ ไปกำรจองเนื้อที่เพื่อเก็บขนำดของลิงค์ลิสต์มกั จะจองขนำดเป็ นเลขฐำนสองยกกำลัง เช่น 2,
4, 8, ... ดังนั้น จำนวนบล็อกขนำด 20 ล้ำนบล็อก จะใช้ขนำดเป็ นเลขฐำนสองยกกำลังสอง ซึ่งเท่ำกับPage
4 ไบต์23
การทางานของระบบไฟล์
(File System implementation)
2.วิธีจัดเก็บข้ อมูลของไฟล์ (Implementation File)
-ไอโหนด (I-nodes หรือ Index node)
เป็ นวิธีที่ใช้ในระบบปฏิบตั ิกำร UNIX โดยมีกำรสร้ำงตำรำงเล็กๆ เรี ยกว่ำ “ไอโหนด”
(I-node) ให้กบั แต่ละไฟล์ ไอโหนดจะเก็บข้อมูลต่ำง ๆ ที่เกี่ยวข้องกับไฟล์เอำไว้ ภำยในไอ
โหนดจะมีประกอบด้วย หมำยเลขบล็อกแบบ direct 10 หมำยเลข, แบบ Single direct 1
หมำยเลข, แบบ double direct 1 หมำยเลข และแบบ tripble direct 1 หมำยเลข
- หมายเลขบล็อกแบบ direct 10 หมายเลข แต่ละหมายเลขจะเก็บหมายเลขของแต่
ละบล็อกไว้ 10 บล็อก ถ้ าแต่ ละบล็อกมีขนาด 1 KB ทั้ง 10 หมายเลขจะเก็บข้ อมูลได้ 10 KB
Page 24
การทางานของระบบไฟล์
(File System implementation)
- ถ้ำขนำดไฟล์ขอ้ มูลไม่เกิน 10 KB จะสำมำรถใช้ไอโหนดแบบ direct ก็เพียงพอแล้ว ถ้ำ
ขนำดของไฟล์ใหญ่กว่ำ 10 KB แต่ไม่เกิน 266 KB (10+256 KB) ภำยในไอโหนดจะมี
หมำยเลขบล็อกแบบ direct 10 หมำยเลข สำมำรถอ้ำงจำนวนบล็อกได้ 10 บล็อก บวกกับ
single direct สมมติวำ่ 1 หมำยเลขของ single direct มีขนำด 1 KB (1024 byte) แต่ละ
บล็อกใช้พอยเตอร์ 4 ไบต์ ในกำรเชื่อมโยงแต่ละบล็อกเป็ นลิงค์ลิสต์ของไฟล์ขอ้ มูลเข้ำ
ด้วยกัน ดังนั้นในแต่ละบล็อกสำมำรถเก็บจำนวนลิงค์ได้เท่ำกับ 1024/4 = 256 หมำยเลข
- กรณี ที่ขนำดของไฟล์ใหญ่เกินกว่ำ 266 KB แต่ไม่เกิน 65802 KB
(10+256+(256*256) KB) ภำยในไอโหนดจะมีหมำยเลขบล็อกแบบ direct 10 หมำยเลข
แบบ single direct 1 หมำยเลข และแบบ direct direct 1 หมำยเลข สำหรับแบบ double
direct สำมำรถใช้เก็บจำนวนบล็อกได้ถึง 256*256 บล็อก
Page 25
การทางานของระบบไฟล์
(File System implementation)
- ถ้ำไฟล์มีขนำดใหญ่เกินกว่ำ 65802 KB จำเป็ นต้องใช้ไอโหนดแบบ triple
direct 1 หมำยเลข นั้นหมำยถึงถึงสำมำรถเพิ่มจำนวนบล็อกได้อีก
256*256*256 ซึ่งเท่ำกับ 16 GB
Page 26
การทางานของระบบไฟล์
(File System implementation)
3. โครงสร้ างไดเร็กทอรี (Implementating Directory)
ไดเร็กทอรี่ทาหน้ าทีใ่ นการเก็บรวบรวมไฟล์ ข้อมูลต่ าง ๆ เข้ าไว้ ด้วยกัน ผู้ใช้ ทตี่ ้ องการ
จะเปิ ดไฟล์ ใด ๆ จะต้ องระบุพาธสาหรับไฟล์ น้ันเสี ยก่ อน ซึ่ งอำจจะอยูใ่ นไดเร็ กทอรี่ ที่ซอ้ น ๆ
กันอยู่ กำรระบุพำธจะเป็ นกำรระบุบล็อกต่ำง ๆ ที่เก็บไว้ในไดเร็ กทอรี่ น้ นั แต่ละไฟล์ที่เก็บใน
ไดเร็ กทอรี่ สำมำรถเข้ำถึงบล็อกต่ำง ๆ ของไฟล์ได้โดยกำรอ้ำงชื่อไฟล์ ดังนั้นไฟล์หนึ่ง ๆ จะมี
ชื่อเรี ยกได้เพียงชื่อเดียว หรื อไม่กใ็ ช้นำมสกุลเป็ นกำรแยกประเภทของไฟล์ เวลำสร้ำงไฟล์ OS
จะจัดสรรเนื้อที่บนดิสก์ให้กบั ไฟล์น้ นั ซึ่ งไดเร็ กทอรี่ จำเป็ นจะต้องรูแ้ ละสำมำรถตรวจสอบได้
ว่ำไฟล์ในไดเร็ กทอรี่ ของตัวเองนั้นเก็บอยูท่ ี่ใด ดังนั้นไดเร็ กทอรี่ จำเป็ นต้องมีตำรำงบันทึกไฟล์
ต่ำง ๆ เอำไว้ ภำยในตำรำงไดเร็ กทอรี จะประกอบไปด้วยชื่อไฟล์ และคุณลักษณะของไฟล์ (file
attribute) ว่ำเป็ นไฟล์ประเภทใด เก็บอยูใ่ นบล็อกใด
Page 27
การทางานของระบบไฟล์
(File System implementation)
Page 28
การทางานของระบบไฟล์
(File System implementation)
รูปแบบการเก็บชื่อไฟล์ และคุณลักษณะของไฟล์ สามารถทาการเก็บได้ สองวิธี
วิธีแรกให้เก็บชื่อไฟล์และคุณลักษณะของไฟล์เข้ำไว้ดว้ ยกัน ดังรู ป 7.4 (ก) ภำยในตำรำงแต่ละ
ไฟล์จะเก็บชื่อไฟล์ที่มีขนำดตำมที่กำหนดไว้ขนำดหนึ่งเช่น ใน MS-DOS ควำมยำวของชื่อจะกำหนดไว้ไม่
เกิน 8 ตัวอักษรและตำมด้วยส่ วนขยำยอีกไม่เกิน 3 ตัว ต่อจำกชื่อไฟล์จะตำมด้วยคุณลักษณะของไฟล์ซ่ ึงจะ
บอกบล็อกต่ำง ๆ ที่ใช้เก็บไฟล์วำ่ มีจำนวนเท่ำไรจะถูกระบุลงไปในตำรำงด้วยกัน จำกรู ปจะพบว่ำไฟล์ยงิ่ มี
ขนำดใหญ่ จำนวนบล็อกที่ใช้ยงิ่ เพิม่ ขี้นตำมขนำดของไฟล์ จึงเกิดปั ญหำว่ำจะกำหนดขนำดของตำรำงนี้
อย่ำงไร ปัญหำจำกกำรเก็บชื่อไฟล์และคุณลักษณะไฟล์เข้ำไว้ดว้ ยกันจึงแก้ได้ดว้ ยวิธีที่สอง
วิธีทสี่ องจะใช้วธิ ีเก็บชื่อไฟล์และพอยเตอร์ของไฟล์ไปยังบล็อกต่ำง ๆ ไว้ดว้ ยกัน วิธีน้ ีทำให้ขนำด
ข้อมูลในตำรำง File attribute มีขนำดคงที่ พอยเตอร์ในตำรำงจะชี้ไปยังเนื้อที่อีกส่ วนหนึ่งที่ใช้เก็บบล็อกต่ำง
ๆ ของไฟล์เอำไว้ เรี ยกเนื้อที่บริ เวณนี้วำ่ “ฮีพ” (heap) ด้วยวิธีกำรนี้ขนำดของ่ไฟล์สำมำรถใหญ่เท่ำใดก็ได้ซ่ ึง
จะไม่มีผลต่อกำรจัดเก็บในตำรำง เนื้อที่บริ เวณฮีพเป็ นกำรจองเนื้อที่แบบไดนำมิก เนื้อที่บริ เวณฮีพเป็ นกำร
จองเนื้อที่แบบไดนำมิกเนื้อที่บริ เวณนี้จะมีกำรจองและคืนเนื้อที่อยูต่ ลอดเวลำ
Page 29
การทางานของระบบไฟล์
(File System implementation)
ดังนั้นจะเห็นว่ำกรณี ที่ขนำดของไดเร็ กทอรี่ มีขนำดใหญ่ กำร
ค้นหำไฟล์ตำมลำดับจะทำให้หำตำแหน่งของบล็อกต่ำง ๆ ก็ยงิ่ ใช้เวลำ
มำกขึ้น ดังนั้นเรำสำมำรถใช้ตำรำง hash table เข้ำมำช่วยเพื่อให้กำร
ค้นหำเป็ นไปด้วยควำมรวดเร็ ว โดยกำหนดไฟล์ต่ำง ๆ เก็บไว้เป็ นหมวด
เริ่ มต้นด้วยกำรค้นหำว่ำไฟล์น้ นั อยูใ่ นหมวดใด แล้วเจำะเข้ำไปค้นหำยัง
หมวดนั้น ๆ โดยตรง
Page 30
การทางานของระบบไฟล์
(File System implementation)
4. การใช้ ไฟล์ร่วม (Shared files)
ไฟล์บำงไฟล์ในระบบอำจถูกใช้โดยผูใ้ ช้หลำย ๆ คน ดังนั้นจะต้องทำกำร
คัดลอกไฟล์ต่ำง ๆ เหล่ำนี้ไว้ให้กบั ทุก ๆ คน วิธีกำรนี้ดูแล้วไม่สะดวกและทำให้
เปลืองเนื้อที่จดั เก็บเป็ นอย่ำงมำก ถ้ำมีผใู ้ ช้คนใดคนหนึ่งต้องกำรแก้ไขไฟล์น้ ีก็
จะต้องไปบอกกับทุก ๆ คนให้ทำกำรแก้ไขตำมไปด้วย หรื อไม่กใ็ ห้มำคัดลอก
ไฟล์น้ ีไปใหม่ ซึ่งนอกจำกจะยุง่ ยำกแล้วยังทำให้เสี ยเวลำอีกด้วย OS จะแก้ปัญหำ
ตรงนี้โดยถ้ำหำกว่ำมีไฟล์ที่ตอ้ งกำรใช้งำนร่ วมกัน และมีกำรบันทึกข้อมูลนั้นอยู่
เพียงแห่งเดียวแต่ขื่อของไฟล์สำมำรถปรำกฎอยูใ่ นไดเร็ กทอรี่ ของทุกคนที่
ต้องกำรใช้ไฟล์ร่วมกัน จะทำให้สะดวกและประหยัด ไฟล์ที่นำมำใช้งำนลักษณะ
นี้เรี ยกว่ำ “ไฟล์ร่วม” (shared files)
Page 31
การทางานของระบบไฟล์
(File System implementation)
พิจำรณำรู ป 7.5 ไฟล์ในไดเร็ กทอรี A และ B จะถูกใช้งำนร่ วมกันด้วยกำรเชื่อมต่อ
ระหว่ำงไดเร็ กทอรี่ เรี ยกว่ำกำรลิงค์ (link) ทำให้โครงสร้ำงของระบบไดเร็ กทอรี เปลี่ยนไปไม่
เป็ นแบบต้นไม้ แต่จะเป็ นโครงสร้ำงที่เรี ยกว่ำ direct acyclic graph วิธีกำรลิงค์ข้ ึนอยูก่ บั
โครงสร้ำงไดเร็ กทอรี่ ของระบบไฟล์ เช่นใน UNIX สำมำรถทำกำรลิงค์ได้ง่ำยมำกด้วยกำร
กำหนดชื่อไฟล์ และคัดลอกไอโหนดไปยังไดเร็ กทอรี่ ที่ตอ้ งกำรใช้ไฟล์ร่วมกัน พร้อมกับกำร
เพิ่มจำนวนลิงค์เข้ำไปที่ไอโหนด ทำให้สำมำรถเข้ำถึงไฟล์ขอ้ มูลเดียวกันได้ท้ งั หมด เพื่อให้
ระบบทรำบว่ำมีไดเร็ กทอรี จำนวนเท่ำใดที่มำใช้ไฟล์ร่วมกันดังตัวอย่ำงตำมรู ป 7.6 จะพบว่ำ
ค่ำ count ในไอโหนดจะเพิ่มขึ้นตำมจำนวนลิงค์ที่เชื่อมเข้ำมำยังไฟล์น้ นั
Page 32
การทางานของระบบไฟล์
(File System implementation)
Page 33
การทางานของระบบไฟล์
(File System implementation)
Page 34
การทางานของระบบไฟล์
(File System implementation)
กำรลบไฟล์ที่เป็ นไฟล์ร่วมของ UNIX สำมำรถทำได้โดยกำรลดจำนวน
ลิงค์ในไอโหนด ทุกครั้งที่มีกำรลดจำนวนลิงค์ค่ำ count ที่อยูใ่ นไอโหนดก็จะ
ลดลงจนกระทัง่ เป็ น 0 หมำยควำมว่ำไม่มีไดเร็ กทอรี ใดต้องกำรใช้ไฟล์น้ นั อีกแล้ว
บล็อกข้อมูลเหล่ำนี้กจ็ ะถูกนำไปใช้กบั ไฟล์อื่น ๆ อีกต่อไป
นอกจำกนี้ยงั มีวิธีกำรลิงค์ไฟล์อีกวิธีหนึ่งที่เรี ยกว่ำ กำรลิงค์เชิงสัญลักษณ์
(symbolic linking) สมมติวำ่ B ต้องกำรลิงค์ไฟล์ a ซึ่งเป็ นของ A ระบบจะสร้ำง
ไฟล์ข้ ึนมำใหม่ชื่อว่ำ A\a เก็บไว้โดยมีส่วนขยำยเป็ น link และถูกเก็บไว้ในได
เร็ กทอรี ของ B เมื่อ B ต้องกำรเข้ำถึงไฟล์ a ระบบจะทำกำรเข้ำไปอ่ำนข้อมูลใน
ไดเร็ กทอรี ซ่ ึงเป็ นของ A ตำมชื่อพำธที่ได้กำหนดในลิงค์
Page 35
การทางานของระบบไฟล์
(File System implementation)
กำรลบไฟล์ที่เป็ นไฟล์ร่วมของ UNIX สำมำรถทำได้โดยกำรลดจำนวน
ลิงค์ในไอโหนด ทุกครั้งที่มีกำรลดจำนวนลิงค์ค่ำ count ที่อยูใ่ นไอโหนดก็จะ
ลดลงจนกระทัง่ เป็ น 0 หมำยควำมว่ำไม่มีไดเร็ กทอรี ใดต้องกำรใช้ไฟล์น้ นั อีกแล้ว
บล็อกข้อมูลเหล่ำนี้กจ็ ะถูกนำไปใช้กบั ไฟล์อื่น ๆ อีกต่อไป
นอกจำกนี้ยงั มีวิธีกำรลิงค์ไฟล์อีกวิธีหนึ่งที่เรี ยกว่ำ กำรลิงค์เชิงสัญลักษณ์
(symbolic linking) สมมติวำ่ B ต้องกำรลิงค์ไฟล์ a ซึ่งเป็ นของ A ระบบจะสร้ำง
ไฟล์ข้ ึนมำใหม่ชื่อว่ำ A\a เก็บไว้โดยมีส่วนขยำยเป็ น link และถูกเก็บไว้ในได
เร็ กทอรี ของ B เมื่อ B ต้องกำรเข้ำถึงไฟล์ a ระบบจะทำกำรเข้ำไปอ่ำนข้อมูลใน
ไดเร็ กทอรี ซ่ ึงเป็ นของ A ตำมชื่อพำธที่ได้กำหนดในลิงค์
Page 36
การทางานของระบบไฟล์
(File System implementation)
5. การจัดการเนือ้ ที่ว่างภายในดิสก์ (Disk Space Management)
กำรจัดเก็บข้อมูลภำยในดิสก์สำมำรถทำได้ 2 วิธีดว้ ยกันคือ เก็บไฟล์ท้ งั หมดไว้ในเนื้อที่เดียวกัน
หรื อแบ่งไฟล์ออกเป็ นบล็อก ๆ ละเท่ำ ๆ กันแล้วเก็บกระจำยทัว่ ไปในดิสก์ กรณี ที่เก็บทั้งไฟล์ไว้ดว้ ยกันจะ
เกิดปัญหำในกรณี ที่เรำลบไฟล์น้ นั ไปแล้ว หรื อเรำมีกำรแก้ไขไฟล์ทำให้ไฟล์เดิมนั้นมีขนำดใหญ่ข้ นั ไฟล์ที่
เรำจะเก็บใหม่น้ ีไม่สำมำรถจะเก็บไว้ในเนื้อที่ตำแหน่งเดิมได้ ไฟล์ที่อยูข่ ำ้ งเคียงก็ไม่สำมำรถเคลื่อนย้ำยได้
ดังนั้นกำรแบ่งไฟล์ออกเป็ นบล็อกย่อมสะดวกกว่ำสำหรับกำรขยำยตัวเมื่อไฟล์ใหญ่ข้ ึน
ขนำดของบล็อกจะเป็ นสิ่ งจำเป็ นในกำรเพิ่มประสิ ทธิภำพของคอมพิวเตอร์ และทำให้กำรใช้เนื้อที่
ในดิสก์เกิดควำมคุม้ ค่ำที่สุด ขนำดของบล็อกที่ใหญ่เกินไปในขณะที่ไฟล์ขอ้ มูลมีขนำดเพียงไม่กี่ไบต์ จะทำ
ให้สิ้นเปลืองเนื้อที่มำกเพรำะในกำรเก็บข้อมูลแต่ละครั้งจะต้องใช้เนื้อที่ท้ งั บล็อก เช่น สมมติวำ่ บล็อกมีขนำด
1 KB ในขณะที่ไฟล์ขอ้ มูลมีขนำดเพียง 100 ไบต์ ก็จะเสี ยเนื้อที่ในดิสก์ไปเฉย ๆ ถึง 90% หรื อถ้ำหำกว่ำ
บล็อกมีขนำด 1 KB แต่ไฟล์มีขนำดถึง 50 KB ก็จะทำให้ใช้เนื้อที่ในกำรเก็บข้อมูลถึงไฟล์ละ 50 บล็อก แต่ละ
บล็อกก็ไม่ได้จดั เรี ยงในที่เดียวกัน จึงทำให้เสี ยเวลำในกำรค้นหำ (seek time) ข้อมูลในแต่ละบล็อกเป็ นอย่ำง
มำก
Page 37
การทางานของระบบไฟล์
(File System implementation)
จะพบว่ำกำรกำหนดขนำดของบล็อกที่เหมำะสมจะช่วยเพิม่ ประสิ ทธิภำพ
ของคอมพิวเตอร์ และทำให้กำรใช้เนื้อที่ในดิสก์เกิดควำมคุม้ ค่ำอย่ำงยิง่ จำกกำร
สำรวจขนำดของไฟล์พบว่ำจำนวนครึ่ งหนึ่งของไฟล์ขอ้ มูลมีขนำดมำกกว่ำ 1680
ไบต์
Page 38
การทางานของระบบไฟล์
(File System implementation)
- การเก็บรวบรวมเนือ้ ที่ว่างภายในดิสก์
หน้ำที่ของระบบปฏิบตั ิกำรในกำรจัดกำรกับดิสก์คือ กำรเตรี ยมบล็อกว่ำงภำยใน
ดิสก์สำหรับเก็บไฟล์ขอ้ มูลที่ตอ้ งกำร วิธีที่ใช้ในกำรรวบรวมบล็อกว่ำง ๆ ภำยในดิสก์คือ กำร
ใช้ลิงค์ลิสต์ (link list) เนื้อที่วำ่ งจะถูกรวบรวมเป็ นสำยเพื่อจัดเตรี ยมให้ OS นำไปจัดสรรให้
ไฟล์ต่ำง ๆ นำไปใช้เก็บข้อมูล ถ้ำเรำแบ่งขนำดของบล็อกไว้เท่ำ ๆ กันบล็อกละ 1 KB และ
กำหนดขนำดของหมำยเลขประจำบล็อกไว้เท่ำกับ 2 ไบต์ ทำให้ในเนื้อที่แต่ละบล็อกใช้เก็บ
หมำยเลขบล็อกได้ 1024/2 = 512 บล็อก ในจำนวนนี้กรณี ที่มีจำนวนบล็อกมำกกว่ำ 512
บล็อก จะต้องใช้บล็อกเก็บหมำยเลขมำกกว่ำ 1 บล็อก ดังนั้นแต่ละบล็อกที่ใช้เก็บหมำยเลข
จะใช้เก็บหมำยเลขเพียง 511 หมำยเลข ส่ วนในหมำยเลขสุ ดท้ำยจะใช้เก็บหมำยเลขบล็อก
ถัดไป
Page 39
การทางานของระบบไฟล์
(File System implementation)
ถ้ำหำกว่ำหมำยเลขบล็อกมีขนำด 2 ไบต์ ซึ่งจะทำให้สำมำรถอ้ำงถึงจำนวนบล็อกได้เพียง 216
เท่ำกับ 65536 บล็อกเท่ำนั้น ถ้ำแต่ละบล็อกมีขนำด 1 KB แสดงว่ำขนำดของฮำร์ดดิสก์กจ็ ะสู งสุ ดไม่เกิน 64
MB (26*210*210) ดังนั้นถ้ำต้องกำรเก็บหมำยเลขของบล็อกได้มำกกว่ำนี้จะต้องกำหนดขนำดของหมำยเลข
ไว้เป็ น 4 ไบต์ หรื อ 8 ไบต์ (ใช้เป็ นเลขฐำนสองยกกำลังเพื่อควำมเร็วในกำรจัดกำรข้อมูล) สมมติกำหนด
ขนำดของหมำยเลขไว้ 4 ไบต์ เท่ำกับ 232 (22*210*210*210)
อีกวิธีหนึ่งในกำรเก็บรวมรวมบล็อกว่ำงในดิสก์คือกำรใช้ “บิตแม็ป” (bit map) ดิสก์จะถูกแบ่ง
ออกเป็ น n บล็อก ใช้จำนวนบิตเท่ำกับ n บิตเรี ยงกันเพื่อกำรตรวจสอบกำรใช้งำนของบล็อกต่ำง ๆ ในดิสก์
ถ้ำบล็อกใดว่ำงจะถูกเซตให้บิตของบล็อกนั้นเป็ น 1 ส่ วนบล็อกที่ใช้เก็บไฟล์แล้วจะถูกเซตให้เป็ น 0 ถ้ำ
เปรี ยบเทียบทั้งสองวิธีจะพบว่ำวิธีที่สองสำมำรถประหยัดเนื้อที่ในกำรเก็บหมำยเลขบล็อกได้มำกกว่ำเมื่อ
เทียบกับวิธีกำรแรก ดิสก์ขนำด 20 MB ถ้ำกำหนดขนำดของบล็อกไว้เท่ำกับ 1 KB ดังนั้นในดิสก์จะมี 20
กิโลบล็อก ถ้ำใช้บิตแมปเพื่อเก็บเนื้อที่วำ่ งในดิสก์จะต้องเสี ยเนื้อที่ในดิสก์ 20 กิโลบิต หรื อเท่ำกับ 2.5 KB
แต่ถำ้ ใช้ลิงค์ลิสต์จะใช้เนื้อที่ในดิสก์ถึง 16 เท่ำ ในกรณี ที่กำหนดขนำดของพอยเตอร์ไว้ที่ 2 ไบต์
Page 40
การทางานของระบบไฟล์
(File System implementation)
- ความเชื่อถือได้ ของระบบไฟล์ (File System reliability)
ระบบไฟล์ที่ดีจำเป็ นอย่ำงยิง่ ที่จะต้องมีระบบกำรป้ องกันไฟล์ถกู ทำลำย กำรป้ องกัน
นี้สำมำรถทำได้หลำยวิธี ไม่วำ่ จะเป็ นทำงด้ำนฮำร์ ดแวร์ หรื อซอฟต์แวร์ โดยปกติแล้วสื่ อที่ใช้
ในกำรเก็บข้อมูลไม่วำ่ จะเป็ นแผ่นฟลอปปี้ ดิสก์หรื อฮำร์ ดดิสก์ที่ผลิตออกมำจำกโรงงำนมัก
เป็ นแผ่นที่สมบูรณ์ ไม่มีบล็อกใดเสี ยภำยในแผ่น ต่อเมื่อถูกนำมำใช้งำนแล้ว กำรอ่ำนเขียน
ข้อมูลลงในแต่ละบล็อกหลำย ๆ ครั้งเข้ำก็อำจทำให้เกิดบล็อกเสี ยขึ้นได้ ดังนั้นเมื่อมีบล็อกเสี ย
เกิดขึ้น OS จะต้องมีวธิ ี แก้ไขไม่ให้นำบล็อกเสี ยเหล่ำนั้นมำเก็บข้อมูลอีก กำรแก้ปัญหำนี้
สำมำรถทำได้หลำยวิธี เช่น ระบบอำจจะใช้วธิ ี เก็บบล็อกเสี ยเหล่ำนั้นไว้ในตำรำง เมื่อจะทำ
กำรบันทึกข้อมูลระบบจะต้องทำกำรตรวจสอบจำกตำรำงก่อน และต้องไม่นำบล็อกเสี ย
เหล่ำนั้นมำเก็บข้อมูลอีก อีกวิธีหนึ่งคือ ระบบอำจใช้บล็อกเสี ยเหล่ำนี้ ในกำรเก็บข้อมูลที่ไม่
ต้องกำร จะได้ไม่ตอ้ งเสี ยเวลำตรวจสอบบล็อกเสี ยก่อนเก็บข้อมูล
Page 41
การทางานของระบบไฟล์
(File System implementation)
- การทาแบ็คอัพข้ อมูล (Back ups)
สื่ อที่ใช้ในกำรแบ็คอัพข้อมูลนั้นอำจจะเป็ นสื่ อชนิดเดียวกัน เช่น ฮำร์ ดดิสก์ หรื อ
เลือกใช้สื่อที่มีรำคำถูกกว่ำเช่น เทป ก็ได้ นอกจำกนี้กรรมวิธีในกำรบีบอัดข้อมูลให้มีขนำด
เล็กลงก่อนทำกำรแบ็คอัพก็จะช่วยให้ประหยัดเนื้อที่ของสื่ อที่จะใช้แบ็คอัพได้อีกด้วย
วิธีในการแบ็คอัพข้ อมูลจากดิสก์ ลงเทป สามารถทาได้ ด้วยวิธีการหลัก 2 ประการ วิธี
แรกคือ การแบ็คอัพข้ อมูลทางกายภาพ (Physical dump) โดยจะทำกำรแบ็คอัพข้อมูลตั้งแต่
บล็อกแรกไปตำมลำดับจนถึงบล็อกสุ ดท้ำยของดิสก์แล้วจัดเก็บลงในเทป วิธีน้ ีสะดวกและ
ง่ำยในกำรทำแบ็คอัพ แต่ทำให้เกิดผลเสี ยหลำยประกำรด้วยกันคือ เสี ยเวลำมำกโดยเฉพำะถ้ำ
ข้อมูลมีไม่เต็มแผ่นดิสก์ เพรำะเนื้อที่วำ่ งภำยในดิสก์กจ็ ะต้องถูกทำแบ็คอัพไปด้วย อีกประกำร
หนึ่งถ้ำมีบล็อกเสี ยเป็ นจำนวนมำกบล็อกเสี ยเหล่ำนี้จะทำให้เกิดปั ญหำสำหรับ OS ในกำร
อ่ำนข้อมูล
Page 42
การทางานของระบบไฟล์
(File System implementation)
วิธีทสี่ องคือ การแบ็คอัพข้ อมูลด้ วยวิธีทางตรรกภาพ (logical dump) โดยจะเลือก
เฉพำะไฟล์หรื อไดเร็ กทอรี่ ที่ตอ้ งกำรแบ็คอัพเท่ำนั้น โดยปกติแล้วกำรทำแบ็คอัพข้อมูลจะทำ
เฉพำะข้อมูลที่มีกำรเปลี่ยนแปลงเท่ำนั้น โดยสังเกตได้จำกวันที่ และเวลำที่ได้บนั ทึกไว้ล่ำสุ ด
เช่น ในระบบ UNIX จะใช้วธิ ี เก็บบล็อกต่ำง ๆ ของไฟล์ขอ้ มูลแบบไอโหนด โดยแบ่งออกเป็ น
ขั้นตอนดังนี้ ขั้นตอนแรกจะเริ่ มตรวจสอบจำกไดเร็ กทอรี รำก OS จะตั้งสมมติฐำนว่ำทุกไฟล์
จะถูกแบ็คอัพไว้ท้ งั หมดและตรวจสอบทีละไฟล์ไปตำมลำดับลงไปในแต่ละไดเร็ กทอรี เพื่อดู
วันที่ล่ำสุ ดของไฟล์ เมื่อพบว่ำไฟล์ใดเป็ นวันที่ล่ำสุ ดก็จะจำวันที่น้ นั ไว้ ส่ วนวันที่ก่อนหน้ำนั้น
จะถูกข้ำมไปแล้ววนกลับมำเช็คใหม่ในขั้นตอนที่สอง หลังจำกกำรตรวจสอบในรอบแรกผ่ำน
ไประบบจะทรำบได้ทนั ทีวำ่ ไฟล์ขอ้ มูลใดมีกำรบันทึกเป็ นไฟล์ล่ำสุ ด ดังนั้นในรอบที่สอง
ระบบจะยกเลิกบำงไฟล์ที่ตรวจสอบวันที่ดูแล้วปรำกฏว่ำเป็ นวันที่ก่อนหน้ำหลังจำกที่
ตรวจสอบผ่ำนไปในรอบที่สอง ระบบก็จะได้ไฟล์ขอ้ มูลที่มีกำรอัปเดตล่ำสุ ด และทำกำร
Page 43
แบ็คอัพข้อมูลที่ตอ้ งกำรไว้ท้ งั หมด
การทางานของระบบไฟล์
(File System implementation)
Page 44
การทางานของระบบไฟล์
(File System implementation)
กำรแบ็คอัพข้อมูลด้วยวิธีทำงตรรกภำพ สำมำรถช่วยแก้ปัญหำ
ต่ำง ๆ ได้หลำยประกำร เช่น ลดเนื้อที่ของสื่ อที่ใช้ทำแบ็คอัพข้อมูลได้
จำนวนมำก เพรำะวิธีกำรนี้จะสำเนำเฉพำะที่เป็ นบล็อกของไฟล์ขอ้ มูลที่
ต้องกำรเท่ำนั้น ส่ วนเนื้อที่วำ่ งที่มีจำเป็ นจำนวนมำกในตัวต้นฉบับจะไม่
ถูกคัดลอกลงมำ ในระบบ UNIX สำมำรถนำไฟล์ที่แบ็คอัพมำจัดใหม่ให้
เป็ นระเบียบกว่ำเดิมโดยทำกำรเชื่อมต่อระหว่ำงบล็อกเสี ยใหม่ ไม่ให้
กระจัดกระจำยจนเกินไป ก็จะช่วยให้คน้ หำข้อมูลได้เร็ วขึ้น
Page 45
การทางานของระบบไฟล์
(File System implementation)
- ประสิ ทธิภาพของระบบไฟล์ (File System Performance)
เวลำที่เรำใช้ไปในกำรอ่ำนข้อมูลจำกสื่ อต่ำง ๆ เช่นฮำร์ ดดิสก์ หรื อฟลอปปี้ ดิสก์น้ นั
จะประกอบไปด้วยเวลำในกำรค้นหำบล็อกข้อมูลที่ตอ้ งกำร เวลำในกำรเคลื่อนหัวอ่ำนไปยัง
บล็อกนั้น และเวลำในกำรส่ งข้อมูลจำกสื่ อนั้นมำยังหน่วยควำมจำ ซึ่ งจะต้องสูญเสี ยเวลำไป
มำกในแต่ละอุปกรณ์ สำหรับฟลอปปี้ ดิสก์จะเสี ยเวลำเหล่ำนี้ไปมำกกว่ำฮำร์ ดดิสก์หลำยสิ บ
เท่ำ ดังนั้น หลำย ๆ ระบบจึงได้มีกำรออกแบบให้ระบบมีประสิ ทธิ ภำพสู งสุ ดด้วยวิธีต่ำง ๆ
ดังนี้
1. การใช้ แคช (Caching)
เป็ นเทคนิคที่ใช้ในกำรลดเวลำในกำรอ่ำนข้อมูล แทนที่จะใช้อ่ำนข้อมูลจำกแผ่นดิสก์โดยตรง ก็จะ
ให้ไปอ่ำนจำกหน่วยควำมจำที่เรี ยกว่ำ “แคช” แทน แคชจะเป็ นหน่วยควำมจำขนำดเล็กที่ใช้รวบรวมบล็อก
ข้อมูลต่ำง ๆ ที่ใช้เป็ นประจำไว้ดว้ ยกัน เมื่อโปรแกรมต้องกำรอ่ำนข้อมูลก็จะมำตรวจสอบที่แคชก่อน ถ้ำไม่
พบจึงจะไปอ่ำนจำกดิสก์มำเก็บไว้ในแคชเป็ นอันดับแรก แล้วจึงนำข้อมูลนั้นไปใช้ต่อไป
Page 46
การทางานของระบบไฟล์
(File System implementation)
กำรทำงำนของแคชใช้หลักกำรที่วำ่ ข้อมูลจะมีกำรเรี ยกใช้อยูเ่ ป็ นประจำ
จะเป็ นข้อมูลชุดเดิม ๆ เช่น กำรค้นหำข้อมูลทำงอินเตอร์เน็ต ก็มกั จะมีกำรเปิ ดเว็ป
ไซต์เดิม ๆ ที่รู้จกั หรื อสนใจ ดังนั้น โปรแกรมก็จะสร้ำงรำยชื่อเว็บดังกล่ำวไว้เป็ น
ลิสต์ไว้ให้ผใู ้ ช้เลือกก่อนเมื่อเปิ ดโปรแกรม เป็ นต้น
กำรนำตำรำงแฮช (Hash table) มำใช้กเ็ ป็ นเทคนิคแบบหนึ่ง เนื่องจำก
ข้อมูลชุดหนึ่ง ๆ ที่ตอ้ งกำรไม่สำมำรถจัดเก็บไว้ในบล็อกเดียวกันได้ท้ งั หมด กำร
อ่ำนข้อมูลชุดหนึ่งจึงประกอบด้วยจำนวนบล็อกต่ำงกัน บำงชุดอำจจะ
ประกอบด้วยข้อมูล 2 บล็อก บำงชุด 4 บล็อก แล้วแต่ขนำดของไฟล์ ดังนั้นตำรำง
แฮชซึ่งเก็บลิงค์ของข้อมูลแต่ละชุด จึงทำให้กำรอ่ำนข้อมูลทำได้ง่ำยและรวดเร็ ว
เพรำะไม่ตอ้ งเสี ยเวลำในกำรหำบล็อกที่ต่อเนื่องกัน ดังรู ป 7.8
Page 47
การทางานของระบบไฟล์
(File System implementation)
Page 48
การทางานของระบบไฟล์
(File System implementation)
บล็อกที่มกั จะเรี ยกใช้เป็ นประจำมักอยูท่ ำงด้ำนท้ำยของหน่วยควำมจำแคช บริ เวณนี้เองที่ถูก
เรี ยกว่ำ MRU (Most Recently Used Block) ส่ วนบล็อกที่ถูกอ่ำนเข้ำมำใหม่จะเก็บไว้ทำงด้ำนหน้ำ หรื อ
บล็อกที่ไม่ค่อยได้ถูกใช้งำนก็จะเก็บไว้บริ เวณด้ำนหน้ำนี้เช่นกัน ซึ่ งมีชื่อเรี ยกว่ำ LRU (Least Recently Used
Block)
กำรใช้แคชทำให้เกิดปั ญหำกรณี ที่ขอ้ มูลที่เรี ยกครั้งแรกและมีกำรแก้ไขข้อมูลดังกล่ำวภำยใน
บล็อกนั้น ๆ อำจถูกย้ำยออกจำกหน่วยควำมจำแคชทันทีโดยไม่ทนั ได้บนั ทึกข้อมูลล่ำสุ ดกลับลงดิสก์ก่อน
เพรำะข้อมูลภำยในบล็อกนั้นใช้เพียงครั้งเดียว และตำแหน่งของบล็อกนั้นเป็ นตำแหน่งแรกพร้อมที่จะถูกย้ำย
ออกไป เมื่อมีบล็อกใหม่ถูกอ่ำนเข้ำมำแทนในหน่วยควำมจำแคช ทำให้เกิดปั ญหำควำมน่ำเชื่อถือของระบบ
ไฟล์ลดลง
กำรแก้ปัญหำทำได้โดยกำรใช้วธิ ีกำรเก็บข้อมูลในหน่วยควำมจำแคชให้นำนขึ้น หรื อเก็บข้อมูลไว้
ในหน่วยควำมจำแคชจนกระทัง่ ปิ ดเครื่ อง วิธีน้ ีอำจไม่ได้ผลเพรำะขนำดของหน่วยควำมจำแคชมีนอ้ ยมำกเมื่อ
เทียบกับหน่วยควำมจำที่มีอยู่ นอกจำกวิธีน้ ีแล้วยังอำจทำได้โดยกำรเขียนข้อมูลล่ำสุ ดที่แก้ไขแล้วลงในดิสก์
ทันที ซึ่งเป็ นกำรแก้ปัญหำนี้ได้ดีที่สุด และมีใช้ในระบบปฏิบตั ิกำรหลำย ๆ ระบบเช่น UNIX และ MS-DOS
Page 49
การทางานของระบบไฟล์
(File System implementation)
2. การอ่ านบล็อกข้ อมูลไว้ ล่วงหน้ า (Block Read Ahead)
กำรอ่ำนบล็อกข้อมูลไว้ล่วงหน้ำเป็ นอีกเทคนิคหนึ่งที่ใช้เพิ่มประสิ ทธิภำพให้กบั ระบบ โดยอำศัย
สมมติฐำนที่วำ่ ข้อมูลที่ตอ้ งกำรมักจะถูกเก็บอยูใ่ นหลำย ๆ บล็อกที่ต่อเนื่องกันด้วยวิธีกำรเก็บข้อมูลแบบ
เรี ยงลำดับ จึงเป็ นไปได้วำ่ บล็อกที่ตอ้ งกำรจะอยูใ่ นบล็อกถัดไป ดังนั้น กำรอ่ำนบล็อกล่วงหน้ำ 1 บล็อก จะมี
โอกำสได้ขอ้ มูลซึ่งเป็ นบล็อกที่ตอ้ งกำร ซึ่ งวิธีกำรนี้จะใช้ได้กบั ระบบไฟล์ที่มีกำรจัดเก็บแบบลำดับ
ต่อเนื่องกันเท่ำนั้น ส่ วนระบบอื่น ๆ เช่น random access วิธีน้ ีจะใช้ไม่ได้ผล เพรำะบล็อกดังกล่ำวจะไม่ใช่
ข้อมูลที่ตอ้ งกำร
3. การลดการเคลือ่ นทีข่ องหัวอ่ าน (Reducing Disk Arm Motion)
เป็ นวิธีที่ใช้กำรควบคุมควบคู่ไปกับกลไกทำงด้ำนฮำร์ดแวร์ โดยกำรควบคุมหัวอ่ำนให้มีกำร
เคลื่อนที่ได้นอ้ ยที่สุด วิธีกำรนี้ตอ้ งอำศัยกำรเก็บไฟล์ขอ้ มูลควบคู่กนั กำรจัดเก็บข้อมูลลงไฟล์ จะเก็บให้อยูใ่ น
Cylinder เดียวกัน หัวอ่ำนจะได้ไม่ตอ้ งเคลื่อนที่ ตัวแผ่นดิสก์ซ่ ึ งหมุนอยูต่ ลอดเวลำสำมำรถอ่ำนและเขียนได้
ถ้ำบล็อกต่ำง ๆ เหล่ำนั้นอยูบ่ นเส้นรอบวงอันเดียวกัน ทำให้วธิ ีกำรนี้สำมำรถลดเวลำในกำรค้นหำข้อมูลได้
และลดกำรเคลื่อนที่ของหัวอ่ำนด้วย
Page 50
ตัวอย่างระบบไฟล์
1. ระบบไฟล์ของซีดีรอม
ระบบไฟล์ในซีดีรอมเป็ นระบบที่ง่ำยที่สุดเพรำะเป็ นแบบเขียนได้เพียงครั้งเดียว เมื่อเทียบกับ
ระบบไฟล์อื่น ๆ แล้วระบบนี้ไม่ตอ้ งมีกำรบริ หำรเนื้อที่สำหรับกำรแก้ไขหรื อกำรเปลี่ยนแปลงข้อมูลใด ๆ เลย
เนื้อที่บนแผ่นซีดีรอมสำมำรถใช้ในกำรจัดเก็บข้อมูลได้อย่ำงต่อเนื่อง โดยที่ผใู ้ ช้ไม่ตอ้ งกังวลเกี่ยวกับกำรลบ
หรื อแทรกข้อมูล และที่สำคัญข้อมูลภำยในซีดีรอมจะต้องเป็ นอิสระจำกทุกระบบปฏิบตั ิกำร
โครงสร้ำงภำยในของซีดีรอมจะมีกำรจัดเก็บข้อมูลคล้ำยลำนนำฬิกำ แต่ละวงจะต่อเนื่องกันเป็ น
ขดเดียวกัน กำรเก็บข้อมูลในซีดีเพลง จะแตกต่ำงจำกซี ดีที่ใช้เก็บข้อมูล ซี ดีรอมตำมมำตรฐำน ISO 9660 ทุก
แผ่นจะต้องประกอบด้วยบล็อกต่ำง ๆ จัดเรี ยงกันตำมลำดับดังนี้คือ 16 บล็อกแรกเป็ นส่ วนที่ใช้สำหรับบูต
เครื่ องคอมพิวเตอร์จำกแผ่นซีดีรอม (เหมือนกับเซกเตอร์ 0 ในฮำร์ดดิสก์ หรื อฟลอปปี้ ดิสก์) ส่ วนถัดมำ
เรี ยกว่ำ Primary volume descriptor ใช้สำหรับเก็บข้อมูลทัว่ ไปของแผ่นซีดีรอม ส่ วนนี้มีขนำด 32 ไบต์ไว้
สำหรับเก็บชื่อระบบปฏิบตั ิกำรทีใช้เวลำเขียนข้อมูลลงแผ่น 32 ไบต์ถดั มำเป็ นชื่อแผ่นซึ่งผูใ้ ช้เป็ นผูก้ ำหนด
128 ไบต์ถดั มำเป็ นชื่อของบริ ษทั ผูผ้ ลิตและจำหน่ำย และส่ วนสุ ดท้ำยใช้เก็บข้อมูลทัว่ ไป
Page 51
ตัวอย่างระบบไฟล์
นอกจำกนี้ในบริ เวณ primary volume descriptor ยังเก็บข้อมูลสำคัญอย่ำงอื่นที่
ไม่ได้แสดงให้เห็นอีก 3 อย่ำง คือ ตำหนิแสดงลิขสิ ทธิ์ ของแผ่น ข้อมูลที่เป็ นรำยละเอียด
เกี่ยวกับแผ่น และคียต์ ่ำง ๆ ที่แสดงรำยละเอียดข้อมูล เช่น ขนำดของบล็อก (1 KB, 2KB, 4
KB, 8 KB) จำนวนบล็อกที่ใช้เก็บข้อมูลของแผ่น วันที่หมดอำยุของแผ่น ข้อมูลที่เกี่ยวข้อง
กับไดเร็ กทอรี่ รำก เช่น แอดเดรส เป็ นต้น
แต่ละไดเร็ กทอรี ที่เก็บบนซี ดีรอมจะประกอบไปด้วยข้อมูลต่ำง ๆ ที่สำคัญโดยแบ่ง
ออกเป็ นฟิ ลด์ต่ำง ๆ ระหว่ำง 10–12 ฟิ ลด์ แต่ละฟิ ลด์จะประกอบด้วยข้อมูลต่ำง ๆ ดังรู ป 7.9
ซึ่ งเป็ นรู ปแบบมำตรฐำน ISO 9660
Page 52
ตัวอย่างระบบไฟล์
Page 53
ตัวอย่างระบบไฟล์
จากรูปแสดงฟิ ลด์ ต่าง ๆ ตามาตรฐาน ISO 9660 สามารถอธิบายรายละเอียดของแต่ ละฟิ ลด์ ได้ ดงั ต่ อไปนี้
1. Directory entry length บอกควำมยำวของข้อมูลไดเร็กทอรี่
2. Extended attribute record length บอกควำมยำวของ attribute record
3. Location of file บอกตำแหน่งที่เก็บไฟล์
4. File size บอกขนำดของไฟล์ขอ้ มูล
5. Date and time บอกวันที่ เวลำที่เก็บไฟล์ขอ้ มูล
6. Flags มีขนำด 1 ไบต์ หรื อ 8 บิต แต่ละบิตให้ขอ้ มูลซึ่งเป็ นรำยละเอียดของไฟล์
7. Interleave เป็ นฟิ ลด์ขนำด 2 ไบต์ มีไว้เพื่อแยกไฟล์ขอ้ มูลออกเป็ นส่ วน ๆ ซึ่ งยังไม่มีกำรนำมำใช้งำน
8. CD# เป็ นฟิ ลด์ขนำด 4 ไบต์ เพื่อกำหนดหมำยเลขของแผ่นซีดีรอม
9. L ใช้บอกขนำดของไฟล์ขอ้ มูล
10. File name บอกชื่อไฟล์ มีสองส่ วนคือ ชื่อ มีจำนวนอักษรไม่เกิน 8 ตัว ตำมด้วยจุด และนำมสกุล มี
จำนวนไม่เกิน 3 ตัวอักษร
11. Ver เป็ นฟิ ลด์ที่ใช้ระบุเวอร์ชนั ของระบบปฏิบตั ิกำร
12. Sys เป็ นฟิ ลด์ที่ใช้ระบุระบบปฏิบตั ิกำรของแผ่น
Page 54
ตัวอย่างระบบไฟล์
2. ระบบไฟล์ของ Windows 98
Windows ในเวอร์ชนั ก่อน 98 ใช้ระบบไฟล์ของ MS-DOS เข้ำมำช่วยจัดกำรเกี่ยวกับไฟล์ขอ้ มูล
ซึ่งมีกำรตั้งชื่อไฟล์แบบ 8+3 (ชื่อ+นำมสกุล) และใช้ตำรำง FAT-12 และ FAT-16 ในระบบไฟล์ หลังจำกที่
ได้มีกำรพัฒนำ FAT-32 ขึ้นมำใช้งำน ระบบไฟล์สำมำรถขยำยเนื้อที่กำรเก็บข้อมูลได้มำกกว่ำ 8 GB
นอกจำกนั้นยังสำมำรถตั้งชื่อไฟล์ได้มำกกว่ำในเวอร์ชนั เก่ำด้วย
Page 55
ตัวอย่างระบบไฟล์
ปั ญหำของชื่อไฟล์เริ่ มเกิดขึ้นเมื่อมีกำรใช้ระบบไฟล์ที่ต่ำงกัน ในระบบที่ใช้ MSDOS คือเวอร์ ชนั ตั้งแต่ Windows 98 ขึ้นไป ชื่อไฟล์สำมำรถตั้งได้มำกกว่ำ 8 ตัวอักษร เมื่อ
นำไปเปิ ดในเวอร์ ชนั ที่ต่ำกว่ำจะทำให้เกิดปั ญหำ
ดังนั้น Microsoft ได้หำทำงออกโดยกำหนดชื่อไฟล์เสี ยใหม่ ชื่อไฟล์ที่ยำวเกิดกว่ำ 8
ตัวอักษร (ใน Windows 98 ขึ้นไป) จะถูกกำหนดให้มีควำมยำว 6 ตัว แล้วตำมด้วย “~1”
ตัวอย่ำงเช่น ถ้ำตั้งชื่อระบบไฟล์วำ่ “ระบบไฟล์ของ Windows 98” เมื่อนำไฟล์ไปเปิ ดบน
MS-DOS จะเหลือชื่อไฟล์เพียง “ระบบไฟ~1” เป็ นต้น และถ้ำหำกว่ำชื่อไฟล์ข้ ึนต้น
เหมือนกัน หมำยเลขของ “~1” ก็จะเปลี่ยนไปตำมลำดับ เช่นถ้ำไฟล์ที่สองในไดเร็ กทอรี
เดียวกันเป็ น “ระบบไฟล์ของ Windows 98” ถ้ำนำไปเปิ ดบน MS-DOS ก็จะมีชื่อเป็ น “ระบบ
ไฟ~2”
Page 56
ตัวอย่างระบบไฟล์
ชื่อไฟล์แบบยำว (Long name) จะถูกเก็บไว้ในลักษณะดังรู ป 7.11
Page 57
ตัวอย่างระบบไฟล์
ในแต่ละฟิ ลด์ของตำรำงประกอบด้วยส่ วนต่ำง ๆ ดังนี้
1. Sequence มีขนำด 1 ไบต์ แต่ใช้เพียง 6 บิต สำมำรถแสดงลำดับที่ได้ 64 (26) ตำแหน่ง
ดังนั้นจึงสำมำรถเก็บชื่อไฟล์ได้เท่ำกับ 64*13 = 832 ตัวอักษร
2. 5 characters of file name มีขนำด 10 ไบต์ แต่ใช้เก็บ 5 ตัวอักษรสลับกับช่องว่ำง
3. Attribute มีขนำด 1 ไบต์ ใช้เก็บรหัสย่อของคุณสมบัติไฟล์
4. 6 characters of file name มีขนำด 12 ไบต์ แต่ใช้เก็บ 6 ตัวอักษรสลับกับช่องว่ำง
5. 2 characters of file name มีขนำด 4 ไบต์ แต่ใช้เก็บ 2 ตัวอักษรสลับกับช่องว่ำง
Page 58
ตัวอย่างระบบไฟล์
Page 59
ตัวอย่างระบบไฟล์
3. ระบบไฟล์ของ UNIX
UNIX เป็ นระบบปฏิบตั ิกำรที่ใช้ซีพียรู ่ วมกัน (Multiuser file systems)
ระบบไฟล์ของ UNIX มีโครงสร้ำงแบบต้นไม้ เริ่ มจำกไดเร็ กทอรี รำกแตกกิ่ง
ก้ำนออกไปเรื่ อยๆ อย่ำงไม่รู้จบ ชื่อไฟล์สำมำรถตั้งได้ 14 ตัวอักษร UNIX ได
เร็ กทอรี แต่ละไฟล์จะมี 1 ไดเร็ กทอรี เอนทรี ย ์ (Directory entry) ด้วยกัน แต่ละ
เอ็นทรี ยม์ ีโครงสร้งง่ำย ๆ มีซบั ซ้อนเพรำะ UNIX ใช้ไอโหนดในกำรจัดเก็บ
ข้อมูลแต่ละไฟล์ ในไดเร็ กทอรี เอนทรี ยป์ ระกอบด้วย 2 ฟิ ลด์คือชื่อไฟล์ และ
หมำยเลขไอโหนด ดังรู ป 7.13
Page 60
ตัวอย่ างระบบไฟล์
ในตำรำงไอโหนด จะใช้เก็บคุณสมบัติต่ำง ๆ ของไฟล์ไว้ เช่น ขนำดของ
ไฟล์ เจ้ำของไฟล์ กำรป้ องกันข้อมูลในไฟล์ วันที่จดั เก็บ วันที่แก้ไข และวันที่ใช้
ข้อมูล เป็ นต้น นอกจำกนี้ในตำรำงไอโหนดยังประกอบด้วยตัวนับ (counter) ซึ่ง
เชื่อมบล็อกข้อมูลไฟล์ไว้ดว้ ยกัน เมื่อใดที่ลิงค์ไปที่ไอโหนด ตัวนับจะถูกบวกไป
ครั้งละหนึ่ง และเมื่อลิงค์ถูกย้ำยออกไปตัวนับก็จะลดลงทีละหนึ่ง และเมื่อใดที่
ตัวนับเท่ำกับ 0 เนื้อที่บล็อกของไฟล์จะถูกคืนให้กบั ระบบเพื่อไว้เก็บไฟล์อื่น ๆ
อีกต่อไป
กำรใช้ลิงค์เชื่อมโยงบล็อกต่ำง ๆ ของไฟล์ใน UNIX ทำได้ 3 แบบ คือ
Single indirect block, Double indirect block และ Triple indirect block ดังรู ป
7.14 และ 7.15
Page 61
ตัวอย่ างระบบไฟล์
รู ป 7.14 ไอโหนดของ UNIX
Page 62
ตัวอย่ างระบบไฟล์
Page 63