Cấu trúc dữ liệu nào là tốt nhất để sử dụng cho tổ chức tệp? B-Trees có tốt nhất hay có cấu trúc dữ liệu nào khác có thể truy cập nhanh hơn vào các tệp và tổ chức tốt không? Cảm ơnCấu trúc dữ liệu được sử dụng để xây dựng hệ thống tệp?
Trả lời
Tất cả các hệ thống tệp khác nhau, do đó, có một số lượng lớn cấu trúc dữ liệu thực sự được sử dụng trong các hệ thống tệp.
Nhiều hệ thống tệp sử dụng một số loại bit vector (thường được gọi là bitmap) để theo dõi nơi các khối miễn phí nhất định, vì chúng có hiệu suất tuyệt vời để truy vấn xem khối đĩa cụ thể có đang sử dụng hay không 't áp đảo đầy đủ) hỗ trợ tra cứu nhanh chóng hợp lý của các khối miễn phí.
Nhiều cấu trúc thư mục được lưu trữ cũ hơn (ext và ext2) sử dụng danh sách được liên kết đơn giản. Rõ ràng điều này thực sự đủ nhanh đối với hầu hết các ứng dụng, mặc dù một số loại ứng dụng sử dụng nhiều thư mục lớn có hiệu suất đáng chú ý.
Hệ thống tệp XFS nổi tiếng khi sử dụng B+-trees cho mọi thứ, bao gồm cấu trúc thư mục và hệ thống nhật ký của nó. Từ những gì tôi nhớ từ khóa học hệ điều hành trải qua của tôi, triết lý là vì mất quá nhiều thời gian để viết, gỡ lỗi và hiệu suất điều chỉnh việc thực hiện B +-tree, nên sử dụng nó càng nhiều càng tốt.
Hệ thống tệp khác (ext3 và ext4) sử dụng biến thể của cây B được gọi là HTree mà tôi không quen thuộc lắm. Rõ ràng nó sử dụng một số loại lược đồ băm để giữ cho hệ số phân nhánh cao để có rất ít truy cập đĩa được sử dụng.
Tôi đã nghe giai thoại rằng một số hệ điều hành đã thử sử dụng splay trees để lưu trữ cấu trúc thư mục của chúng nhưng gặp sự cố với chúng. Cụ thể, nó ngăn chặn truy cập đa luồng tới cùng một thư mục từ nhiều độc giả (vì trong cây splay, mỗi truy cập định hình lại cây) và gặp phải một trường hợp cạnh cây sẽ thoái hóa thành một danh sách liên kết nếu tất cả các phần tử của cây được truy cập tuần tự. Điều đó nói rằng, tôi không biết đây có phải là một truyền thuyết đô thị hay không, vì những vấn đề này rõ ràng trước khi bất cứ ai cố gắng mã hóa chúng.
Hệ thống FAT32 của Microsoft đã sử dụng một mảng lớn (bảng phân bổ tệp) lưu trữ tệp nào được lưu trữ ở đâu và các phần đĩa nào theo một cách hợp lý trong tệp. Hạn chế chính là bảng phải được thiết lập trước, do đó, cuối cùng đã được giới hạn trên về kích thước của các tập tin có thể được lưu trữ trên đĩa. Tuy nhiên, hệ thống dựa trên mảng khá dễ thực hiện.
Đây không phải là danh sách đầy đủ - Tôi chắc chắn rằng các hệ thống tệp khác sử dụng cấu trúc dữ liệu khác. Tuy nhiên, tôi hy vọng nó sẽ giúp bạn đi đúng hướng.
Hy vọng điều này sẽ hữu ích!
Bài đăng rất hữu ích cảm ơn bạn! Tôi sẽ nghiên cứu về vectơ bit sau đó, và làm một số nghiên cứu thêm về hệ điều hành khác .. Tôi nghe nói rằng cây splay đang gặp rắc rối! Tôi quen thuộc nhất với B-Trees nhưng tôi mong muốn tìm hiểu các cấu trúc dữ liệu khác sẽ hữu ích cho loại công cụ này! Cảm ơn câu trả lời dài của bạn :) – Bernice
- 1. Truy cập hệ thống xây dựng từ hệ thống xây dựng khác trong Sublime Text 2
- 2. Sử dụng tệp cấu hình RequireJS làm tệp xây dựng?
- 3. Cấu trúc trong khu vực dàn dựng kho dữ liệu
- 4. Cấu trúc dữ liệu để xây dựng và tra cứu tập hợp các dãy số nguyên
- 5. Định cấu hình Hệ thống Xây dựng để tự động được chọn dựa trên phần mở rộng tệp
- 6. Cấu trúc cơ sở dữ liệu cho hệ thống nhận xét trang web
- 7. Cách tạo cấu trúc dự án Visual Studio C++ khớp với cấu trúc hệ thống tệp?
- 8. Giải thích về mã Ruby để xây dựng Trie cấu trúc dữ liệu
- 9. Xây dựng hệ thống cho các ứng dụng web PHP
- 10. Cách tốt nhất để sử dụng PowerShell Cmdlet trong hệ thống xây dựng NAnt là gì?
- 11. Cấu trúc dữ liệu C#
- 12. Cấu trúc cơ sở dữ liệu cho Hệ thống nhắn tin Web
- 13. Hiện tại hệ thống xây dựng tốt nhất là gì
- 14. Làm cách nào để xây dựng một dự án sử dụng sbt làm hệ thống xây dựng?
- 15. Tôi sử dụng cấu trúc dữ liệu nào ở đây?
- 16. Đồng bộ hóa cấu trúc thư mục/tên tệp của Visual Studio với cấu trúc hệ thống tệp/tên tệp
- 17. Việc sử dụng cấu trúc dữ liệu Heap là gì?
- 18. Tại sao một người nên sử dụng một hệ thống xây dựng trên hệ thống được bao gồm như là một phần của một IDE?
- 19. Cấu trúc dữ liệu nào sẽ sử dụng?
- 20. Hệ thống xây dựng văn bản cao cấp chỉ "làm"
- 21. xây dựng hệ thống ACL 'hai chiều' OO động
- 22. Làm cách nào để tạo một hệ thống xây dựng cho Sublime Text 2 để xây dựng msbuild?
- 23. Hệ thống xây dựng tuyệt vời cho Gradle
- 24. Cấu trúc dữ liệu liên tục hiệu quả cho cơ sở dữ liệu quan hệ
- 25. cấu trúc dữ liệu được sử dụng để triển khai tùy chọn UNDO và REDO
- 26. Ngôn ngữ Agnostic Xây dựng hệ thống quản lý
- 27. Xây dựng hệ thống và tính di động
- 28. Hệ thống xây dựng thực tế cho D
- 29. Làm thế nào để duy trì cấu trúc dữ liệu biểu đồ trong cơ sở dữ liệu quan hệ?
- 30. Hệ thống tệp TreeView
Tôi là người hâm mộ sử dụng cơ sở dữ liệu để lưu trữ thông tin. Tôi tin rằng hầu hết DB sử dụng cấu trúc b. Có nhiệm vụ cụ thể nào bạn đang cố thực hiện không? – kevingreen
Tôi chỉ tò mò cấu trúc dữ liệu nào được hệ điều hành sử dụng cho tổ chức tệp vì tôi đang học cấu trúc dữ liệu và tôi đã triển khai một vài cấu trúc: Red Black Trees, cây AVL, B-Trees, Skip Lists .. Tôi muốn biết cái nào trong số chúng tôi có thể sử dụng cho một nhiệm vụ hữu ích hơn (không lưu trữ số) – Bernice
Tôi không chắc chắn cách hầu hết dữ liệu lưu trữ của hệ điều hành. Chúc may mắn về nghiên cứu. – kevingreen