Xem mẫu

  1. 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Ộ
  2. MỤC LỤC Chƣơng 1. Tổng quan về hệ điều hành .....................................................................11 1.1. Khái niệm về 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 của hệ thống ..................................................................16 1.4. Các dịch vụ của 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ệ 1 (1945 – 1955) ...........................................................................28 1.7.2. Thế hệ 2 (1955 – 1965) ...........................................................................28 1.7.3. Thế hệ 3 (1965 – 1980) ...........................................................................29 1.7.4. Thế hệ 4 (1980 - ) ....................................................................................29 1.7.5. Câu hỏi củng cố bài học ..........................................................................29 1.7.6. Bài tập .....................................................................................................30 Chƣơng 2. Các mô hình xử lý đồng hành .................................................................31 2.1. NHU CẦU XỬ LÝ ĐỒNG HÀNH ...............................................................31 1
  3. 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) và mô hình đa tiến trình(multithread) ..............33 2.2.1. Nguyên lý chung : ...................................................................................33 2.2.2. Kernel thread và user thread ...................................................................34 2.3. Tóm tắt và bài tập ...........................................................................................35 2.3.1. Củng cố bài học .......................................................................................36 2.3.2. Bài tập .....................................................................................................36 Chƣơng 3. 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 của tiến trình ....................................................................37 3.1.2. Tiến trình mới tạo đƣợc đƣa vào hệ thống ..............................................38 3.2. Chế độ xử lý của tiến trình .............................................................................38 3.2.1. Thao tác trên 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 của kỹ thuật cấp phát : ......................................................43 Chƣơng 4. Đ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 của tiến trình .....................................................................44 4.2. Điều phối không độc quyền và đ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 trong quá 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 2
  4. 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 nhất (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ũng cố bài học ..........................................................................55 4.5.2. Bài tập .....................................................................................................55 Chƣơng 5. Liên lạc giữa các tiến trình và vấn đề đồng bộ 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 giữa các tiến trình .........................................................59 5.1.2. Các vấn đề nảy sinh trong việc liên lạc giữa cá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 bộ 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 bộ 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ố bài học .......................................................................................69 5.7.2. Bài tập .....................................................................................................70 Chƣơng 6. Các giải pháp đồng bộ 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 3
  5. 6.2. Giải pháp của 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 bộ 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 của đồng bộ 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 7. Tắc nghẽn (Deadlock) .............................................................................96 7.1. Định nghĩa: .....................................................................................................96 7.2. Điều kiện xuất hiện 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 cơ sở ...........................................................................99 7.7. Phát hiện tắc nghẽn ......................................................................................103 7.7.1. Giải thuật phát hiện tắc nghẽn ...............................................................103 7.8. Hiệu chỉnh tắc nghẽn ....................................................................................103 Chƣơng 8. Quản lý bộ nhớ ......................................................................................105 4
  6. 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 trong 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 trong 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ẻ bộ nhớ trong cơ 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 trong 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ý bộ nhớ-Tóm tắt ...............................................................................124 8.8.1. Một số cách tiếp cận tổ chức bộ nhớ chính ...........................................124 8.8.2. Củng cố bài học .....................................................................................125 8.8.3. Bài Tập ..................................................................................................125 Chƣơng 9. Bộ nhớ ảo ..............................................................................................128 9.1. Dẫn nhập ......................................................................................................128 9.2. Định nghĩa ....................................................................................................128 9.3. Cài đặt bộ 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 5
  7. 9.6. Thay thế 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 thế 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 toán « Lâu nhất 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 các bit reference phụ trợ ...............................................137 9.9.2. Thuật toán « cơ hội thứ hai » ...............................................................138 9.9.3. Thuật toán « cơ 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 bộ 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 ra lỗi trang .............................................................................144 9.15. Bộ nhớ ảo-Tóm tắt .....................................................................................144 9.15.1. Củng cố bài 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ớ ngoài .......................................................................................149 10.1.2. Tập tin và thƣ mục ..............................................................................149 10.2. Hệ thống quản lý tập tin .............................................................................150 10.3. Mô hình tổ chức và quản lý các tập tin ......................................................150 10.3.1. Tập tin : ...............................................................................................150 10.3.2. Thƣ mục : ............................................................................................155 10.4. Các chức năng ............................................................................................157 6
  8. 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 giữa các khối trống .............................................................................165 11.7. Độ an toàn của 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 của 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 một 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 7
  9. 12.2.3. Hỗ trợ tên tập tin dài :(LFN) ...............................................................178 12.2.4. Đặc điểm của NTFS ............................................................................179 12.2.5. Cấu trúc tập tin và volume của NTFS .................................................179 12.3. Hệ thống tập tin của Unix : ........................................................................181 12.3.1. Cài đặt hệ thống tập tin của 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 của chức năng 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 một 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ạ bộ 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 8
  10. 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 của miền bảo vệ ....................................................................212 15.2.3. Mối liên kết giữa một tiến trình và một miền bảo vệ có thể 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 năng của miền bảo vệ (Capability list – C_List).......218 15.5. Cơ chế khóa và chìa ...................................................................................219 15.6. An toàn hệ thống (Security) .......................................................................220 15.6.1. Các vấn đề về an toàn hệ thống...........................................................220 15.6.2. Mối đe dọa từ các 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 9
  11. 17.2. Tổ chức hệ thống ........................................................................................229 17.2.1. Hệ thống tập tin ...................................................................................229 17.2.2. „hệ thống tập tin mở rộng thế hệ 2‟ EXT2 ..........................................231 17.3. Điều khiển thiết bị ......................................................................................231 17.4. Quản lý tiến trình .......................................................................................233 17.5. Quản lý bộ nhớ ...........................................................................................234 17.6. Câu hỏi kiểm tra kiến thức .........................................................................234 10
  12. CHƢƠNG 1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Bài học này cung cấp cho chúng ta một cái nhìn tổng quát về những nguyên lý cơ bản của hệ điều hành. Chúng ta bắt đầu với việc xem xét mục tiêu và các chức năng của hệ điều này, sau đó khảo sát các dạng khác nhau của chúng cũng nhƣ xem xét quá trình phát triển qua từng giai đoạn. Các phần này đƣợc trình bày thông qua các nội dung nhƣ sau: Bài học này giúp chúng ta hiểu đƣợc hệ điều hành là gì, có cấu trúc ra sao. Hệ điều hành đƣợc phân loại theo những tiêu chuẩn nào. Quá trình phát triển của hệ điều hành phụ thuộc vào những yếu tố nào. Bài học này đòi hỏi những kiến thức về : kiến trúc máy tính. 1.1. Khái niệm về hệ điều hành Hệ điều hành là một chương trình hay một hệ chương trình hoạt động giữa ngƣời sử dụng (user) và phần cứng của máy tính. Mục tiêu của hệ điều hành là cung cấp một môi trƣờng để ngƣời sử dụng có thể thi hành các chƣơng trình. Nó làm cho máy tính dể sử dụng hơn, thuận lợi hơn và hiệu quả hơn. Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính. Một hệ thống máy tính thƣờng đƣợc chia làm bốn phần chính : phần cứng, hệ điều hành, các chƣơng trình ứng dụng và ngƣời sử dụng. Phần cứng bao gồm CPU, bộ nhớ, các thiết bị nhập xuất, đây là những tài nguyên của máy tính. Chương trình ứng dụng nhƣ các chƣơng trình dịch, hệ thống cơ sở dữ liệu, các trò chơi, và các chƣơng trình thƣơng mại. Các chƣơng trình này sử dụng tài nguyên của máy tính để giải quyết các yêu cầu của ngƣời sử dụng. Hệ điều hành điều khiển và phối hợp việc sử dụng phần cứng cho những ứng dụng khác nhau của nhiều ngƣời sử dụng khác nhau. Hệ điều hành cung cấp một môi trƣờng mà các chƣơng trình có thể làm việc hữu hiệu trên đó. Hệ điều hành có thể đƣợc coi nhƣ là bộ phân phối tài nguyên của máy tính. Nhiều tài nguyên của máy tính nhƣ thời gian sử dụng CPU, vùng bộ nhớ, vùng lƣu trữ tập tin, thiết bị nhập xuất v.v… đƣợc các chƣơng trình yêu cầu để giải quyết vấn đề. Hệ điều hành hoạt động nhƣ một bộ quản lý các tài nguyên và phân phối chúng cho các chƣơng trình và ngƣời sử dụng khi cần thiết. Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề tranh chấp và phải quyết định cấp phát tài nguyên cho những yêu cầu theo thứ tự nào để hoạt động của máy tính là hiệu quả nhất. Một hệ điều 11
  13. hành cũng có thể đƣợc coi nhƣ là một chƣơng trình kiểm soát việc sử dụng máy tính, đặc biệt là các thiết bị nhập xuất. Tuy nhiên, nhìn chung chƣa có định nghĩa nào là hoàn hảo về hệ điều hành. Hệ điều hành tồn tại để giải quyết các vấn đề sử dụng hệ thống máy tính. Mục tiêu cơ bản của nó là giúp cho việc thi hành các chƣơng trình dễ dàng hơn. Mục tiêu thứ hai là hỗ trợ cho các thao tác trên hệ thống máy tính hiệu quả hơn. Mục tiêu này đặc biệt quan trọng trong những hệ thống nhiều ngƣời dùng và trong những hệ thống lớn(phần cứng + quy mô sử dụng). Tuy nhiên hai mục tiêu này cũng có phần tƣơng phản vì vậy lý thuyết về hệ điều hành tập trung vào việc tối ƣu hóa việc sử dụng tài nguyên của máy tính. 1.2. Phân loại hệ điều hành 1.2.1. Hệ thống xử lý theo lô Bộ giám sát thƣờng trực : Khi một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếp mà không cần sự can thiệp của ngƣời lập trình, do đó thời gian thực hiện sẽ mau hơn. Một chƣơng trình, còn gọi là bộ giám sát thƣờng trực đƣợc thiết kế để giám sát việc thực hiện dãy các công việc một cách tự động, chƣơng trình này luôn luôn thƣờng trú trong bộ nhớ chính. Hệ điều hành theo lô thực hiện các công việc lần lƣợt theo những chỉ thị định trƣớc. CPU và thao tác nhập xuất : CPU thƣờng hay nhàn rỗi do tốc độ làm việc của các thiết bị nhập xuất (thƣờng là thiết bị cơ) chậm hơn rất nhiều lần so với các thiết bị điện tử. Cho dù là một CPU chậm nhất, nó cũng nhanh hơn rất nhiều lần so với thiết bị nhập xuất. Do đó phải có các phƣơng pháp để đồng bộ hóa việc hoạt động của CPU và thao tác nhập xuất. Xử lý off_line : Xử lý off_line là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị xuất, hệ thống dùng một bộ lưu trữ trung gian. CPU chỉ thao thác với bộ phận này. Việc đọc hay xuất đều đến và từ bộ lƣu trữ trung gian. Spooling : Spool (simultaneousperipheraloperationon-line) là đồng bộ hóa các thao tác bên ngoài on-line. Cơ chế này cho phép xử lý của CPU là on-line, sử dụng đĩa để lƣu các dữ liệu nhập cũng nhƣ xuất. 12
  14. 1.2.2. Hệ thống xử lý theo lô đa chương Khi có nhiều công việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho các công việc là cần thiết. Khía cạnh quan trọng nhất trong việc lập lịch là khả năng đa chƣơng. Đa chương (multiprogram) gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho CPU luôn luôn phải trong tình trạng làm việc .Ý tƣởng nhƣ sau : hệ điều hành lƣu giữ một phần của các công việc ở nơi lƣu trữ trong bộ nhớ . CPU sẽ lần lƣợt thực hiện các phần công việc này. Khi đang thực hiện, nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ mà thực hiện tiếp công việc thứ hai… Với hệ đa chƣơng hệ điều hành ra quyết định cho ngƣời sử dụng vì vậy, hệ điều hành đa chương rất tinh vi. Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho bộ nhớ và cho cả CPU nữa. 1.2.3. Hệ thống chia sẻ thời gian Hệ thống chia sẻ thời gian là một mở rộng logic của hệ đa chƣơng. Hệ thống này còn đƣợc gọi là hệ thống đa nhiệm (multitasking). Nhiều công việc cùng đƣợc thực hiện thông qua cơ chế chuyển đổi của CPU nhƣ hệ đa chƣơng nhƣng thời gian mỗi lần chuyển đổi diễn ra rất nhanh. Hệ thống chia sẻ đƣợc phát triển để cung cấp việc sử dụng bên trong của một máy tính có giá trị hơn. Hệ điều hành chia sẻ thời gian dùng lập lịch CPU và đa chƣơng để cung cấp cho mỗi ngƣời sử dụng một phần nhỏ trong máy tính chia sẻ. Một chƣơng trình khi thi hành đƣợc gọi là một tiến trình. Trong quá trình thi hành của một tiến trình, nó phải thực hiện các thao tác nhập xuất và trong khoảng thời gian đó CPU sẽ thi hành một tiến trình khác. Hệ điều hành chia sẻ cho phép nhiều ngƣời sử dụng chia sẻ máy tính một cách đồng bộ do thời gian chuyển đổi nhanh nên họ có cảm giác là các tiến trình đang đƣợc thi hành cùng lúc. Hệ điều hành chia sẻ phức tạp hơn hệ điều hành đa chƣơng. Nó phải có các chức năng: quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung cấp hệ thống tập tin truy xuất on-line… Hệ điều hành chia sẻ là kiểu của các hệ điều hành hiện đại ngày nay. 13
  15. 1.2.4. Hệ thống song song Ngoài các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng chia sẻ hệ thống đƣờng truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Các bộ xử lý này liên lạc bên trong với nhau . Có nhiều nguyên nhân xây dựng dạng hệ thống này. Với sự gia tăng số lƣợng bộ xử lý, công việc đƣợc thực hiện nhanh chóng hơn, Nhƣng không phải theo đúng tỉ lệ thời gian, nghĩa là có n bộ xử lý không có nghĩa là sẽ thực hiện nhanh hơn n lần. Hệ thống với máy nhiều bộ xử lý sẽ tối ƣu hơn hệ thống có nhiều máy có một bộ xử lý vì các bộ xử lý chia sẻ các thiết bị ngoại vi, hệ thống lƣu trữ, nguồn … và rất thuận tiện cho nhiều chƣơng trình cùng làm việc trên cùng một tập hợp dữ liệu. Một lý do nữa là độ tin cậy. Các chức năng đƣợc xử lý trên nhiều bộ xử lý và sự hỏng hóc của một bộ xử lý sẽ không ảnh hƣởng đến toàn bộ hệ thống. Hệ thống đa xử lý thông thƣờng sử dụng cách đa xử lý đối xứng, trong cách này mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết. Một số hệ thống sử dụng đa xử lý bất đối xứng, trong đó mỗi bộ xử lý đƣợc giao một công việc riêng biệt.. Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực hiện theo lệnh của bộ xử lý chính hoặc theo những chỉ thị đã đƣợc định nghĩa trƣớc. Mô hình này theo dạng quan hệ chủ tớ. Bộ xử lý chính sẽ lập lịch cho các bộ xử lý khác. Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy tính Multimax. Hệ thống này có hàng tá bộ xử lý. Ƣu điểm của nó là nhiều tiến trình có thể thực hiện cùng lúc . Một hệ thống đa xử lý cho phép nhiều công việc và tài nguyên đƣợc chia sẻ tự động trong những bộ xử lý khác nhau. Hệ thống đa xử lý không đồng bộ thƣờng xuất hiện trong những hệ thống lớn, trong đó hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất. 1.2.5. Hệ thống phân tán Hệ thống này cũng tƣơng tự nhƣ hệ thống chia sẻ thời gian nhƣng các bộ xử lý không chia sẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đƣờng truyền thông nhƣ những bus tốc độ cao hay đƣờng dây điện thoại. Các bộ xử lý trong hệ phân tán thƣờng khác nhau về kích thƣớc và chức năng. Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các 14
  16. bộ xử lý thƣờng đƣợc tham khảo với nhiều tên khác nhau nhƣ site, node, computer v.v.... tùy thuộc vào trạng thái làm việc của chúng. Các nguyên nhân phải xây dựng hệ thống phân tán là: Chia sẻ tài nguyên : Một ngƣời sử dụng A có thể sử dụng máy in laser của ngƣời sử dụng B và ngƣời sử dụng B có thể truy xuất những tập tin của A. Tổng quát, chia sẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia sẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa đểõ thực hiện các thao tác. Tăng tốc độ tính toán : Một thao tác tính toán đƣợc chia làm nhiều phần nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song. An toàn : Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm việc. Thông tin liên lạc với nhau :Có nhiều lúc , chƣơng trình cần chuyển đổi dữ liệu từ vị trí này sang vị trí khác. Ví dụ trong hệ thống Windows, thƣờng có sự chia sẻ và chuyển dữ liệu giữa các cửa sổ. Khi các vị trí đƣợc nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ. Ngƣời sử dụng có thể chuyển tập tin hay các E_mail cho nhau từ cùng vị trí hay những vị trí khác. 1.2.6. Hệ thống xử lý thời gian thực Hệ thống xử lý thời gian thựcđƣợc sử dụng khi có những đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý hoặc dòng dữ liệu, nó thƣờng đƣợc dùng điều khiển các thiết bị trong các ứng dụng tận hiến (dedicated). Máy tính phân tích dữ liệu và có thể chỉnh các điều khiển giải quyết cho dữ liệu nhập. Một hệ điều hành xử lý thời gian thực phải đƣợc định nghĩa tốt, thời gian xử lý nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian bị thúc ép nhanh nhất. Có hai hệ thống xử lý thời gian thực là hệ thống thời gian thực cứng và hệ thống thời gian thực mềm.. Hệ thống thời gian thực cứng là công việc đƣợc hoàn tất đúng lúc. Lúc đó dữ liệu thƣờng đƣợc lƣu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gian thực sẽ xung đột với tất cả hệ thống liệt kê ở trên. Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ ƣu tiên riêng và sẽ đƣợc thi hành theo độ ƣu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu phƣơng pháp này là multimedia hay thực tại ảo. 15
  17. 1.3. Cấu trúc hệ điều hành 1.3.1. Các thành phần của hệ thống a. Quản lý tiến trình Một chƣơng trình không thực hiện đƣợc gì cả nếøu nhƣ nó không đƣợc CPU thi hành. Một tiến trình là một chƣơng trình đang đƣợc thi hành, nhƣng ý nghĩa của nó còn rộng hơn. Một công việc theo lô là một tiến trình. Một chƣơng trình ngƣời dùng chia sẻ thời gian là một tiến trình, một công việc của hệ thống nhƣ soopling xuất ra máy in cũng là một tiến trình. Một tiến trình phải sử dụng tài nguyên nhƣ thời gian sử dụng CPU, bộ nhớ, tập tin, các thiết bị nhập xuất để hoàn tất công việc của nó. Các tài nguyên này đƣợc cung cấp khi tiến trình đƣợc tạo hay trong quá trình thi hành. Khi tiến trình đƣợc tạo, nó sử dụng rất nhiều tài nguyên vật lý và luận lý.cũng nhƣ một số khởi tạo dữ liệu nhập. Ví dụ , khảo sát tiến trình hiển thị trạng thái của tập tin lên màn hình. Đầu vào của tiến trình là tên tập tin, và tiến trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thống để nhận đƣợc những thông tin mong muốn và hiển thị nó lên màn hình. Khi tiến trình kết thúc, hệ điềûu hành sẽ tái tạo lại các tài nguyên có thể đƣợc dùng lại.. Một tiến trình là hoạt động (active) hoàn toàn-ngƣợc lại với một tập tin trên đĩa là thụ động (passive)-với một bộ đếm chƣơng trình cho biết lệnh kế tiếp đƣợc thi hành.Việc thi hành đƣợc thực hiện theo cơ chế tuần tự , CPU sẽ thi hành từ lệnh đầu đến lệnh cuối. Một tiến trình đƣợc coi là một đơn vị làm việc của hệ thống. Một hệ thống có thể có nhiều tiến trình cùng lúc , trong đó một số tiến trình là của hệ điều hành, một số tiến trình là của ngƣời sử dụng. các tiến trình này có thể diễn ra đồng thời. Vai trò của hệ điều hành trong việc quản lý tiến trình là :  Tạo và hủy các tiến trình của ngƣời sử dụng và của hệ thống.  Ngƣng và thực hiện lại một tiến trình.  Cung cấp cơ chế đồng bộ tiến trình.  Cung cấp cách thông tin giữa các tiến trình.  Cung cấp cơ chế kiểm soát deadlock(khái niệm này sẽ đƣợc trình bày trong chƣơng II). 16
  18. b. Quản lý bộ nhớ chính : Trong hệ thống máy tính hiện đại, bộ nhớ chính là trung tâm của các thao tác, xử lý. Bộ nhớ chính có thể xem nhƣ một mảng kiểu byte hay kiểu word. Mỗi phần tử đều có địa chỉ. Đó là nơi lƣu dữ liệu đƣợc CPU truy xuất một cách nhanh chóng so với các thiết bị nhập/xuất. CPU đọc những chỉ thị từ bộ nhớ chính. Các thiết bị nhập/xuất cài đặt cơ chế DMA(xem chƣơng IV) cũng đọc và ghi dữ liệu trong bộ nhớ chính. Thông thƣờng bộ nhớ chính chứa các thiết bị mà CPU có thể định vị trực tiếp. Ví dụ CPU truy xuất dữ liệu từ đĩa, những dữ liệu này đƣợc chuyển vào bộ nhớ qua lời gọi hệ thống nhập/xuất. Một chƣơng trình muốn thi hành trƣớc hết phải đƣợc ánh xạ thành địa chỉ tuyệt đối và nạp vào bộ nhớ chính.Khi chƣơng trình thi hành, hệ thống truy xuất các chỉ thị và dữ liệu của chƣơng trình trong bộ nhớ chính. Ngay cả khi tiến trình kết thúc , dữ liệu vẫn còn trong bộ nhớ cho đến khi một tiến trình khác đƣợc ghi chồng lên. Để tối ƣu hóa quá trình hoạt động của CPU và tốc độ của máy tính, một số tiến trình đƣợc lƣu giữ trong bộ nhớ. Có rất nhiều kế hoạch quản trị bộ nhớ do có nhiều ứng dụng bộ nhớ khác nhau và hiệu quả của các thuật toán phụ thuộc vào tùy tình huống cụ thể. Lựa chọn một thuật toán cho một hệ thống đƣợc mô tả trƣớc phụ thuộc vào nhiều yếu tố, đặc biệt là phần cứng của hệ thống. Hệ điều hành có những vai trò nhƣ sau trong việc quản lý bộ nhớ chính :  Lƣu giữ thông tin về các vị trí trong bộ nhớ đã đƣợc sử dụng và ai sử dụng.  Quyết định tiến trình nào đƣợc nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng đƣợc.  Cấp phát và thu hồi bộ nhớ khi cần thiết. c. Quản lý bộ nhớ phụ : Mục tiêu chính của hệ thống máy tính là thi hành chƣơng trình. Những chƣơng trình với dữ liệu truy xuất của chúng phải đƣợc đặt trong bộ nhớ chính trong suốt quá trình thi hành. Nhƣng bộ nhớ chính quá nhỏ để có thể lƣu giữ mọi dữ liệu và chƣơng trình, ngoài ra dữ liệu sẽ mất khi không còn đƣợc cung cấp năng lƣợng. Hệ thống máy tính ngày nay cung cấp hệ thống lưu trữ phụ. Đa số các máy tính đều dùng đĩa để lƣu trữ cả chƣơng trình và dữ liệu. Hầu nhƣ tất cả chƣơng trình : chƣơng trình dịch, hợp ngữ, thủ tục, trình soạn thảo, định dạng... đều đƣợc lƣu trữ trên đĩa cho tới khi nó đƣợc thực hiện, nạp vào trong bộ nhớ chính và cũng sử dụng đĩa để chứa dữ liệu và kết quả xử lý. Vì vậy một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính. 17
  19. Vai trò của hệ điều hành trong việc quản lý đĩa :  Quản lý vùng trống trên đĩa.  Định vị lƣu trữ.  Lập lịch cho đĩa. Vì hệ thống đĩa đƣợc sử dụng thƣờng xuyên, nên nó phải đƣợc dùng hiệu quả.Tốc độ của toàn bộ hệ thống tuỳ thuộc rất nhiều vào tốc độ truy xuất đĩa. d. Quản lý hệ thống nhập xuất : Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của các thiết bị phần cứng đối với ngƣời sử dụng thay vào đó là một lớp thân thiện hơn, ngƣời sử dụng dể thao tác hơn. Một hệ thống nhập/xuất bao gồm :  Hệ thống buffer caching.  Giao tiếp điều khiển thiết bị (device drivers) tổng quát.  Bộ điều khiển cho các thiết bị phần cứng.  Chỉ có device driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả. e. Quản lý hệ thống tập tin : Hệ thống quản lý tập tin là thành phần rõ ràng nhất trong hệ điều hành. Máy tính có thể lƣu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau : băng từ, đĩa từ, , đĩa quang, ... Mỗi dạng có những đặc thù riêng về mặt tổ chức vật lý. Mỗi thiết bị có một bộ kiểm soát nhƣ bộ điều khiển đĩa (disk driver) và có những tính chất riêng. Những tính chất này là tốc độ, khả năng lƣu trữ, tốc độ truyền dữ liệu và cách truy xuất. Để cho việc sử dụng hệ thống máy tính thuận tiện, hệ điều hành cung cấp một cái nhìn logic đồng nhất về hệ thống lƣu trữ thông tin. Hệ điều hành định nghĩa một đơn vị lƣu trữ logic là tập tin. Hệ điều hành tạo một ánh xạ từ tập tin đến vùng thông tin trên đĩa và truy xuất những tập tin này thông qua thiết bị lƣu trữ. Một tập tin là một tập hợp những thông tin do ngƣời tạo ra nó xác định. Thông thƣờng một tập tin đại diện cho một chƣơng trình và dữ liệu. Dữ liệu của tập tin có thể là số, là ký tự, hay ký số. Tập tin thƣờng có dạng tự do, nhƣ tập tin văn bản, nhị phân...(là tập tin chứa dãy các bit). (Xem bài VIII) Vai trò của hệ điều hành trong việc quản lý tập tin :  Tạo và xoá một tập tin.  Tạo và xoá một thƣ mục 18
  20.  Hỗ trợ các thao tác trên tập tin và thƣ mục.  Ánh xạ tập tin trên hệ thống lƣu trữ phụ.  Backup tập tin trên các thiết bị lƣu trữ. f. Hệ thống bảo vệ : Trong một hệ thống nhiều ngƣời sử dụng và cho phép nhiều tiến trình diễn ra đồng thời, các tiến trình phải đƣợc bảo vệ đối với những hoạt động khác.Do đó, hệ thống cung cấp cơ chế để đảm bảo rằng tập tin, bộ nhớ, CPU, và những tài nguyên khác chỉ đƣợc truy xuất bởi những tiến trình có quyền. Ví dụ, bộ nhớ đảm bảo rằng tiến trình chỉ đƣợc thi hành trong phạm vi địa chỉ của nó. Bộ thời gian đảm bảo rằng không có tiến trình nào độc chiếm CPU. Cuối cùng các thiết bị ngoại vi cũng đƣợc bảo vệ. Hệ thống bảo vệ là một cơ chế kiểm soát quá trình truy xuất của chƣơng trình, tiến trình, hoặc ngƣời sử dụng với tài nguyên của hệ thống. Cơ chế này cũng cung cấp cách thức để mô tả lại mức độ kiểm soát. Hệ thống bảo vệ cũng làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong. g. Hệ thống cơ chế dòng lệnh : Một trong những phần quan trọng của chƣơng trình hệ thống trong một hệ điều hành là cơ chế dòng lệnh, đó là giao tiếp giữa ngƣời sử dụng và hệ điều hành. Một số hệ điều hành đặt cơ chế dòng lệnh bên trong hạt nhân, số khác nhƣ MS-DOS và UNIX thì xem hệ điều hành nhƣ là một chƣơng trình đặt biệt, đƣợc thi hành khi các công việc bắt đầu hoặc khi ngƣời sử dụng login lần đầu tiên. Các lệnh đƣa vào hệ điều hành thông qua bộ điều khiển lệnh. Trong các hệ thống chia sẻ thời gian một chƣơng trình có thể đọc và thông dịch các lệnh điều khiển đƣợc thực hiện một cách tự động. Chƣơng trình này thƣờng đƣợc gọi là bộ thông dịch điều khiển card, cơ chế dòng lệnh hoặc Shell. Chức năng của nó rất đơn giản đó là lấy lệnh kế tiếp và thi hành. Mỗi hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế dòng lệnh, dạng thân thiện với ngƣời sử dụng nhƣ giao diện của Macintosh có các biểu tƣợng, cửa sổ thao tác dùng chuột. Các lệnh có quan hệ với việc tạo và quản lý các tiến trình, kiểm soát nhập xuất, quản lý bộ lƣu trữ phụ, quản lý bộ nhớ chính, truy xuất hệ thống tập tin và cơ chế bảo vệ. 19
nguon tai.lieu . vn