Bài giảng Nguyên lý hệ điều hành - Nguyễn Hải Châu - Tuần 8: Giao diện hệ thống tệp
Cấu trúc tệp
zChuỗi các từ, byte
zCấu trúc bản ghi đơn giản: gồm các dòng, độ
dài cố định, độdài thay đổi
zCấu trúc phức tạp: tài liệu có khuôn dạng,
các tệp nạp có định vị lại
zYếu tốquyết định cấu trúc:
z Hệ điều hành
z Chương trình
11 1 Nguyên lý hệ điều hành Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ 2 Giao diện hệ thống tệp Khái niệm tệp Các phương pháp truy cập Cấu trúc thư mục Nối hệ thống tệp Dùng chung tệp Bảo vệ 3 Khái niệm tệp z Không gian địa chỉ logic liên tục z Các kiểu: z Dữ liệu z Số z Ký tự z Nhị phân z Chương trình 4 Cấu trúc tệp z Chuỗi các từ, byte z Cấu trúc bản ghi đơn giản: gồm các dòng, độ dài cố định, độ dài thay đổi z Cấu trúc phức tạp: tài liệu có khuôn dạng, các tệp nạp có định vị lại z Yếu tố quyết định cấu trúc: z Hệ điều hành z Chương trình 5 Thuộc tính tệp z Name – Thông tin người đọc được về tệp z Type – cần cho chương trình, hệ điều hành z Location – Vị trí tệp trên các thiết bị lưu trữ z Size – Cỡ hiện tại của tệp z Protection – Điều khiển các quyền truy cập z Time, date, and user ID – Dữ liệu về thời gian và định danh người sử dụng z Thông tin về cách lưu trữ tệp trên thiết bị, được lưu trong cấu trúc của thư mục 6 Các toán tử trên tệp z Create: Tạo tệp mới z Write: Ghi vào tệp z Read: Đọc từ tệp z Seek – Định vị lại con trỏ tệp z Delete: Xóa tệp z Truncate: Xóa dữ liệu hiện có trong tệp z Open(Fi) – mở tệp Fi (tìm phần tử Fi trong thư mục và đưa nội dung của Fi vào bộ nhớ) z Close(Fi) – đóng tệp Fi (đưa nội dung của Fi trong bộ nhớ ra đĩa) 22 7 Mở tệp z Một số thông tin cần quản lý khi mở tệp: z Con trỏ tệp (file pointer): Con trỏ đến vị trí đọc/ghi cuối cùng của mỗi tiến trình z Đếm số lượng mở tệp (file-open count): Biến đếm số lần tệp được mở, để cho phép xóa dữ liệu từ bảng mở tệp khi tiến trình cuối cùng đóng tệp z Vị trí trên đĩa của tệp: thông tin truy cập dữ liệu của tệp lưu trên đĩa z Quyền truy cập (access rights): Thông tin về các quyền truy cập tệp của mỗi tiến trình 8 Mở tệp có khóa z Một số HĐH có toán tử này z Dùng để điều khiển truy cập đồng thời đến tệp z Có hai cách khóa: z Mandatory – Khóa mang tính chất toàn cục z Advisory – Khóa mang tính chất hợp tác giữa các tiến trình 9 Kiểu tệp, tên và phần mở rộng 10 Các phương pháp truy cập z Truy cập tuần tự read next write next reset no read after last write (rewrite) z Truy cập trực tiếp read n write n position to n read next write next rewrite n n = relative block number 11 Tệp truy cập tuần tự 12 Mô phỏng truy cập tuần tự và trực tiếp 33 13 Ví dụ về tệp chỉ số và Relative Files 14 Cấu trúc thư mục z Thư mục là một tập các node chứa thông tin về tất cả các tệp F1 F2 F3 F4 Fn Thư mục Tệp z Thư mục và tệp đều nằm trên đĩa z Backup của thư mục và đĩa có thể nằm trên băng từ 15 Ví dụ một hệ thống tệp 16 Thông tin trên thư mục thiết bị z Tên z Kiểu z Địa chỉ z Độ dài hiện tại z Độ dài lớn nhất z Thời gian của lần truy cập cuối (để lưu trữ) z Thời gian của lần cập nhật cuối (for dump) z ID của người chủ tệp z Các thông tin bảo vệ 17 Các toán tử trên thư mục z Tìm một tệp z Tạo một tệp z Xóa một tệp z Liệt kê nội dung thư mục z Đổi tên một tệp z Duyệt toàn bộ hệ thống tệp 18 Cần tổ chức thư mục để đạt được: z Tính hiệu quả: tìm thấy một tệp nhanh chóng z Tên tệp mang lại sự tiện lợi cho người dùng z Hai NSD có thể đặt cùng tên cho hai tệp khác nhau z Một tệp có thể có nhiều tên khác nhau z Nhóm tệp: Các tệp có thể được nhóm lại dựa trên thuộc tính (ví dụ nhóm các tệp chương trình nguồn Java, nhóm các tệp thực hiện được...) 44 19 Thư mục một mức z Một thư mục cho tất cả NSD z Vấn đề đặt tên z Vấn đề nhóm các tệp với nhau 20 Thư mục hai mức z Mỗi NSD có các thư mục riêng z Đường dẫn z Hai NSD có thể đặt cùng tên cho hai tệp khác nhau z Tìm kiếm tệp hiệu quả z Không có khả năng nhóm các tệp 21 Thư mục cấu trúc cây 22 Thư mục cấu trúc cây (tiếp) z Tìm kiếm hiệu quả z Có khả năng nhóm các tệp z Thư mục làm việc hiện hành z Đổi thư mục làm việc hiện hành 23 Thư mục cấu trúc cây (tiếp) z Đường dẫn tuyệt đối và tương đối z Tạo một tệp trong thư mục hiện hành z Xóa tệp rm z Tạo thư mục con trong thư mục hiện hành mkdir Ví dụ: Nếu thư mục hiện hành là /mail mkdir count mail prog copy prt exp count 24 Thư mục với cấu trúc đồ thị phi chu trình z Các thư mục có thể có chung thư mục con và tệp 55 25 Thư mục với cấu trúc đồ thị phi chu trình (tiếp) z Tệp hoặc thư mục có thể có các tên khác nhau z Shortcut trong Windows z Link trong Unix/Linux z Mềm dẻo hơn cấu trúc cây nhưng phức tạp hơn: z Khi xóa một tệp hoặc thư mục có nhiều tên z Cần sử dụng con trỏ ngược z Sử dụng biến đếm số tên 26 Thư mục đồ thị tổng quát 27 Thư mục đồ thị tổng quát (tiếp) z Làm cách nào để đảm bảo không có chu trình? z Chỉ có phép link tới tệp, không cho link đến thư mục z “Dọn dẹp” hệ thống tệp (garbage collection) z Mỗi khi có link mới, thực hiện thuật toán phát hiện chu trình 28 Kết nối (mount) hệ thống tệp z Một hệ thống tệp phải được mount trước khi có thể truy cập tới (sử dụng) z Một tệp được mount tại điểm kết nối (mount point) 29 Minh họa mount/unmount 30 Điểm kết nối (mount point) 66 31 Tệp dùng chung z Cần có tệp dùng chung trên các hệ đa người dung (multi-user) z Dùng chung tệp có thể thực hiện thông qua một phương pháp bảo vệ z Với các hệ phân tán, NSD có thể dùng chung tệp trên mạng z Network File System (NFS) là một phương pháp dùng chung tệp phổ biến 32 Đa người dùng z User IDs định danh NSD để từ đó xác định các quyền và phương pháp bảo vệ z Group IDs xác định nhóm NSD để từ đó xác định các quyền truy cập nhóm 33 Hệ thống tệp từ xa z Sử dụng tệp để truy cập các hệ thống file ở các vị trí khác nhau z Thủ công: ví dụ FTP z Tự động: hệ thống tệp phân tán distributed file systems z Bán tự động: world wide web z Mô hình khách-chủ (Client-server model) cho phép máy khách mount hệ thống tệp của máy chủ từ xa z Máy chủ có thể phục vụ nhiều máy khách z Định danh máy khách và NSD trên máy khách có thể đơn giản (không an toàn - insecure) hoặc rất phức tạp 34 Hệ thống tệp từ xa (tiếp) z NFS là giao thức sử dụng chung tệp chuẩn trên UNIX cho mô hình client-server z CIFS là chuẩn trên Windows z Các hàm hệ thống chuẩn được chuyển đổi thành lời gọi từ xa (remote call) z Các dịch vụ đặt tên phân tán (distributed naming services) như LDAP, DNS, NIS cho ta cách truy cập thống nhất đến các thông tin cần thiết cho tính toán từ xa 35 Lỗi trong hệ thống tệp từ xa z Có nhiều nguyên nhân gây lỗi trong hệ thống tệp từ xa: Do lỗi mạng, lỗi server... z Khôi phục lỗi cần có thông tin trạng thái đối với mỗi yêu cầu phục vụ từ xa z Các giao thức như NFS lưu đưa toàn bộ các thông tin trạng thái vào mỗi yêu cầu do đó dễ khôi phục, nhưng kém an ninh 36 Nhất quán về ngữ nghĩa z Nhất quán ngữ nghĩa chỉ định cách truy cập đồng thời của nhiều NSD đến tệp dùng chung z Andrew File System (AFS) cài đặt hệ thống ngữ nghĩa phức tạp cho hệ thống tệp truy cập từ xa z AFS có ngữ nghĩa theo phiên: các toán tử write chỉ có tác dụng sau khi tệp được close z Unix file system (UFS) cài đặt: z Các toán tử write ngay lập tức có tác dụng trên các tệp chung (người đọc nhìn thấy kết quả của write) z Dùng chung tệp cho phép nhiều NSD đọc và ghi đồng thời 77 37 Bảo vệ z Người tạo tệp (chủ tệp) được phép qui định z Các toán tử nào trên tệp có thể được thực hiện... z ... và do ai thực hiện z Các toán tử: z Read z Write z Execute z Append z Delete z List 38 Danh sách và nhóm truy cập z Các toán tử: read, write, execute z Ba lớp NSD là owner, group và public RWX a) owner access 7 ⇒ 1 1 1 RWX b) group access 6 ⇒ 1 1 0 RWX c) public access 1 ⇒ 0 0 1 z Xem thêm quyền truy cập tệp của HĐH Unix/Linux 39 Các vấn đề cần nhớ z Khái niệm tệp z Các phương pháp truy cập tệp z Cấu trúc thư mục một cấp, nhiều cấp, cấu trúc thư mục cây, đồ thị phi chu trình, đồ thị tổng quát z Nối hệ thống tệp z Dùng chung tệp z Hệ thống tệp từ xa z Quyền truy cập tệp
File đính kèm:
- Bài giảng Nguyên lý hệ điều hành - Nguyễn Hải Châu - Tuần 8 Giao diện hệ thống tệp.pdf