วันอังคารที่ 8 กุมภาพันธ์ พ.ศ. 2554

ระบบแฟ้มข้อมูล

ระบบแฟ้ม
แฟ้ม หรือไฟล์ (File)
หมายถึง กลุ่มของสารสนเทศที่สัมพันธ์กัน ซึ่งความสัมพันธ์เหล่านั้นกำหนดโดยผู้สร้างแฟ้ม และอาจใช้เก็บอะไรก็ได้
หมายถึง กลุ่มของระเบียนที่สัมพันธ์กัน เป็นเรื่องเดียวกัน
หมายถึง สิ่งที่บรรจุข้อมูลต่าง ๆ ไว้ในที่เดียวกัน
หมายถึง A named collection of related information that is recorded on secondary storage.
หมายถึง A collection of bytes stored as an individual entity. All data on disk is stored as a file with an assigned file name that is unique within the folder (directory) it resides in. To the computer, a file is nothing more than a string of bytes. The structure of a file is known to the software that manipulates it. For example, database files are made up of a series of records. Word processing files contain a continuous flow of text.
1. โครงสร้างแฟ้มข้อมูล
                 การจัดโครงสร้างของแฟ้มข้อมูลสามารถจัดได้หลายรูปแบบ แต่ส่วนใหญ่แล้วในทางปฏิบัติ ระบบปฏิบัติการมีวิธีการจัดโครงสร้างที่นิยมใช้งานใน 3 ลักษณะ คือ

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

    ()
()
()

ภาพแสดงโครงสร้างของแฟ้มข้อมูลแบบต่างๆ


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

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

                สำหรับในบทนี้จะกล่าวเน้นเฉพาะแฟ้มทั่วไปเท่านั้น ข้อมูลที่เก็บในแฟ้มทั่วไป อาจจะอยู่ในรูปของรหัสแอสกี หรือที่เรียกว่าแฟ้มแอสกี ( ASCII File )โดยจะมีการเก็บข้อมูลเป็นบรรทัด และแต่ละบรรทัดจะแยกออกจากกันโดยอักขระขึ้นบรรทัดใหม่ ( Carriage Return Character ) หรืออักขระเลื่อนบรรทัด ( Line Feed Character ) และแต่ละบรรทัดก็ไม่จำเป็นที่จะต้องมีจำนวนตัวอักขระเท่ากัน แฟ้มแอสกีนี้สามารถแสดงผลข้อมูลได้เหมือนกับข้อมูลที่มีอยู่ในแฟ้ม กล่าวคือ ข้อมูลที่แสดงผลออกมาไม่ว่าจะโดยอุปกรณ์แสดงผลแบบใด จะมีลักษณะเหมือนกับข้อมูลในแฟ้มนั้นทุกประการ เราสามารถสร้างหรือแก้ไขแฟ้มแอสกีได้โดยใช้อีดิเตอร์ทั่วไป ซึ่งทำได้สะดวกและรวดเร็ว จึงทำให้โปรแกรมใช้งานทั่วๆ ไป นิยมทำงานกับข้อมูลโดยใช้แฟ้มแอสกี นอกจากการที่ทำงานได้ง่ายและสะดวกแล้ว ยังสามารถย้ายข้อมูลไปทำงานกับโปรแกรมอื่นได้ง่าย สำหรับแฟ้มไบนารี่ ( Binary File ) เป็นแฟ้มที่มีข้อมูลภายในไม่ใช่รหัสแอสกี เป็นแฟ้มที่สามารถปฏิบัติการได้
ภาพแสดงโครงสร้างของแฟ้มปฏิบัติการของระบบปฏิบัติการยูนิกซ์
2.  ไดเรกทอรี่ (Directory)
ในการสร้างชื่อไฟล์ในปัจจุบันจะมีการกำหนดชื่อไฟล์โดยมีส่วนประกอบ 2 ส่วน คือส่วนชื่อ และส่วนนามสกุล โดยส่วนชื่อจะเป็นคำภาษาอังกฤษ หรือภาษาใดๆที่ระบบปฏิบัติการเข้าใจ ในระบบ DOS จะอนุญาตให้ตั้งชื่อได้ไม่เกิน 8 ตัวอักษร แต่ในวินโดว์ได้กำหนดความยาวชื่อได้มากกว่า ส่วนนามสกุล จะเป็นส่วนบอกชนิดของไฟล์นั้นๆ โดยทั่วไปจะมีความยาวอยู่ระหว่าง 0 ถึง 3 ตัวอักษร แต่อาจมีบางชนิดที่ยาว 4 หรือ 5 ตัวอักษร ในการตั้งชื่อไฟล์ เราจะเขียนส่วนของชื่อ และนามสกุลต่อกัน โดยมีเครื่องหมายจุด(.) เป็นตัวคั่น
ชนิดแฟ้มข้อมูล
ลักษณะนามสกุล
หน้าที่
Executable
Exe, Com, Bin
ประมวลผลคำสั่งภาษาเครื่อง
Object
Obj, O
ทำหน้าที่คอมไพล์, หรือเป็นภาษาเครื่อง
Source Code
C, P, Pas, 177, Asm, A
เป็น Source Code ของภาษาคอมพิวเตอร์
Batch
Bat, Sh
เป็นชุดคำสั่ง
Text
Txt, Doc
ข้อมูลที่เป็นข้อความ
Word Processor
Wp, Tex, Rrf
รูปแบบของการประมวลผลข้อความ
Library
Lib, A
ข้อมูลเกี่ยวกับ Library หรือ Routine
Print or View
Ps, Dvi, Gif, Jpg
ไฟล์ที่เก็บข้อมูลเป็นรหัส ASCII หรือฐาน 2
Archive
Arc, Zip, Rar
เป็นไฟล์ หรือกลุ่มไฟล์ที่ได้ผ่านการบีบอัดข้อมูลไว้
ไดเรกทอรี่ เป็นแฟ้มประเภทหนึ่งซึ่งทำหน้าที่เก็บรวบรวมรายชื่อของแฟ้ม และข้อมูลบางอย่างที่สำคัญของแฟ้มเอาไว้ ในระบบปฏิบัติการทุกระบบจะต้องมีไดเรกทอรี่เพื่อเก็บรายชื่อแฟ้มต่างๆ เอาไว้  ผู้ใช้สามารถสร้าง ลบ ไดเรกทอรี่ได้ 

โครงสร้างของระบบไดเรกทอรี่
                โครงสร้างของไดเรกทอรี่ประกอบด้วยหน่วยย่อยหลายหน่วย แต่ละหน่วยจะเก็บข้อมูลของแฟ้ม 1 แฟ้ม โดยข้อมูลที่เก็บคือ ชื่อแฟ้ม แอตริบิวของแฟ้ม และตำแหน่งที่เก็บแฟ้มนั้น
                นอกจากนี้การเก็บข้อมูลของแฟ้มอาจจะทำได้โดยการเก็บชื่อของแฟ้มใว้ในไดเรกทอรี่ แต่จะเก็บรายละเอียดของแฟ้มไว้ที่อื่น  ดังแสดงในภาพด้านล่าง เมื่อมีการเปิดแฟ้มข้อมูล ระบบปฏิบัติการจะทำการค้นหาในไดเรกทอรี่จนกระทั่งพบแฟ้มที่ต้องการจึงทำการอ่านรายละเอียดของแฟ้ม 
                ในการจัดไดเรกทอรี่ของระบบปฏิบัติการแต่ละระบบจะแตกต่างกันออกไป แบบที่ง่ายและสะดวกที่สุด คือให้ระบบมีไดเรกทอรี่อยู่เพียงไดเรกทอรี่เดียว และให้แฟ้มทุกแฟ้มอยู่ใน ไดเรกทอรี่เดียวกัน ระบบนี้เรียกว่าระบบไดเรกทอรี่เดี่ยว ( Single Directory ) หรือไดเรกทอรี่ 1 ระดับ ( 1 Level Directory ) ดังแสดงในภาพด้านล่าง () ไดเรกทอรี่แบบนี้ไม่ค่อยสะดวกในการใช้งาน ถ้ามีผู้ใช้หลายคน แต่ละคนมีแฟ้มหลายแฟ้มหลายชนิด แฟ้มทั้งหมดนี้จะอยู่ปนกันไม่สามารถจัดแบ่งแยกแฟ้มของผู้ใช้แต่ละคนออกจากกัน ถ้าเกิดกรณีที่มีการสร้างแฟ้มของผู้ใช้คนหนึ่งตรงกับแฟ้มของผู้ใช้คนอื่น (มีชื่อและส่วนขยายเดียวกัน) อาจทำให้แฟ้มของผู้นั้นทำลายแฟ้มเก่าที่มีอยู่แล้ว (โดยเขียนทับ) หรืออาจทำให้การสร้างแฟ้มนั้นทำไม่ได้
                ในระบบปฏิบัติการของไมโครคอมพิวเตอร์รุ่นเก่า ๆ เท่านั้น ที่มีการทำระบบไดเรกทอรี่เดี่ยวเพื่อแก้ปัญหาของการตั้งชื่อแฟ้มตรงกันและแฟ้มของผู้ใช้ทุกคนอยู่ปนกัน ผู้ออกแบบระบบปฏิบัติการในระยะต่อมาจึงพัฒนาโครงสร้างของระบบไดเรกทอรี่ใหม่ ให้ผู้ใช้ไดเรกทอรี่แต่ละคนสามารถสร้างไดเรกทอรี่ของตนเองได้ 1 ไดเรกทอรี่เรียกว่าเป็นไดเรกทอรี่ย่อย ( Sub-Directory ) ไดเรกทอรี่ย่อยนี้จะอยู่ภายใต้ไดเรกทอรี่เดียวกัน แสดงในรูปด้านล่าง () เรียกว่า ไดเรกทอรี่ราก ( Root Directory ) ไดเรกทอรี่หนึ่งๆ อาจจะจะมีไดเรกทอรี่ย่อยได้หลายไดเรกทอรี่ และภายในแต่ละไดเรกทอรี่นี้มีแฟ้มซึ่งผู้ใช้สามารถตั้งชื่อแฟ้มและชนิดให้ตรงกับแฟ้มของผู้ใช้คนอื่นได้ถ้าแฟ้มทั้ง 2 นี้อยู่ต่างไดเร็กทอรนี่กัน เราเรียกระบบไดเรกทอรี่แบบนี้ว่า ระบบไดเรกทอรี่ 2 ระดับ ( 2 Level Directory ) อย่างไรก็ตามไดเรกทอรี่แบบนี้ก็ยังมีปัญหากับผู้ใช้ที่มีแฟ้มมากและต้องการจัดหมวดหมู่ของแฟ้ม เพื่อความสะดวกในการใช้งาน และเพื่อแก้ไขปัญหาที่เกิดกับผู้ใช้ในระบบ ไดเรกทอรี่ 2 ระดับ ระบบปฏิบัติการในรุ่นหลังๆ จึงยอมให้ผู้ใช้สามารถสร้างไดเรกทอรี่ย่อยของตนเองได้มากตามที่ต้องการ ดังแสดงในภาพด้านล่าง() ทำให้ผู้ใช้สามารถแบ่งแยกแฟ้มประเภทเดียวกันให้อยู่ในไดเรกทอรี่เดียวกันไม่ปะปนรวมกับแฟ้มประเภทอื่นๆ ทำให้ไดเรกทอรี่มีลักษณะเหมือนเป็นโครงสร้างแบบต้นไม้ เราเรียกระบบไดเรกทอรี่นี้ว่าไดเรกทอรี่หลายระดับ
3. เส้นทาง (Path)
                ในการอ้างถึงแฟ้มในไดเรกทอรี่ หรือการอ้างไดเรกทอรี่ย่อยในไดเรกทอรี่ จะอ้างโดยการบอกเส้นทางหรือพาธ ( Path ) ของแฟ้มนั้นๆ เพื่อให้ระบบรู้ว่าเรากำลังอ้างถึงแฟ้มในไดเรกทอรี่ใด ซึ่งจะทำให้สามารถเข้าถึงแฟ้มที่ต้องการได้ถูกต้อง เช่น กรณีที่มีแฟ้มคนละแฟ้มซึ่งมีชื่อเดียวกันแต่อยู่ในคนละไดเรกทอรี่ การบอกเส้นทางจะทำให้ระบบทราบว่าผู้ใช้ต้องการจะอ้างถึงแฟ้มใด การอ้างถึงแฟ้มมี 2 วิธี คือ การอ้างด้วยเส้นทางสมบูรณ์ ( Absolute Path Name ) หรือเส้นทางสัมพัทธ์ ( Relative Path Name ) การอ้างถึงแฟ้มโดยใช้เส้นทางสมบูรณ์เป็นการอ้างถึงแฟ้มโดยเริ่มต้นจากไดเรกทอรี่รากแล้วตามด้วยชื่อไดเรกทอรี่ย่อยต่างๆ ไล่มาตามลำดับชั้นของไดเรกทอรี่จนกระทั่งถึงไดเรกทอรี่ย่อยที่เก็บแฟ้มนั้นแล้วจึงตามด้วยชื่อแฟ้ม เช่นในดอสจะใช้เครื่องหมาย "\" แทนไดเรกทอรี่ราก หรือ ในยูนิกซ์ใช้เครื่องหมาย "/" แทนไดเรกทอรี่ราก เช่นการอ้างเส้นทางสมบูรณ์ในระบบปฏิบัติการดอสจะมีลักษณะการอ้างดังนี้
\textbook\os\file.txt
                จากตัวอย่างเครื่องหมาย '\' ตัวแรกหมายถึงไดเรกทอรี่ราก textbook เป็นไดเรกทอรี่ย่อยระดับแรก os  เป็นไดเรกทอรี่ย่อยระดับที่สอง และ file.txt คือชื่อแฟ้มที่ต้องการอ้าง 
                ไดเรกทอรี่ย่อยจะมีไดเรกทอรี่ที่ชื่อ "." และ ".." ไดเรกทอรี่ โดย "." จะหมายถึงตัวไดเรกทอรี่ย่อยนั้นเอง และ ".." หมายถึงไดเรกทอรี่ที่อยู่เหนือขึ้นไปหนึ่งระดับ เช่นถ้าไดเรกทอรี่ปัจจุบันคือ os ดังนั้น "." จะหมายถึงตัวไดเรกทอรี่ os และ ".." หมายถึงไดเรกทอรี่ textbook ดังนั้นหากไดเรกทอรี่ปัจจุบันคือ os  และต้องการอ้างถึงแฟ้ม unix ในไดเรกทอรี่ research โดยการอ้างเส้นทางสัมพัทธ์ระบบปฏิบัติการดอสจะทำได้ดังนี้
..\..\research\unix
จากตัวอ ย่างเครื่องหมาย ".." ตัวแรก หมายถึงให้ย้อนกลับไปในไดเรกทอรี่ชั้นบน 1 ระดับ ซึ่งก็คือย้อนกลับไปที่ไดเรกทอรี่ textbook (ถึงขั้นนี้การทำงานยังคงอยู่ในไดเรกทอรี่ textbook อยู่) ".." ตัวที่สองคือการให้ย้อนกลับไปไดเรกทอรี่ที่เหนือกว่า textbook อีก 1 ระดับ research เป็นการบอกเส้นทางว่าให้เข้าไปในไดเรกทอรี่ research


3. การเข้าถึงแฟ้มข้อมูล(Access Method)
 
3.1  การเข้าถึงข้อมูลแบบเรียงลำดับ(Sequential Access)
ในการเข้าถึงข้อมูลแบบเรียงลำดับเป็นวิธีการแก้ไขที่ธรรมดาที่สุด เช่นตัวแกไข(Editor) และคอมไพล์เลอร์(Compiler) จะมีวิธีการเข้าถึงข้อมูลแบบนี้
การทำงานบนแฟ้มแบบนี้ คือ การอ่านและการเขียน การอ่านจะอ่านส่วนถัดไปของแฟ้ม และเปลี่ยนค่าตัวชี้แฟ้มข้อมูลโดยอัตโนมัติตามตำแหน่งของ I/O เหมือนกับการเขียนแบบต่อท้ายข้อมูล แต่ละแฟ้มข้อมูลสามารถกลับไปเริ่มต้นใหม่ และบางระบบโปรแกรมอาจจะสามารถข้ามไปข้างหน้า หรือข้างหลัง
สำหรับการเข้าถึงข้อมูลแบบเรียงลำดับเป็นพื้นฐานการทำงานของเทปแม่เหล็ก
                                                      3.2  การเข้าถึงแบบสุ่ม random access
                             การเข้าถึงโดยสุ่มการเข้าถึงข้อมูลที่บันทึกไว้โดยสุ่มหมายความว่าเข้าถึงได้ทุก ๆ จุดได้โดยทันทีทันใด เป็นต้นว่าการเข้าถึงข้อมูลที่เก็บในจานบันทึกซึ่งจะใช้เวลาเท่ากันหมดไม่ว่าเก็บไว้ที่จุดไหนต่างกับการเข้าถึงข้อมูลที่เก็บไว้ในแถบบันทึกหรือเทปถ้าข้อมูลที่ต้องการอยู่ตอนปลายก็จะต้องรอให้เทปเดินหน้าไปจนถึงจุดนั้นเสียก่อนการเข้าถึงข้อมูลโดยวิธีนี้ จะมีหัวอ่าน/บันทึก (read head)ต่อกับก้านโลหะที่เคลื่อนเข้า/ออกได้ เหนือจานที่หมุนรอบแกนอีกทีหนึ่ง
เปรียบเทียบ) ถ้าเปรียบกับการฟังเพลงจากจานเสียงและเทปจะทำให้เข้าใจได้ง่ายขึ้น กล่าวคือ ถ้าเป็นเทปหรือแถบบันทึก
หากจะฟังเพลงที่อยู่ในลำดับท้าย ๆก็จะต้องรอให้เทปหมุนผ่านเพลงในลำดับแรก ๆ ไปก่อน แต่ถ้าเป็นจานเสียง
เราต้องการฟังเพลงใด ก็สั่งได้ทันทีดู sequential access เปรียบเทียบ


4. การจัดระบบแฟ้ม (File system)
หมายถึง สิ่งที่ผู้ใช้เกี่ยวข้องโดยตรง แต่มักไม่รู้ตัวเนื่องจากเป็นการอำนวยความสะดวกโดยระบบปฏิบัติการอย่างอัตโนมัติ ระบบแฟ้มเป็นฐานที่ทำให้เกิดการจัดการโปรแกรม และข้อมูลในทุกการดำเนินงานของระบบซอฟท์แวร์ที่เข้าควบคุมสื่อเก็บข้อมูล
ระบบแฟ้มประกอบด้วย 3 ส่วน คือ 1)รวมรวมแฟ้ม (Collection of Files) เก็บข้อมูลที่สัมพันธ์ให้ถูกอ้างอิงได้ในรูปแฟ้มข้อมูล 2)โครงสร้างแฟ้ม (Directory Structure) จัดการอำนวยการเข้าถึงแฟ้มและจัดกลุ่มอย่างเป็นระบบ 3)พาทิชัน (Partitions) ซึ่งแยกเป็นทางกายภาพ (Physically) หรือทางตรรก (Logically) ของระบบไดเรกทรอรี่ (Directory) โดยเนื้อหาในบทนี้จะกล่าวถึงแฟ้ม และโครงสร้างไดเรกทรอรี่ รวมถึงการป้องกันแฟ้ม จากการเข้าถึงในระบบ Multiple users และระบบ File sharing
วิธีการจัดเก็บข้อมูลที่ใช้กันใน OS ทุกตัวคือ จัดเก็บข้อมูลเป็นแฟ้มข้อมูลหรือไฟล์ (file) ไฟล์คือสิ่งที่บรรจุข้อมูล,โปรแกรมหรืออะไรก็ได้ที่ผู้ใช้ต้องการรวบรวมไว้เป็นชุดเดียวกัน การอ้างถึงไฟล์หรือข้อมูลต่าง ๆ ภายในไฟล์ของโปรแกรม จะไม่มีความเกี่ยวข้องกับแอดเดรสของโปรแกรมใด ๆ ทั้งสิ้น OS มีโอเปอร์เรชั่นพิเศษที่เรียกว่า system call ไว้ให้โปรแกรมเรียกใช้ เพื่อให้สามารถจัดการงานที่เกี่ยวกับไฟล์ได้

                 4.1  การจัดเก็บแฟ้มเรียงต่อเนื่องกันตลอดทั้งแฟ้ม ( Continuous Allocation )
                                เป็นแนวคิดพื้นฐานในการจัดเก็บแฟ้มข้อมูล โดยจะจัดเก็บแฟ้มข้อมูลในรูปของลำดับบล็อกที่ต่อเนื่องกัน    เช่นหากแต่ละบล็อกมีขนาด 1 กิโลไบต์ แฟ้มข้อมูลขนาด 50 กิโลไบต์ ก็ต้องใช้เนื้อที่ขนาด 50 กิโลไบต์ที่ต่อเนื่องกันในดิสก์ ซึ่งแนวคิดในการจัดเก็บข้อมูลแบบนี้จะมีข้อดี 2 ประการคือ มีโครงสร้างไม่ซับซ้อนและใช้งานง่าย เนื่องจากในระบบแฟ้มข้อมูลแบบนี้ไม่จำเป็นต้องมีการรักษาค่าต่างๆ ของดิสก์เลย เพียงแต่ทราบตำแหน่งเริ่มต้นของแฟ้มข้อมูลก็จะสามารถทำงานได้โดยการอ่านข้อมูลต่อเนื่องกันไปเรื่อยๆ จนกว่าจะสิ้นสุดแฟ้มข้อมูล และข้อดีประการที่สองคือในการอ่านข้อมูลทั้งแฟ้มนั้นสามารถทำได้โดยใช้คำสั่งอ่านข้อมูลเพียงคำสั่งเดียวก็จะสามารถอ่านข้อมูลที่มีในแฟ้มข้อมูลนั้นได้ทั้งหมด

        4.2  การจัดเก็บแฟ้มแบบตารางแฟต (File Allocation Table : FAT )
                                ในการจัดเก็บแฟ้มแบบแฟต  ระบบปฏิบัติการต้องมีวิธีที่จะทราบว่าแต่ละบล็อคของแฟ้มจะเก็บไว้ในบล็อคใดในดิสก์ และไม่จำเป็นที่ข้อมูลของแฟ้มเดียวกันจะอยู่ใน บล็อคที่ติดกัน ซึ่งจะต้องมีลิงก์เชื่อมระหว่างบล็อคที่เก็บข้อมูลของแฟ้มแฟ้มเดียวกัน ดังนั้นใน บล็อคขนาด 512 ไบต์ จะใช้ประโยชน์ในการเก็บข้อมูลของแฟ้มเพียง 510 ไบต์ ส่วนอีก 2 ไบต์ที่เหลือจะใช้ในการเก็บหมายเลขบล็อคลำดับถัดไปที่เก็บข้อมูลแฟ้มเดียวกัน ซึ่งในกรณีที่แฟ้มมีขนาดใหญ่จะทำให้ต้องใช้เวลามากในการเข้าถึงแฟ้ม เนื่องจากต้องย้ายไปยังบล็อคต่างๆ ที่เก็บข้อมูลของแฟ้มหลายบล็อค
                นอกจากการใช้ลิงก์ลิสต์ในการควบคุมบล็อคสำหรับเก็บแฟ้มแล้ว ยังมีวิธีการอื่นๆ ที่ช่วยลดปัญหาที่เกิดขึ้น คือการทำตารางเก็บค่าหมายเลขบล็อคแต่ละบล็อคที่เก็บแฟ้มไว้แทนการเก็บไว้ที่ท้ายบล็อคนั้นๆ ซึ่งเรียกว่าตารางการจัดสรรแฟ้มหรือที่เรียกกันทั่วไปว่าตารางแฟต ดังภาพด้านล่าง โดยทั่วไปตารางการจัดสรรแฟ้มจะถูกโหลดมาเก็บไว้ในหน่วยความจำทำให้สามารถเข้าถึงแฟ้มข้อมูลได้อย่างรวดเร็ว 


ภาพแสดงแฟ้มข้อมูลแบบตารางแฟต
                จากตัวอย่างตารางแฟต จะมีการเก็บหมายเลขบล็อคของแฟ้ม 2 แฟ้ม คือแฟ้มแรก เริ่มต้นที่บล็อคหมายเลข 6 แล้วตามด้วยบล็อคหมายเลข 4 หมายเลข 6 และ หมายเลข 2 ตามลำดับ สำหรับแฟ้มที่สองเริ่มที่บล็อคหมายเลข 8 แล้วตามด้วยบล็อคหมายเลข 16 หมายเลข 15 และ หมายเลข 7 ตามลำดับ วิธีการนี้เป็นวิธีการที่ใช้ในระบบปฏิบัติการดอส และจากการที่ตารางแฟตมีความสำคัญต่อการเข้าถึงแฟ้มดอสจึงออกแบบให้มีตารางแฟต 2 ตารางที่มีข้อมูลภายในเหมือนกันโดยอีกตารางเป็นตารางแฟตสำรองในกรณีที่ตารางแรกเกิดความเสียหาย  ระบบแฟ้มแบบบแฟต


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

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

เรดแบบแบ่งส่วนแฟ้ม (Striping RAID)
แนวคิดในการทำงานแบบแบ่งส่วนของแฟ้มนี้เป็นความพยายามเพิ่มความความเร็วในการทำงานและเพิ่มอัตราการขนถ่ายข้อมูลให้สูงขึ้น โดยการแบ่งส่วนของแฟ้มออกเป็นส่วนๆ และกระจายแต่ละส่วนไปจัดเก็บในดิสก์แต่ละตัวของเรด (โดยจัดเก็บในตำแหน่งของบล็อคตำแหน่งเดียวกันหมด) และเมื่อต้องการเข้าถึงข้อมูลเพื่อนำมาใช้งานก็ทำการอ่านข้อมูลจากตำแหน่งดังกล่าวพร้อมกันในทุกดิสก์ (ซึ่งจะสามารถอ่านข้อมูลจากดิสก์ทุกตัวได้ในเวลาเดียวกัน) ทำให้อัตราเร็วในการขนถ่ายข้อมูลสูงขึ้น (ซึ่งการเพิ่มขึ้นของอัตราเร็วในการขนถ่ายข้อมูลนี้จะขึ้นอยู่กับจำนวนของดิสก์ที่ใช้ในการจัดเก็บข้อมูลด้วย) เพื่อให้มองเห็นภาพการทำงานของการใช้งานเรดแบบแบ่งส่วนของแฟ้มได้ชัดเจนยิ่งขึ้นจะขอยกตัวอย่างการทำงานดังต่อไปนี้ สมมุตว่าดิสก์ตัวหนึ่งมีความจุ 200 เมกกะไบต์ แบ่งออกเป็นบล็อค และแต่ละบล็อคมีขนาด 1 กิโลไบต์ และมีอัตราเร็วในการขนถ่ายข้อมูลเท่ากับ 0.344 มิลลิวินาทีต่อ 1 บล็อค เมื่อมีการนำดิสก์ดังกล่าวไปใช้งานในรูปแบบเรดโดยมีการติดตั้งดิสก์จำนวน 2 ตัวในการทำงานก็จะสามารถขนถ่ายข้อมูลได้คราวละ 2 บล็อค โดยแต่ละบล็อคมาจากดิสก์แต่ละตัว ดังนั้นอัตราการขนถ่ายข้อมูลโดยรวมก็จะสูงขึ้นจาก 2.98 เมกกะไบต์ต่อวินาที ( 1 กิโลไบต์ / 0.000344 ) เป็น 5.95 เมกกะไบต์ต่อวินาที (2 กิโลไบต์ / 0.000344) และอัตราเร็วในการขนถ่ายข้อมูลนี้จะเพิ่มขึ้นอีกหากมีการติดตั้งดิสก์ของเรดให้มากขึ้น
แหล่งอ้างอิง