วันจันทร์ที่ 7 กุมภาพันธ์ พ.ศ. 2554

1. โครงสร้างของแฟ้มข้อมูล

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

ที่มา: http://www.tkc.ac.th/osunun/e-booksystem/u7_1.htm

2. ชนิดของแฟ้มข้อมูล

  ชนิดของแฟ้มข้อมูล

ระบบปฏิบัติการโดยทั่วไป จะสนับสนุนการทำงานกับแฟ้มได้หลายชนิด เช่น แฟ้มข้อมูลทั่วไป ไดเรกทอรี่ แฟ้มของอักขระ หรือแฟ้มของกลุ่มข้อมูล เป็นต้น โดยมีรายละเอียดของแฟ้มแต่ละชนิด ดังนี้
dia_pink_8.gif        แฟ้มทั่วไป เป็นแฟ้มที่เก็บข้อมูลต่างๆ ของผู้ใช้ ซึ่งอาจจะเก็บในลักษณะใดลักษณะหนึ่งตามที่ได้แสดงไว้ในรูป
dia_pink_8.gif        ไดเรกทอรี่ เป็นแฟ้มของระบบซึ่งใช้ในการจัดการโครงสร้างของระบบแฟ้มข้อมูล เช่น การจัดกลุ่มของแฟ้มประเภทเดียวกัน หรือมีความเกี่ยวข้องกันไว้ในไดเรกทอรี่เดียวกัน เป็นต้น ซึ่งจะกล่าวถึงรายละเอียดของไดเรกทอรี่ต่อไป
dia_pink_8.gif        แฟ้มอักขระ แฟ้มอักขระจะมีความเกี่ยวข้องกับการรับหรือการแสดงผลข้อมูลผ่านทางพอร์ทอนุกรมซึ่งจะมีการกระทำกับข้อมูลคราวละ 1 อักขระ เช่น แป้นพิมพ์ เป็นต้น
dia_pink_8.gif        แฟ้มของกลุ่มข้อมูล เป็นแฟ้มที่มีการดำเนินการกับข้อมูลในลักษณะ บล็อค หรือกระทำกับข้อมูลในแฟ้มคราวละ 1 กลุ่มข้อมูล เช่น ดิสก์ เป็นต้น
                สำหรับในบทนี้จะกล่าวเน้นเฉพาะแฟ้มทั่วไปเท่านั้น ข้อมูลที่เก็บในแฟ้มทั่วไป อาจจะอยู่ในรูปของรหัสแอสกี หรือที่เรียกว่าแฟ้มแอสกี ( ASCII File )โดยจะมีการเก็บข้อมูลเป็นบรรทัด และแต่ละบรรทัดจะแยกออกจากกันโดยอักขระขึ้นบรรทัดใหม่ ( Carriage Return Character ) หรืออักขระเลื่อนบรรทัด ( Line Feed Character ) และแต่ละบรรทัดก็ไม่จำเป็นที่จะต้องมีจำนวนตัวอักขระเท่ากัน แฟ้มแอสกีนี้สามารถแสดงผลข้อมูลได้เหมือนกับข้อมูลที่มีอยู่ในแฟ้ม กล่าวคือ ข้อมูลที่แสดงผลออกมาไม่ว่าจะโดยอุปกรณ์แสดงผลแบบใด จะมีลักษณะเหมือนกับข้อมูลในแฟ้มนั้นทุกประการ เราสามารถสร้างหรือแก้ไขแฟ้มแอสกีได้โดยใช้อีดิเตอร์ทั่วไป ซึ่งทำได้สะดวกและรวดเร็ว จึงทำให้โปรแกรมใช้งานทั่วๆ ไป นิยมทำงานกับข้อมูลโดยใช้แฟ้มแอสกี นอกจากการที่ทำงานได้ง่าย
และสะดวกแล้ว ยังสามารถย้ายข้อมูลไปทำงานกับโปรแกรมอื่นได้ง่าย สำหรับแฟ้มไบนารี่ ( Binary File ) เป็นแฟ้มที่มีข้อมูลภายในไม่ใช่รหัสแอสกี เป็นแฟ้มที่สามารถปฏิบัติการได้
ภาพแสดงโครงสร้างของแฟ้มปฏิบัติการของระบบปฏิบัติการยูนิกซ์
                อีกรูปแบบหนึ่งของแฟ้มไบนารี่ คือแฟ้มไบนารี่ที่เป็นแฟ้มในการเก็บไลบลารี่ ( Library ) หรือโมดูล ( Module ) ที่ได้รับการคอมไพล์แล้ว แต่ยังไม่มีการลิงก์ ซึ่งแฟ้มเหล่านี้จะถูกใช้งานโดยโปรแกรมอื่นๆ จะทำงานเชื่อมแฟ้มเหล่านี้เข้าเป็นส่วนหนึ่งของโปรแกรมนั้นเพื่อนำไปใช้งาน ระบบปฏิบัติการโดยทั่วไป จะรู้จักแฟ้มปฏิบัติการเพียงหนึ่งหรือสองประเภท เช่น ในระบบปฏิบัติการดอสจะรู้จักแฟ้มปฏิบัติการ 2 ประเภทคือ .com และ .exe 

ที่มา: http://www.tkc.ac.th/osunun/e-booksystem/u7_2.htm

3. การเข้าถึงแฟ้มข้อมูล

3.1 การเข้าถึงข้อมูลแบบเรียงลำดับ (Sequential Access)

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

ที่มา: http://www.tkc.ac.th/osunun/e-booksystem/u7_2.htm

3.2 การเข้าถึงข้อมูลแบบสุ่ม (Random Access)

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


ที่มา: http://www.tkc.ac.th/osunun/e-booksystem/u7_2.htm

4. การจัดระบบแฟ้ม File System

 การจัดระบบแฟ้ม File System

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

4.1 การจัดเก็บแฟ้มเรียงต่อเนื่องกันตลอดทั้งแฟ้ม ( Continuous Allocation )

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

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

ที่มา: http://www.tkc.ac.th/osunun/e-booksystem/u7_5.htm