1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình nguyên lý hệ điều hành

315 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM PHẠM QUANG DŨNG, VŨ THỊ LƯU, NGUYỄN THỊ THẢO Chủ biên: PHẠM QUANG DŨNG Giáo trình NGUYÊN LÝ HỆ ĐIỀU HÀNH NHÀ XUẤT BẢN HỌC VIỆN NƠNG NGHIỆP - 2021 ii LỜI NĨI ĐẦU Cuốn giáo trình Nguyên lý hệ điều hành biên soạn nhóm tác giả TS Phạm Quang Dũng (viết chương đến chương 7), ThS Nguyễn Thị Thảo (chương chương 9), ThS Vũ Thị Lưu (chương 10 chương 11) - giảng viên Khoa Công nghệ thơng tin, Học viện Nơng nghiệp Việt Nam Giáo trình bao gồm kiến thức nguyên lý hoạt động hệ điều hành Nội dung giáo trình tham khảo biên soạn chọn lọc từ sách sử dụng phổ biến trường đại học tiếng giới Hệ điều hành phần quan trọng hệ thống máy tính Tương tự vậy, khóa học hệ điều hành phần quan trọng chương trình đào tạo khoa học máy tính Lĩnh vực thay đổi nhanh chóng ngày máy tính phổ biến lĩnh vực sống hàng ngày, từ dạng thiết bị nhúng ô tô đến công cụ lập kế hoạch phức tạp cho phủ cơng ty đa quốc gia Tuy nhiên, khái niệm rõ ràng đề cập sách Giáo trình dùng để làm tài liệu giảng dạy học tập cho học phần Nguyên lý hệ điều hành gồm tín chương trình đào tạo chuyên ngành thuộc khoa Công nghệ thông tin, Học viện Nông nghiệp Việt Nam Giáo trình chia thành phần, phần bao gồm nhiều chương, chương thảo luận khía cạnh hệ điều hành xếp theo thứ tự logic kiến thức Phần A: Tổng quan hệ thống máy tính hệ điều hành Chương 1: Giới thiệu chung - Chương giới thiệu tổng quát thành phần hệ điều hành tổ chức hệ thống máy tính: (1) Tổ chức hệ thống máy tính; (2) Khái niệm hệ điều hành; (3) Cấu trúc hệ điều hành; (4) Hoạt động hệ điều hành; (5) Quản lý tiến trình; (6) Quản lý nhớ chính; (7) Quản lý lưu trữ; (8) Bảo vệ an ninh Chương 2: Cấu trúc hệ điều hành - Chương đề cập đến kiến thức tảng cấu trúc hệ điệu hành: (1) Các dịch vụ hệ điều hành; (2) Giao diện người sử dụng; (3) Lời gọi hệ thống; (4) Các chương trình hệ thống; (5) Thiết kế thực thi hệ điều hành; (6) Cấu trúc hệ điều hành, (7) Máy ảo; (8) Sự phát sinh hệ điều hành; (9) Khởi động hệ thống Phần B: Quản lý tiến trình Chương 3: Tiến trình - Chương đề cập đến kiến thức tảng vấn đề liên quan đến tiến trình: (1) Khái niệm tiến trình; (2) Lập lịch tiến trình; (3) Các hoạt động tiến trình; (4) Các tiến trình hợp tác; (5) Các ví dụ hệ thống IPC; (6) Giao tiếp hệ thống client-server Chương 4: Luồng - Chương giới thiệu nhiều khái niệm liên quan với hệ thống máy tính đa luồng: (1) Tổng quan luồng; (2) Các mơ hình đa luồng; (3) Các vấn đề luồng; (4) Luồng hệ điều hành iii Chương 5: Lập lịch CPU - Chương giới thiệu khái niệm lập lịch bản, giới thiệu mô tả giải thuật lập lịch CPU khác nhau: (1) Các khái niệm bản; (2) Các tiêu chuẩn lập lịch; (3) Các giải thuật lập lịch; (4) Lập lịch với nhiều xử lý; (5) Ví dụ lập lịch hệ điều hành; (6) Lựa chọn giải thuật lập lịch Chương 6: Đồng hóa tiến trình - Chương thảo luận chế để đảm bảo thứ tự thực tiến trình hợp tác có khả chia sẻ không gian địa logic đồng thời trì ổn định liệu Nội dung chương bao gồm: (1) Kiến thức sở; (2) Vấn đề đoạn găng; (3) Giải pháp Peterson; (4) Phần cứng đồng hóa; (5) Kỹ thuật dùng cờ báo; (6) Các vấn đề kinh điển đồng hóa; (7) Sự đồng hóa số hệ điều hành Chương 7: Bế tắc (deadlock) - Chương miêu tả bế tắc phương pháp mà hệ điều hành sử dụng để ngăn ngừa đối mặt với bế tắc Nội dung chương bao gồm: (1) Mơ hình hệ thống; (2) Các đặc điểm bế tắc; (3) Các phương pháp xử lý bế tắc; (4) Ngăn ngừa bế tắc; (5) Tránh khỏi bế tắc; (6) Phát bế tắc; (7) Phục hồi sau bế tắc Phần C: Quản lý nhớ Chương 8: Bộ nhớ - Chương đề cập đến nhiều cách quản lý nhớ khác nghiên cứu kỹ thuật quản lý nhớ phân trang, phân đoạn Nội dung chương bao gồm đề mục: (1) Kiến thức sở; (2) Kỹ thuật hoán đổi; (3) Cấp phát nhớ liên tục; (4) Phân trang; (5) Phân đoạn; (6) Cấu trúc bảng trang; (7) Ví dụ Intel Pentium Chương 9: Bộ nhớ ảo - Chương thảo luận nhớ ảo dạng phân trang theo yêu cầu xem xét độ phức tạp chi phí Nội dung chương bao gồm: (1) Tổng quan nhớ ảo; (2) Phân trang theo yêu cầu; (3) Thay trang; (4) Cấp phát khung; (5) Sự trì trệ; (6) Ví dụ hệ điều hành Chương 10: Quản lý vào/ra (I/O) lập lịch đĩa - Chương tóm tắt thiết bị việc tổ chức chức I/O máy tính Nội dung kiến thức chương đề cập đến: (1) Các thiết bị I/O; (2) Tổ chức chức I/O; (3) Các vấn đề thiết kế hệ điều hành; (4) Kỹ thuật đệm vào/ra (I/O); (5) Lập lịch đĩa; (6) Raid; (7) Disk cache; (8) I/O Unix SVR4; (9) Linux I/O; (10) I/O Windows Chương 11: Quản lý tệp tin - Chương mô tả khái niệm kỹ thuật tổ chức truy cập tệp hệ thống tệp Nội dung chương bao gồm: (1) Tổng quan quản lý tệp tin; (2) Truy cập tổ chức tệp tin; (3) B-Tree; (4) Thư mục tệp tin; (5) Blocking record (bản ghi theo khối); (6) Quản lý lưu trữ thứ cấp; (7) An toàn hệ thống tệp tin; (8) Quản lý tệp Unix; (9) Hệ thống tệp tin Windows Nhóm tác giả có nhiều cố gắng cơng tác biên soạn khó tránh khỏi thiếu sót Chúng tơi xin trân trọng tiếp thu ý kiến đóng góp q độc giả để hồn thiện giáo trình lần tái Nhóm tác giả iv MỤC LỤC Lời nói đầu iii Danh mục chữ viết tắt xiii Phần A TỔNG QUAN VỀ HỆ THỐNG MÁY TÍNH VÀ HỆ ĐIỀU HÀNH Chương GIỚI THIỆU CHUNG 1.1 TỔ CHỨC CỦA HỆ THỐNG MÁY TÍNH 1.1.1 Hoạt động hệ thống máy tính 1.1.2 Cấu trúc nhớ lưu trữ 1.1.3 Cấu trúc vào/ra 1.2 KHÁI NIỆM HỆ ĐIỀU HÀNH 1.2.1 Quan điểm người sử dụng 1.2.2 Quan điểm hệ thống 1.3.3 Các mục đích hệ điều hành 1.3 CẤU TRÚC HỆ ĐIỀU HÀNH 1.4 HOẠT ĐỘNG CỦA HỆ ĐIỀU HÀNH 10 1.4.1 Sự hoạt động hai chế độ 10 1.4.2 Bộ định thời (Timer) 12 1.5 QUẢN LÝ TIẾN TRÌNH 12 1.6 QUẢN LÝ BỘ NHỚ CHÍNH 13 1.7 QUẢN LÝ LƯU TRỮ 14 1.7.1 Quản lý tệp 14 1.7.2 Quản lý nhớ lưu trữ lớn 15 1.7.3 Kỹ thuật sử dụng nhớ đệm nhanh - Caching 15 1.7.4 Hệ thống vào/ra 17 1.8 BẢO VỆ VÀ AN NINH 18 TÓM TẮT 19 CÂU HỎI ÔN TẬP 19 Chương CẤU TRÚC HỆ ĐIỀU HÀNH 21 2.1 CÁC DỊCH VỤ CỦA HỆ ĐIỀU HÀNH 21 2.2 GIAO DIỆN NGƯỜI SỬ DỤNG 23 2.2.1 Trình thơng dịch lệnh 23 2.2.2 Giao diện đồ họa 23 2.3 LỜI GỌI HỆ THỐNG 24 v 2.4 CÁC CHƯƠNG TRÌNH HỆ THỐNG 29 2.5 THIẾT KẾ VÀ THỰC THI HỆ ĐIỀU HÀNH 30 2.5.1 Mục tiêu thiết kế 30 2.5.2 Sự thực thi 30 2.6 CẤU TRÚC HỆ ĐIỀU HÀNH 31 2.6.1 Cấu trúc đơn giản 31 2.6.2 Cấu trúc phân lớp 32 2.6.3 Cấu trúc vi nhân (Microkernel) 34 2.6.4 Cấu trúc module 34 2.7 MÁY ẢO 36 2.7.1 Sự thực thi 37 2.7.2 Những lợi điểm 37 2.7.3 Các ví dụ 38 2.8 SỰ PHÁT SINH HỆ THỐNG 40 2.9 KHỞI ĐỘNG HỆ THỐNG 41 TÓM TẮT 42 CÂU HỎI ÔN TẬP 42 Phần B QUẢN LÝ TIẾN TRÌNH 45 Chương TIẾN TRÌNH 45 3.1 KHÁI NIỆM TIẾN TRÌNH 45 3.1.1 Tiến trình 46 3.1.2 Các trạng thái tiến trình 47 3.1.3 Khối điều khiển tiến trình 47 3.1.4 Luồng 48 3.2 LẬP LỊCH TIẾN TRÌNH 49 3.2.1 Các hàng đợi lập lịch 49 3.2.2 Các trình lập lịch 50 3.2.3 Chuyển ngữ cảnh 52 3.3 CÁC HOẠT ĐỘNG TRÊN TIẾN TRÌNH 52 3.3.1 Sự tạo tiến trình 52 3.3.2 Sự chấm dứt tiến trình 57 3.4 CÁC TIẾN TRÌNH HỢP TÁC 57 3.4.1 Hệ thống dùng nhớ chia sẻ 59 3.4.2 Hệ thống truyền thông điệp 60 3.5 VÍ DỤ TRÊN HỆ ĐIỀU HÀNH WINDOWS XP 64 vi 3.6 GIAO TIẾP TRONG CÁC HỆ THỐNG CLIENT-SERVER 65 3.6.1 Sockets 65 3.6.2 Lời gọi thủ tục từ xa (Remote Procedure Calls - RPC) 66 3.6.3 Triệu gọi phương thức từ xa (Remote Method Invocation - RMI) 67 TÓM TẮT 68 CÂU HỎI ÔN TẬP 68 Chương LUỒNG CHƯƠNG TRÌNH 70 4.1 TỔNG QUAN 70 4.1.1 Sự cần thiết đa luồng 70 4.1.2 Các lợi điểm đa luồng 71 4.2 CÁC MƠ HÌNH ĐA LUỒNG 72 4.2.1 Mơ hình Many-to-One 72 4.2.2 Mơ hình One-to-One 72 4.2.3 Mơ hình Many-to-Many 73 4.3 CÁC VẤN ĐỀ VỀ LUỒNG 74 4.3.1 Các lời gọi hệ thống fork() exec() 74 4.3.2 Sự hủy bỏ luồng 74 4.3.3 Xử lý tín hiệu 75 4.3.4 Thread Pools 76 4.3.5 Dữ liệu riêng luồng 77 4.3.6 Giao tiếp kernel - thư viện luồng 77 4.4 VÍ DỤ LUỒNG TRONG CÁC HỆ ĐIỀU HÀNH 78 4.4.1 Các luồng Windows XP 78 4.4.2 Các luồng Linux 79 TÓM TẮT 80 CÂU HỎI ÔN TẬP 80 Chương LẬP LỊCH CPU 82 5.1 CÁC KHÁI NIỆM CƠ BẢN 82 5.1.1 Chu kỳ sử dụng CPU-I/O (CPU-I/O Burst Cycle) 82 5.1.2 Trình lập lịch CPU 83 5.1.3 Lập lịch có ưu tiên trước khơng ưu tiên trước 84 5.1.4 Trình điều vận - Dispatcher 84 5.2 CÁC TIÊU CHUẨN LẬP LỊCH 85 5.3 CÁC GIẢI THUẬT LẬP LỊCH 86 5.3.1 Giải thuật FCFS (Đến trước - Phục vụ trước) 86 5.3.2 Giải thuật SJF (ưu tiên trước tiến trình ngắn nhất) 87 vii 5.3.3 Giải thuật SRTF (ưu tiên trước tiến trình có thời gian ngắn hơn) 88 5.3.4 Giải thuật lập lịch theo mức ưu tiên 89 5.3.5 Giải thuật Round-Robin (RR) 90 5.3.6 Giải thuật lập lịch đa mức hàng đợi 91 5.3.7 Giải thuật lập lịch đa mức hàng đợi có hồn ngược 92 5.4 LẬP LỊCH VỚI NHIỀU BỘ XỬ LÝ 93 5.5 VÍ DỤ LẬP LỊCH TRONG CÁC HỆ ĐIỀU HÀNH 94 5.5.1 Lập lịch Windows XP 94 5.5.2 Lập lịch Linux 96 5.6 LỰA CHỌN GIẢI THUẬT LẬP LỊCH 98 TÓM TẮT 98 CÂU HỎI ÔN TẬP 99 Chương ĐỒNG BỘ HÓA TIẾN TRÌNH 102 6.1 KIẾN THỨC CƠ SỞ 102 6.2 VẤN ĐỀ ĐOẠN GĂNG 103 6.3 GIẢI PHÁP CỦA PETERSON 104 6.4 PHẦN CỨNG ĐỒNG BỘ HÓA 106 6.5 KỸ THUẬT DÙNG CỜ BÁO 109 6.5.1 Cách sử dụng 109 6.5.2 Sự thực thi 110 6.5.3 Sự bế tắc (deadlocks) khóa vơ hạn 112 6.6 CÁC VẤN ĐỀ KINH ĐIỂN CỦA ĐỒNG BỘ HÓA 113 6.6.1 Vấn đề buffer có giới hạn 113 6.6.2 Vấn đề tiến trình đọc - tiến trình ghi 114 6.6.3 Vấn đề triết gia ngồi ăn 116 6.7 SỰ ĐỒNG BỘ HÓA TRONG MỘT SỐ HỆ ĐIỀU HÀNH 118 6.7.1 Đồng hóa Windows XP 118 6.7.2 Đồng hóa Linux 119 TÓM TẮT 120 CÂU HỎI ÔN TẬP 120 Chương BẾ TẮC 122 7.1 MƠ HÌNH HỆ THỐNG 122 7.2 CÁC ĐẶC ĐIỂM CỦA BẾ TẮC 123 7.2.1 Các điều kiện cần 123 7.2.2 Đồ thị phân phối tài nguyên 124 viii 7.3 CÁC PHƯƠNG PHÁP XỬ LÝ BẾ TẮC 126 7.4 NGĂN NGỪA BẾ TẮC 127 7.4.1 Ngăn cản lẫn 127 7.4.2 Giữ đợi 127 7.4.3 Không ưu tiên trước 128 7.4.4 Chờ đợi vòng tròn 128 7.5 TRÁNH KHỎI BẾ TẮC 128 7.5.1 Trạng thái an toàn 129 7.5.2 Giải thuật đồ thị phân phối tài nguyên 130 7.5.3 Giải thuật chủ nhà băng 131 7.6 PHÁT HIỆN BẾ TẮC 134 7.6.1 Khi loại tài nguyên đơn thể 134 7.6.2 Khi loại tài nguyên đa thể 135 7.6.3 Cách sử dụng giải thuật phát bế tắc 136 7.7 PHỤC HỒI SAU BẾ TẮC 137 7.7.1 Sự chấm dứt tiến trình 137 7.7.2 Sự ưu tiên trước tài nguyên 138 TÓM TẮT 138 CÂU HỎI ÔN TẬP 139 Phần C QUẢN LÝ BỘ NHỚ 143 Chương BỘ NHỚ CHÍNH 143 8.1 KIẾN THỨC CƠ SỞ 143 8.1.1 Phần cứng 144 8.1.2 Liên kết địa 145 8.1.3 Không gian địa vật lý địa logic 147 8.1.4 Nạp động 148 8.1.5 Liên kết động thư viện chia sẻ 149 8.2 KỸ THUẬT HOÁN ĐỔI 150 8.3 CẤP PHÁT BỘ NHỚ LIÊN TỤC 152 8.3.1 Bảo vệ ánh xạ nhớ 152 8.3.2 Cấp phát nhớ 153 8.3.3 Phân mảnh 155 8.4 KỸ THUẬT PHÂN TRANG 156 8.4.1 Phương pháp 156 8.4.2 Hỗ trợ phần cứng 160 8.4.3 Sự bảo vệ 163 ix 8.4.4 Trang chia sẻ 164 8.5 CẤU TRÚC BẢNG TRANG 165 8.5.1 Bảng trang phân cấp 165 8.5.2 Bảng trang băm 168 8.5.3 Bảng trang đảo 169 8.6 KỸ THUẬT PHÂN ĐOẠN 170 8.6.1 Phương pháp 170 8.6.2 Phần cứng 172 8.7 VÍ DỤ INTEL PENTIUM 173 8.7.1 Phân đoạn Pentium 174 8.7.2 Phân trang Pentium 175 8.7.3 Linux hệ thống Pentium 176 TÓM TẮT 178 CÂU HỎI ÔN TẬP 178 Chương BỘ NHỚ ẢO 181 9.1 TỔNG QUAN 181 9.2 PHÂN TRANG THEO YÊU CẦU 184 9.2.1 Các khái niệm 185 9.2.2 Hiệu suất phân trang theo yêu cầu 188 9.3 THAY THẾ TRANG 191 9.3.1 Thay trang 192 9.3.2 Thay trang FIFO 195 9.3.3 Thay trang tối ưu 197 9.3.4 Thay trang không dùng khoảng thời gian lâu 197 9.3.5 Thay trang xấp xỉ LRU 199 9.3.6 Thay trang dựa sở đếm 202 9.4 CẤP PHÁT KHUNG 202 9.4.1 Số lượng khung tối thiểu 203 9.4.2 Thuật toán cấp phát 204 9.4.3 Cấp phát toàn cục cục 205 9.5 SỰ TRÌ TRỆ 205 9.5.1 Nguyên nhân trì trệ 206 9.5.2 Tần số lỗi trang 207 9.6 VÍ DỤ VỀ CÁC HỆ ĐIỀU HÀNH 208 9.6.1 Windows XP 208 9.6.2 Solaris 208 x Hệ thống file Linux ảo: Linux bao gồm sở xử lý tệp linh hoạt mạnh mẽ, thiết kế để hỗ trợ hệ thống quản lý tệp cấu trúc tệp Cách tiếp cận thực Linux sử dụng hệ thống tệp ảo (VFS), giao diện hệ thống tệp đơn nhất, thống cho tiến trình người dùng VFS định nghĩa mơ hình tệp có khả đại diện cho tính hoạt động chung hệ thống tệp VFS giả định tệp đối tượng nhớ lưu trữ khối máy tính chia sẻ thuộc tính hệ thống tệp đích phần cứng trình quản lý Các tệp có tên cho phép chúng xác định thư mục cụ thể hệ thống tệp Tệp có chủ sở hữu, bảo vệ chống lại quyền truy cập sửa đổi trái phép nhiều thuộc tính khác Một tệp tin tạo, đọc, ghi xóa Đối với hệ thống tệp cụ thể nào, cần có module ánh xạ để chuyển đổi đặc tính hệ thống tệp thực sang đặc tính mong đợi hệ thống tệp ảo Hình 11.19 Tổng quan hệ thống tệp tin Linux ảo Hình 11.19 thành phần hệ thống tệp tin Linux Quá trình người dùng yêu cầu lời gọi hệ thống tệp (ví dụ: đọc) cách sử dụng phương pháp tệp 287 VFS VFS chuyển đổi thành lời gọi hệ thống tệp nội (tới kernel) đến hệ thống tệp cụ thể [ví dụ: Hệ thống tệp Journing IBM (JFS)] Trong hầu hết trường hợp, hàm ánh xạ đơn giản ánh xạ lời gọi hệ thống tệp tin từ phương pháp sang phương pháp khác Trong số trường hợp, hàm ánh xạ phức tạp Ví dụ, số hệ thống tệp sử dụng bảng cấp phát tệp (FAT), lưu trữ vị trí tệp thư mục Trong hệ thống tệp này, thư mục tệp Đối với hệ thống tệp vậy, hàm ánh xạ phải có khả xây dựng động cần, tệp tương ứng với thư mục Trong trường hợp, lời gọi hệ thống tệp người dùng ban đầu dịch sang lời gọi từ hệ thống tệp đích Phần mềm hệ thống tệp tin đích sau gọi để thực chức yêu cầu tệp tin thư mục kiểm soát lưu trữ thứ cấp Kết sau truyền lại cho người dùng theo cách tương tự Hình 11.20 Ý tưởng hệ thống tệp tin Linux ảo Hình 11.20 vai trò VFS nhân Linux Khi tiến trình khởi tạo lời gọi hệ thống định hướng tệp tin (ví dụ, đọc), kernel gọi hàm VFS Hàm xử lý thao tác độc lập với hệ thống tệp tin bắt đầu lời gọi đến hàm mã hệ thống tệp đích Lời gọi sau ánh xạ chuyển đổi lời gọi từ VFS thành lời gọi đến hệ thống tệp đích VFS độc lập với hệ thống tệp nào, việc triển khai chức ánh xạ phải phần việc triển khai hệ thống tệp Linux Hệ thống tệp đích chuyển đổi yêu cầu hệ thống tệp thành hướng dẫn chuyển tới trình điều khiển VFS phương pháp hướng đối tượng Do viết C, ngôn ngữ hỗ trợ lập trình đối tượng (như C ++ Java), đối tượng VFS thực đơn giản cấu trúc liệu C Mỗi đối tượng chứa liệu trỏ tới hàm thực thi hệ thống tệp tin Bốn loại đối tượng VFS sau:  Siêu khối: Đại diện cho hệ thống tệp tin gắn cụ thể  Inode: Đại diện cho tệp tin cụ thể  Dentry: Biểu diễn mục nhập thư mục cụ thể  Đối tượng tệp: Trình bày tệp mở kết hợp với tiến trình Phương pháp dựa khái niệm sử dụng hệ thống tệp UNIX, mô tả mục 11.7 Các khái niệm hệ thống tệp tin UNIX 288 cần nhớ sau Một hệ thống tệp tin bao gồm tổ chức phân cấp thư mục Thư mục giống với thư mục nhiều tảng khơng phải UNIX chứa tệp và/hoặc thư mục khác Vì thư mục chứa thư mục khác, cấu trúc hình thành Một đường dẫn thông qua cấu trúc từ gốc bao gồm chuỗi mục nhập thư mục, kết thúc mục nhập thư mục (dentry) tên tệp Trong UNIX, thư mục thực tệp Do đó, thao tác tệp thực tệp thư mục Siêu khối: Đối tượng siêu khối lưu trữ thông tin mô tả hệ thống tệp cụ thể Thông thường, siêu khối tương ứng với khối điều khiển hệ thống tệp tin khối tệp tin, lưu trữ sector đặc biệt đĩa Đối tượng siêu khối bao gồm số mục liệu Ví dụ sau:  Thiết bị mà hệ thống tệp gắn  Kích thước khối hệ thống tệp  Cờ siêu khóa thay đổi không viết lại đĩa  Loại hệ thống tệp  Cờ, cờ đọc  Con trỏ tới thư mục gốc hệ thống tệp tin  Danh sách tệp mở  Semaphore để kiểm soát truy cập vào hệ thống tệp tin  Danh sách hoạt động siêu khối Mục cuối danh sách hoạt động chứa siêu khối Đối tượng hoạt động xác định phương thức đối tượng (các hàm) mà kernel gọi siêu khối Các phương thức định nghĩa cho đối tượng siêu khối bao gồm:  read_inode: Đọc inode định từ hệ thống tệp gắn kết  write_inode: Viết inode vào đĩa  put_inode: Giải phóng inode  delete_inode: Xóa inode khỏi đĩa  notify_change: Được gọi thuộc tính inode thay đổi  put_super: Được gọi VFS để giải phóng siêu khối định  write_super: Được gọi VFS định siêu khối cần phải ghi vào đĩa  statfs: Lấy thống kê hệ thống tệp tin  remount_fs: Được gọi VFS hệ thống tệp cập nhật với tùy chọn  clear_inode: Giải phóng inode xóa trang chứa liệu liên quan 289 Đối tượng Inode: Một inode liên kết với tệp Các inode giữ tất thông tin tệp tin ngoại trừ tên nội dung liệu thực tế tệp tin Các mục chứa inode bao gồm chủ sở hữu, nhóm, quyền, thời gian truy cập tệp, kích thước liệu số lượng liên kết inode bao gồm hoạt động mô tả hàm triển khai hệ thống tệp mà VFS gọi inode Các phương thức xác định cho inode bao gồm:  create: Tạo inode cho tệp thông thường liên kết với đối tượng dentry số thư mục  lookup: Tìm kiếm thư mục cho inode tương ứng với tên tệp  mkdir: Tạo inode cho thư mục liên kết với dentry số thư mục The Dentry Object: Dentry (mục nhập thư mục) thành phần cụ thể đường dẫn Nó tên thư mục tên tệp Các đối tượng Dentry tạo điều kiện truy cập vào tệp, thư mục sử dụng nhớ cache cho mục đích Dentry bao gồm trỏ đến inode siêu khối Nó bao gồm trỏ đến dentry trỏ cha trỏ đến dentry cấp Đối tượng tệp: Đối tượng tệp sử dụng để biểu diễn tệp mở tiến trình Đối tượng tạo có lời gọi hệ thống open() bị hủy bỏ gọi close() Đối tượng tệp bao gồm số mục, bao gồm:  Dentry liên kết với tệp  Hệ thống tệp chứa tệp  Bộ đếm sử dụng tệp tin  ID người dùng  ID nhóm người dùng  Con trỏ tệp, vị trí tệp mà từ hoạt động diễn Đối tượng tệp bao gồm đối tượng hoạt động inode mô tả hàm triển khai hệ thống tệp mà VFS gọi đối tượng tệp Các phương thức định nghĩa cho đối tượng tệp bao gồm đọc, viết, mở, giải phóng khóa 11.9 HỆ THỐNG TỆP TIN WINDOWS Các nhà phát triển Windows NT thiết kế hệ thống tệp mới, Hệ thống tệp (NTFS), thiết kế để đáp ứng yêu cầu cao cấp cho máy trạm máy chủ Ví dụ ứng dụng cao cấp bao gồm: 290  Các ứng dụng máy khách/máy chủ máy chủ tệp, máy chủ tính tốn máy chủ sở liệu  Các ứng dụng khoa học kỹ thuật chuyên sâu tài nguyên  Các ứng dụng mạng cho hệ thống doanh nghiệp lớn Phần cung cấp tổng quan NTFS Các tính NTFS NTFS hệ thống tệp tin linh hoạt mạnh mẽ Các tính đáng ý NTFS bao gồm:  Khả phục hồi: cao danh sách yêu cầu hệ thống tệp Windows khả phục hồi từ cố hệ thống lỗi đĩa Trong trường hợp lỗi vậy, NTFS tạo lại ổ đĩa trả trạng thái quán Mỗi trạng thái tiến trình thời điểm thất bại sau lưu đưa đến hồn thành Ngồi ra, NTFS sử dụng lưu trữ dự phòng cho liệu hệ thống tệp tin quan trọng, lỗi sector đĩa không gây liệu cấu trúc trạng thái hệ thống tệp  Bảo mật: NTFS sử dụng mơ hình đối tượng Windows để thực thi bảo mật Một tệp mở thực đối tượng tệp với mô tả bảo mật xác định thuộc tính bảo mật Bộ mơ tả bảo mật trì thuộc tính tệp đĩa  Các đĩa tệp lớn: NTFS hỗ trợ đĩa tệp lớn hiệu hệ thống tệp khác, chẳng hạn FAT  Nhiều luồng liệu: Nội dung thực tế tệp coi luồng byte Trong NTFS, xác định nhiều luồng liệu cho tệp Một ví dụ cho phép Windows sử dụng hệ thống Macintosh từ xa để lưu trữ truy xuất tệp Trên Macintosh, tệp có hai thành phần: liệu tệp tài nguyên thông tin tệp NTFS xử lý hai thành phần dạng hai luồng liệu tệp  Nhật ký: NTFS lưu nhật ký tất thay đổi thực tệp ổ đĩa Các chương trình, chẳng hạn tìm kiếm máy tính để bàn, đọc nhật ký để xác định tệp thay đổi  Nén mã hóa: Tồn thư mục tệp riêng lẻ nén và/hoặc mã hóa cách minh bạch  Các liên kết cứng biểu tượng: Để hỗ trợ POSIX, Windows hỗ trợ “liên kết cứng”, cho phép tệp truy cập nhiều tên đường dẫn ổ đĩa Bắt đầu với Windows Vista, "liên kết biểu tượng" hỗ trợ cho phép tệp thư mục truy cập nhiều tên đường dẫn, 291 tên có volume khác Windows hỗ trợ “điểm gắn kết” cho phép volume xuất điểm giao ổ đĩa khác, thay đặt tên ký tự, chẳng hạn “D:” Volume NTFS cấu trúc tệp: NTFS sử dụng khái niệm lưu trữ đĩa sau đây:  Sector: Đơn vị lưu trữ vật lý nhỏ đĩa Kích thước liệu tính theo byte lũy thừa 512 byte  Cluster: Một nhiều phần tiếp giáp (phần cạnh đĩa) Kích thước cluster sector lũy thừa  Volume: Một phân vùng logic đĩa, bao gồm nhiều cluster sử dụng để cấp phát không gian cho hệ thống tệp Volume bao gồm thông tin hệ thống tệp tin, tập hợp tệp tin không gian chưa cấp phát Nếu phần cứng phần mềm RAID sử dụng, volume bao gồm vùng nhiều đĩa Dung lượng tối đa cho NTFS 264 byte Cluster đơn vị cấp phát NTFS Ví dụ, giả sử sector 512 byte hệ thống cấu hình với hai sector cluster (một cluster = 1K bytes) Nếu người dùng tạo tệp 1.600 byte, hai cluster cấp phát cho tệp Sau đó, người dùng cập nhật tệp lên 3.200 byte, hai cluster khác cấp phát Các cluster cấp phát cho tệp tin khơng cần phải liên tục Hiện tại, kích thước tệp tối đa hỗ trợ NTFS 232 cluster, tương đương với tối đa 248 byte Một cluster có tối đa 216 byte Việc sử dụng cluster cấp phát làm cho NTFS độc lập với kích thước vật lý Điều cho phép NTFS hỗ trợ đĩa khơng chuẩn dễ dàng mà khơng có kích thước sector 512 byte để hỗ trợ đĩa lớn tệp lớn cách sử dụng kích thước cluster lớn Hiệu xuất phát từ thực tế hệ thống tệp giữ track cluster cấp phát cho tệp; với cluster lớn hơn, có mục để quản lý Bảng 11.4 cho thấy kích thước cluster mặc định cho NTFS Các giá trị mặc định phụ thuộc vào kích thước volume Kích thước cluster sử dụng cho volume cụ thể tạo NTFS người dùng yêu cầu định dạng ổ đĩa Bảng 11.4 Kích thước phân vùng cụm NTFS Windows 292 Volume Size Sectors per Cluster Cluster Size ≤512 Mbyte 512 Mbyte-1 Gbyte Gbyte-2 Gbyte Gbyte-4 Gbyte Gbyte-8 Gbyte Gbyte-16 Gbyte 16 Gbyte-32 Gbyte ≥32 Gbyte 16 32 64 128 521 bytes 1K 2K 4K 8K 16K 32K 64K NTFS volume layout: NTFS sử dụng cách tiếp cận đơn giản hiệu để tổ chức thông tin ổ đĩa Mỗi phần tử volume tệp tin tệp tin bao gồm tập thuộc tính Ngay nội dung liệu tệp coi thuộc tính Với cấu trúc đơn giản này, vài hàm đủ để tổ chức quản lý hệ thống tệp Hình 11.21 NTFS Volume Layout Hình 11.21 cho thấy NTFS bao gồm bốn vùng Một số sector volume chứa phân vùng khởi động (mặc dù gọi sector, dài tới 16 sector), chứa thông tin layout cấu trúc hệ thống file thông tin khởi động mã Tiếp theo bảng tệp (MFT), chứa thông tin tất tệp thư mục NTFS volume Về chất, MFT danh sách tất tệp thuộc tính chúng ổ đĩa NTFS này, tổ chức dạng tập hợp hàng bảng Tiếp theo, MFT vùng chứa tệp hệ thống Ngoài ra, cịn có:  MFT2: Một vài hàng MFT, sử dụng để đảm bảo quyền truy cập vào ổ đĩa trường hợp lỗi sector trình lưu trữ MFT  Log file: Danh sách bước thực hiện, sử dụng để phục hồi NTFS  Bản đồ bit cụm (cluster): Biểu diễn không gian ổ đĩa, hiển thị cluster sử dụng  Bảng định nghĩa thuộc tính: Xác định loại thuộc tính hỗ trợ ổ đĩa cho biết liệu chúng lập mục phục hồi q trình khơi phục hệ thống hay khơng Bảng tệp tin chính: Trung tâm hệ thống tệp tin Windows MFT MFT tổ chức dạng bảng gồm hàng 1.024 byte, gọi ghi Mỗi hàng mô tả tệp ổ đĩa này, bao gồm thân MFT, coi tệp Nếu nội dung tệp đủ nhỏ tồn tệp nằm hàng MFT Nếu không, hàng cho tệp chứa phần thơng tin phần lại tệp tràn vào cluster khác có sẵn ổ đĩa, với trỏ đến cluster hàng MFT tệp 293 Bảng 11.5 Thuộc tính thư mục tệp NTFS Windows Kiểu thuộc tính Mơ tả Thơng tin chuẩn Bao gồm thuộc tính truy cập (chỉ đọc, đọc/ghi…); dấu thời gian, bao gồm tệp tin tạo sửa lần cuối có thư mục trỏ vào tệp tin (số liên kết) Danh sách thuộc tính Một danh sách thuộc tính tạo tệp tin tệp tin tham chiếu đến ghi tệp tin MFT mà thuộc tính định vị vào Chúng sử dụng tất thuộc tính khơng đặt vào ghi tệp tin MFT Tên tệp tin Mô tả bảo mật Dữ liệu Một tệp tin thư mục phải có nhiều tên Xác định sở hữu tệp truy cập Nội dung tệp tin Một tệp có thuộc tính liệu khơng đặt tên mặc định có nhiều thuộc tính liệu đặt tên Gốc mục Phân bổ mục Thông tin Volume Sử dụng để triển khai thư mục Sử dụng để triển khai thư mục Bao gồm thông tin liên quan đến volume, phiên tên volume Cung cấp đồ ghi giới thiệu việc sử dụng MFT thư mục Bitmap Mỗi ghi MFT bao gồm tập thuộc tính phục vụ để xác định đặc tính tệp (hoặc thư mục) nội dung tệp Bảng 11.5 liệt kê thuộc tính tìm thấy hàng, với thuộc tính bắt buộc cách đánh dấu (tơ bóng) NTFS phục hồi hệ thống tệp tin đến trạng thái quán sau cố hệ thống lỗi đĩa Các yếu tố hỗ trợ khả phục hồi sau (Hình 11.22): Hình 11.22 NTFS Window 294  Trình quản lý I/O: Bao gồm trình điều khiển NTFS, điều khiển chức mở, đóng, đọc ghi NTFS Ngồi ra, phần mềm RAID FTDISK cấu hình để sử dụng  Dịch vụ log file: Duy trì nhật ký thay đổi siêu liệu hệ thống tệp đĩa Log file sử dụng để khôi phục ổ đĩa định dạng NTFS trường hợp lỗi hệ thống (mà khơng phải chạy tiện ích kiểm tra hệ thống tệp)  Trình quản lý nhớ cache: Chịu trách nhiệm tệp nhớ đệm đọc ghi để nâng cao hiệu suất Trình quản lý nhớ cache tối ưu hóa đĩa I/O  Quản lý nhớ ảo: NTFS truy cập nhớ đệm tệp cách ánh xa tệp tham chiếu vào nhớ ảo đọc, ghi nhớ ảo Điều quan trọng cần lưu ý thủ tục phục hồi sử dụng NTFS thiết kế để phục hồi siêu liệu hệ thống tệp, nội dung tệp Do đó, người dùng khơng bị volume cấu trúc thư mục/tệp ứng dụng lỗi Tuy nhiên, liệu người dùng không bảo đảm hệ thống tệp Cung cấp khả phục hồi đầy đủ, bao gồm liệu người dùng, làm cho sở khôi phục phức tạp tốn nhiều tài nguyên Bản chất khả khôi phục NTFS ghi nhật ký Mỗi hoạt động thay đổi hệ thống tệp coi giao dịch Mỗi suboperation giao dịch làm thay đổi cấu trúc liệu hệ thống tệp tin quan trọng ghi lại log file trước ghi lại ổ đĩa Sử dụng nhật ký, hoạt động hoàn tất phần thời điểm xảy cố thực lại sau hồn thành hệ thống phục hồi Nói chung, bước thực để đảm bảo khả phục hồi, chúng mô tả sau: NTFS gọi hệ thống log file để ghi lại log file (trong nhớ cache) thao tác sửa đổi cấu trúc NTFS sửa đổi volume (trong nhớ cache) Trình quản lý nhớ cache gọi hệ thống log file để flush log file sang đĩa Khi cập nhật log file an tồn đĩa, trình quản lý nhớ cache flush thay đổi volume đĩa TĨM TẮT Chương 11 trình bày vân đề quản lý tệp tin, kỹ thuật tổ chức truy cập tệp hệ thống tệp, thư mục tệp tin, quản lý lưu trữ thứ cấp, an toàn hệ thống tệp tin Cuối là cách quản lý tệp hệ điều hành Unix Windows 295 CÂU HỎI ÔN TẬP Sự khác biệt trường ghi gì? Sự khác biệt tệp sở liệu gì? Hệ thống quản lý tệp tin gì? Tiêu chí quan trọng việc lựa chọn tổ chức tệp tin? Danh sách định nghĩa ngắn gọn năm tổ chức tệp? Tại thời gian tìm kiếm trung bình tìm ghi tệp tệp lập mục so với tệp tuần tự? Các hoạt động điển hình thực thư mục gì? Mối quan hệ tên đường dẫn thư mục làm việc gì? Các quyền truy cập điển hình cấp từ chối cho người dùng cụ thể tệp tin cụ thể? 10 Danh sách định nghĩa ngắn gọn ba phương pháp khối? 11 Danh sách định nghĩa ngắn gọn ba phương pháp cấp phát tệp? BÀI TẬP Cho: Kích thước khối B Kích thước ghi R P kích thước khối trỏ Hệ số khối F; số lượng ghi dự kiến khối Đưa công thức cho F cho ba phương pháp khối mơ tả hình 11.8 Một kế hoạch để tránh vấn đề cấp phát trước phân mảnh thiếu phần liên tục để cấp phát cho tệp lớn Ví dụ: bắt đầu với kích thước portion khối tăng gấp đơi kích thước portion cho cấp phát Hãy xem xét tệp tin ghi với hàm F giả sử mục cấp đơn giản sử dụng bảng cấp phát tệp a Đưa giới hạn số lượng mục nhập bảng cấp phát tệp dạng hàm F n b Số lượng không gian tệp cấp phát tối đa không sử dụng lúc nào? Bạn chọn tổ chức tệp để tối đa hóa hiệu tốc độ truy cập, sử dụng dung lượng lưu trữ dễ cập nhật (thêm/xóa/sửa đổi) liệu: a cập nhật khơng thường xuyên truy cập thường xuyên theo thứ tự ngẫu nhiên? b cập nhật thường xuyên truy cập toàn tương đối thường xuyên? c cập nhật thường xuyên truy cập thường xuyên theo thứ tự ngẫu nhiên? Đối với B-tree hình 11.4c, kết việc chèn khóa 97 296 Một thuật toán thay để chèn vào B-tree sau: Khi chèn thuật toán di chuyển xuống cây, nút gặp phải chia lập tức, phân chia khơng cần thiết a Lợi kỹ thuật gì? b Những bất lợi gì? Cả tìm kiếm thời gian chèn cho B-tree hàm chiều cao Chúng muốn phát triển thước đo thời gian tìm kiếm chèn trường hợp xấu Hãy xem xét B-tree d chứa tổng số khóa n Phát triển mơ hình dựa giới hạn chiều cao h hàm d n Bỏ qua chi phí cho thư mục mô tả tệp tin, xem xét hệ thống tệp tin tệp tin lưu trữ khối 16K byte Đối với kích thước tệp sau, tính phần trăm khơng gian tệp bị lãng phí q trình điền không đầy đủ vào khối cuối: 41,600 byte; 640.000 byte; 4.064.000 byte Những ưu điểm việc sử dụng thư mục gì? Các thư mục thực dạng “tệp đặc biệt” truy cập cách hạn chế tệp liệu thông thường Những ưu điểm nhược điểm cách tiếp cận? 10 Một số hệ điều hành có hệ thống tệp cấu trúc giới hạn số lượng nhỏ cấp Giới hạn có ảnh hưởng người dùng? Làm điều có đơn giản hóa thiết kế hệ thống tệp tin (nếu có)? 11 Hãy xem xét hệ thống tệp phân cấp dung lượng đĩa trống giữ danh sách không gian trống a Giả sử trỏ đến không gian trống bị Hệ thống tái tạo danh sách không gian trống không? b Đề xuất Phương pháp để đảm bảo trỏ không bị lỗi nhớ 12 Trong hệ thống UNIX V, chiều dài khối Kbyte khối chứa tổng cộng 256 địa khối Sử dụng Phương pháp inode, kích thước tối đa tệp bao nhiêu? 13 Hãy xem xét việc tổ chức tệp UNIX biểu diễn inode (Hình 11.16) Giả sử có 12 trỏ khối trực tiếp trỏ gián tiếp đơn, đôi ba inode Hơn nữa, giả sử kích thước khối hệ thống kích thước sector đĩa 8K Nếu trỏ khối đĩa 32 bit, với bit để xác định đĩa vật lý 24 bit để xác định khối vật lý, thì: a Kích thước tệp tối đa hệ thống hỗ trợ bao nhiêu? b Phân vùng hệ thống tệp tối đa hệ thống hỗ trợ gì? Giả sử khơng có thơng tin khác ngồi tệp inode có nhớ chính, có truy cập đĩa u cầu để truy cập vào byte vị trí 13,423,956? 297 THƠNG TIN Các ảnh sử dụng giáo trình lấy từ giảng mở sách Operating System Concepts, cho phép tác giả Silberschatz, Galvin Gagne Nguồn: https://www.os-book.com/OS10/slide-dir/index.html BẢNG THUẬT NGỮ Thuật ngữ 298 Giải thích Allocation of frames Phân phối Frames Asynchronous i/o Vào không đồng Best-fit Cấp phát lỗ trống nhỏ đủ lớn Bounded buffer Bộ nhớ đệm giới hạn Buffer Bộ nhớ đệm Context switch Chuyển ngữ cảnh Deadlock Bế tắc Demand paging Phân trang theo yêu cầu Demand segmentation Phân đoạn theo yêu cầu Device controller Bộ điều khiển thiết bị Device driver Trình điều khiển thiết bị Device-status table Bảng trạng thái thiết bị vào-ra Dispatch latency Trễ điều vận Dispatcher Trình điều vận Dynamic loading Nạp động Dynamic ram RAM động External fragmentation Phân mảnh First-fit Cấp phát lỗ trống đủ lớn Hashed page table Bảng trang băm Internal fragmentation Phân mảnh Interprocess communication Giao tiếp liên tiến trình Job scheduler Trình lập lịch tiến trình Lazy swapper Bộ hoán đổi lười Local procedure call Lời gọi thủ tục cục Long-term scheduler Trình lập lịch dài kỳ Magnetic disk Đĩa từ Message passing Truyền thông điệp Microkernel Cấu trúc vi nhân Monitor mode, supervisor mode, system mode, privileged mode Chế độ giám sát Multiprogramming Kỹ thuật đa chương trình Multitasking Kỹ thuật đa nhiệm Non-preemptive Khơng ưu tiên trước Page replacement Thay trang Preemptive scheduling Lập lịch có ưu tiên trước Privileged instruction Lệnh đặc quyền Program counter Bộ đếm chương trình Random access memory Bộ nhớ truy nhập ngẫu nhiên Reentrant code Mã tái sử dụng Relocation Tái định vị Remote method invocation Triệu gọi phương thức từ xa Remote procedure calls Lời gọi thủ tục từ xa Secondary storage Bộ nhớ thứ cấp Service routine Thường trình dịch vụ Short-term scheduler Trình lập lịch ngắn kỳ Swap Kỹ thuật hoán đổi Synchronous I/O Vào đồng System call, monitor call, operating system function call Lời gọi hệ thống System generation Phát sinh hệ thống Thrashing Bận rộn Time sharing Kỹ thuật chia sẻ thời gian Timer Bộ định thời Turnaround time Tổng lượng thời gian để thực tiến trình Unbounded buffer Bộ nhớ đệm không giới hạn User mode Chế độ người sử dụng User program Chương trình người sử dụng Volume Ổ đĩa logic (ví dụ, ổ C, D) Worst-fit Cấp phát lỗ trống lớn 299 TÀI LIỆU THAM KHẢO Abraham Silberschatz, Peter Baer Galvin, Greg Gagne (2018) Operating System Concepts 10th Edition The United States Of America: Johnwiley & Sons, Inc Hồ Đắc Phương (2010) Giáo trình Nguyên lý hệ điều hành Nhà xuất Giáo dục Phạm Quang Dũng, Trần Thị Thu Huyền, [Phạm Thuỷ Vân], Phan Thị Thu Hồng, Hoàng Thị Hà, Lê Thị Nhung & Nguyễn Văn Hồng (2015) Giáo trình Tin học đại cương Nhà xuất Đại học Nông nghiệp Stallings W (2018) Operating Systems Internals And Design Principles 9th Edition Prentice Hall Đào Như Ngọc & Phạm Quang Dũng (2016) An tồn thơng tin mạng LTE hỗ trợ cơng nghệ truy cập WiFi Tạp chí Cơng nghệ thơng tin Truyền thông 2: 41-46 300 NHÀ XUẤT BẢN HỌC VIỆN NÔNG NGHIỆP Trâu Quỳ - Gia Lâm - Hà Nội Điện thoại: 0243 876 0325 - 024 6261 7649 Email: nxb@vnua.edu.vn www.nxb.vnua.edu.vn Chịu trách nhiệm xuất ThS ĐỖ LÊ ANH Giám đốc Nhà xuất Biên tập TRẦN THỊ HỒI ANH Thiết kế bìa ĐỖ LÊ ANH Chế vi tính TRẦN THỊ HỒI ANH ISBN: 978-604-924-644-9 NXBHVNN-2021 In 80 cuốn, khổ 19 × 27cm Cơng ty TNHH In Ánh Dương Địa chỉ: Bình Minh - Trâu Quỳ - Gia Lâm - Hà Nội Số đăng ký kế hoạch xuất bản: 3652-2021/CXBIPH/10-16/ĐHNN Số định xuất bản: 101/QĐ-NXB-HVN ngày 01 tháng 11 năm 2021 In xong nộp lưu chiểu: quý IV năm 2021 301

Ngày đăng: 17/07/2023, 20:54

Xem thêm:

w