TRƯỜNG ĐẠI HỌC ĐỒNG THÁP KHOA SƢ PHẠM TOÁN – TIN BÀI GIẢNG HỆ ĐIỀU HÀNH Biên soạn Ths Nguyễn Thị Thùy Linh LƢU HÀNH NỘI BỘ ĐỒNG THÁP 11/2013 1 LỜI NÓI ĐẦU Tài liệu đƣợc biên soạn chủ yếu dựa trên kiến[.]
TRƯỜNG ĐẠI HỌC ĐỒNG THÁP KHOA SƢ PHẠM TOÁN – TIN BÀI GIẢNG HỆ ĐIỀU HÀNH Biên soạn : Ths Nguyễn Thị Thùy Linh LƢU HÀNH NỘI BỘ ĐỒNG THÁP 11/2013 LỜI NÓI ĐẦU Tài liệu đƣợc biên soạn chủ yếu dựa kiến thức tích lũy giảng dạy nhiều năm môn học tác giả đƣợc tham khảo từ nguồn lý thuyết hệ điều hành nguyên lý hệ điều hành trƣờng Đại học Huế, Đại học Cần Thơ… Tổng quan: Bài giảng giới thiệu hệ hệ điều hành, thành phần hệ điều hành, chức hệ điều hành, dịch vụ mà hệ điều hành cung cấp Sau nghiên cứu chi tiết chức thành phần bên hệ điều hành: Quản lý tiến trình, Quản lý nhớ, Đồng hóa tiến trình, Quản lý Deadlock, Quản lý cài đặt hệ thống tập tin, Quản lý đĩa Mục tiêu: Kiến thức: - Hiểu đƣợc vai trò hệ điều hành chế hoạt động hệ điều hành - Hiểu kiến trúc thiết kế hệ điều hành - Hiểu chiến lƣợc việc thiết kế hệ điều hành đại - Biết vấn đề phát sinh trình thiết kế hệ điều hành nhƣ tiếp cận khác đƣợc dùng để phân tích giải vấn đề - Xem xét chiến lƣợc hệ điều hành phổ biến cách chúng tác động đến dịch vụ hệ điều hành đại - Vận dụng chiến lƣợc việc thiết kế hệ điều hành để mô lại máy tính Kỹ năng: - Rèn luyện kỹ phân tích giải tốn chiến lƣợc việc thiết kế thành phần bên hệ điều hành - Rèn luyện tƣ giải thuật, kỹ lập trình kỹ thuật mơ - Kỹ làm việc nhóm, tự học, tự nghiên cứu Thái độ: - Nhận thức đắn phía ngƣời thiết kế hệ điều hành hệ thống máy tính - Nâng cao ý thức tự học, tự nghiên cứu để mở rộng kiến thức Đối tượng: Tài liệu dành cho ngƣời học cao đẳng đại học chuyên ngành công nghệ thông tin Yêu cầu: Ngƣời học cần phải hiểu cấu trúc liệu giải thuật kèm theo ngơn ngữ lập trình Pascal ngôn ngữ C/C++, Java, C# Ngƣời học cần biết cấu trúc logic máy tính nói riêng nhƣ mạng máy tính nói chung Nội dung: Tài liệu bao gồm có chƣơng: Chƣơng 1: Tổng quan hệ điều hanh Chƣơng 2: Quản lý tiến trình Chƣơng 3: Quản lý nhớ Chƣơng 4: Quản lý tập tin đĩa Chƣơng 5: Quản lý hệ thống nhập/xuất MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC DANH MỤC THUẬT NGỮ VIẾT TẮT CHƯ NG 1: TỔNG QU N VỀ HỆ ĐIỀU HÀNH 1.1 MỤC TIÊU 1.2 KHÁI NI M VỀ H ĐIỀU HÀNH 1.3 CHỨC N NG H ĐIỀU HÀNH 10 1.4 PH N LOẠI H ĐIỀU HÀNH 12 1.4.1 Hệ điều hành xử lý theo lô đơn chƣơng 12 1.4.2 Hệ thống xử lý theo lô đa chƣơng 14 1.4.3 Hệ thống chia s thời gian 15 1.4.4 Hệ thống đa xử lý hệ thống song song 15 1.4.5 Hệ thống phân tán 17 1.4.6 Hệ thống xử lý thời gian thực 18 1.4.7 Hệ xách tay 18 1.5 L CH S PHÁT TRIỂN CỦA H ĐIỀU HÀNH 19 1.5.1 Thế hệ 1945 – 1955) 19 1.5.2 Thế hệ 1955 – 1965) 20 1.5.3 Thế hệ 1965 – 1980) 20 1.5.4 Thế hệ 1980-nay ) 21 1.6 CẤU TR C CỦA H ĐIỀU HÀNH 21 1.6.1 Các thành phần bên hệ điều hành 21 1.6.2 Các dịch vụ hệ điều hành 26 1.6.3 Lời gọi hệ thống 27 1.6.4 Cấu trúc hệ điều hành 28 1.7 MỘT S H ĐIỀU HÀNH HI N ĐẠI 38 1.7.1 Hệ điều hành Windows95 38 1.7.2 Hệ điều hành Windows 2000 39 1.7.3 Hệ điều hành Linux 40 1.7.4 Hệ điều hành Windows 41 1.7.5 Hệ điều hành Windows 42 1.7.6 Hệ điều hành Android 42 1.8 TÓM TẮT 43 Câu hỏi ôn tập 44 TÀI LI U THAM KHẢO 44 CHƯ NG 2: QUẢN L TIẾN TR NH 45 2.1 MỤC TIÊU 45 2.2 TỔNG QUAN VỀ TIẾN TRÌNH 45 2.2.1 Nhu cầu xử lý đồng hành 45 2.2.2 Khái niệm tiến trình 46 2.2.3 Phân loại tiến trình 49 2.2.4 Tiểu trình Thread mơ hình đa tiểu trình Multithread 51 2.3 TỔ CHỨC QUẢN LÝ TIẾN TRÌNH 54 2.3.1 Các trạng thái tiến trình 54 2.3.2 Chế độ xử lý tiến trình 60 2.3.3 Cấu trúc liệu khối quản lý tiến trình 61 2.4 THAO TÁC TRÊN TIẾN TRÌNH 62 2.4.1 Tạo lập tiến trình 63 2.4.2 Kết thúc tiến trình 64 2.4.3 Khi tiến trình thay đổi trạng thái 64 2.5 CẤP PHÁT TÀI NGUYÊN CHO TIẾN TRÌNH 65 2.6 Đ NH THỜI BIỂU CPU 66 2.6.1 Giới thiệu 67 2.6.2 Tổ chức định thời biểu 70 2.6.3 Các chiến lƣợc định thời biểu CPU 75 2.7 ĐỒNG BỘ HĨA TIẾN TRÌNH 87 2.7.1 Liên lạc tiến trình 87 2.7.2 Các chế thông tin liên lạc 88 2.7.3 Nhu cầu đồng hóa synchronisation 95 2.7.4 Tài nguyên găng đoạn găng 96 2.7.5 Đồng tiến trình qua đoạn găng 102 2.8 TẮC NGHẼN VÀ CH NG TẮC NGHẼN 125 2.8.1 Khái niệm tắc nghẽn 125 2.8.2 Đặc điểm Deadlock 128 2.8.3 Các phƣơng pháp xử lý deadlock 134 2.9 TÓM TẮT 151 Câu hỏi ôn tập 153 Bài tập 156 TÀI LI U THAM KHẢO 160 CHƯ NG 3: QUẢN L BỘ NHỚ 161 3.1 MỤC TIÊU 161 3.2 NHI M VỤ QUẢN LÝ BỘ NHỚ 161 3.3 KIẾN THỨC NỀN 164 3.3.1 Một chƣơng trình qua nhiều bƣớc xử lý 164 3.3.2 Không gian địa luận lý không gian địa vật lý 166 3.3.3 Bộ quản lý nhớ MMU 167 3.3.4 Phủ lắp Overlay 167 3.3.5 Hoán vị 168 3.4 QUẢN LÝ BỘ NHỚ CHÍNH 170 3.4.1 Bộ nhớ cấp phát liên tục 170 3.4.2 Cấp phát không liên tục 182 3.5 QUẢN LÝ BỘ NHỚ ẢO 202 3.5.1 Khái niệm nhớ ảo 203 3.5.2 Cài đặt nhớ ảo 204 3.5.3 Kỹ thuật nhớ ảo 208 3.6 TÓM TẮT 222 Câu hỏi ôn tập 224 Bài Tập 225 TÀI LI U THAM KHẢO 230 CHƯ NG 4: QUẢN L TẬP TIN VÀ ĐĨ 231 4.1 MỤC TIÊU 231 4.2 TỔNG QUAN VỀ QUẢN LÝ TẬP TIN VÀ ĐĨA 232 4.2.1 Tập tin hệ thống quản lý tập tin 232 4.2.2 Bảng danh mục tập tin chia s 235 4.2.3 Quản lý không gian đĩa 238 4.2.4 Quản lý block chứa tập tin đĩa 241 4.2.5 An toàn quản lý tập tin 246 4.2.6 Hiệu suất hệ thống tập tin 251 4.3 MỘT S KHÁI NI M DÙNG TRONG QUẢN LÝ ĐĨA 252 4.4 CÁC ĐIỀU KHIỂN H TH NG TẬP TIN 255 4.5 CÁC H TH NG TẬP TIN ĐƢỢC S DỤNG TRÊN CÁC H ĐIỀU HÀNH HI N NAY 257 4.5.1 FAT12, FAT16, FAT32 257 4.5.2 NTFS 258 4.5.3 CDFS 259 4.5.4 UDF 259 4.6 TỔ CHỨC ĐĨA CỦA MS-DOS 259 4.6.1 FDISK 259 4.6.2 Tổ chức logic đĩa 261 4.7 QUẢN LÝ TẬP TIN TRÊN ĐĨA CỦA MS-DOS 265 4.7.1 Boot sector 266 4.7.2 File Allocation Table (FAT) 268 4.7.3 Root Directory Bảng thƣ mục gốc 274 4.7.4 Thƣ mục Subdirectory 279 4.8 TỔ CHỨC LƢU TRỮ TẬP TIN TRÊN ĐĨA CD_ROM 281 4.8.1 Hệ thống tập tin ISO 9660 282 4.8.2 Mở rộng Rock Ridge 283 4.8.3 Mở rộng Joliet 283 4.9 TÓM TẮT 284 Câu hỏi ôn tập 286 Bài tập 286 TÀI LI U THAM KHẢO 287 CHƯ NG 5: QUẢN L HỆ THỐNG NHẬP/XUẤT 291 5.1 MỤC TIÊU 291 5.2 CÁC KHÁI NI M CƠ BẢN 291 5.3 PHẦN CỨNG NHẬP/XUẤT 292 5.3.1 Thiết bị I/O 292 5.3.2 Tổ chức chức I/O 293 5.4 GIAO DI N NHẬP/XUẤT ỨNG DỤNG 299 5.5 H TH NG CON NHẬP/XUẤT CỦA NH N KERNEL I/O SUBSYTEM 302 5.5.1 Định thời biểu nhập/xuất 302 5.5.2 Vùng đệm 303 5.5.3 Vùng lƣu trữ 303 5.5.4 Vùng chứa 304 5.5.5 Quản lý lỗi 304 5.5.6 Cấu trúc liệu nhân 305 5.6 CHUYỂN NHẬP/XUẤT TỚI HOẠT ĐỘNG PHẦN CỨNG 305 5.7 N NG LỰC 308 5.8 TÓM TẮT 310 Câu hỏi ôn tập 311 Câu hỏi trắc nghiệm 311 TÀI LI U THAM KHẢO 311 D NH MỤC THUẬT NGỮ VIẾT TẮT K HIỆU API CDFS THUẬT NGỮ Application Programming Interface CD-ROM File System CLI CPU CRT CS CSDL DMA FAT FCFS FDD FIFO FSD HDD I/O device IC ISO Clean Interrupt Processor Cathode-Ray Tube Critical Section Cơ sở liệu Direct Memory Access File Allocation Table First-Come, First-Served Floppy Disk First In First Out File System Driver Hard disk Input/Output device Integrated C rcuit International Organization for Standardization KTCN LCNs LFU LRU LWP Logical Cluster Numbers The Least Frequently Used Least-Recently-Used Lightweight Process MEM MFT MFU MMU MS-DOS NRU NTFS OPT OS P PC Memory Master File Table The Most Frequently Used Memory Management Unit Microsoft Disk Operrating System Not Recently Used New Technology File System Optimal Operating System Process Personal Computer NGHĨ Là hệ thống tập tin đƣợc đƣa để quản lý tập tin, thƣ mục đĩa CD_ROM Cấm ngắt Bộ xử lý ng phóng điện tử chân khơng Miền găng, đoạn găng Truy xuất nhớ trực tiếp Bảng cấp phát tập tin Đến trƣớc đƣợc phục vụ trƣớc Đĩa mềm Vào trƣớc trƣớc Điều khiển hệ thống tập tin Đĩa cứng Thiết bị nhập/xuất Mạch tích hợp Tổ chức tiêu chuẩn hoá quốc tế Kiểm tra cập nhật Số hiệu Cluster logic Ít đƣợc dùng thƣờng xuyên Lâu chƣa sử dụng Liên kết tiểu trình tiến trình Bộ nhớ Trang đƣợc sử dụng nhiều Đơn vị quản lý nhớ Hệ điều hành MS-DOS Không sử dụng gần Hệ thống tập tin NTFS Tối ƣu hóa Hệ điều hành Tiến trình, q trình Máy tính cá nhân PCB PCT PDA PTBR RID Program Counter Process Control Block Page Control Table Personal Digital Assistant Page Table Base Register Resource Identification ROM RR SCT SJF STBR Read Only Memory Round Robin Segment Control Table Shortest Job First Segment Table Base Register STI STLR Setting Interrupt Segment Table Length Register THE TLBs TSL UDF Technische Hogeschool Eindhoven Translation Look-aside Buffers Test and Set UMA USER VCNs Uniform Memory Access USER Virtual Cluster Numbers Nghĩa khác: Bộ đếm chƣơng trình Khối điều khiển tiến trình Bảng trang Thiết bị kỹ thuật số hỗ trợ cá nhân Thanh ghi bảng trang Định danh khối quản lý tài nguyên Bộ nhớ đọc Bảng phân đoạn Công việc ngắn trƣớc Thanh ghi bảng phân đoạn Mở ngắt Thanh ghi giới hạn bảng phân đoạn Hệ điều hành THE Bộ nhớ kết hợp Kiểm tra khóa Là hệ thống tập tin đƣợc đƣa để quản lý đĩa từ/quang, chủ yếu đĩa DVD_ROM Truy xuất nhớ đồng Ngƣời dùng Số hiệu Cluster ảo CHƯ NG 1: TỔNG QU N VỀ HỆ ĐIỀU HÀNH 1.1 MỤC TIÊU Sau học xong chƣơng này, ngƣời học nắm đƣợc kiến thức sau: - Hiểu chức hệ điều hành hệ thống máy tính - Biết phân loại hệ điều hành - Biết hệ điều hành phát triển qua nhiều giai đoạn - Các thành phần bên hệ điều hành - Các dịch vụ mà hệ điều hành cung cấp - Biết đƣợc cấu trúc hệ điều hành Bài học cung cấp cho nhìn tổng quát nguyên lý hệ điều hành Chúng ta bắt đầu với việc xem x t mục tiêu chức hệ điều hành, sau phân loại chúng tìm hiểu trình phát triển hệ điều hành qua giai đoạn Phân biệt thành phần hệ thống thành phần bên hệ điều hành Thông qua giai đoạn khác thấy cách thức mà thành phần hệ điều hành đƣợc cải tiến nhƣ dịch vụ mà hệ điều hành cung cấp, cuối khảo sát cấu trúc khác hệ điều hành 1.2 KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH Hệ điều hành chƣơng trình hệ thống hay hệ chƣơng trình đóng vai tr trung gian ngƣời dùng máy tính phần cứng máy tính Mục tiêu hệ điều hành cung cấp môi trƣờng thuận lợi để ngƣời dùng d dàng thực chƣơng trình ứng dụng họ máy tính khai thác triệt để chức phần cứng máy tính Hệ điều hành phần quan trọng hầu hết 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, chƣơng trình ứng dụng ngƣời dùng (user) Phần cứng bao gồm xử lý, nhớ, thiết bị nhập xuất, tài ngun máy tính Chương trình ứng dụng nhƣ chƣơng trình dịch ngơn ngữ lập trình Pascal, C,… , hệ thống sở liệu (Access, SQL), chƣơng trình tr chơi, chƣơng trình thƣơng mại Các chƣơng trình sử dụng tài nguyên máy tính để giải yêu cầu ngƣời dùng Hệ điều hành làm nhiệm vụ điều khiển phối hợp việc sử dụng phần cứng cho ứng dụng khác nhiều người dùng khác bao gồm thiết bị đầu cuối, hệ thống máy tính khác) Hệ điều hành cung cấp mơi trƣờng mà chƣơng trình làm việc hữu hiệu Ngƣời dùng Chƣơng trình Ngƣời dùng Ngƣời dùng Hợp ngữ Soạn thảo văn dịch Ngƣời dùng CSDL Chƣơng trình ứng dụng Hệ điều hành Phần cứng Hình 1.1 Mơ hình trừu tượng hệ thống máy tính Hệ điều hành đƣợc coi nhƣ phân phối tài nguyên máy tính Nhiều tài nguyên máy tính nhƣ thời gian sử dụng CPU, không gian nhớ, vùng lƣu trữ tập tin, thiết bị nhập xuất v.v… đƣợc chƣơng trình yêu cầu để giải vấn đề Hệ điều hành hoạt động nhƣ quản lý tài nguyên phân phối chúng cho chƣơng trình ngƣời dùng cần thiết Do có nhiều yêu cầu, hệ điều hành phải giải vấn đề tranh chấp phải định cấp phát tài nguyên cho yêu cầu theo thứ tự để hoạt động máy tính hiệu Một hệ điều hành đƣợc coi nhƣ chƣơng trình kiểm sốt việc sử dụng máy tính, đặc biệt ngƣời dùng sử dụng thiết bị nhập xuất Tuy nhiên, nhìn chung chƣa có định nghĩa hoàn hảo hệ điều hành Hệ điều hành tồn để giải vấn đề sử dụng hệ thống máy tính Mục tiêu giúp cho việc thi hành chƣơng trình d dàng Mục tiêu thứ hai hỗ trợ cho thao tác hệ thống máy tính hiệu Mục tiêu đặc biệt quan trọng hệ thống nhiều ngƣời dùng hệ thống lớn Tuy nhiên hai mục tiêu có phần tƣơng phản thuyết hệ điều hành đứng phía người thiết ế hệ điều hành n n t p trung vào việc tối ưu h a việc s dụng tài nguy n máy tính quan trọng nh t 1.3 CHỨC N NG HỆ ĐIỀU HÀNH Để đạt mục tiêu hệ điều hành thực hai chức nhƣ sau: - Gi p máy tính m rộng: Máy tính thiết bị vi điện tử, đƣợc cấu thành từ phận nhƣ: Bộ xử lý, nhớ, thiết bị nhập/xuất, BUS, Do đó, để làm việc với máy tính ngƣời dùng phải hiểu đƣợc chế hoạt động phận phải tác động trực tiếp vào nó, tất nhiên dùng m máy ký số 0,1 Điều khó ngƣời dùng Để đơn giản hơn, hệ điều hành phải che dấu hết chi tiết phức tạp phần cứng máy tính một máy tính m rộng Máy tính mở rộng có đầy đủ chức máy tính thực nhƣng đơn giản d sử dụng Theo cần tác động vào máy tính thực ngƣời sử dụng cần tác động vào máy tính mở rộng, chuyển đổi thơng tin điều khiển từ máy tính mở rộng sang máy tính thực ngƣợc lại điều hệ điều hành thực Mục đích chức là: giúp ngƣời sử dụng khai thác chức phần cứng máy tính d dàng hiệu - Qu n tài nguy n hệ thống gồm Bộ xử lý, nhớ, thiết bị nhập/xuất, tập tin, Đây tài nguyên mà hệ điều hành cấp phát cho tiến trình điều khiển hoạt động hệ thống Khi ngƣời dùng cần thực chƣơng trình hay chƣơng trình cần nạp thêm tiến trình vào nhớ hệ điều hành phải cấp phát khơng gian nhớ cho chƣơng trình, tiến trình để chƣơng trình, tiến trình nạp đƣợc vào nhớ hoạt động đƣợc Trong môi trƣờng hệ điều hành đa nhiệm có nhiều chƣơng trình, tiến trình đồng thời cần đƣợc nạp vào nhớ, nhƣng không gian lƣu trữ nhớ có giới hạn, hệ điều hành phải tổ chức cấp phát nhớ cho hợp lý để đảm bảo tất chƣơng trình, tiến trình cần đƣợc nạp vào nhớ để hoạt động Ngoài hệ điều hành c n phải tổ chức bảo vệ không gian nhớ đ cấp cho chƣơng trình, tiến trình để tránh truy cập bất hợp lệ tranh chấp nhớ 10 chƣơng trình, tiến trình, đặc biệt tiến trình đồng thời hoạt động hệ thống Đây nhiệm vụ quan trọng hệ điều hành Trong trình hoạt động hệ thống, đặc biệt hệ thống đa ngƣời dùng, đa chƣơng trình, đa tiến trình, c n xuất tƣợng khác, nhiều chƣơng trình, tiến trình đồng thời sử dụng không gian nhớ hay tập tin liệu, chƣơng trình Trong trƣờng hợp hệ điều hành phải tổ chức việc chia s giám sát việc truy xuất đồng thời tài nguyên nói cho việc sử dụng tài nguyên có hiệu nhƣng tránh đƣợc mát liệu làm hỏng tập tin Trên hai dẫn chứng điển hình để thấy vai tr hệ điều hành việc quản lý tài nguyên hệ thống, sau thấy việc cấp phát, chia s , bảo vệ tài nguyên hệ điều hành cơng việc khó khăn phức tạp Hệ điều hành đ tốn nhiều chi phí cho cơng việc nói để đạt đƣợc mục tiêu: Trong trƣờng hợp tất chƣơng trình, tiến trình cần đƣợc cấp phát tài nguyên để hoạt động sớm hay muộn đƣợc cấp phát đƣợc đƣa vào trạng thái hoạt động Các nhà thiết kế hệ điều hành hƣớng tới việc phát triển hệ điều hành ngày thân thiện d sử dụng, c c u n n t c nc cc cn n sau1: - Hệ điều hành cho phép thực nhiều chương trình đồng thời mơi trường đa tác vụ (đa nhiệm) Hệ điều hành đa nhiệm bao gồm: Windows NT, Windows 2000, Linux OS/2 Trong hệ thống đa nhiệm, hệ điều hành phải xác định ứng dụng đƣợc chạy ứng dụng đƣợc chạy khoản thời gian phải dừng lại ứng dụng khác đƣợc chạy - Hệ điều hành tự nạp n vào nhớ: Quá trình nạp hệ điều hành vào nhớ đƣợc gọi trình Booting Chỉ hệ điều hành đ đƣợc nạp vào nhớ cho ph p ngƣời dùng giao tiếp với phần cứng Trong hệ thống có nhiều ứng dụng đồng thời hoạt động nhớ hệ điều hành phải chịu trách nhiệm chia s không gian nhớ RAM nhớ cache cho ứng dụng - Hệ điều hành API (Application Programming Interface): tập hàm/thủ tục đƣợc xây dựng sẵn bên hệ thống, thực đƣợc Nguy n Kim Tuấn, Giáo trình lý thuyết hệ điều hành, ĐH Huế, 2004,Tr.3 11 nhiều chức khác nhƣ shutdown hệ thống, đảo ngƣợc hiệu ứng hình, khởi động ứng dụng,… Hệ điều hành giúp cho chƣơng trình ngƣời dùng giao tiếp với API hay thực lời gọi đến hàm/thủ tục API - Nạp iệu cần thiết vào nhớ: Dữ liệu ngƣời dùng cung cấp đƣợc đƣa vào nhớ để xử lý Khi nạp liệu vào nhớ hệ điều hành phải lƣu lại địa nhớ nơi mà liệu đƣợc lƣu Hệ điều hành phải ln theo dõi đồ cấp phát nhớ, nơi liệu chƣơng trình đƣợc lƣu trữ Khi chƣơng trình cần đọc liệu, hệ điều hành đến địa nhớ nơi lƣu trữ liệu mà chƣơng trình cần đọc để đọc lại - Hệ điều hành bi n dịch thị chương trình: Hệ điều hành phải đọc giải m thao tác cần đƣợc thực hiện, đƣợc viết chƣơng trình ngƣời dùng Hệ điều hành chịu trách nhiệm sinh thông báo lỗi hệ thống gặp lỗi hoạt động - Hệ điều hành qu n tài nguy n: Nó đảm bảo việc sử dụng thích hợp tất tài nguyên hệ thống nhƣ là: nhớ, đĩa cứng, máy in, … 1.4 PH N LOẠI HỆ ĐIỀU HÀNH Có nhiều cách khác để phân loại hệ điều hành, dựa vào cách mà hệ điều hành thực công việc, tác vụ, tiến trình ngƣời dùng để phân loại hệ điều hành 1.4.1 Hệ điều hành xử lý theo lô đơn chương Hệ điều hành loại thực tác vụ ần ượt theo thị đ đƣợc xác định trƣớc Khi tác vụ chấm dứt hệ thống tự động thực tác vụ mà khơng cần can thiệp từ bên ngồi, hệ thống đạt tốc độ thực cao Để thực đƣợc điều hệ điều hành phải có giám sát thƣờng trực Bộ giám sát thường trực: Khi công việc chấm dứt, hệ thống thực công việc mà không cần can thiệp ngƣời lập trình, thời gian thực mau Một chƣơng trình, c n gọi giám sát thƣờng trực đƣợc thiết kế để giám sát việc thực d y công việc cách tự động, chƣơng trình ln ln thƣờng trú nhớ 12 Hệ điều hành Vùng chƣơng trình ngƣời dùng Bản 1.1 S p xếp nhớ hệ thống x theo ô đơn chương Môi trƣờng sử dụng Nhập cơng việc Mơi trƣờng máy tính Hàng đợi công việc Kết n Cài đ t hàng đợi công việc người d ng Trong hệ điều hành hệ thống cần thực cơng việc phải lƣu chƣơng trình liệu công việc vào hàng đợi công việc, sau thực lần lƣợt chƣơng trình liệu cơng việc tƣơng ứng hàng đợi cho lần lƣợt kết B ng 1 minh họa cho hoạt động hệ thống theo lô đơn chƣơng Với cách tổ chức hàng đợi cơng việc, hệ thống khơng thể thay đổi chƣơng trình liệu công việc chúng c n nằm hàng đợi, hạn chế Mặt khác q trình thực cơng việc cơng việc chuyển sang truy xuất thiết bị vào/ra CPU rơi vào trạng thái chờ điều gây l ng phí thời gian xử lý CPU Các thao tác khác hệ điều hành xử lý theo lô đơn chƣơng: - CPU thao tác nh p xu t: CPU thƣờng hay nhàn rỗi tốc độ làm việc thiết bị nhập xuất thƣờng thiết bị chậm nhiều lần so với thiết bị điện tử CPU Cho dù CPU chậm nhất, nhanh nhiều lần so với thiết bị nhập xuất Do phải có phƣơng pháp để đồng hóa việc hoạt động CPU thao tác nhập xuất 13 - X off_ ine: Thay CPU phải đọc trực tiếp từ thiết bị nhập xuất thiết bị xuất, hệ thống dùng lƣu trữ trung gian CPU thao thác với phận lƣu trữ trung gian - Spool (simultaneous peripheral operation online : đồng hóa thao tác bên ngồi online Cơ chế cho ph p xử lý CPU online, sử dụng đĩa để lƣu liệu nhập/xuất 1.4.2 Hệ thống xử lý theo lô đa chương Một hạn chế hệ điều hành xử lý theo lô đơn giản l ng phí thời gian xử lý CPU công việc truy xuất đến thiết bị vào/ra Hệ điều hành xử lý theo lô đa chƣơng khắc phục hạn chế Hệ điều hành Công việc Công việc Công việc Công việc Bản S p xếp nhớ hệ thống x theo đa chương Khi có nhiều công việc truy xuất lên thiết bị, vấn đề lập lịch cho công việc cần thiết Khía cạnh quan trọng việc lập lịch khả đa chƣơng (multiprogram) Mục ti u n gia tăng hiệu su t s dụng CPU b ng cách t chức công việc cho CPU uôn uôn ph i trạng thái àm việc Hệ điều hành loại có khả thực nhiều cơng việc, nhiều chƣơng trình đồng thời Khi cần thực nhiều công việc đồng thời hệ điều hành nạp phần m lệnh liệu vào nhớ phần c n lại đƣợc nạp sau thời điểm thích hợp tất trạng thái sẵn sàng thực Sau hệ điều hành dùng định thời CPU chọn công việc cho thực thi CPU, nhƣng công việc thực cần truy xuất thiết bị vào/ra CPU đƣợc chuyển sang thực công việc khác, nhƣ hệ điều hành tổ chức chuyển hƣớng CPU để 14 thực hết phần công việc nhớ nhƣ công việc mà hệ thống yêu cầu Hệ điều hành loại mang lại hai ƣu điểm tiết iệm nhớ, hơng nạp hết mã ệnh iệu công việc vào nhớ, hạn chế thời gian rỗi CPU Tuy nhiên phải trả chi phí cao cho việc lập lịch CPU, tức CPU r nh hệ điều hành phải xem x t nên chuyển cho công việc số công việc đợi trạng thái sẵn sàng Ngoài hệ điều hành c n phải giải việc chia s nhớ cho cơng việc khác Hệ điều hành MS-DOS hệ điều hành đơn nhiệm, đa chƣơng Với hệ đa chƣơng hệ điều hành định cho ngƣời dùng Vì vậy, hệ điều hành đa chƣơng tinh vi Hệ phải xử lý vấn đề lập lịch cho công việc, lập lịch cho nhớ cho CPU 1.4.3 Hệ thống chia s thời gian Hệ thống chia s thời gian mở rộng logic hệ đa chƣơng Hệ thống c n đƣợc gọi hệ thống đa nhiệm nhƣ Windows 9x/NT Chia sẻ thời gian chia sẻ thời gian x CPU cho cơng việc, tiến trình trạng thái sẵn sàng thực Mục ti u n cung c p chế cho phép người d ng giao tiếp với chương trình hi chạy Nguyên tắc hệ điều hành chia s thời gian tƣơng tự nhƣ hệ điều hành xử lý theo lô đa chƣơng nhƣng việc chuyển CPU từ tác vụ, tiến trình sang tác vụ, tiến trình khác khơng phụ thuộc vào việc tác vụ, tiến trình có truy xuất đến thiết bị vào/ra hay không mà phụ thuộc vào điều phối CPU hệ điều hành Công việc điều phối CPU hệ điều hành phức tạp phụ thuộc vào nhiều yếu tố khác nhau, đề cập đến vấn đề chƣơng sau tài liệu Hệ điều hành chia s phức tạp hệ điều hành đa chƣơng Nó phải có chức năng: quản trị bảo vệ nhớ, sử dụng nhớ ảo Nó cung cấp hệ thống tập tin truy xuất online…Hệ điều hành chia s kiểu hệ điều hành đại ngày 1.4.4 Hệ thống đa xử lý hệ thống song song) 15 Ngoài hệ thống xử lý c n có hệ thống c nhiều x c ng chia sẻ hệ thống đường truyền iệu, đồng hồ, nhớ thiết bị ngoại vi Các xử lý liên lạc bên với n Có n - u n uyên n ân xây d n Hệ thống đa x t ốn d n n y: Thông ượng gia tăng: Với gia tăng số lƣợng xử lý, công việc đƣợc thực nhanh chóng hơn, Nhƣng khơng phải theo tỉ lệ thời gian, nghĩa có n xử lý khơng có nghĩa thực nhanh n lần Vì nhiều xử lý cộng tác cơng việc, lƣợng chi phí phải chịu việc giữ thành phần làm việc phù hợp Chi phí cộng với chi phí cạnh tranh tài nguyên đƣợc chia s , làm giảm kết đƣợc mong đợi từ xử lý bổ sung Tƣơng tự nhƣ nhóm gồm N lập trình viên làm việc với không dẫn đến kết công việc đạt đƣợc tăng N lần - Tính inh tế việc mở rộng: hệ thống đa xử lý tiết kiệm nhiều chi phí hệ thống đơn xử lý, chúng chia s ngoại vi, thiết bị lƣu trữ điện Nếu nhiều chƣơng trình điều hành tập hợp liệu lƣu trữ liệu đĩa tất xử lý chia s chúng r có nhiều máy tính với đĩa cục nhiều liệu - Kh tin c y gia tăng: chức đƣợc phân bổ hợp lý xử lý lỗi xử lý không dừng hệ thống, lực bị giảm Nếu có 10 xử lý có xử lý bị cố xử lý xử lý c n lại phải chia s cơng việc xử lý bị lỗi Do đó, toàn hệ thống giảm 10% lực dừng hoạt động Các hệ thống đƣợc thiết kế nhƣ đƣợc gọi hệ thống có khả chịu lỗi fault tolerant 2 Nguy n Phú Trƣờng, Giáo trình hệ điều hành, ĐH Cần Thơ, 2005,tr.8 16 Hệ thống đa xử lý thông thƣờng sử dụng cách đa x đối xứng, cách xử lý chạy với hệ điều hành, liên lạc với cần thiết Một ví dụ hệ thống xử lý đối xứng phiên Encore UNIX cho máy tính Multimax Hệ thống có hàng chục xử lý Ƣu điểm nhiều tiến trình thực lúc Một hệ thống đa xử lý cho ph p nhiều công việc tài nguyên đƣợc chia s tự động xử lý khác Hầu nhƣ tất hệ điều hành đại - gồm Windows NT, Solaris, Digital UNIX, OS/2 LINUX - cung cấp hỗ trợ đa xử lý đối xứng Một số hệ thống sử dụng đa x b t đối xứng, xử lý đƣợc giao công việc riêng biệt Một xử lý kiểm sốt tồn hệ thống, xử lý khác thực theo lệnh xử lý theo thị đ đƣợc định nghĩa trƣớc Mơ hình theo dạng quan hệ chủ tớ Bộ xử lý lập lịch cho xử lý khác 1.4.5 Hệ thống phân tán Hệ thống tƣơng tự nhƣ hệ thống chia s thời gian nhƣng xử lý không chia s nhớ đồng hồ, thay vào xử lý có nhớ cục riêng Các x thông tin với thông qua đường truyền thông bus tốc độ cao hay đường dây điện thoại Các xử lý hệ phân tán thƣờng khác kích thƣớc chức Nó bao gồm máy vi tính, trạm làm việc, máy mini, hệ thống máy lớn Các xử lý thƣờng đƣợc tham khảo với nhiều tên khác nhƣ Site, Node, Computer v.v tùy thuộc vào trạng thái làm việc chúng C c n uyên n ân p ả xây d n - t ốn p ân t n l : Chia sẻ tài nguy n: Một ngƣời dùng A sử dụng máy in ngƣời dùng B ngƣời dùng B truy xuất tập tin A Tổng quát, chia s tài nguyên hệ thống phân tán cung cấp chế để chia s tập tin vị trí xa, xử lý thơng tin sở liệu phân tán, in ấn vị trí xa, sử dụng thiết bị xa để thực thao tác 17 - Tăng tốc độ tính tốn: Một thao tác tính tốn đƣợc chia làm nhiều phần nhỏ thực lúc Hệ thống phân tán cho ph p phân chia việc tính tốn nhiều vị trí khác để tính tốn song song - An tồn: Nếu vị trí hệ thống phân tán bị hỏng, vị trí khác tiếp tục làm việc - Thông tin i n ạc với nhau: Có nhiều lúc, chƣơng trình cần chuyển đổi liệu từ vị trí sang vị trí khác Ví dụ hệ thống Windows, thƣờng có chia s chuyển liệu cửa sổ Khi vị trí đƣợc nối kết với hệ thống mạng, việc trao đổi liệu di n d Ngƣời dùng chuyển tập tin hay Email cho từ vị trí hay vị trí khác 1.4.6 Hệ thống xử lý thời gian thực Hệ thống x thời gian thực s dụng hi c đòi hỏi h t he thời gian tr n thao tác x ho c dịng iệu, thƣờng đƣợc dùng điều khiển thiết bị ứng dụng tận hiến Máy tính phân tích liệu chỉnh điều khiển giải cho 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 xác khoảng thời gian bị thúc p nhanh Có hai hệ thống xử lý thời gian thực hệ thống thời gian thực cứng hệ thống thời gian thực mềm Hệ thống thời gian thực cứng cơng việc đƣợc hồn tất lúc Lúc liệu thƣờng đƣợc lƣu nhớ ngắn hạn hay ROM Việc xử lý theo thời gian thực xung đột với tất hệ thống liệt kê Dạng thứ hai hệ thống thời gian thực mềm, công việc có độ ƣu tiên riêng đƣợc thi hành theo độ ƣu tiên Có số lĩnh vực áp dụng hữu hiệu phƣơng pháp ứng dụng đa phƣơng tiện 1.4.7 Hệ xách tay Hệ xách tay gồm máy ỹ thu t số hỗ trợ cá nhân (personal digital assistantsPDAs nhƣ Palm hay điện thoại di động với nối kết Internet Những ngƣời phát triển hệ xách tay ứng dụng gặp phải nhiều thử thách, giới hạn ích thƣớc thiết bị Thí dụ, PDA điển hình cao khoảng 12,7cm rộng khoảng 7,62cm 18 trọng lƣợng 225g Do giới hạn kích thƣớc này, hầu hết thiết bị xách tay có nhớ nhỏ gồm xử lý thấp hình hiển thị nhỏ Bây xem x t giới hạn Nhiều thiết bị xách tay có dung lƣợng nhớ 512KB 8MB ngƣợc lại, máy PC hay trạm làm việc có hàng trăm MB nhớ Do đó, hệ điều hành ứng dụng phải quản lý nhớ hiệu Hiện nay, nhiều thiết bị xách tay khơng dùng kỹ thuật nhớ ảo buộc ngƣời phát triển chƣơng trình làm việc phạm vi giới hạn nhớ vật lý Vấn đề thứ hai mà ngƣời phát triển cần quan tâm đến tốc độ xử lý đƣợc dùng thiết bị Các xử lý nhanh yêu cầu điện nhiều Để chứa xử lý nhanh bên thiết bị xách tay yêu cầu nhiều pin phải đƣợc nạp lại thƣờng xuyên Để tối thiểu hố kích thƣớc thiết bị xách tay đ i hỏi xử lý nhỏ hơn, chậm tiêu thụ điện Do đó, hệ điều hành ứng dụng phải đƣợc thiết kế không đ i hỏi sử dụng nhiều xử lý Vấn đề cuối gây khó khăn cho ngƣời thiết kế chƣơng trình cho thiết bị xách tay hình hiển thị nhỏ Màn hình cho thiết bị xách tay thƣờng có diện tích khơng q 7,62cm Những tác vụ quen thuộc nhƣ đọc email hay hiển thị trang web, phải đƣợc cô đọng vào hình nhỏ Một phƣơng pháp để hiển thị nội dung trang web cắt xén web, tập hợp nhỏ trang web đƣợc phân phát hiển thị thiết bị xách tay 1.5 L CH S PHÁT TRIỂN CỦ HỆ ĐIỀU HÀNH 1.5.1 Thế hệ 1945 – 1955) Vào khoảng thập niên 1940, Howard Aiken Havard John Von Neumann Princeton, đ thành cơng việc xây dựng máy tính dùng ống chân không Những máy lớn với 10000 ống chân không nhƣng chậm nhiều so với máy r ngày nay3 Mỗi máy đƣợc nhóm ngƣời thực tất khâu từ thiết kế, xây dựng lập trình, thao tác đến quản lý Lập trình ngơn ngữ máy tuyệt đối, thƣờng Nguy n Hạnh Nhi, Bài giảng điện tử hệ điều hành nâng cao, Trƣờng Đại học Khoa học Tự nhiên 19 ... thành phần hệ điều hành đƣợc cải tiến nhƣ dịch vụ mà hệ điều hành cung cấp, cuối khảo sát cấu trúc khác hệ điều hành 1.2 KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH Hệ điều hành chƣơng trình hệ thống hay hệ chƣơng... nhiều giai đoạn - Các thành phần bên hệ điều hành - Các dịch vụ mà hệ điều hành cung cấp - Biết đƣợc cấu trúc hệ điều hành Bài học cung cấp cho nhìn tổng quát nguyên lý hệ điều hành Chúng ta bắt đầu... giảng giới thiệu hệ hệ điều hành, thành phần hệ điều hành, chức hệ điều hành, dịch vụ mà hệ điều hành cung cấp Sau nghiên cứu chi tiết chức thành phần bên hệ điều hành: Quản lý tiến trình, Quản lý