Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 235 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
235
Dung lượng
4,12 MB
Nội dung
TRƯỜNG ĐẠI HỌC PHAN THIẾT KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH HỆ ĐIỀU HÀNH LƯU HÀNH NỘI BỘ MỤC LỤC Chƣơng Tổng quan hệ điều hành .11 1.1 Khái niệm hệ điều hành .11 1.2 Phân loại hệ điều hành 12 1.2.1 Hệ thống xử lý theo lô .12 1.2.2 Hệ thống xử lý theo lô đa chƣơng 13 1.2.3 Hệ thống chia sẻ thời gian .13 1.2.4 Hệ thống song song 14 1.2.5 Hệ thống phân tán 14 1.2.6 Hệ thống xử lý thời gian thực 15 1.3 Cấu trúc hệ điều hành .16 1.3.1 Các thành phần hệ thống 16 1.4 Các dịch vụ hệ điều hành 20 1.5 Lời gọi hệ thống .20 1.6 Cấu trúc hệ thống 21 1.6.1 Cấu trúc đơn giản 21 1.6.2 Cấu trúc theo lớp .23 1.6.3 Mô hình Client-Server 26 1.7 Lịch sử phát triển hệ điều hành 28 1.7.1 Thế hệ (1945 – 1955) 28 1.7.2 Thế hệ (1955 – 1965) 28 1.7.3 Thế hệ (1965 – 1980) 29 1.7.4 Thế hệ (1980 - ) 29 1.7.5 Câu hỏi củng cố học 29 1.7.6 Bài tập .30 Chƣơng Các mơ hình xử lý đồng hành 31 2.1 NHU CẦU XỬ LÝ ĐỒNG HÀNH .31 2.1.1 Tăng hiệu suất sử dụng CPU 31 2.1.2 Tăng tốc độ xử lý 32 2.2 Khái niệm tiến trình(thread) mơ hình đa tiến trình(multithread) 33 2.2.1 Nguyên lý chung : 33 2.2.2 Kernel thread user thread 34 2.3 Tóm tắt tập 35 2.3.1 Củng cố học .36 2.3.2 Bài tập .36 Chƣơng Quản lý tiến trình 37 3.1 Tổ chức quản lý tiến trình 37 3.1.1 Các trạng thái tiến trình 37 3.1.2 Tiến trình tạo đƣợc đƣa vào hệ thống 38 3.2 Chế độ xử lý tiến trình .38 3.2.1 Thao tác tiến trình 40 3.2.2 Cấp phát tài nguyên cho tiến trình 42 3.2.3 Định danh tài nguyên 42 3.2.4 Các mục tiêu kỹ thuật cấp phát : 43 Chƣơng Điều phối tiến trình 43 4.1 Giới thiệu 44 4.1.1 Mục tiêu điều phối 44 4.1.2 Các đặc điểm tiến trình .44 4.2 Điều phối không độc quyền điều phối độc quyền (preemptive/nopreemptive) 46 4.3 Tổ chức điều phối 47 4.3.1 Các danh sách sử dụng trình điều phối 47 4.3.2 Các cấp độ điều phối .49 4.3.3 Chiến lƣợc FIFO .50 4.3.4 Chiến lƣợc phân phối xoay vòng (Round Robin) 51 4.4 Điều phối với độ ƣu tiên 52 4.4.1 Chiến lƣợc công việc ngắn (Shortest-job-first SJF) 54 4.5 Quản lý tiến trình-Tóm tắt 55 4.5.1 Câu hỏi cố học 55 4.5.2 Bài tập .55 Chƣơng Liên lạc tiến trình vấn đề đồng hóa 59 5.1 LIÊN LẠC GIỮA CÁC TIẾN TRÌNH 59 5.1.1 Nhu cầu liên lạc tiến trình 59 5.1.2 Các vấn đề nảy sinh việc liên lạc tiến trình .59 5.2 Cơ chế thơng tin liên lạc 60 5.2.1 Tín hiệu (Signal) .60 5.2.2 Pipe 62 5.2.3 Vùng nhớ chia sẻ .63 5.3 Trao đổi thông điệp (Message) 64 5.4 Sockets 65 5.5 Nhu cầu đồng hóa(synchronisation) 67 5.5.1 Yêu cầu độc quyền truy xuất (Mutual exclusion) 67 5.5.2 Yêu cầu phối hợp (Synchronization) 67 5.6 Bài toán đồng hoá 67 5.6.1 Vấn đề tranh đoạt điều khiển (race condition) 67 5.6.2 Miền găng (critical section) 68 5.7 Tóm tắt 69 5.7.1 Củng cố học .69 5.7.2 Bài tập .70 Chƣơng Các giải pháp đồng hóa 74 6.1 Giải pháp « busy waiting » 74 6.1.1 Các giải pháp phần mềm 74 6.1.2 Sử dụng việc kiểm tra luân phiên : 75 6.2 Giải pháp Peterson 76 6.3 Các giải pháp phần cứng 77 6.3.1 Cấm ngắt: 77 6.3.2 Chỉ thị TSL (Test-and-Set): 77 6.3.3 Các giải pháp “Sleep and wakeup” 78 6.4 Semaphore 79 6.4.1 Tổ chức truy xuất độc quyền với Semaphores: .81 6.4.2 Tổ chức đồng hóa với Semaphores: 81 6.5 Monitors 82 6.6 Trao đổi thông điệp 85 6.7 Các vấn đề cổ điển đồng hoá 86 6.7.1 Vấn đề Ngƣời sản xuất – Ngƣời tiêu thụ (Producer-Consumer) 86 6.7.2 Monitor 88 6.7.3 Trao đổi thông điệp 90 6.8 Mơ hình Readers-Writers .91 6.8.1 Trao đổi thông điệp 94 Chƣơng Tắc nghẽn (Deadlock) .96 7.1 Định nghĩa: .96 7.2 Điều kiện xuất tắc nghẽn 97 7.3 Đồ thị cấp phát tài nguyên .97 7.4 Các phƣơng pháp xử lý tắc nghẽn 98 7.5 Ngăn chặn tắc nghẽn 98 7.6 Tránh tắc nghẽn 99 7.6.1 Một số khái niệm sở 99 7.7 Phát tắc nghẽn 103 7.7.1 Giải thuật phát tắc nghẽn .103 7.8 Hiệu chỉnh tắc nghẽn 103 Chƣơng Quản lý nhớ 105 8.1 Mơ hình Linker_Loader .107 8.2 Mơ hình Base &Bound .107 8.3 Phân mảnh ngoại vi 109 8.4 Cấp phát không liên tục 110 8.4.1 Phân đoạn (Segmentation) 110 8.4.2 Cơ chế MMU kỹ thuật phân đoạn: 111 8.4.3 Chuyển đổi địa chỉ: .111 8.4.4 Cài đặt bảng phân đoạn: 112 8.5 Phân trang ( Paging) .115 8.5.1 Cơ chế MMU kỹ thuật phân trang: 116 8.5.2 Chuyển đổi địa chỉ: .116 8.5.3 Cài đặt bảng trang 117 8.6 Tổ chức bảng trang: 119 8.6.1 Bảo vệ: 120 8.6.2 Chia sẻ nhớ chế phân trang: .121 8.7 Phân đoạn kết hợp phân trang (Paged segmentation) 122 8.7.1 Cơ chế MMU kỹ thuật phân đoạn kết hợp phân trang: .123 8.7.2 Chuyển đổi địa chỉ: .123 8.8 Quản lý nhớ-Tóm tắt .124 8.8.1 Một số cách tiếp cận tổ chức nhớ 124 8.8.2 Củng cố học .125 8.8.3 Bài Tập 125 Chƣơng Bộ nhớ ảo 128 9.1 Dẫn nhập 128 9.2 Định nghĩa 128 9.3 Cài đặt nhớ ảo 129 9.4 Phân trang theo yêu cầu ( demand paging) 129 9.5 Cơ chế phần cứng : .130 9.6 Thay trang 132 9.7 Sự thi hành phân trang theo yêu cầu 133 9.8 Các thuật toán thay trang 133 9.8.1 Thuật toán FIFO 134 9.8.2 Thuật toán tối ƣu 135 9.8.3 Thuật tốn « Lâu chƣa sử dụng » ( Least-recently-used LRU) 136 9.9 Các thuật toán xấp xỉ LRU 137 9.9.1 Thuật toán với bit reference phụ trợ .137 9.9.2 Thuật tốn « hội thứ hai » .138 9.9.3 Thuật tốn « hội thứ hai » nâng cao (Not Recently Used - NRU) 139 9.10 Các thuật toán thống kê 140 9.11 Cấp phát khung trang 140 9.11.1 Số khung trang tối thiểu: .140 9.12 Trì trệ toàn hệ thống (Thrashing) 141 9.13 Mơ hình « tập làm việc » (working set) .142 9.14 Tần suất xảy lỗi trang .144 9.15 Bộ nhớ ảo-Tóm tắt .144 9.15.1 Củng cố học 145 9.15.2 Bài Tập 145 Chƣơng 10 Hệ thống quản lý tập tin 149 10.1 CÁC KHÁI NIỆM CƠ BẢN .149 10.1.1 Bộ nhớ .149 10.1.2 Tập tin thƣ mục 149 10.2 Hệ thống quản lý tập tin .150 10.3 Mơ hình tổ chức quản lý tập tin 150 10.3.1 Tập tin : .150 10.3.2 Thƣ mục : 155 10.4 Các chức 157 10.4.1 Tập tin : .157 10.4.2 Thƣ mục : 158 10.5 Câu hỏi kiểm tra kiến thức 158 Chƣơng 11 Các phƣơng pháp cài đặt hệ thống quản lý tập tin 159 11.1 BẢNG QUẢN LÝ THƢ MỤC, TẬP TIN 159 11.1.1 Khái niệm 159 11.2 Bảng phân phối vùng nhớ 160 11.2.1 Khái niệm 160 11.2.2 Các phƣơng pháp 160 11.2.3 Danh sách liên kết sử dụng index : .162 11.2.4 I-nodes : .162 11.3 Tập tin chia sẻ 163 11.4 Quản lý đĩa 164 11.5 Kích thƣớc khối 165 11.6 Lƣu khối trống .165 11.7 Độ an toàn hệ thống tập tin 166 11.7.1 Quản lý khối bị hỏng 166 11.8 Backup 166 11.9 Tính khơng đổi hệ thống tập tin 167 11.10 Câu hỏi kiểm tra kiến thức .168 11.11 Bài tập 168 Chƣơng 12 Giới thiệu số hệ thống tập tin .170 12.1 MS-DOS .170 12.1.1 Đặc điểm .170 12.1.2 Cài đặt 170 12.2 Windows95 173 12.2.1 Bộ quản lý cài đặt hệ thống tập tin (IFS) 173 12.2.2 Bộ điều khiển mô tả kiểu (TSD) 175 12.2.3 Hỗ trợ tên tập tin dài :(LFN) .178 12.2.4 Đặc điểm NTFS 179 12.2.5 Cấu trúc tập tin volume NTFS 179 12.3 Hệ thống tập tin Unix : 181 12.3.1 Cài đặt hệ thống tập tin Unix 183 12.4 Bài tập 184 Chƣơng 13 Hệ thống quản lý nhập-xuất 186 13.1 KHÁI NIỆM VỀ HỆ THỐNG QUẢN LÝ NHẬP/XUẤT 186 13.2 Phần cứng nhập-xuất 187 13.2.1 Thiết bị I/O 187 13.2.2 Tổ chức chức I/O 188 13.2.3 DMA (Direct Memory Access) 191 13.3 Phần mềm nhập xuất 191 13.3.1 Kiểm soát ngắt 192 13.3.2 Điều khiển thiết bị (device drivers) 192 13.4 Phần mềm nhập/xuất độc lập thiết bị 193 13.5 Phần mềm nhập/xuất phạm vi ngƣời sử dụng 194 Chƣơng 14 Giới thiệu số hệ thống I-O 195 14.1 HỆ THỐNG I/O ĐĨA 195 14.1.1 Các thuật toán đọc đĩa 196 14.1.2 Lựa chọn thuật toán lập lịch : 199 14.2 Hệ thống I-O chuẩn (terminals) 201 14.2.1 Phần cứng terminal .201 14.2.2 Terminal ánh xạ nhớ 203 14.2.3 Phần mềm nhập 205 14.2.4 Phần mềm xuất 206 14.3 Cài đặt đồng hồ 207 14.3.1 Phần cứng đồng hồ 207 14.3.2 Phần mềm đồng hồ 208 14.4 Câu hỏi kiểm tra kiến thức 209 14.5 Bài tập 210 Chƣơng 15 Bảo vệ an toàn hệ thống 211 15.1 Mục tiêu bảo vệ hệ thống (Protection) .211 15.2 Miền bảo vệ (Domain of Protection ) 212 15.2.1 Khái niệm 212 15.2.2 Cấu trúc miền bảo vệ 212 15.2.3 Mối liên kết tiến trình miền bảo vệ tĩnh hay động : .213 15.3 Ma trận quyền truy xuất ( Access matrix) 213 15.4 Bảng toàn cục .217 15.4.1 Danh sách quyền truy xuất ( Access control list _ ACL) 217 15.4.2 Danh sách tiềm miền bảo vệ (Capability list – C_List) .218 15.5 Cơ chế khóa chìa 219 15.6 An toàn hệ thống (Security) .220 15.6.1 Các vấn đề an toàn hệ thống 220 15.6.2 Mối đe dọa từ chƣơng trình 221 Chƣơng 16 Hệ điều hành windowns NT 222 16.1 LỊCH SỬ 222 16.2 MỤC TIÊU THIẾT KẾ 222 16.3 CÁC THÀNH PHẦN HỆ THỐNG 223 16.4 KIẾN TRÚC HỆ ĐIỀU HÀNH WindowsNT 224 16.5 CÁC MODULE QUẢN LÝ CỦA WindowsNT .224 16.6 Hệ thống tập tin 226 16.7 Quản lý nhập xuất 227 Chƣơng 17 Hệ điều hành Linux -Giới thiệu 228 17.1 GIỚI THIỆU 228 Tái yêu cầu (Reacquisiton): loại bỏ tiềm khỏi miền bảo vệ sau chu kỳ, miền bảo vệ cịn cần tiềm nào, tái u cầu tiềm lại Sử dụng trỏ đến tiềm (Back-pointers) : với đối tƣợng, lƣu trữ trỏ đến tiềm tƣơng ứng đối tƣợng Khi cần thu hồi quyền truy xuất đối tƣợng, lần theo trỏ để cập nhật tiềm tƣơng ứng.Sử dụng trỏ gián tiếp (Indirection) : tiềm không trực tiếp trỏ đến đối tƣợng, mà trỏ đến bảng toàn cục hệ điều hành quản lý KHi cần thu hồi quyền, xoá phần tử tƣơng ứng bảng Khóa ( Key) : sử dụng chế khóa chìa, cần thu hồi quyền, cần thay đổi khóa bắt buộc tiến trình hay ngƣời dùng u cầu chìa 15.6 An tồn hệ thống (Security) Bảo vệ hệ thống (protection) chế kiểm soát việc sử dụng tài nguyên tiến trình hay ngƣời sử dụng để đối phó với tình lỗi phát sinh từ hệ thống Trong khái niệm an tồn hệ thống (security) muốn đề cập đến mức độ tin cậy mà hệ thống trì phải đối phó khơng với vấn đề nội bộ, mà với tác hại đến từ mơi trƣờng ngồi 15.6.1 Các vấn đề an toàn hệ thống Hệ thống đƣợc gọi an toàn tài nguyên đƣợc sử dụng nhƣ quy ƣớc hoàn cảnh Kém may mắm điều đạt đƣợc thực tế ! Thơng thƣờng, an tồn bị vi phạm ngun nhân vơ tình hay cố ý phá hoại Việc chống đỡ phá hoại cố ý khó khăn gần nhƣ khơng thể đạt hiệu hoàn toàn Bảo đảm an toàn hệ thống cấp cao chống lại tác hại từ mơi trƣờng ngồi nhƣ hoả hoạn, điện, phái hoại cần đƣợc thực mức độ vật lý (trang bị thiết bị an tồn cho vị trí đạt hệ thống ) nhân (chọn lọc cẩn thận nhân viên làm việc hệ thống ) Nếu an tồn mơi trƣờng đƣợc bảo đảm tốt, an tồn hệ thống đƣợc trì tốt nhờ chế hệ điều hành (với trợ giúp phần cứng) Lƣu ý bảo vệ hệ thống đạt độ tin cậy 100%, chế an tồn hệ thống đƣợc cung cấp với hy vọng ngăn chặn bớt tình bất an đạt đến độ an toàn tuyệt đối Kiểm định danh tính (Authentication) 220 Để đảm bảo an toàn, hệ điều hành cần giải tốt vấn đề chủ yếu kiểm định danh tính (authentication) Hoạt động hệ thống bảo vệ phụ thuộc vào khả xác định tiến trình xử lý Khả này, đến lƣợt nó, lại phụ thuộc vào việc xác định đƣợc người dùng sử dụng hệ thống để kiểm tra ngƣời dùng đƣợc cho phép thao tác tài nguyên Cách tiếp cận phổ biến để giải vấn đề sử dụng password để kiểm định danh tính ngƣời dùng Mỗi ngƣời dùng muốn sử dụng tài nguyên, hệ thống kiểm tra password ngƣời dùng nhập vào với password đƣợc lƣu trữ, đúng, ngƣời dùng đƣợc cho phép sử dụng tài nguyên Password đuợc để bảo vệ đối tƣợng hệ thống, chí đối tƣợng có password khác ứng với quyền truy xuất khác Cơ chế password dễ hiểu dễ sử dụng đƣợc sử dụng rộng rãi, nhiên yếu điểm nghiêm trọng phƣơng pháp khả bảo mật password khó đạtđƣợc hồn hảo, tác nhân tiêu cực đốn password ngƣời khác nhờ nhiều cách thức khác 15.6.2 Mối đe dọa từ chương trình Trong mơi trƣờng mà chƣơng trình đƣợc tạo lập ngƣời lại đƣợc ngƣời khác sử dụng, xảy tình sử dụng khơng đúng, từ dẫn đến hậu qủa khó lƣờng Hai trƣờng hợp điển hình : a Ngựa thành Troy Khi ngƣời dùng A cho chƣơng trình B viết hoạt động dƣới danh nghĩa ( miền bảo vệ đƣợc gán tƣơng ứng cho ngƣời dùng A), chƣơng trình trở thành « ngựa thành Troy » đoạn lệnh chƣơng trình thao tác tài nguyên với quyền tƣơng ứng ngƣời A (mà ngƣời B vốn bị cấm!), nhiều chƣơng trình nhƣ « lợi dụng hồn cảnh » để gây tác hại đáng tiếc b Cánh cửa nhỏ ( Trap-door) Một mối đe dọa đặc biệt nguy hiểm khó chống đỡ đến từ vơ tình hay ý nghĩ bất lập trình viên Khi xây dựng chƣơng trình, lập trình viên để lại « cánh cửa nhỏ » phần mềm mà có họ có khả sử dụng , qua thâm nhập phá hoại hệ thống ( ví dụ làm trịn số lẻ tài khoản, thu lợi riêng từ phần dƣ ) Vấn đề khó đối phó cần phải tiến hành phân tích chƣơng trình nguồn để tìm chỗ sơ hở 221 CHƢƠNG 16 HỆ ĐIỀU HÀNH WINDOWNS NT 16.1 LỊCH SỬ Vào khoảng cuối năm1980, IBM Microsoft cố gắng thay MS-DOS với hệ điều hành OS/2 Tuy nhiên diễn tiến không đƣợc tốt đẹp nhƣ mong muốn : OS/ đời chậm trễ, tính tƣơng thích cao khơng phổ biến IBM Microsoft đổ lỗi lẫn để cuối hợp tác đến đỗ vỡ 1988, Microsoft mời Dave Cutler (ngƣời phát triển VMS VAX Digital ) làm thủ lĩnh để phát triển phần họ dự án OS/2 thành hệ điều hành hoàn toàn Windows New Technology haty vắn tắt WinNT Thoạt trơng giao diện thân thiện WinNT giống nhƣ họ Windows 9x, nhƣng thực phần lõi bên hệ điều hành đƣợc xây dựng hoàn toàn khác biệt WinNT kết hợp chặt chẽ tính bảo vệ phần cứng bảo đảm an tồn ngƣời dùng, hệ điều hành có độ tin cậy cao 16.2 MỤC TIÊU THIẾT KẾ Microsoft công bố mục tiêu thiết kế đƣợc đề cho WinNT bao gồm : Có khả mở rộng (extensibility) : nâng cấp dễ dàng nhờ vào kiến trúc phân lớp, thiết kế đơn thể Dễ mang chuyển (portability) : thi hành nhiều cấu hình phần cứng (bao gồm nhiều họ CPU khác nhau) Có độ tin cậy cao (reliability) : có khả phục hồi lỗi, bảo đảm an toàn bảo mật Có tính tƣơng thích mạnh (compatability) : thi hành ứng dụng MSDOS, 16-bit Win, Win32, OS/2 & POSIX Hiệu thực tốt (performance) : bảo đảm thực hiệu với chế quản lý nội bộ, IPC, hỗ trợ mạng hỗ trợ đa xử lý 222 16.3 CÁC THÀNH PHẦN HỆ THỐNG HAL ( hardware abstraction layer) : Tầng cung cấp trừu tƣợng hoá phần cứng, che dấu khác biệt phần cứng nhắm đến khả dễ mang chuyển WinNT2 Hạt nhân (kernel) : thành phần cốt lõi WinNT Chịu trách nhiệm điều phối tiến trình, cung cấp chế đồng hoá, xử lý ngắt va xử lý ngoại lệ Đây phần giao tiếp với HAL, chuyển ngát phát sinh thành tập chuẩn đƣợc qui định trƣớc Hạt nhân đƣợc thiết kế hƣớng đối tƣợng., sử dụng tập đối tƣợng : Các đối tƣợng điều phối đồng : events, mutants, mutexes, semaphores, threads timers Các đối tƣợng kiểm soát : procedure calls, interrupts, power status, processes, profiles Tầng điều hành (Executive): cung cấp dịch vụ mà tất hệ thống khác sử dụng Bao gồm : Quản Lý Đối Tƣợng : cung cấp phƣơng thức chuẩn để thao tác đối tƣợng nhƣ create, open, close, delete, query name, parse, security Quản Lý Tiến Trình: cung cấp phƣơng thức tạo hủy tiến trình, tiểu trình Quản Lý Bộ Nhớ Ảo Và Quản Lý Nhập Xuất : tích hợp chặt chẽ chiến lƣợc phân trang với điều phối đĩa Hỗ Trợ Gọi Hàm Cục Bộ : tối ƣu hoá chế trao đổi thông điệp sở chia sẻ nhớ chung Hỗ Trợ An Toàn Và Bảo Mật : cung cấp dịch vụ kiểm tra , bảo vệ đối tƣợng thời gian thực thi Các hệ thống (subsystems) : gồm tiến trình hệ thống nhƣng hoạt động chế độ user, chịu trách nhiệm tạo mội trƣờng thuận lợi cho ứng dụng thi hành Đây lớp dịch vụ đƣợc xây dựng dựa tảng dịch vụ gốc nhƣng hƣớng ứng dụng vốn đƣợc phát triển cho hệ điều hành khác Mỗi hệ thống cung cấp API cho hệ điều hành Win32 mơi trƣờng hoạt động chính, phát ứng dụng khác Win32, tiến trình tƣơng ứng đƣợc chuyển sang hệ thống thích hợp Các hệ thống bảo mật an toàn 223 16.4 KIẾN TRÚC HỆ ĐIỀU HÀNH WindowsNT 16.5 CÁC MODULE QUẢN LÝ CỦA WindowsNT Quản lý tiến trình Một tiến trình WinNT có : Một khơng gian địa ảo PCB chứa thông tin nhƣ độ ƣu tiên tiến trình thống kê điều phối Một hay nhiều tiểu trình Một tiển trình WinNT có : Dịng xử lý thơng tin kèm theo Các trạng thái tiểu trình :ready: chờ CPU standby: tiểu trình nhận CPU 224 running: xử lý waiting: chờ tín hiệu (IO) transition: chờ tài nguyên terminated: kết thúc Bộ điều phối sử dụng chiến lƣợc điều phối ,multilevel feedback với 32 mức ƣu tiên : Các tiểu trình real time (16-31) : độ ƣu tiên tĩnh Các tiểu trình khác nhận độ ƣu tiên động (0-15) đƣợc cập nhật tự động tiến trình tay đổi trạng thái, hay thay đổi tƣờng minh ngƣời dùng Quản lý nhớ ảo Giả sử phần cứng hỗ trợ : Cơ chế chuyển đổi địa virtual sang physical Cơ chế phân trang Sử dụng kỹ thuật phân trang với trang kích thƣớc 4K Sử dụng 32 bits địa => không gian địa ảo 4G Cấu trúc liệu hỗ trợ chuyển đổi địa chỉ: Một thƣ mục trang (page directory) gồm 1024 phần tử (PDE‟s) bytes Mỗi PDE trỏ đến bảng trang gồøm 1024 phần tử bytes (PTE‟s) Mỗi PTE trỏ đến frame BNVL 225 Khi tiến trình khởi động, đƣợc cấp workingset mặc định tối thiểu từ 30-50 trang (120-200K) Sau chiến lƣợc demand-paging đƣợc vận dụng để cấp phát trang đạt workingset cực đại 1.4Mb Khi cần thêm nhớ, trang yêu cầu thêm đƣợc nạp nhớ tự lớn Nếu khơng, máy cấu hình CPU, chiến lƣợc thay trang xấp xỉ LRU đƣợc vận dụng để giải phóng bớt trang tiến trình sử dụng workingset tối thiểu 16.6 Hệ thống tập tin WinNT hỗ trợ môi trƣờng đa hệ thống tập tin với FA, HPFS đặc biệt hệ thống tập tin NTFS với nhiều ƣu điểm : Sử dụng địa 64-bit cluster : lo liệu đƣợc cho đĩa cứng dung lƣợng lớn, sử dụng cluster kích thƣớc nhỏ (512) Có khả mở rộng kiểm sốt an tồn cho tập tin Sử dụng tên file dai với UNICODE Ghi nhận lỗi giao tác file \$LOGFILE Các cluster tự đƣợc ghi nhận system file, \$BITMAPCác cluster hỏng đƣợc ghi nhận system file, \$BADCLUS Các cluster sử dụng đƣợc ghi nhận master file table Mỗi file WinNT đƣợc mô tả tối thiểu mẫu tin Master file table (MFT) Kích thƣớc mẫu tin MFT đƣợc đặc tả hệ thống đƣợc thiết lập, biến thiên từ 1K đến 4K Tất file đƣợc ánh xạ vào MFT, kể MFT Mỗi mẫu tin MFT có trƣờng header hay nhiều attributes để mô tả cho tập tin tƣơng ứng Mỗi attribute lại bao gồm header data Nếu attribute nhỏ, đƣợc chứa mẫu tin MFT (ví dụ „file‟ name, thơng tin ngày cập nhật…) Nếu attribute lớn (ví dụ nội dung file), số hiệu cluster chứa data đƣợc lƣu mẫu tin 226 16.7 Quản lý nhập xuất Mơ hình IO WunNT đƣợc thiết kế theo kiến trúc tầng cho phép trình điều khiển thiết bị riêng biệt thực tầng logic khác việc quản lý IO Các trình điều khiển đƣợc tải vào hay gỡ bỏ khỏi hệ thống cách linh động tùy theo nhu cầu ngƣời dùng Mơ hình phân lớp cho phép chèn trình điều khiển thiết bị cách dễ dàng Hỗ trợ mạng NT hỗ trợ mơ hình kết nối mạng peer-to-peer client-server Một số protocol đƣợc hỗ trợ : SMB, NetBios, NetBeui, TCP/IP Hỗ trợ xử lý phân tán NT hỗ trợ số chế để thực xử lý phân tán nhƣ: named pipe, mailslot, winsock RPC 227 CHƢƠNG 17 HỆ ĐIỀU HÀNH LINUX -GIỚI THIỆU Linux hệ điều hành tựa Unix mạnh, linh động, dễ mở rộng hồn tồn miễn phí Nó đƣợc sử dụng hiệu nhiều lĩnh vực tin học ứng dụng đƣợc xây dựng cho Linux ngày Trong tìm hiểu hệ điều hành Linux với nội dung sau: GiớithiệuvềhệđiềuhànhLinux Tổchứchệthống Qua học này, hiểu đƣợc đặc điểm số vấn đề tổ chức hệ thống hệ điều hành Linux Từ có nhìn rộng hệ điều hành lựa chọn đƣợc cho môi trƣờng làm việc phát triển thuận lợi Bài học đòi hỏi kiến thức tổng quát cấu trúc tổ chức hệ điều hành 17.1 GIỚI THIỆU Unix hệ điều hành thông dụng giới đƣợc nhiều hệ thống hỗ trợ Hệ điều hành tồn hầu hết kiểu máy tính kể máy tính cá nhân Linux hệ thống Unix tự đƣợc hình thành từ đồ án giải trí sinh viên ngƣời Phần Lan : Linus Torvalds, lấy nguồn cảm hứng từ Minix, hệ thống Unix nhỏ Andy Tanenbaum thiết kế Tháng 10/1991 Linus Torvalds công bố version thức Linux (version 0.02).Ngày nay, Linux hệ 228 thống 32-bits, multi-tasking, multi-user, mạng đƣợc cài phần lớn máy PC (có thể chung với hệ điều hành khác) Nó hỗ trợ đủ loại chƣơng trình khác nhƣ X Windows, TCP/IP, C/C++GNU công cụ khác GNU, thƣ điện tử, cơng cụ với LateX tiện ích cho văn phịng (ApplixWare, StartOffice) Sự thành cơng Linux dựa vào nhiều yếu tố nhƣ : Mã nguồn hệ thống, nhƣ hạt nhân, công cụ lập trình nhƣ phát triển đƣợc phân phối tự Linux tƣơng thích với số lớn chuẩn Unix mức độ mã nguồn, bao gồm đặc tính POSIX, system V, BSD Một số lƣợng lớn trình ứng dụng Unix miễn phí sử dụng lại dƣới Linux mà không cần mô tả lại Hệ thống Linux đƣợc thiết kế dựa xử lý Intel tận dụng đƣợc tất chức chúng Linux hệ điều hành bao gồm hạt nhân, thông dịch lệnh nhiều trình tiện ích Hạt nhân quản lý tài nguyên vật lý (nhƣ xử lý, nhớ, thiết bị ngoại vi) logic (nhƣ tiến trình, tập tin ) Hạt nhân đƣợc tạo thành từ tập hợp thủ tục hàm đƣợc thiết kế ngôn ngữ C Cấu trúc hạt nhân nguyên khối lớp.Ngƣời sử dụng thao tác với Linux thông qua thông dịch lệnh Một điểm đặc biệt Linux có nhiều shell khác 17.2 Tổ chức hệ thống 17.2.1 Hệ thống tập tin Một đặc điểm quan trọng Linux hỗ trợ nhiều hệ thống tập tin Điều làm cho linh động tồn với nhiều hệ điều hành khác Từ phiên đầu tiên, Linux hỗ trợ 15 loại tập tin : ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs ufs Trong Linux, nhƣ Unix, hệ thống tập tin đƣợc truy xuất thông qua cấu trúc thừa kế đơn thay thiết bị xác định (nhƣ tên ổ đĩa số hiệu ổ đĩa) Linux thêm hệ thống tập tin vào đƣợc thiết lập 229 (mount) Tất hệ thống tập tin đƣợc thiết lập vào thƣ mục đƣợc gọi thƣ mục thiết lập Khi đĩa đƣợc khởi tạo, đĩa đƣợc chia thành nhiều partitions Mỗi partition có hệ thống tập tin Hệ thống tập tin Linux coi thiết bị khối cách đơn giản nhƣ tập hợp tuyến tính khối mà không quan tâm đến tổ chức vật lý đĩa Chƣơng trình điều khiển thiết bị khối chịu trách nhiệm ánh xạ khối cần đọc thành vị trí vật lý cụ thể đĩa Trong hệ thống tập tin Linux, ngƣời sử dụng không quan tâm đến khác biệt chúng thiết bị vật lý khác Hệ thống tập tin không hệ thống cục mà ổ đĩa từ xa mạng Ví dụ hệ thống tập tin Linux : Hệ thống tập tin Linux hỗ trợ Minix cho phép tập tin có tên tối đa 14 ký tự kích thƣớc không vƣợt 64Mb Hệ thống tập tin đặc thù Linux „hệ thống tập tin mở rộng‟ (EXT) đƣợc giới thiệu vào tháng 4/1992, hệ thống khơng hiệu nên sau vào năm 1993 „hệ thống tập tin mở rộng hệ 2‟ đƣợc thêm vào Có điểm quan trọng hệ thống tập tin EXT đƣợc đƣa vào Linux Hệ thống tập tin thật bị tách khỏi hệ điều hành dịch vụ hệ thống tầng giao tiếp gọi hệ thống tập tin ảo VFS VFS cho phép Linux hỗ trợ nhiều loại hệ thống tập tin khác nhau, loại đƣợc xem nhƣ giao tiếp phần mềm với VFS Tất chi tiết hệ thống tập tin đƣợc chuyển đổi cho chúng xuất nhƣ phần lại hạt nhân Linux chƣơng trình thi hành hệ thống Lớp VFS cho phép thiết lập cách suốt nhiều hệ thống tập tin khác lúc VFS đƣợc cài đặt saocho việc truy xuất tập tin nhanh đảm bảo tính xác truy xuất VFS đặt thông tin hệ thống tập tin vào nhớ chúng đƣợc thiết lập sử dụng Các cấu trúc liệu mô tả tập tin thƣ mục truy xuất đƣợc tạo hủy thƣờng trực Khi khối đƣợc truy xuất, chúng đƣợc đặt vào vùng đệm Vùng đệm không lƣu giữ liệu mà cịn hỗ trợ quản lý giao tiếp khơng đồng với phận điều khiển thiết bị khối 230 17.2.2 „hệ thống tập tin mở rộng hệ 2‟ EXT2 Là hệ thống tập tin thành công Linux Hệ thống này, nhƣ hệ thống tập tin khác, đƣợc xây dựng sở khối liệu Các khối liệu có kích thƣớc kích thƣớc tập tin đƣợc làm tròn thành số nguyên khối EXT2 định nghĩa hệ thống tập tin cách mô tả tập tin hệ thống cấu trúc I-node inode có số để định danh Các I-node đƣợc đặt bảng I-node Các thƣ mục EXT2 đƣợc xem nhƣ tập tin đặc biệt chứa trỏ đến i-node entry Hình 15.1 cho thấy tổng quan hệ thống tập tin EXT2 Hệ thống chia partitions mà quản lý vào Block Group 17.3 Điều khiển thiết bị Nhƣ đề cập phần quản lý nhập xuất, mục tiêu hệ điều hành giúp cho ngƣời sử dụng độc lập với thiết bị Trong Linux, thiết bị phần cứùng đƣợc xem nhƣ tập tin thông thƣờng : chúng đƣợc mở, đóng , đọc, ghi, sử dụng lời gọi hệ thống để thao tác Mọi thiết bị hệ thốngđều đƣợc biểu diễn tập tin thiết bị, ví dụ đĩa IDE hệ thống đƣợc biểu diễn /dev/hda 231 Linux ánh xạ tập tin thiết bị vào lời gọi hệ thống Linux hỗ trợ ba loại thiết bị : ký tự, khối mạng Có nhiều chƣơng trình điều khiển thiết bị khác hạt nhân Linux nhƣng chúng chia sẻ thuộc tính chung : Mã nguồn hạt nhân : chƣơng trình điều khiển thiết bị phần hạt nhân nhƣ đoạn mã nguồn khác bị lỗi đe dọa nghiêm trọng đến hệ thống Chƣơng trình điều khiển thiết bị cung cấp giao tiếp chuẩn với hạt nhân Linux Chúng sử dụng dịch vụ chuẩn từ hạt nhân Hầu hết chƣơng trình điều khiển thiết bị Linux đƣợc nạp nhƣ đơn thể hạt nhân có yêu cầu đƣợc gỡ khơng cịn đƣợc sử dụng Khi khởi động hệ thống chƣơng trình điều khiển thiết bị đƣợc khởi tạo tìm thiết bị phần cứng mà điều khiển Linux sử dụng chế DMA sử dụng vector cấu trúc dma_chan để quản lý kênh DMA (mỗi kênh có vector) Mỗi lớp điều khiển thiết bị : ký tự, khối, mạng cung cấp giao tiếp chung với hạt nhân Khi thiết bị đƣợc khởi tạo, ghi điều khiển thiết bị bên hạt nhân Linux đƣợc thêm entry vector chrdevs cấu trúc devive_struct Một định danh(id) đƣợc xác định cho vector cố định Mỗi entry vector chrdevs, device_struct gồm hai phần tử : trỏ đến tên ghi điều khiển thiết bị trỏ tới khối tập tin thao tác Khối tập tin thao tác địa thủ tục chƣơng trình điều khiển thiết bị mà chúng kiểm soát thao tác nhƣ mở, đóng, đọc, ghi Nội dung /proc/devices cho thiết bị ký tự đƣợc lấy từ vector chrdevs Các thiết bị khối đƣợc truy xuất nhƣ tập tin Linux quản lý ghi thiết bị khối vector blkdevs, tƣơng tự nhƣ vector chrdevs entry cấu trúc device_struct nhƣng có hai loại thiết bị khối : SCSI IDE Mỗi chƣơng trình điều khiển thiết bị khối phải cung cấp giao tiếp với vùng đệm nhƣ thao tác tập tin thôn thƣờng Cấu trúc blk_dev_struct bao gồm địa thủ tục đƣợc yêu cầu trỏ đến cấu trúc liệu cần thiết, cấu trúc đại diện cho yêu cầu từ vùng đệm cho điều khiển đọc ghi khối liệu Trong Linux, thiết bị mạng thực thể nhận gửi gói liệu Mỗi thiết bị mạng đƣợc biểu diễn cấu trúc device Các chƣơng trình điều khiển thiết bị mạng ghi nhận thiết bị mà chúng điều khiển 232 trình khởi tạomạng lúc khởi động hệ thống Cấu trúc device chứa thông tin thiết bị địa hàm hỗ trợ nghi thức dịch vụ mạng khác Nhữõng hàm chủ yếu tập trung vào việc chuyển liệu sử dụng thiết bị mạng thiết bị sử dụng chế hỗ trợ mạng chuẩn để chuyển liệu nhận đƣợc cho lớp nghi thức thích hợp Tất gói liệu chuyển nhận đƣợc biểu diễn cấu trúc sk_buff, cấu trúc linh động cho phép tiêu đề (header) nghi thức mạng dể dàng thêm vào loại bỏ Cấu trúc device lƣu thông tin thiết bị mạng : tên, thông tin đƣờng truyền, cờ trạng thái giao tiếp(mô tả thuộc tính khả thiết bị mạng), thơng tin nghi thức, hàng đợi gói tin(đây hàng đợi gói sk_buff chờ chuyển liệu thiết bị mạng đó), hàm hỗ trợ (mỗi thiết bị cung cấp tập hợp thủ tục chuẩn đƣợc gọi lớp nghi thức) 17.4 Quản lý tiến trình Mỗi tiến trình Linux đƣợc biểu diễn cấu trúc liệu task_struct (task có nghĩa tiến trình Linux) Linux sử dụng task vector để quản lý trỏ đến task_struct, mặc định có 512 phần tử Khi tiến trình đƣợc tạo ra, task_struct đƣợc cấp phát nhớ đƣợc thêm vào vector task Linux hỗ trợ hai loại tiến trình loại bình thƣờng loại thời gian thực Cấu trúc task_struct gồn trƣờng nhƣ sau : trạng thái (thi hành, chờ, ngƣng, lƣng chừng), thông tin lập lịch, định danh, thông tin liên lạc tiến trình, liên kết, định thời gian, hệ thống tập tin, nhớ ảo, ngữ cảnh Trong Linux nhƣ Unix, chƣơng trình lệnh đƣợc thực theo chế thông dịch Bộ thông dịch đƣợc gọi shell Linux hỗ trợ nhiều loại shell nhƣ sh, bash, tcsh Tập tin thi hành có nhiều dạng, dạng đƣợc sử dụng thông dụng Linux EFL, ngồi Linux hiểu đƣợc nhiều dạng tập tin khác Các chế thông tin liên lạc tiến trình đƣợc sử dụng tín hiệu (SIGNALS), đƣờng ống (PIPE), sockets, semaphore nhớ chia sẻ Có tập hợp tín hiệu đƣợc định nghĩa trƣớc, tính hiệu đƣợc phát sinh hạt nhân tiến trình khác nhớ Linux cài đặt tín hiệu task_struct Khơng phải tiến trình hệ thống gửi tín hiệu đến tiến trình khác Tín hiệu đƣợc phát sinh cách thiết lập bit thích hợp trƣờng signal cấu trúc task_struct Tín hiệu khơng xuất cho tiến trình đƣợc tạo mà phải chờ đến tiến trình đƣợc thực trở lại 233 Trong Linux chế đƣờng ống cài đặt sử dụng hai cấu trúc file trỏ đến inode VFS tạm thời xác định trang vật lý nhớ Khi tiến trình ghi thực việc ghivào đƣờng ống, byte đƣợc chép vào trang liệu chia sẻ Linux phải đồng trình truy xuất đƣờng ống Tiến trình ghi sử dụng hàm thƣ viện ghi chuẩn Các chế socket, semaphores nhớ chia sẻ Linux gần giống với hệ thống Unix System V 17.5 Quản lý nhớ Linux hỗ trợ hệ thống chia sẻ nhớ IPC (Inter Process Communication- thông tin liên lạc tiến trình) Unix System V Linux sử dụng nhớ ảo chế phân trang Trên hệ thống Alpha AXP trang có kích thƣớc 8Kb hệ thống Intel x86 trang có kích thƣớc 4Kb Chiến lƣợc thay trang đƣợc áp dụng LRU Linux có số cấp bảng trang tùy vào khác (Alpha 3, Intel x86 2) Bảng trang đƣợc chuyển thành tiến trình đặc thù khác nhau, điều giúp cho việc thao tác bảng trang không lệ thuộc vào Linux sử dụng thuật toán Buddy để thực việc cấp phát thu hồi khối trang ( khối = 1, 2, trang ) 17.6 Câu hỏi kiểm tra kiến thức Cho biết trình phát triển hệ điều hành Linux Nêu đặc điểm bật hệ điều hành Linux Hệ thống quản lý tập tin Linux có đặc biệt ? Linux quản lý nhập xuất nhƣ nào? Theo anh(chị), tƣơng lai hệ điều hành Linux đƣợc sử dụng rộng rãi nhƣ Windows ngày không ? Tại Nếu phải chọn hệ điều hành để cài lên máy PC mình, anh (chị) chọn hệ điều hành ? Tại 234 ... mẽ hệ điều hành mạng hệ điều hành phân tán.Bài tập tự giải 1.7.5 Câu hỏi củng cố học Hệ điều hành gì? Có loại hệ điều hành ? Việc phân loại dựa tiêu chuẩn ? Nêu thành phần hệ điều hành chức thành... xử lý điều phối tiến trình Chức 49 điều phối tiến trình chức bản, quan trọng hệ điều hành Trong nhiều hệ điều hành, khơng có điều phối tác vụ tách biệt điều phối tiến trình Một vài hệ điều hành. .. khác hệ điều hành Ƣu khuyết điểm củ loại cấu trúc 29 Quá trình phát triển hệ điều hành phụ thuộc vào yếu tố 1.7.6 Bài tập Hệ điều hành : a Một chƣơng trình b Một chƣơng trình hay hệ chƣơng trình