Chöông 10: Heä Thoáng File

Slides:



Advertisements
Similar presentations
File Systems Examples.
Advertisements

Chapter 11: File System Implementation
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
Đánh giá Quốc gia có Hệ thống cho Việt Nam Các ư u tiên về Giảm nghèo, Phát triển Công bằng và Bền vững Ngày 5 tháng 4 n ă m 2016.
CÁC QUY TRÌNH CỦA CHUỖI CUNG ỨNG Hoạch định và thu mua
Báo cáo Cấu trúc đề thi PISA và Các dạng câu hỏi thi PISA
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Rainforest Alliance đào tạo cho các nông trại trà ở Việt Nam
PHẦN 1. HỆ ĐIỀU HÀNH WINDOWS. 2 Nội dung trình bày  1.1. Thao tác cơ bản sử dụng máy tính  1.2. Màn hình nền desktop  1.3. Quản lý tệp tin và thư mục.
Day 28 File System.
Chapter 11: File System Implementation
Day 27 File System.
Journaling File Systems
Thực hiện các cuộc họp quan trọng
ÖÙNG SUAÁT TRONG NEÀN ÑAÁT
SỐT XUẤT HUYẾT DENGUE ThS.BS. Dương Hồng phúc Bộ môn Vi sinh- Trường Đại học Y Dược – Cần Thơ.
QUẢN TRỊ THÀNH TÍCH Performance Management
BÀI 2. CẤU TẠO VÀ CÁC THIẾT BỊ CỦA MÁY TÍNH ĐIỆN TỬ
Mieãn dòch treân caù Da, vaåy, mang, tuyeán nhôùt
CHÍNH SÁCH, CHIẾN LƯỢC TÀI NGUYÊN MÔI TRƯỜNG
PHÖÔNG TIEÄN THANH TOAÙN QUOÁC TEÁ
Phương pháp tiếp cận nghiên cứu khoa học
M A R K E T I N G Th.S Nguyễn Ngọc Hạnh 1.
Ghi chú chung về khóa học
TÌM HIỂU VỀ WEB SERVICES VÀ XÂY DỰNG MỘT WEB SERVICE
2.A Quaûn lyù quaù trình Khaùi nieäm cô baûn Ñònh thôøi CPU
KIỂM ĐỊNH GIẢ THUYẾT THỐNG KÊ
Software testing Kiểm thử phần mềm
Hạ Long – Cát Bà Sáng kiến Liên minh Bui Thi Thu Hien
Module 6 – Managing for Sustainability
Hệ điều hành Windows Sever 2003
CHƯƠNG 2 TRUY VẤN DỮ LIỆU.
CÔNG DÂN VỚI TÌNH YÊU HÔN NHÂN VÀ GIA ĐÌNH
ThS Nguyễn Thị Ngọc Hương
CHAPTER 7: TREES (Cấu trúc cây)
Theo mặc định toàn bộ dung lượng dùng lưu trữ, các thư mục hiện có trong các Partition , các dịch vụ hệ thống đã được chia sẽ cho mọi người được phép sử.
Tổng Quan Về Lập Trình Hướng Đối Tượng
Hệ thống File.
Thương mại điện tử HÀ VĂN SANG.
File Systems Implementation
CHƯƠNG 4 BỘ XỬ LÍ VĂN BẢN (MS WORD)
SINH THÁI CÁ.
MKTNH Version 3 Giảng viên: ThS. Thái Thị Kim Oanh
Testing là gì Là quá trình thực hiện một chương trình (hay một phần của một chương trình) để tìm ra lỗi Là pha quan trọng trong quá trình phát triển hệ.
Bài 2: Từ tiêu chuẩn sức khoẻ tới nơi làm việc lành mạnh
GIỚI THIỆU LINUX.
KỸ THUẬT LẬP TRÌNH GV: Phạm Thị Xuân Diệu
PHÂN TÍCH PHÂN TỬ TRONG CHẨN ĐÓAN LÂM SÀNG
KỸ NĂNG HỌC TẬP KHOA QUẢN TRỊ KINH DOANH ThS. NGUYỄN HOÀNG SINH
THÁI ĐỘ XỬ TRÍ BƯỚU GIÁP NHÂN
Moân hoïc Heä Ñieàu Haønh
Caùc pheùp chieáu TINH THEÅ
Giới thiệu Giải pháp phần mềm Quản lý nhân sự, chấm công, tiền lương
GVHD: GS.TS Lê Khắc Bình HVTH: Nguyễn Thanh Lâm
TỔNG QUAN VỀ NGHIÊN CỨU MARKETING
GSP JAPAN 1. Nhoùm quy ñònh 1 : aùp duïng cho caùc H.S 5005; 5006; 54xx(1) : Ñöôïc saûn xuaát töø saûn phaåm hoùa chaát, töø saûn phaåm thuoäc nhoùm 4701.
CHÀO MỪNG QUÝ THẦY, CÔ GIÁO ĐẾN DỰ GIỜ MÔN CÔNG NGHỆ LỚP 8A
CHƯƠNG III MÔI TRƯỜNG KINH TẾ.
HƯỚNG DẪN MÃ HÓA BỆNH TẬT, TỬ VONG THEO ICD - 10
CHÚA NHẬT 7 MÙA PHỤC SINH NĂM C
Moân hoïc Heä Ñieàu Haønh
Thạc sĩ VÕ THANH VIỆT
May be not.... Con kieán Moät truyeän nguï ngoân... Hay laø
Chương 4: Tập gõ 10 ngón Chương 2: Học cùng máy tính
Kyõ naêng Laäp Keá hoaïch
Overview: File system implementation (cont)
CAÂU HOÛI OÂN THI 1.Röøng ngaäp maën Vieät Nam ñöôïc phaân chia thaønh maáy vuøng? Ñaëc ñieåm moâi tröôøng cuûa caùc vuøng röøng ngaäp maën ôû Vieät Nam?
File-System Structure
Presentation transcript:

Chöông 10: Heä Thoáng File 10.B Hieän thöïc heä thoáng file vaø thö muïc Caùc phöông phaùp quaûn lyù khoâng gian troáng

Sô ñoà boá trí (layout) heä thoáng file (1/4) Toå chöùc khoâng gian ñóa (maùy tính caù nhaân – PC) MBR From http://en.wikipedia.org/wiki/Boot_sector Several major kinds of boot sectors could be encountered on IBM PC compatible hard disks, floppy disks and similar storage devices: A master boot record (MBR) is the first sector of a data storage device that has been partitioned. The MBR sector may contain code to locate the active partition and invoke its Volume Boot Record. A volume boot record is the first sector of a data storage device that has not been partitioned, or the first sector of an individual partition on a data storage device that has been partitioned. It may contain code to load and invoke an operating system (or other standalone program) installed on that device or within that partition. Partition control block FCB’s i-nodes

Sô ñoà boá trí heä thoáng file (2/4) Partition control block löu soá löôïng block trong partition, kích thöôùc block, soá löôïng free block hieän thôøi vaø caùc con troû chæ ñeán chuùng,… löu soá löôïng free FCB hieän thôøi vaø caùc con troû chæ ñeán chuùng,… Ví duï “superblock” trong UNIX File System File control block (FCB): moãi file ñöôïc quaûn lyù thoâng qua FCB cuûa noù löu caùc thoâng tin veà file, keå caû caùc con troû chæ ñeán caùc data block cuûa noù Ví duï “i-node” trong UNIX File System:

Sô ñoà boá trí heä thoáng file (3/4) Layout cuûa moät partition chöùa heä thoáng file UNIX

Sô ñoà boá trí heä thoáng file (4/4) FAT duøng ñeå chæ baûng FAT vaø cuõng duøng ñeå chæ heä thoáng file Layout cuûa moät partition chöùa heä thoáng file FAT Boot sector FAT Root directory Data blocks

VFS (Virtual File System) Cung caáp giao dieän ñoàng nhaát cho öùng duïng ñoäc laäp vôùi file system cuï theå  nhieàu file system khaùc nhau trong cuøng heä thoáng open, read, write, opendir,… disk partition ext2 file system FAT file system NFS file system ÖÙng duïng VFS : goïi haøm/thuû tuïc switch

VFS (Virtual File System) Vò trí cuûa VFS vaø file system software trong I/O call path (Linux) ÖÙng duïng trong user space VFS ext2_file_write() File system cuï theå, ôû ñaây ext2 Ñònh thôøi cho thieát bò block Device driver from Lunde

Hieän thöïc file Caáp phaùt khoâng gian löu tröõ cho file/directory, muïc tieâu: söû duïng khoâng gian ñóa höõu hieäu truy caäp file nhanh Neáu soá löôïng vaø kích thöôùc file khoâng thay ñoåi ñoäng thì hieän thöïc file nhö theá naøo? Caùc phöông phaùp caáp phaùt phoå bieán Caáp phaùt lieân tuïc (contiguous allocation) Caáp phaùt theo danh saùch lieân keát (linked list allocation) Caáp phaùt duøng chæ muïc (indexed allocation)

Caáp phaùt lieân tuïc Thôøi gian di chuyeån ñaàu ñoïc? Coù theå truy xuaát ngaãu nhieân moät block cuûa file: block nr = start + block offset Phaân maûnh ngoaïi Coù theå gaëp khoù khaên khi taïo file môùi vaø khi caàn theâm block cho file ÖÙng duïng: ISO-9660 (CDROM)

Caáp phaùt theo danh saùch lieân keát (1/2) pointer -1 data layout cuûa block -1

Caáp phaùt theo danh saùch lieân keát (2/2) Öu ñieåm Deã daøng theâm block cho file khi caàn Quaûn lyù khoâng gian troáng baèng danh saùch lieân keát Khoâng coù phaân maûnh ngoaïi Nhöôïc ñieåm Chæ truy xuaát hieäu quaû ñoái vôùi sequential-access file Toán khoâng gian löu tröõ caùc con troû Ñoä tin caäy: pointer trong block coù theå bò hoûng

FAT – moät hieän thöïc cuûa caáp phaùt theo danh saùch lieân keát: Nhöng khoâng löu con troû ñeán file block tieáp theo trong block chöùa döõ lieäu file FAT (File Allocation Table) Moãi block ñóa ñöôïc töôïng tröng bôûi moät entry trong FAT FAT entry vôùi index i töôïng tröng block coù block nr i FAT entry chöùa block nr keá tieáp trong file, neáu file goàm nhieàu block no. of disk blocks - 1

Caáp phaùt duøng chæ muïc (1/2) Baûng index (index block) chöùa ñòa chæ caùc block cuûa file thöù töï caùc ñòa chæ cuõng laø thöù töï caùc block cuûa file

Caáp phaùt duøng chæ muïc (2/2) Öu ñieåm Random vaø sequential access Khoâng xaûy ra phaân maûnh ngoaïi Khuyeát ñieåm Toán khoâng gian löu tröõ baûng index duø file coù kích thöôùc chæ vaøi block Vaán ñeà: Kích thöôùc moät file coù theå nhoû nhöng cuõng coù theå raát lôùn. Kích thöôùc index block bao nhieâu laø phuø hôïp? Giaûi quyeát: multilevel index  i-node

i-node – moät hieän thöïc cuûa index block UNIX v7 i-node: 13 pointer Linux ext2 i-node: 15 pointer

Hieän thöïc file duøng i-node File (user view) Ví duï

Hieän thöïc thö muïc Thö muïc ñöôïc duøng ñeå chöùa baûng aùnh xaï töø teân file (chuoãi kyù töï ASCII) ñeán thoâng tin caàn thieát ñeå ñònh vò caùc block döõ lieäu cuûa file Toå chöùc thö muïc Danh saùch tuyeán tính (array hay linear list), baûng baêm,… FAT file system UNIX file system first block nr i-node

Duyeät path name ñeå laáy block nr cuûa file Ví duï: Xaùc ñònh caùc block döõ lieäu cuûa file /a/b/c i-node of / (the 1st one of i-list, by convention)

i-node: chia seû file (1/2) Thö muïc i-node 27 i-node 51

i-node: chia seû file (2/2) Thö muïc i-node 27 i-node 51 i-node 27

Quaûn lyù khoâng gian troáng Caùc phöông phaùp Bit vector (bit map) Linked list Grouping Counting

Phöông phaùp bit vector (bit map) Ví duï: bit vector 00111100…  block 0, 1 troáng block 2, 3, 4, 5 ñaõ ñöôïc caáp block 6, 7 troáng … 1 2 n - 1 bit[ i ] = 0  block i coøn troáng 1  block i ñaõ ñöôïc caáp Öu ñieåm: Ñôn giaûn vaø hieäu quaû khi caàn tìm khoái troáng ñaàu tieân hoaëc chuoãi khoái troáng lieân tuïc Thao taùc treân bit Khuyeát ñieåm: Caàn khoâng gian löu tröõ. Ví duï Kích thöôùc block = 212 byte Kích thöôùc ñóa = 230 byte n = 230/212 = 218 bit (32 KB)

Phöông phaùp duøng linked list Lieân keát caùc khoái troáng vôùi nhau Chæ caàn giöõ con troû ñeán khoái nhôù troáng ñaàu tieân treân ñóa, coù theå cache trong boä nhôù chính ñeå taêng toác Öu ñieåm: Ít laõng phí khoâng gian ñóa Khuyeát ñieåm: Khoâng hieäu quaû; trong tröôøng hôïp xaáu nhaát phaûi duyeät toaøn boä ñóa ñeå tìm khoâng gian troáng lieân tuïc (tröôøng hôïp caáp phaùt lieân tuïc)

Grouping vaø counting (1/2) Phöông phaùp grouping Caùc ñòa chæ cuûa n khoái troáng ñöôïc löu trong moät khoái troáng ban ñaàu. Khoái nhôù thöù n chöùa caùc ñòa chæ cuûa n khoái nhôù troáng keá tieáp. Nhaän xeùt: grouping laø môû roäng cuûa phöông phaùp duøng linked list (laáy n = 1) Phöông phaùp counting Toå chöùc baûng chæ muïc moãi entry: ñòa chæ cuûa khoái troáng ñaàu tieân trong nhoùm khoái troáng lieân tuïc vaø moät soá ñeám soá löôïng khoái troáng. Coù theå caáp phaùt hoaëc thu hoài ñoàng thôøi nhieàu khoái nhôù lieân tuïc.

Grouping vaø counting (2/2) Ví duï: Phương phaùp linked list Phương phaùp grouping: n = 3 Block 2 löu 3, 4, 5 Block 5 löu 8, 9, 10 Block 10 löu 11, 12, 13 Block 13 löu 17, 28, 25 Block 25 löu 26, 27 Phöông phaùp counting: noäi dung index block 2 4 8 6 17 2 25 3

Journaling file system Ghi nhaän caùc laàn caäp nhaät treân file system thaønh caùc giao taùc (transaction) Moïi transaction ñeàu phaûi ñöôïc ghi nhaän trong log file Moät transaction ñöôïc xem laø hoaøn taát (commit)  ñaõ ñöôïc ghi nhaän ñaày ñuû trong log file (luùc naøy, file system coù theå chöa ñöôïc caäp nhaät) Khi file system ñöôïc caäp nhaät vôùi ñaày ñuû moïi taùc vuï trong transaction thì transaction seõ ñöôïc xoùa ñi trong log file Neáu file system bò hoûng  heä ñieàu haønh döïa vaøo caùc transaction trong log file ñeå söûa chöõa Tham khaûo theâm Linux-ext3, JFS, NTFS The concept of journaling in file systems, or Write Ahead Logging (WAL) as it is called in database systems, was introduced to improve speed and reliability during crash recovery. The journal feature of ext4 (introduced in ext3, see [23]) is a circular buffer in which disk writes are logged before they are written to the main file system. This allows recovery because at all times the set of blocks which might be inconsistent is known, and the blocks are stored in a consistent state; either the new version in the journal, or the old version on the main file system. The journaling feature has a large impact on the patterns of disk writes as seen from the I/O scheduler. While full data journaling increases the amount of writes by a factor of two, because data is written to both the journal and the main file system, the write patterns become much nicer. The writes to the data journal, which may be either a pre-allocated file (represented using an inode number stored in the superblock–normally and extents based file with inode number 8), or a separate block device, are very sequential due to the nature of the log (append-only circular buffer). Unless the file system is very small or a custom block or journal size is used, the journal will be 128 MiB large and stored in the middle of the file system, in a non-sparse block group without any inode tables and bitmaps. After data is written to the journal, the file system may delay writing the data to the main file system longer than it could have done without journaling, especially when system calls such as fsync are used. As shown in [24], the impact of journaling depends on the workload. For sequential writes, full data journaling may halve the bandwidth, while metadata journaling has low cost. On the other hand, with highly random workloads data journaling may give a factor of 10 in performance gain, while plain metadata journaling again has little to no overhead. [23] Stephen C. Tweedie. Journaling the linux ext2fs filesystem. In The Fourth Annual Linux Expo, Durham, North Carolina, May 1998. Available from: http://e2fsprogs.sourceforge.net/journal-design.pdf [cited May 2009]. [24] Vijayan Prabhakaran, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Analysis and evolution of journaling file systems. In ATEC ’05: Proceedings of the annual conference on USENIX Annual Technical Conference, pages 8–8, Berkeley, CA, USA, 2005. USENIX Association.

Phuï luïc

MS-DOS File System MS-DOS directory entry

Windows 98 File System (1/3) Môû roäng MS-DOS directory entry ñeå duøng trong Windows 98 Bytes

UNIX V7 File System (1/2) Moät UNIX V7 directory entry i-node number

UNIX V7 File System (2/2) Caùc böôùc ñeå doø tìm /usr/ast/mbox