การทำงานของแฟ้มข้อมูล

Download Report

Transcript การทำงานของแฟ้มข้อมูล

ระบบแฟ้มข้อมู ล
FILE-SYSTEM INTERFACE
Advanced Operating System
Operating System Technology
่
แนวความคิดเกียวก
ับแฟ้มข้อมู ล (File
Concept)
่ มพันธ ์กัน ถู กเก็บ
• แฟ้มข้อมู ล คือ สารสนเทศทีสั
ไว้ในหน่ วยความจาสารอง
• แฟ้มข้อมู ลถูกกาหนดเป็ นโครงสร ้าง ตามชนิ ด
ของข้อมู ล
่ ยงก ันในบรรทัด
- Text file คือ ลาดับของตัวอ ักษรทีเรี
(หรือหน้า)
- Source file คือ ลาดับของโปรแกรมย่อย (subroutine)
และฟั งก ์ช ัน(อาจเป็ นการประกาศค่าตามประโยค)
่ ดเรียงในบล็อคเข้าใจ
- Object file คือ ลาดับของไบต ์ ทีจั
่
ได้ดว้ ยตัวเชือมโยง
(linker) ของระบบ
- Executable file คือ ลาดับของส่วนของรหัสโปรแกรม
คุณลักษณะของแฟ้มข้อมู ล (File
attributes)
่
่ (Name) – ชือแฟ้มข้อมู ลคือ สัญลักษณ์
• ชือ
่ บไว้ในรู ปแบบทีมนุ
่ ษย ์สามารถ
(สารสนเทศ) ทีเก็
เข้าใจได้
้ าเป็ นสาหร ับระบบซึงสนั
่
• ชนิ ด (Type) – ส่วนนี จ
บสนุ น
ชนิ ดของข้อมู ลหลายๆชนิ ด
้
• ตาแหน่ ง (Location) - เป็ นตัวชีไปยั
งอุปกรณ์และ
้ั
ตาแหน่ งของแฟ้มข้อมู ลบนอุปกรณ์นน
• ขนาด (Size) – ขนาดของแฟ้มข้อมู ลในปั จจุบน
ั (ไบต ์,
คาหรือบล็อค)
• การป้ องกัน (protection) – การควบคุมให้สามารถ
อ่าน เขียน ทางาน ฯลฯ
คุณลักษณะของแฟ้มข้อมู ล (File
attributes)
่
• เวลา ว ันที และเอกลักษณ์เฉพาะของผู ใ้ ช้ (Time,
date, and user identification) – เก็บข้อมู ลพวก ว ันที่
้
่
้ นมา,
้ั ดท้ายเมือไหร่
สร ้างแฟ้มนี ขึ
ปร ับปรุงครงสุ
, และ
้ั ดท้ายเมือไหร่
่
ใช้ครงสุ
้
่
• ข้อมู ลเหล่านี จะเป็
นประโยชน์ในเรืองการป้
องก ัน,
การร ักษาความปลอดภัยและการควบคุมการใช้
งาน
File info Window on Mac OS X
การทางานของแฟ้มข้อมู ล (File
Operation)
• การสร ้างแฟ้มข้อมู ล (Creating a file)
• หาทีว่่ างในระบบแฟ้มข้อมู ล
• ช่องว่างของแฟ้มข้อมู ลใหม่ตอ
้ งถู กสร ้างใน
่
ไดเรกทอรี (ไดเรกทอรีจะบันทึกชือแฟ
้ ม และ
ตาแหน่ งในระบบแฟ้มข้อมู ล)
การเขียนแฟ้มข้อมู ล (Writing a file)
่
• ใช้การเรียกระบบเพือการเขี
ยนแฟ้ม ต้องระบุให้
่
่
เจาะจงชือแฟ
้ มและสารสนเทศทีจะถู
กเขียนลง
แฟ้มข้อมู ล
่
• โดยระบบจะค้นหาไดเรกทอรี เพือหาต
าแหน่ งของ
่ องการเก็บ
แฟ้มข้อมู ลระบบทีต้
่
่
• write pointer เพือระบุ
ตาแหน่ งถ ัดไปทีจะต้
องเขียน
การอ่านแฟ้มข้อมู ล (Reading a file)
่
่ ่
• ใช้การเรียกระบบเพือระบุ
ชอแฟ
ื่
้ มและทีอยู
(ใน
่
หน่ วยความจา) บล็อคถ ัดไปของแฟ้มข้อมู ลทีควรใส่
้
• จากนันไดเรกทอรี
จะถู กค้นหาและระบบจะเก็บ
read
่
่ องอ่าน
pointer เพือระบุ
ตาแหน่ งถ ัดไปทีต้
่ กอ่านหรือเขียน
• แฟ้มทีถู
ระบบส่วนใหญ่มก
ั เก็บ
่ ทงอ่
้ั านและเขียนได้เรียกว่า
pointer ไว้ตวั เดียวทีใช้
้ าแหน่ งแฟ้มปั จจุบน
“ตัวชีต
ั ”
(current-file-position
่
้ และลดความซ
่
pointer) เพือประหยั
ดพืนที
ับซ ้อนของ
ระบบ
การย้ายตาแหน่ งภายในแฟ้มข้อมู ล
(Repositioning within a file)
่
• เริมจากค้
นหาไดเรกทอรีทต้
ี่ องการและกาหนดค่าให้
้ าแหน่ งแฟ้มปั จจุบน
ตัวชีต
ั
• การย้ายตาแหน่ งภายในแฟ้มข้อมู ลไม่จาเป็ นต้อง
่
้ ยกว่า การ
เกียวข้
องก ับ I/O การทางานของแฟ้มนี เรี
ค้นหา (seek) ข้อมู ล
การลบแฟ้มข้อมู ล (Deleting a file)
่
่
• เริมจากการค้
นหาไดเรกทอรีทมี
ี่ ชอจากแฟ
ื่
้ มทีจะ
ลบ
้
้
้ ว่่ าง
• ปลดปล่อยทีว่่ างทังหมดของแฟ
้ มนัน
(ดังนันที
่
ดังกล่าวก็สามารถให้แฟ้มอืนใช้
งานได้)
้
• ลบข้อมู ลนันในไดเรกทอรี
ทงิ ้
้ั
การต ัดแฟ้มข้อมู ลให้สนลง
(truncating a
file)
่ ใ้ ช้ตอ
• เมือผู
้ งการให้แฟ้มข้อมู ลมีคุณลักษณะ
้
เหมือนเดิม แต่ตอ
้ งการลบเนื อหาของแฟ
้ มข้อมู ลแล้ว
้
ใส่เนื อหาใหม่
้ อให้
่
• สามารถใช้ฟังก ์ช ันนี เพื
คุณลักษณะต่างๆ ยังคง
่ และแก้ไขล่าสุด)
อยู ่ (ยกเว้นขนาด ว ันเวลาทีใช้
่ ยวข้
่
สารสนเทศหลายส่วนทีเกี
องกับ
การเปิ ดแฟ้มข้อมู ล ดังนี ้
้ ้ มข้อมู ล (File pointer) – ระบบซึงไม่
่ มรี ะยะห่าง
• ตัวชีแฟ
จากขอบของแฟ้มข้อมู ล (file offset) ระบบต้องตาม
่ านหรือเขียนเป็ นครงสุ
้ั ดท้ายเหมือน
รอยตาแหน่ งทีอ่
้ าแหน่ งแฟ้มข้อมู ลปั จจุบน
ตัวชีต
ั (current-fileposition pointer)
่
• การนับการเปิ ดแฟ้มข้อมู ล (File open count) - เมือ
แฟ้มข้อมู ลถูกปิ ด ระบบปฏิบต
ั งิ านต้องใช้ชอ
่ งของ
ตารางเปิ ดแฟ้มข้อมู ล (open file table ) อีกครง้ั
หรือไม่กใ็ ช้ทว่
ี่ างในตาราง
• กระบวนการหลายๆ กระบวนการอาจจะเปิ ด
แฟ้มข้อมู ลระบบต้องรอให้แฟ้มสุดท้ายปิ ดก่อนจะ
ลบช่องในตารางเปิ ดแฟ้มสุดท้าย ระบบจึงจะลบ
่ ยวข้
่
สารสนเทศหลายส่วนทีเกี
องกับ
การเปิ ดแฟ้มข้อมู ล ดังนี ้
• ตาแหน่ งของแฟ้มข้อมู ลบนดิสก ์ (Disk location of
the file) – การทางานของแฟ้มข้อมู ลส่วนใหญ่
ต้องการให้ระบบปร ับปรุงข้อมู ลภายในแฟ้มข้อมู ล
่ าเป็ น
สารสนเทศทีจ
• สาหร ับระบุตาแหน่ งแฟ้มข้อมู ลบนดิสก ์ถู กเก็บไว้ใน
่
่
่
หน่ วยความจาเพือหลี
กเลียงที
จะต้
องอ่านจากดิสก ์
สาหร ับการทางานแต่ละครง้ั
ชนิ ดของแฟ้มข้อมู ล (File types)
•
่
เทคนิ คทัวๆไปส
าหร ับการนาชนิ ดของแฟ้มข้อมู ลไป
่
ใช้ คือการรวมชนิ ดเข้าเป็ นส่วนหนึ่ งของชือ
่
แฟ้มข้อมู ล ชือจะถู
กแบ่งเป็ น 2 ส่วนคือ
่
• ชือ
• นามสกุล (extension) หรือส่วนขยาย
่
โดยทัวไปจะแยกก
ันโดยใช้ (.)
ชนิ ดของแฟ้มข้อมู ล (File types)
โครงสร ้างของแฟ้มข้อมู ล (File structure)
่
• แฟ้มข้อมู ลต้องมีโครงสร ้างทีระบบปฏิ
บต
ั ก
ิ ารเข้าใจได้
่
เช่น ระบบปฏิบต
ั ก
ิ าร อาจต้องการ executable file ทีมี
่
โครงสร ้างเฉพาะเพือเอาไปก
าหนดว่าจะ
load
แฟ้มข้อมู ลไว้ยงั ตาแหน่ งใดในหน่ วยความจาและ
่
่ างาน
ตาแหน่ งของคาสังแรก
ทีท
่ บสนุ น
ตัวอย่างหนึ่ งของระบบปฏิบต
ั ก
ิ ารทีสนั
โครงสร ้าง
่ ้ มข้อมู ลมี 2 ส่วน
ของแฟ้มข้อมู ล คือ Macintosh ซึงแฟ
คือ resource fork และ data fork
่ ใ้ ช้สนใจ
• resource fork บรรจุสารสนเทศทีผู
• data fork บรรจุโปรแกรม, รหัสโปรแกรม (code) หรือ
้
่
ข้อมู ล(เนื อหาของแฟ
้ มข้อมู ลทัวไป)
วิธก
ี ารเข้าถึงแฟ้มข้อมู ล (Access Methods)
การเข้าถึงข้อมู ลแบบเรียงลาด ับ (Sequential
• access)
สารสนเทศในแฟ้มข้อมู ลถู กดึงเข้าถึงเป็ นลาดับ
•
•
•
การทางาน (operation) บนแฟ้มข้อมู ลคือ อ่าน และ
เขียน
่
ตัวอ่านจะอ่านส่วนถ ัดไปของแฟ้ม และเปลียนค่
าตวั
้ ้ มข้อมู ลโดยอ ัตโนมัตต
ชีแฟ
ิ ามตาแหน่ งของ I/O
คล้ายๆ ก ับการเขียนต่อท้ายแฟ้มข้อมู ล
่ นใหม่และบาง
แต่ละแฟ้มข้อมู ลสามารถกลับไปเริมต้
ระบบโปรแกรมอาจจะสามารถข้ามไปข้างหน้าหรือ
่ N คือเลข
ข้างหลังระเบียน (record: N) ได้ เมือ
จานวนเต็ม
Sequential-access File
วิธก
ี ารเข้าถึงแฟ้มข้อมู ล (Access Methods)
การเข้าถึงข้อมู ลโดยตรง (Direct access)
•
•
•
•
•
การเข้าถึงแฟ้มข้อมู ลแบบสัมพันธ ์ (relative access)
้
่ ความ
แฟ้มข้อมู ลถู กสร ้างขึนเป็
น logical record ทีมี
่
ยาวคงที่ ซึงอนุ
ญาตให้โปรแกรมอ่านและเขียนระเบียน
อย่างรวดเร็วโดยไม่มล
ี าดับ
้
การเข้าถึงแฟ้มข้อมู ลโดยตรงเป็ นพืนฐานของดิ
สก ์
่ สก ์อนุ ญาตให้เข้าถึงบล็อคของแฟ้มข้อมู ลแบบ
เมือดิ
สุม
่
แฟ้มข้อมู ลจะถูกมองเป็ นจานวนของบล็อกหรือ
ระเบียน
้
านบล็อค 14 แล้วอ่านบล็อค 53 แล้ว
ดังนันเราอาจจะอ่
เขียน บล็อค 7 ได้
Access Methods
• Sequential Access
read next
write next
reset
no read after last write
(rewrite)
• Direct Access – file is fixed length logical records
read n
write n
position to n
read next
write next
rewrite n
n = relative block number
• Relative block numbers allow OS to decide where file should be
placed
วิธก
ี ารเข้าถึงแฟ้มข้อมู ล (Access Methods)
• บางระบบสนับสนุ นแบบเรียงลาดับ บางระบบเป็ นแบบ
่ ม
่
โดยตรง บางระบบต้องการให้กาหนดก่อนเมือเริ
สร ้างแฟ้มข้อมู ล
่ าลองสถานการณ์จาก
• อย่างไรก็ตาม สามารถทีจะจ
แบบเรียงลาดับให้เป็ นแบบโดยตรง
• ใช้ตวั แปร cp เป็ นตัวกาหนดตาแหน่ งปั จจุบน
ั ของ
เรา
่
การเข้าถึงข้อมู ลแบบอืน
(Other Access Methods)
การสร ้างดัชนี (index) ให้แฟ้มข้อมู ล
• ดัช นี นี้ (เหมือนดัช นี ท า้ ยหลังหนังสือ )
บรรจุต วั ชี ้
บล็อคในการหาระเบียนในแฟ้มข้อมู ล
้
้
• ขันแรกเราต้
อ งค้น หาดัช นี แ ล้วใช้ต วั ชีในการเข้
า ถึง
่ องการ
แฟ้มข้อมู ลโดยตรงและหาระเบียนทีต้
• ถ้า แฟ้ มข้อ มู ล มีข นาดใหญ่ แฟ้ มดัช นี ก็ ต อ
้ งมี ข นาด
ใหญ่ เ กิน จะเก็บไว้ใ นหน่ วยความจ าได้ วิธ แ
ี ก้ว ธ
ิ ีห นึ่ ง
คือ สร า้ งดัช นี ส าหร บ
ั แฟ้ มดัช นี (index
file)
แฟ้มข้อมู ลปฐมภู ม ิ (primary index file) ควรจะบรรจุ
้
ตัวชีไปยั
งแฟ้มข้อมู ลทุตย
ิ ภู ม ิ (secondary index file)
่
้
ซึงควรจะชี
ไปยั
งข้อมู ลจริง
่
การเข้าถึงข้อมู ลแบบอืน
(Other Access Methods)
โครงสร ้างของไดเรกทอรี
(Directory Structure)
การจัดการข้อมู ลของดิสก ์ ต้องทาเป็ น 2 ส่วน
• ระบบแฟ้มข้อมู ลต้องแบ่งเป็ น partitions
• ใน IBM เรียก “minidisks”
• ใน PC และ Macintosh เรียก “Volume”
่
• โดยทัวไป
แต่ละดิสก ์บนระบบบรรจุอย่างน้อย 1
่
partition ผู ใ้ ช้จาเป็ นต้องเกียวข้
อง
• แต่ logical directory และโครงสร ้างของ
แฟ้มข้อมู ล สามารถมองข้ามปั ญหาทาง
้ ว่่ างของแฟ้มข้อมู ล
กายภาพในการจัดการพืนที
• สามารถมองเป็ นดิสก ์เสมือนได้ (virtual disk)
โครงสร ้างของไดเรกทอรี
(Directory Structure)
•
่
แต่ละ partition บรรจุสารสนเทศเกียวก
ับ
แฟ้มข้อมู ล
• ภายใน partition สารสนเทศถูกเก็บในช่องใน
้
device directory หรือ เนื อหาของตาราง
(volume
table of contents)
่
• device directory (โดยทัวไปเรี
ยก “ไดเรกทอรี”)
่ , ตาแหน่ ง, ขนาด และ
บันทึกสารสนเทศ เช่น ชือ
ชนิ ดของแฟ้มข้อมู ลใน partition
โครงสร ้างของไดเรกทอรี
(Directory Structure)
้ อ
การทางานของไดเรกทอรีมด
ี ังนี คื
่ ชอ
• ค้นหาแฟ้มข้อมู ล (Search for a file) ต้องหาแฟ้มทีมี
ื่
่
ตรงก ับทีเราต้
องการ
• สร ้างแฟ้มข้อมู ล (Create a file) แฟ้มข้อมู ลใหม่
่
จาเป็ นต้องถู กสร ้างและเพิมเข้
าในไดเรกทอรี
่
• ลบแฟ้มข้อมู ล (Delete a file) เมือแฟ
้ มข้อมู ลไม่
ต้องการแล้ว เราต้องลบออกจากไดเรกทอรี
่
• แสดงไดเรกทอรี (List a directory) สามารถแสดงชือ
้
แฟ้มข้อมู ลในไดเรกทอรีและเนื อหาของไดเรกทอรี
สาหร ับแต่ละแฟ้มในรายการ
้ อ
การทางานของไดเรกทอรีมด
ี ังนี คื
่
่
่
• เปลียนชื
อแฟ
้ มข้อมู ล (Rename a file) เพราะว่าชือ
้
้
แฟ้มข้อมู ลเป็ นตัวแทนของเนื อหาของผู
ใ้ ช้ ดังนัน
่
่
่
้
ชือจะต้
องเปลียนเมื
อเนื
อหาหรื
อการใช้แฟ้มข้อมู ล
่
เปลียนไป
• การข้ามระบบแฟ้มข้อมู ล (Traverse the file system)
้
• ร ักษาเนื อหาและโครงสร
้างของระบบแฟ้มข้อมู ล
้
้ กทาได้โดยการคัดลอก
ทังหมด
การร ักษานี มั
้
แฟ้มข้อมู ลทังหมดลงเทปแม่
เหล็ก
้ นการ backup ในกรณี ทระบบล่
• เทคนิ คนี เป็
ี่
มหรือ
แฟ้มข้อมู ลเสีย
้ ้ มข้อมู ลควรถู กคัดลอกลงเทปและ
• ในกรณี นีแฟ
้ ว่่ างในดิสก ์ของแฟ้มเหล่านันก็
้ จะถู กปล่อยให้
พืนที
ไดเรกทอรีระด ับเดียว
(Single-Level Directory)
•
•
้
แฟ้มข้อมู ลทังหมดถู
กเก็บไว้ในไดเรกทอรีเดียวกน
ั
มีขอ
้ จาก ัดคือ
่
้
• เมือแฟ
้ มข้อมู ลมีมากขึนหรื
อมีผูใ้ ช้มากกว่า 1
้
คน
ถ้าแฟ้มข้อมู ลทังหมดอยู
่ในไดเรกทอรี
้ องมีชอเฉพาะตั
เดียวกัน แฟ้มเหล่านันต้
ื่
ว เช่น
่ test ของ
ถ้ามีผูใ้ ช้ 2 คน เรียกแฟ้มข้อมู ลชือ
่ ยวก ัน) ดงั นัน
้
่
ตัวเอง (คนละไฟล ์ชือเดี
กฎชือ
เฉพาะตวั ก็ถูกทาลายลง
่
• ข้อจาก ัดในเรืองความยาว
่
• ระบบ MS-DOS ชือแฟ
้ มข้อมู ลยาวได้ไม่เกิน
11 ตัวอ ักษร (รวมนามสกุล)
ไดเรกทอรีระด ับเดียว
(Single-Level Directory)
ไดเรกทอรีสองระด ับ
(Two-Level Directory)
วิธแ
ี ก้พนฐานคื
ื้
อการสร ้างไดเรกทอรีแยกก ันให้ผูใ้ ช้
แต่ละคน
• ในโครงสร ้างไดเรกทอรีสองระดับ ผู ใ้ ช้แต่ละคนจะมี
user file directory (UFD) ของตัวเอง
• แต่ละ UFD มีโครงสร ้างคล้าย ๆ กัน แต่แสดง
รายการแฟ้มข้อมู ลของผู ใ้ ช้คนเดียว
่
่ นหรื
้
• เมืองานของผู
ใ้ ช้เริมขึ
อผู ใ้ ช้ log in เข้ามา
master file directory (MFD) ของระบบ จะถูกค้นหา
้
้
MFD ถู กระบุและชีไปยั
ง UFD คนนันโดย
่
ใ้ ช้ (user name) หรือ
• ชือของผู
• หมายเลขบัญชี (account number)
•
ไดเรกทอรีสองระด ับ
(Two-Level Directory)
ไดเรกทอรีสองระด ับ
(Two-Level Directory)
• การระบุชอแฟ
ื่
้ มข้อมู ลในไดเรกทอรีสองระดับ เราต้อง
้ั อของผู
่
่
ให้ทงชื
ใ้ ช้และชือแฟ
้ มข้อมู ล
• ไดเรกทอรีสองระดับสามารถมองเป็ นต้นไม้
• ราก (root) ของต้นไม้คอ
ื MFD
• ทายาทโดยตรงคือ UFD
• ทายาทของ UFD คือ แฟ้มข้อมู ลของตัวมันเอง
(ใบไม้ของต้นไม้น่งเอง)
ั
่
่
• ชือของผู
ใ้ ช้และชือของแฟ
้ มข้อมู ลกาหนดเส้นทาง
่ องการ)
(path) ในต้นไม้จากราก (MFD) สู ใ่ บ (แฟ้มทีต้
ไดเรกทอรีสองระด ับ
(Two-Level Directory)
้ อของผู
่
่
่
• ดังนันชื
ใ้ ช้และชือไฟล
์กาหนดชือของเส้
นทาง
(path name)
่
• แฟ้มข้อมู ลทุกแฟ้มในระบบมีชอของเส้
ื่
นทาง เพือระบุ
่
่ ลก
่
ชือแฟ
้ มข้อมู ลทีมี
ั ษณะเฉพาะ
ผู ใ้ ช้ตอ
้ งรู ้ชือของ
่ องการ
เส้นทางของแฟ้มทีต้
• ตัวอย่างในระบบ MS-DOS
่
• เป็ น “C:\userb\test” แยกเป็ น partition, ชือของ
่
ไดเรกทอรี, ชือแฟ
้ มข้อมู ล
ไดเรกทอรีทมี
ี่ โครงสร ้างแบบต้นไม้
(Tree-Structured Directories)
ไดเรกทอรีทมี
ี่ โครงสร ้างแบบต้นไม้
(Tree-Structured Directories)
• ในการใช้งานปกติ
ผู ใ้ ช้แต่ละคนจะมี
“ไดเรกทอรี
่ เก็บแฟ้มข้อมู ลที่
ปั จจุบน
ั ” (current directory) ซึงใช้
ผู ใ้ ช้สนใจในปั จจุบน
ั
่ การอ้างอิงแฟ้มข้อมู ลก็จะเกิดการค้นหา
• เมือมี
ไดเรกทอรีปัจจุบน
ั
่ องการไม่มใี นไดเรกทอรีปัจจุบน
• ถ้าแฟ้มข้อมู ลทีต้
ั
• ผู ใ้ ช้จะต้องระบุชอของเส้
ื่
นทาง (path name)
่
• เปลียนไดเรกทอรี
ปัจจุบน
ั ไปเป็ นไดเรกทอรีอน
ื่
โปรแกรมเรียกระบบจะทาให้ชอไดเรกทอรี
ื่
เป็ น
่ าหนดไดเรกทอรี
เหมือนพารามิเตอร ์และใช้มน
ั เพือก
้ ใ้ ช้จงึ สามารถเปลียนไดเรกทอรี
่
ปั จจุบน
ั ใหม่ ดังนันผู
ไดเรกทอรีทมี
ี่ โครงสร ้างแบบต้นไม้
(Tree-Structured Directories)
่
• ชือของเส้
นทาง (path name) มี 2 ชนิ ด
่
• ชือของเส้
นทางแบบสัมบู รณ์ (absolute path name)
่ นที่ root แล้วเดินทางลงมาจนถึงแฟ้มข้อมู ล
• เริมต้
่ องการ มีการกาหนดชือของไดเรกทอรี
่
ทีต้
ตลอด
ทาง
่
• ชือของเส้
นทางแบบสัมพันธ ์ (relative path name)
• กาหนดเส้นทางจากไดเรกทอรีปัจจุบน
ั
• จากรู ป ถ้าไดเรกทอรีปัจจุบน
ั คือ root/spell/mail
้ อของเส้
่
• ดังนันชื
นทางแบบสัมพันธ ์คือ prt/first อ้าง
ถึงแฟ้มข้อมู ลเดียวกันกับเส้นทางสัมบู รณ์
ไดเรกทอรีทมี
ี่ โครงสร ้างแบบต้นไม้
(Tree-Structured Directories)
• นโยบายในการลบไดเรกทอรีของโครงสร ้างแบบต้นไม้นี้
• ถ้าไดเรกทอรีวา
่ ง การลบไดเรกทอรีกท
็ าได้ง่าย
• ถ้าไดเรกทอรีไม่วา
่ ง มีไฟล ์หลายไฟล ์หรือมีหลาย
ไดเรกทอรีย่อย วิธก
ี ารจัดการคือ
• เช่น MS-DOS จะลบไดเรกทอรีไม่ได้ถา้ มันไม่ว่าง
้ าจะลบไดเรกทอรี
ดงั นันถ้
ผู ใ้ ช้ตอ
้ งลบไฟล ์
้
กอ
่ น ถ้ามีไดเรกทอรีย่อยอยู ่
ทังหมดในไดเรกทอรี
ก็ตอ
้ งลบไฟล ์ในไดเรกทอรีย่อยให้หมดก่อน แล้ว
้
จึงลบไดเรกทอรีย่อยขึนมาจนถึ
งการลบ
้ าให้ตอ
ไดเรกทอรีทต้
ี่ องการลบ วิธน
ี ีท
้ งทางาน
จานวนมาก
ไดเรกทอรีทมี
ี่ โครงสร ้างแบบต้นไม้
(Tree-Structured Directories)
•
อีกวิธห
ี นึ่ ง เช่น ในระบบ UNIX คาสัง่ rm ใช้ลบ
่ งไฟล
้
ไดเรกทอรี
ซึงทั
์และไดเรกทอรีย่อยของ
้ั
้
ไดเรกทอรีนนจะถู
กลบทังหมด
้ าจะดีในการใช้ เพราะสะดวก
• เห็นได้วา
่ วิธน
ี ี น่
แต่อ ันตรายมากเพราะทุกไดเรกทอรีสามารถ
่ าสังเดี
่ ยว
่ ด
ถู กลบได้ดว้ ยคาสังค
ถ้าคาสังเกิ
ผิดพลาด
ไฟล ์และไดเรกทอรีจานวนมาก
่
จาเป็ นทีจะต้
องกู ก
้ ลับมาจาก backup เทป
ไดเรกทอรีกราฟแบบไม่เป็ นวงจร
(Acyclic-Graph Directory)
กราฟแบบไม่เป็ นวงจร (acyclic graph) อนุ ญาตให้ม ี
การใช้ไดเรกทอรีและแฟ้มข้อมู ลร่วมกันได้
่ ไดเรกทอรีย่อยเป็ นของตัวเอง
• แฟ้มข้อมู ลทีมี
ซึง่
้
ไดเรกทอรีย่อยนี ควรจะถู
กใช้รว่ มก ัน (share)
• การใช้แฟ้มข้อมู ลหรือไดเรกทอรีรว่ มกัน
ไม่ได้
เหมือนกับการมี 2 สาเนา แต่หมายถึง
• มีของจริงอยู ่เพียงหนึ่ งเดียว
่
่ าโดยคน ๆ หนึ่ งควรจะทาให้ท ี่
• การเปลียนแปลงที
ท
่
่
อืนเปลี
ยนแปลงได้
ในทันที
• แฟ้มข้อมู ลใหม่ทถู
ี่ กสร ้างโดยคน ๆ หนึ่ งจะต้อง
่ รว่ มก ันทันทีโดย
ปรากฏในไดเรกทอรีย่อยทีใช้
•
ไดเรกทอรีกราฟแบบไม่เป็ นวงจร
(Acyclic-Graph Directory)
ไดเรกทอรีกราฟแบบไม่เป็ นวงจร
(Acyclic-Graph Directory)
• แฟ้มข้อมู ลหรือไดเรกทอรีย่อยอ ันเดียวกน
ั อาจจะอยู ่
ใน 2 ไดเรกทอรีทต่
ี่ างก ันได้
่
ไดเรกทอรีแบบกราฟโดยทัวไป
(General Graph Directory)
•
•
ปั ญหาหลักของการใช้โครงสร ้างของกราฟแบบไม่
เป็ นวงจรจะแน่ ใจได้อย่างไรว่าจะไม่มว
ี งจรจริง ๆ
่
ถ้าเราเริมจากไดเรกทอรี
สองระดับ แล้วให้ผูใ้ ช้สร ้าง
่ กลายเป็ น
ไดเรกทอรีย่อยเพิมก็
ไดเรกทอรีแบบ
่
่
ต้นไม้ แต่ถา้ เราเพิมการเชื
อมโยงของไดเรกทอรี
ทมี
ี่
อยู ่แล้ว โครงสร ้างแบบต้นไม้กจ
็ ะเสียไป เป็ นผลให้เกิด
โครงสร ้างแบบกราฟอย่างง่ าย
่
ไดเรกทอรีแบบกราฟโดยทัวไป
(General Graph Directory)
่
ไดเรกทอรีแบบกราฟโดยทัวไป
(General Graph Directory)
• ถ้าเราจะค้นหาแฟ้มข้อมู ลในไดเรกทอรีทใช้
ี่ รว่ มกน
ั
่
(share subdirectory) แล้วไม่เจอ จะหลีกเลียงการ
้ า้ เพราะการหาซาท
้ าให้
ค้นหาไดเรกทอรีย่อยนันซ
เสียเวลา โดยอนุ ญาตให้มวี งจรในไดเรกทอรี
• ถ้าออกแบบอ ัลกอริทม
ึ ไม่ดจ
ี ะทาให้เกิดการวนซา้
้
(loop) ไม่รู ้จบ การค้นหาในวงจรก็จะไม่มวี น
ั จบสิน
วิธแ
ี ก้ คือ จาก ัดจานวนของไดเรกทอรีทจะเข้
ี่
าใช้ใน
ระหว่างการค้นหา
่
ไดเรกทอรีแบบกราฟโดยทัวไป
(General Graph Directory)
่
• อีกปั ญหาหนึ่ งคือในเรืองการลบ
• แบบไม่เป็ นวงจร ค่า 0 ในการนับการอ้างอิง
้
หมายถึง แฟ้มข้อมู ลนันลบได้
้ ค่าการอ้างอิงอาจจะไม่เป็ นศู นย ์
• ถ้ามีวงจรเกิดขึน
่
้ั
เมือแฟ
้ มข้อมู ลหรือไดเรกทอรีนนไม่
มแ
ี ล้ว
• จาเป็ นต้องใช้วธ
ิ ี “การสะสม” (garbage
่ าหนดว่าเมือไรที
่
่ าการอ้างอิง
collection) เพือก
ค่
้ ในดิ
่
้
สุดท้ายถู กลบไปแล้ว และพืนที
สก ์ตรงนัน
สามารถนามาจัดสรรใหม่ได้แล้ว
การป้ องกัน (Protection)
•
•
•
•
•
•
ชนิ ดของการเข้าถึงแฟ้มข้อมู ล (Types of
Access)
Read – อ่านจากแฟ้มข้อมู ล
Write – เขียนหรือเขียนอีกครง้ั (rewrite)
แฟ้มข้อมู ล
Execute – load แฟ้มข้อมู ลเข้าสู ห
่ น่ วยความจาและ
้
ทางานนัน
Append – เขียนสารสนเทศใหม่ตอ
่ ท้ายแฟ้มข้อมู ล
้ ให้
่ สามารถใช้
Delete – ลบแฟ้มข้อมู ลและคืนพืนที
ใหม่ได้
่
List – แสดงชือและคุ
ณลักษณะของแฟ้มข้อมู ล
รายการเข้าถึงแฟ้มข้อมู ลและกลุ่ม
(Access Lists and Groups)
รายการการเข้าถึงแฟ้มข้อมู ล (access list) คือ การ
่
เจาะจงชือของผู
ใ้ ช้และชนิ ดของการเข้าถึง
แฟ้มข้อมู ลของผู ใ้ ช้แต่ละคน
่ ใ้ ช้ร ้องขอเข้าถึงแฟ้มข้อมู ล ระบบปฏิบต
• เมือผู
ั ก
ิ ารจะ
ตรวจสอบรายการการเข้าถึงแฟ้มข้อมู ล (access list)
่ ยวข้
่
้
ทีเกี
องก ับแฟ้มข้อมู ลนัน
้ ในรายการของผู ใ้ ช้คนนัน
้
• ถ้าการร ้องขอนันมี
การเข้าถึงก็จะได้ร ับอนุ ญาต
้
• มิฉะนันจะเป็
นการฝ่าฝื นในการป้ องกน
ั
และงาน
ของผู ใ้ ช้จะถู กปฏิเสธการเข้าถึงแฟ้มข้อมู ล
(access denies)
•
รายการเข้าถึงแฟ้มข้อมู ลและกลุ่ม
(Access Lists and Groups)
่
• ปั ญหาหลักเกียวก
บ
ั รายการการเข้าถึงแฟ้มข้อมู ล คือ
ความยาวของรายการ ถ้าเราต้องการให้ทุกคนอ่าน
แฟ้มข้อมู ล เราต้องแสดง (list) รายการผู ใ้ ช้ทุกคน
้
ด้วยการเข้าถึงแบบอ่าน (read access) การทาเช่นนี มี
ผลลัพธ ์ 2 ประการ
่ าเบือและ
่
• การสร ้างรายการอาจจะเป็ นงานทีน่
ไม่ได้อะไร โดยเฉพาะถ้าเราไม่เห็นว่ารายการ
ของผู ใ้ ช้ในระบบมีขอ
้ ดีอะไร
่
่ นแบบแปร
• ไดเรกทอรีตอ
้ งเปลียนจากขนาดคงที
เป็
้ ซ
่ ับซ ้อนขึนกว่
้
ผัน ทาให้การจัดการพืนที
าเดิม
้ ได้โดยใช้ รายการการเข้าถึงแฟ้มข้อมู ล
• ปั ญหานี แก้
รายการเข้าถึงแฟ้มข้อมู ลและกลุ่ม
(Access Lists and Groups)
่ บความยาวของรายการการเข้าถึงแฟ้มข้อมู ล
• เพือบี
ให้กะทัดร ัด หลาย ๆ ระบบแบ่งประเภทของผู ใ้ ช้เป็ น 3
ประเภท ในการติดต่อกับแฟ้มข้อมู ลแต่ละแฟ้ม
• Owner คือ ผู ใ้ ช้ทสร
ี่ ้างแฟ้มข้อมู ลเป็ นของตัวเอง
• Group คือ กลุ่มของผู ใ้ ช้ทใช้
ี่ แฟ้มข้อมู ลร่วมก ัน
่ ายก ันใน
และต้องการการเข้าถึงแฟ้มข้อมู ลทีคล้
กลุ่มหรือกลุ่มงาน (workgroup)
้
• Universe คือ ผู ใ้ ช้อน
ื่ ๆ ทังหมดในระบบ
รายการเข้าถึงแฟ้มข้อมู ลและกลุ่ม
(Access Lists and Groups)
ตัวอย่างเช่น Sara กาลังเขียนหนังสือเล่มใหม่ เธอจ้าง
คนมา 3 คน (Jim , Dawn , Jill) มาช่วย ข้อความใน
่ book การป้ องกันไฟล ์ทาได้
หนังสือเก็บไว้ในไฟล ์ชือ
ดังนี ้
้ ทุกอย่าง
• Sara ต้องสามารถทางานบนไฟล ์นี ได้
้
• Jim , Dawn และ Jill ควรจะอ่านและเขียนไฟล ์นี ได้
้ พวกเขาไม่ควรลบไฟล ์นี ได้
้
เท่านัน
่
้ (เธอต้องการให้คน
• ผู ใ้ ช้คนอืนควรจะอ่
านไฟล ์นี ได้
่
อา
่ นและให้ feedback กลับมา)
ทัวไปได้
รายการเข้าถึงแฟ้มข้อมู ลและกลุ่ม
(Access Lists and Groups)
่
• เพือให้
การป้ องกน
ั สาเร็จ เราต้องสร ้างกลุ่มใหม่ (new
group) เรียกว่า text
่
• มีสมาชิกคือ Jim, Dawn และ Jill ชือของกลุ
่ม text
่
ต้องเกียวข้
องก ับไฟล ์ book และการเข้าถึงอย่าง
้
ถู กต้องเราต้องตังตามนโยบายข้
างต้น
้ 3 บิต rwx
• ตัวอย่างในระบบ UNIX มีการกาหนดบิตขึน
• r ควบคุมการเข้าถึงแบบอ่าน(read)
• w ควบคุมการเขียน (write)
• x ควบคุมการทางาน (execution)
รายการเข้าถึงแฟ้มข้อมู ลและกลุ่ม
(Access Lists and Groups)
้
ดังนันจากตั
วอย่างของเรา การป้ องก ันไฟล ์ book ทาได้
ดังนี ้
• สาหร ับ owner
• Sara ทัง้ 3 บิตต้องถู กตัง้ (set) ให้
• สาหร ับ group
้
• text บิต r และ w ถู กตังให้
• สาหร ับ universe
่ งให้
้
• มีแต่บต
ิ r ทีตั
Windows 7 Access-Control List Management
่ ๆ
วิธก
ี ารป้ องก ันอืน
(Other Protection Approaches)
• การใช้รหัสผ่าน (password) การเข้าถึงแฟ้มข้อมู ล
แต่ละแฟ้ม
• ข้อเสีย ถ้าแต่ละแฟ้มมีรหัสผ่านต่างกน
ั ผู ใ้ ช้อาจจา
ไม่ได้หมด ถ้าใช้รหัสผ่านเหมือนกันหมดกบ
ั ทุกแฟ้ม
้ั
่ งทุกแฟ้มก็เข้าได้หมด
ถ้าเกิดถู กค้นพบครงหนึ