420 likes | 635 Views
Ch ương 10: H ệ thống tập tin. Danh sách nhóm : 1.Phạm Đinh Tiến Dũng 2.Đào Mạnh Đức 3.Lê Văn Ưng. Chương 10: Hệ thống tập tin. Khái niệm tập tin Phương thức truy xuất Cấu trúc thư mục Phát triển hệ thống tập tin Chia sẻ tập tin Bảo vệ tập tin. Mục đích.
E N D
Chương 10: Hệ thống tập tin Danh sách nhóm: 1.Phạm Đinh Tiến Dũng 2.Đào Mạnh Đức 3.Lê Văn Ưng
Chương 10: Hệ thống tập tin • Khái niệm tập tin • Phương thức truy xuất • Cấu trúc thư mục • Phát triển hệ thống tập tin • Chia sẻ tập tin • Bảo vệ tập tin
Mục đích • Hiểu các chức năng của tập tin hệ thống • Hiểu giao diện cuả tập tin hệ thống • Hiểu cách sắp xếp của tập tin hệ thống, bao gồm phương thức truy xuất, chia sẻ tập tin, khoá tập tin, và cấu trúc thư mục. • Hiểu cơ chế bảo vệ tập tin.
Khái niệm tập tin • Một tập tin là một tập thông tin có liên quan với nhau • Kiểu: • Dữ liệu • Số • Ký tự số • Nhị phân • Chương trình
Cấu trúc tâp tin • Không có cấu trúc • Cấu trúc đơn giản • Đường thẳng • Chiều dài cố định • Chiều dài thay đổi • Cấu trúc phức tạp • Văn bản • Tập tin đang xây dựng lại • Có thể mô phỏng hai lần cuối cùng với phương thức đầu tiên bằng cách chèn ký tự điều khiển thích hợp • Cái gì quyết đinh : • Hệ thống điều khiển • Chương trình
Thuộc tính tập tin • Tên – tên tập tin chỉ là thông tin được lưu ở dạng mà người dùng có thể đọc. • Định danh – là thẻ duy nhất(thường là số) xác định tập tin trong hệ thống tập tin. • Kiểu – thông tin này được yêu cầu cho hệ thống hỗ trợ các kiểu khác nhau • Vị trí – thông tin này là một con trỏ chỉ tới vị trí tập tin trên thiết bị đó • Kích thước – kích thước hiện hành của tập tin • Bảo vệ – quản lý người sử dụng có thể đọc, viết và thực hiện • Giờ, ngày, và định danh người dùng – dữ liệu này có ích cho việc bảo vệ, bảo mật và kiểm soát việc dùng. • Thông tin về tất cả tập tin được giữ trong cấu trúc thư mục được lưu trữ trên đĩa.
Thao tác tập tin • Tập tin là kiểu dữ liệu trừu tượng • Tạo tập tin • Ghi • Đọc • Lấy thuộc tính • Xoá • Đổi tên • Mở – tìm kiếm nội dung của tập tin trong cấu trúc thư mục được lưu giữ trên đĩa, và đưa nội dung của tập tin vào bộ nhớ • Đóng – khi chấm dứt truy xuất, nội dung của tập tin sẽ được đóng lại để giải phóng vùng nhớ .
Mở tập tin • Một số vùng dữ liệu được yêu cầu để mở tập tin: • Con trỏ file: trỏ tới vị trí đọc/viết cuối cùng, mỗi tiến trình mà tập tin mở • Bộ đếm tập tin: đếm số lần tập tin được mở,cho phép di chuyển dữ liệu từ tập tin mở khi tiến trình cuối cùng đóng nó. • Vị trí tập tin trên đĩa: nơi dấu thông tin của dữ liệu truyền vào • Truy cập đúng: mỗi tiến trình truy cập một chế độ thông tin
Mở tập tin bị khoá • Cung cấp bởi một số hệ thống điều khiển và hệ thống tập tin • Gián tiếp truy cập vào tập tin • Bắt buộc và tư vấn: • Bắt buộc – tiến trình bị phủ nhận dựa trên tâp tin bị khoá và yêu cầu • Tư vấn– tiến trình có thể tìm ra tình trạng của tập tin bị khoá và quyết định nên làm gì
Ví dụ về tập tin bị khoá – Java API(application program interface - hệ giao tiếp lập trình ứng dụng) import java.io.*; import java.nio.channels.*; public class LockingExample { public static final boolean EXCLUSIVE = false; public static final boolean SHARED = true; public static void main(String arsg[]) throws IOException { FileLock sharedLock = null; FileLock exclusiveLock = null; try { RandomAccessFile raf = new RandomAccessFile("file.txt", "rw"); // get the channel for the file FileChannel ch = raf.getChannel(); // this locks the first half of the file - exclusive exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE); /** Now modify the data . . . */ // release the lock exclusiveLock.release();
Ví dụ về tập tin bị khoá – Java API (tiếp) // this locks the second half of the file - shared sharedLock = ch.lock(raf.length()/2+1, raf.length(), SHARED); /** Now read the data . . . */ // release the lock exclusiveLock.release(); }catch (java.io.IOException ioe) { System.err.println(ioe); }finally { if (exclusiveLock != null) exclusiveLock.release(); if (sharedLock != null) sharedLock.release(); } } }
Phương thức truy xuất • Truy xuất tuần tự đọc tiếp viết tiếp khởi động lại không đọc sau lần viết cuối cùng (viết lại) • Truy xuất trực tiếp đọc n viết n di chuyển tới n đọc tiếp viết tiếp viết lại n n = số giới hạn
Cấu trúc thư mục • Một tập hợp những nút chứa đựng toàn bộ dữ liệu của tất cả các tập tin Thư mục Tập tin F 1 F 2 F 3 F 4 F n Cấu trúc thư mục và tập tin đều được lưu giữ trên đĩa
Các thao tác được thực hiện trên thư mục • Tìm kiếm tập tin • Tạo tập tin • Xoá tập tin • Liệt kê thư mục • Đổi tên tập tin • Duyệt hệ thống tập tin
Tổ chức thư mục (hợp lý) thành các mục từ • Hiệu lực – tìm vị trí tập tin một cách nhanh chóng • Tên – thuận tiện cho người dùng • Hai người dùng có thể có tên giống nhau cho những tập tin khác nhau • Một tên giống nhau có thể có một vài tên khác nhau • Nhóm – nhóm tập tin hợp lý bởi tính chất, ( như tất cả chương trình Java, tất cả trò chơi, …)
Cấu trúc thư mục dạng đơn cấp • Thư mục đơn cấp Vấn đề tên Vấn đề nhóm
Cấu trúc thư mục dạng hai cấp • Cấu trúc riêng biệt cho mỗi người sử dụng • Tên tập tin • Có thể có một số tên giống nhau cho nhiều người sử dụng khác nhau • Đường dẫn tìm kiếm • Ko tạo được nhóm
Cấu trúc thư mục dạng cây (Tiếp) • Đường dẫn tìm kiếm • Tạo nhóm • Đường dẫn hiện thời( thư mục đang làm việc) • cd /spell/mail/prog • Kiểu danh sách
Cấu trúc thư mục dạng cây (tiếp) • Đường dẫn tuyệt đối và đường dẫn tương đối • Tạo một tập tin mới được làm việc trong thư mục hiện thời • Xoá một tập tin rm <file-name> • Tạo một thư mục con được làm việc trong thư mục hiện thời mkdir <dir-name> Ví dụ: nếu trong thư mục hiện thời/mail mkdir count mail prog copy prt exp count Xoá “thư” xoá toàn bộ cây con gốc bằng “thư”
Cấu trúc đồ thị không chứa chu trình • Có thư mục con và các tập tin được chia sẻ
Cấu trúc đồ thị không chứa chu trình(tiếp) • Hai tên khác nhau (bí danh) • Nếu không hữu ích xoá danh sách mất con trỏ Giải pháp: • Trỏ trở lại, vì vậy ta có thể xoá tất cả các con trỏ mang những dữ liệu có vấn đề • Trỏ trở lại sử dụng chuỗi cấu tạo tốt nhất • Vào-giữ-giải pháp đếm • Danh mục các loại mới • Liên kết – một tên khác ( con trỏ) đến tập tin hiện thời • Giải quyết liên kết – theo con trỏ để xác định vị trí tập tin
Thư mục đồ thị tổng quát (tiếp) • Làm thế nào để đảm bảo rằng không có chu trình trong đồ thị? • Chỉ cho phép liên kết với tập tin không có tập con • Cơ chế thu dọn rác • Mỗi khi một liên kết mới được thêm vào sử dụng chu trình nhận ra thuật toán để xác định xem nó là ĐÚNG
Gắn hệ thống tập tin • Một hệ thống tập tin phải được gắn kết trước khi nó có thể được truy cập • Một hệ thống tập tin chưa gắn (ví dụ hình 11-11(b)) sẽ được gắn kết vào một điểm gắn
Chia sẻ tập tin • Chia sẻ nhiều tập tin trên hệ thống nhiều người sử dụng là điều mong muốn • Chia sẻ có thể được thực hiện thông qua một chương trình bảo vệ • Trên hệ thống phân phối, tập tin có thể được chia sẻ qua kết nối mạng • Mạng lưới hệ thống tập tin (Network file system) là một phương thức chia sẻ tập tin phổ biến nhất
Chia sẻ tập tin – nhiều người dùng • Thẻ(IDs) của người dùng nhận ra người dùng, chấp nhận và bảo vệ đối với mỗi người dùng • Thẻ(IDs) của nhóm cho phép người dùng vào nhóm, và được hưởng những quyền lợi khi truy cập của nhóm
Chia sẻ tập tin – Hệ thống tập tin ở xa • Sự phát triển của mạng cho phép giao tiếp giữa các máy tính ở xa • Người dùng truyền tập tin giữa các máy tính bằng chương trình gọi là FTP(file transfer protocol)–giao thức truyền tập tin • Tự động, liền mạch sử dụng hệ thống tập tin phân tán • Bán tự động qua thế giới web • Mô hình khách hàng-máy chủ cho phép khách hàng kết nối hệ thống tập tin ở xa từ máy chủ • Khách hàng và người sử dụng-trên-khách hàng xác định là đơn giản hay phức tạp • NFS là tiêu chuẩn UNIX giao thức chia sẻ tập tin khách hàng-máy chủ • CIFS là tiêu chuẩn giao thức Windows • Hệ thống tổ chức tập tin chuẩn gọi là đạt được các truy xuất tập tin từ xa • Hệ thống phân tán thông tin( phân phối dịch vụ đặt tên) như LDAP, DNS, NIS, Active Directory triển khai thực hiện thống nhất để truy cập thông tin cần thiết cho máy tính ở xa
Chia sẻ tập tin – Chế độ thất bại • Hệ thống tập tin ở xa thêm chế độ mới không thành công, dẫn đến kết nối bị thất bại, máy chủ bị thất bại • Phục hồi thất bại có thể bao gồm thông tin về tình trạng của mỗi yêu cầu từ xa • Giao thức không được công nhận như NFS(network file system)- Hệ thống tập tin Mạng bao gồm tất cả thông tin của mỗi yêu cầu, cho phép dễ dàng phục hồi nhưng ít an toàn.
Chia sẻ tập tin – Tính vững về nghĩa • Tính vững về nghĩa nói lên tình trạng khi nhiều người dùng cùng truy cập vào một tập tin chia sẻ cùng một lúc như thế nào • Ch 7 tương tự với quá trình đồng bộ hóa các thuật toán • Có xu hướng ít phức tạp đến đĩa I / O(hệ thống vào ra) và mạng lưới latency (từ xa cho các hệ thống tập tin) • Hệ thống tập tin Andrew (AFS) - andrew file system thực hiện chia sẻ tập tin từ xa phức tạp về nghĩa • Hệ thống tập tin Unix (UFS) thực hiện: • Viết để mở một tập tin dễ nhìn ra ngay lập tức cho những người dùng khác mở cùng tập tin • Chia sẻ con trỏ tập tin để cho phép nhiều người dùng sử dụng để đọc và viết đồng thời • AFS có sự liên tưởng về nghĩa • Chỉ viết đến phiên bắt đầu sau khi tập tin bị đóng
Bảo vệ • Chủ sở hữu/người cài đặt tập tin nên có để điều khiển • Điều gì có thể được làm • Bởi ai • Kiểu truy cập • Đọc • Viết • Thực thi • Chèn • Xoá • Liệt kê danh sách
Danh sách truy cập và nhóm • Chế độ truy cập: đọc, viết, thực thi • Ba lớp người sử dụng RWX a) chủ truy cập 7 1 1 1 RWX b) nhóm truy cập 6 1 1 0 RWX c) truy cập chung 1 0 0 1 • Yêu cầu quản lý tạo ra một nhóm (tên riêng biệt), gọi là G, và thêm vào một số người dùng vào nhóm đó • Cho một tập tin đặc biệt (gọi là game) hoặc thư mục con, xác định một truy cập thích hợp. chủ nhóm chung chmod 761 game Đính kèm một nhóm đến một tập tin chgrp G game