Giáo trình Hệ điều hành cung cấp những kiến thức cơ sở về Cấu trúc, nguyên lý hoạt động, các thành phần, quản lý bộ nhớ, quản lý tiến trình, hoạt động nhập xuất trên hệ điều hành máy tính. Mời các bạn cùng tham khảo!
ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH GIÁO TRÌNH HỆ ĐIỀU HÀNH BẬC CAO ĐẲNG (LƯU HÀNH NỘI BỘ) Tp HCM – 2017 ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH GIÁO TRÌNH HỆ ĐIỀU HÀNH THƠNG TIN NHĨM BIÊN SOẠN Chủ biên Học vị TRƯỞNG KHOA Dương Đình Dũng Thạc sĩ TỔ TRƯỞNG BỘ MÔN HIỆU TRƯỞNG DUYỆT CHỦ NHIỆM ĐỀ TÀI Giáo trình Hệ Điều Hành LỜI MỞ ĐẦU Giáo trình “Hệ điều hành” tài liệu biên soạn để phục vụ cho việc giảng dạy, học tập giáo viên sinh viên ngành Công nghệ thông tin, Hệ thống thông tin bậc cao Đẳng Giáo trình cung cấp kiến thức sở Cấu trúc, nguyên lý hoạt động, thành phần, quản lý nhớ, quản lý tiến trình, hoạt động nhập xuất hệ điều hành máy tính Giáo trình biên soạn theo đề cương học phần “Hệ điều hành” bậc cao đẳng ngành Công nghệ thông tin Hội đồng Khoa học nhà trường thông qua Giáo trình gồm 10 bài: Bài 1: Tổng quan hệ điều hành máy tính Nghiên cứu trọng tâm phần định nghĩa, khái niệm ban đầu hệ điều hành, phân loại hệ điều hành áp dụng thực tiễn Bài 2: Cấu trúc hệ điều hành Tập trung vào thành tố hình thành nên hệ điều hành, mô tả sơ lược thành phần quản lý tham gia vào hoạt động hệ điều hành Bài 3: Quản lý Tiến trình Nghiên cứu khái niệm tiến trình, tổ chức quản lý tiến trình máy tính Bài 4: Tiểu trình (Thread) Bài học tập trung vào vấn đề giải luồng thi hành nhằm nâng cao hiệu suất làm việc chu trình CPU tiến trình Bài 5: Điều phối tiến trình Trong nghiên cứu thuật tốn điều phối tiến trình hiệu loại hệ điều hành Bài 6: Tắt nghẽn (deadlock) Nghiên cứu tranh chấp tài nguyên máy tính, nguyên nhân gây tắt nghẽn phương pháp xác định tắt nghẽn giải tắt nghẽn Bài 7: Quản lý nhớ Trong cung cấp khái niệm phương pháp tổ chức, cấp phát nhớ hệ điều hành Bài 8: Bộ nhớ ảo (Virtual Memory) Trang Giáo trình Hệ Điều Hành Bài học cung cấp kiến thức cách tổ chức nhớ hệ điều hành đại, cách thức tổ chức để máy tính có nhớ vật lý nhỏ, chạy chương trình lớn nhiều lần Bài 9: Hệ thống quản lý tập tin Trình bày vấn đề lưu trữ tổ chức lưu trữ hệ điều hành Bài 10: Hệ thống nhập xuất (I/O) Nghiên cứu phương pháp nhập xuất máy tính, đặc biệt nhập xuất đĩa với thuật toán đọc đĩa Mặc dù cố gắng, song biên soạn lần đầu, giáo trình khơng tránh khỏi thiếu sót Tác giả xin chân thành cám ơn đồng nghiệp trường Cao đẳng Kinh tế-Kỹ thuật Thành phố Hồ Chí Minh - đặc biệt thành viên tổ Mạng Máy Tính - động viên góp ý cho cơng việc viết giáo trình Hệ điều hành Tác giả mong nhận ý kiến phản hồi đồng nghiệp độc giả khiếm khuyết khó tránh khỏi giáo trình Tác giả Dương Đình Dũng Trang Giáo trình Hệ Điều Hành MỤC LỤC LỜI MỞ ĐẦU MỤC LỤC .3 DANH MỤC HÌNH DANH MỤC BẢNG .12 BÀI TỔNG QUAN VỀ HỆ ĐIỀU HÀNH 13 I KHÁI NIỆM VỀ HỆ ĐIỀU HÀNH .13 Mở đầu 13 Định nghĩa hệ điều hành .14 II PHÂN LOẠI HỆ ĐIỀU HÀNH 15 Hệ thống xử lý theo lô 15 Hệ thống xử lý theo lô đa chương 16 Hệ thống chia sẻ thời gian 17 Hệ thống song song 18 Hệ thống phân tán 19 Hệ thống xử lý thời gian thực 21 III LỊCH SỬ PHÁT TRIỂN CÁC HỆ ĐIỀU HÀNH 21 Thế hệ (1945 - 1955): 21 Thế hệ (1955 - 1965) .22 Thế hệ (1965 - 1980) .22 Thế hệ (từ 1980) 22 Câu hỏi cố học 23 BÀI CẤU TRÚC CỦA HỆ ĐIỀU HÀNH 24 I Một số khái niệm hệ điều hành 24 Tiến trình (Process) tiểu trình (Thread) 24 Bộ xử lý lệnh (Shell) 25 Sự phân lớp hệ thống (System Layering) 25 Tài nguyên hệ thống (System Resources) 26 Lời gọi hệ thống (System Calls) 28 Trang Giáo trình Hệ Điều Hành II CÁC THÀNH PHẦN CỦA HỆ THỐNG 29 Quản lý tiến trình 29 Quản lý nhớ 29 Quản lý nhớ phụ 30 Quản lý hệ thống nhập xuất 30 Quản lý hệ thống tập tin 31 Hệ thống bảo vệ 31 Hệ thống chế dòng lệnh 32 II CÁC DỊCH VỤ CỦA HỆ ĐIỀU HÀNH 32 III LỜI GỌI HỆ THỐNG (SYSTEM CALLS) 33 IV Cấu trúc hệ thống 34 Cấu trúc đơn giản 34 Cấu trúc theo lớp .36 Máy ảo 38 Mơ hình Client-Server 40 Bài 3: QUẢN LÝ TIẾN TRÌNH 44 I KHÁI NIỆM 44 II TỔ CHỨC QUẢN LÝ TIẾN TRÌNH 48 Các trạng thái tiến trình 48 Chế độ xử lý tiến trình 54 Cấu trúc liệu khối quản lý tiến trình 55 Thao tác tiến trình 58 Cấp phát tài nguyên cho tiến trình 60 Cũng cố học 61 BÀI TIỂU TRÌNH (THREAD) 62 I KHÁI NIỆM TIỂU TRÌNH (THREAD) .62 II MƠ HÌNH ĐA TIỂU TRÌNH (MULTITHREAD) 64 Mơ hình đa tiểu trình 64 Ưu điểm hạn chế chế đa tuyến 67 Trang Giáo trình Hệ Điều Hành Cũng cố học 69 BÀI LẬP LỊCH BỘ XỬ LÝ .70 I KHÁI QUÁT VỀ LẬP LỊCH CHO BỘ XỬ LÝ 70 II MỤC TIÊU ĐIỀU PHỐI 71 III CÁC ĐẶC ĐIỂM CỦA TIẾN TRÌNH .71 III ĐIỀU PHỐI KHÔNG ĐỘC QUYỀN VÀ ĐIỀU PHỐI ĐỘC QUYỀN (PREEMPTIVE/NOPREEMPTIVE) 72 IV Tổ chức điều phối 73 Các danh sách sử dụng trình điều phối 73 Các cấp độ điều phối 75 V CÁC CHIẾN LƯỢC ĐIỀU PHỐI 76 Chiến lược FIFO (FCFS) 76 Chiến lược phân phối xoay vòng (Round Robin) .77 Điều phối với độ ưu tiên .80 Chiến lược công việc ngắn (Shortest-job-first SJF) 82 Chiến lược điều phối Xổ số (Lottery) 84 Bài tập .85 BÀI TẮC NGHẼN (DEADLOCK) 87 I ĐỊNH NGHĨA .87 II ĐIỀU KIỆN XUẤT HIỆN TẮC NGHẼN 89 III ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN .90 IV CÁC PHƯƠNG PHÁP XỬ LÝ TẮC NGHẼN .92 V NGĂN CHẶN TẮC NGHẼN 92 VI TRÁNH TẮC NGHẼN 93 VII PHÁT HIỆN TẮC NGHẼN 97 VIII HIỆU CHỈNH TẮC NGHẼN 98 Bài tập .99 BÀI 7: QUẢN LÝ BỘ NHỚ .101 I DẪN NHẬP 101 Trang Giáo trình Hệ Điều Hành Nhiệm vụ quản lý nhớ 101 Tổ chức quản lý nhớ 104 II KHÔNG GIAN ĐỊA CHỈ VÀ KHÔNG GIAN VẬT LÝ 105 III CẤP PHÁT LIÊN TỤC .105 Mơ hình Linker_Loader 105 Mơ hình Base &Bound .106 IV CẤP PHÁT KHÔNG LIÊN TỤC .108 Phân đoạn (Segmentation) 108 Phân trang (Paging) 115 Phân đoạn kết hợp phân trang (Paged segmentation) .125 Cũng cố học 126 Bài Tập 126 BÀI 8: BỘ NHỚ ẢO (VIRTUAL MEMORY) 129 I DẪN NHẬP 129 Khái quát ngữ cảnh 129 Định nghĩa .130 Cài đặt nhớ ảo 132 II THAY THẾ TRANG 136 Sự thi hành phân trang theo yêu cầu 136 Các thuật toán thay trang 137 Bài Tập 140 BÀI 9: HỆ THỐNG QUẢN LÝ TẬP TIN 142 I CÁC KHÁI NIỆM CƠ BẢN .142 Bộ nhớ .142 Tập tin thư mục 142 Hệ thống quản lý tập tin 143 II MƠ HÌNH TỔ CHỨC VÀ QUẢN LÝ CÁC TẬP TIN .143 Mơ hình .143 Các chức 149 Trang Giáo trình Hệ Điều Hành Câu hỏi kiểm tra kiến thức 151 BÀI 10: HỆ THỐNG VÀO RA (I/O) 152 I KHÁI NIỆM VỀ HỆ THỐNG QUẢN LÝ NHẬP/XUẤT 152 II PHẦN CỨNG NHẬP/XUẤT .153 Thiết bị I/O .153 Tổ chức chức I/O 154 Bộ điều khiển thiết bị 154 DMA (Direct Memory Access) 156 III PHẦN MỀM NHẬP/XUẤT 157 Kiểm soát ngắt 157 Điều khiển thiết bị (device drivers) 158 Phần mềm nhập/xuất độc lập thiết bị 158 Phần mềm nhập/xuất phạm vi người sử dụng 160 IV GIỚI THIỆU HỆ THỐNG I/O ĐĨA 160 Một số khái niệm dùng quản lý đĩa 160 Các điều khiển hệ thống tập tin 164 Các thuật toán đọc đĩa .166 Quản lý lỗi 168 RAM Disks .169 Interleave 170 V HỆ THỐNG I/O CHUẨN (terminals) 171 Phần cứng terminal 171 Terminal ánh xạ nhớ 173 Phần mềm nhập 174 Phần mềm xuất 175 Bài tập 176 Trang Giáo trình Hệ Điều Hành DANH MỤC HÌNH Hình 1.1 Mơ hình trừu tượng hệ thống máy tính 14 Hình 1.2 Hình tượng hố hệ điều hành xử lý theo lơ 15 Hình 1.3 Hình tượng hố hệ điều hành xử lý theo lơ đa chương 16 Hình 1.4 Hình tượng hoá hệ điều hành chia sẻ thời gian 17 Hình 1.5 Hình tượng hoá hệ điều hành xử lý song song .18 Hình 1.6 Mơ hình hệ thống đa xử lý .19 Hình 1.7 Mơ hình hệ thống phân tán 20 Hình 1.8 Hệ thống thời gian thực .21 Hình 2.1 Sự phân lớp hệ thống 26 Hình 2.2 Hoạt động lời gọi hệ thống 33 Hình 2.2 Cấu trúc hệ điều hành MS DOS (Microsoft Disk Operating System) 35 Hình 2.4 Cấu trúc chi tiết hệ điều hành Linux 36 Hình 2.5 Cấu trúc hệ điều hành phân lớp 36 Hình 2.6 Cấu trúc hệ điều hành THE .37 Hình 2.6 Cấu trúc hệ điều hành VENUS 38 Hình 2.7 Cấu trúc hệ điều hành OS/2 Swap .38 Hình 2.8 Cấu trúc máy ảo (Virtual Machine) 39 Hình 2.9 So sánh máy thực máy ảo .40 Hình 2.10 Sơ đồ cấu trúc Client/Server 40 Hình 2.11 Sơ đồ chuyển tải u cầu mơ hình Client/Server 41 Hình 2.12 Mơ hình Client Server hệ thống phân tán 42 Hinh Mơ hình xử lý .44 Hinh Mơ hình xử lý song song 45 Hinh 3 Mơ hình đơn tiến trình 46 Hinh Mơ hình đa tiến trình 47 Hinh Mơ hình đa tiến trình kết hợp 47 Hinh Mơ hình đa chương 48 Hình 3.7 Sơ đồ chuyển trạng thái tiến trình .49 Hình 3.8 Sơ đồ chuyển tiến trình vào hàng đợi 49 Hình 3.9 Sơ đồ chuyển trạng thái tiến trình bước 50 Hình 3.10 Sơ đồ chuyển tiến trình vào hàng đợi .51 Hình 3.11 Sơ đồ chuyển trạng thái tiến trình có suspend 52 Hình 3.11 Sơ đồ chuyển trạng thái tiến trình với suspend 53 Hình 3.12 Sơ đồ chuyển trạng thái tiến trình .53 Trang Giáo trình hệ điều hành Mặt đĩa Track 0 0 2-5 1-4 FAT 0 6-9 5-8 Thư mục gốc 1-3 - 11 Thư mục gốc 4-9 12 - 17 Dữ liệu 1-9 18 - 26 Dữ liệu Sector Sector logic Thông tin lưu trữ Boot record Bảng 10.4 Tương ứng sector vật lý sector logic đĩa mềm ❖ Trên bề mặt đĩa tồn sector mà hệ điều hành ghi liệu vào khơng thể đọc liệu từ Các sector gọi bad sector Trong trình định dạng đĩa hệ điều hành đánh dấu loại bỏ bad sector ❖ Cluster (liên cung): Một nhóm gồm 2, sector liên tiếp tạo thành cluster Kích thước cluster thường bội số kích thước sector Các cluster đánh địa Số sector cluster phụ thuộc vào loại đĩa Một số hệ điều hành cho phép người sử dụng quy định số sector cluster Các hệ điều hành thường tổ chức lưu trữ liệu, nội dung tập tin, đĩa theo cluster Trên bề mặt đĩa tồn bad cluster, cluster có chứa bad sector Một số hệ điều hành khôi phục lại liệu chứa bad-sector hay bad cluster ghi vào lại cluster Hệ điều hành khơi phục thay liệu sector bị bad phải khơi phục thay tồn liệu cluster có chứa bad-sector Hệ thống file NTFS windowsNT/2000 tham chiếu đến vị trí vật lý đĩa số hiệu cluster logic (LCNs: logical cluster numbers) LCN kết việc đánh số tất cluster volume từ vị trí bắt đầu volume đến kết thúc volume Để chuyển LCN thành địa vật lý đĩa, NTFS nhân LCN với thừa số cluster (số sector cluster) để có byte offset vật lý volume NTFS tham chiếu đến liệu phạm vi file số hiệu cluster ảo (VCNs: Virtual cluster numbers), VCN đánh số cluster dựa vào file cụ thể đánh số từ đến m Các VCN không Trang 162 Giáo trình hệ điều hành cần phải liên tục mặt vật lý, nhiên ánh xạ đến LCN volume ❖ Cylinder (từ trụ): Các track có số hiệu mặt đĩa khác hệ thống đĩa tạo thành cylinder Như mặt đĩa có track đĩa có nhiêu cylinder Cylinder có ổ đĩa cứng ❖ Partition (phân khu): Partition tập sector liền kề đĩa Mỗi partition có bảng partition sở liệu quản lý đĩa riêng, dùng để lưu trữ sector đầu tiên, kích thước đặc tính khác partition ❖ Volume: Một volume tương tự partition logic đĩa, tạo ta định dạng đĩa phần đĩa theo hệ thống file NTFS Trong hệ điều hành windowsNT/2000 ta tạo volume trãi dài nhiều đĩa vật lý khác Một đĩa có nhiều volume NTFS điều khiển volume cho không phụ thuộc vào volume khác Một volume bao gồm tập file với khơng gian chưa cấp phát cịn lại partition đĩa Trong hệ thống file FAT, volume chứa vùng đặc biệt định dạng cho việc sử dụng hệ thống file Trong volume NTFS ngược lại lưu trũ tất liệu hệ thống file, bitmap, directory system bootstrap, file ❖ Simple volume: đối tượng đại diện cho sector từ partition đơn, mà trình điều khiển hệ thống file, quản lý đơn vị đơn ❖ Multipartition volume: đối tượng đại diện cho sector từ nhiều partition khác nhau, mà trình điều khiển hệ thống file quản lý đơn vị đơn Các multipartition volume có đặc tính mà simple volume khơng có như: hiệu suất cao, độ tin cậy cao khả mở rộng kích thước ❖ Metadata: dạng liệu đặc biệt, lưu trữ đĩa, hỗ trợ cho thành phần quản lý dạng thức hệ thống file khác nhau, liệu vị trí tập tin/ thư mục ổ đĩa Metadata không sử dụng ứng dụng ❖ File system (hệ thống file): Các dạng thức hệ thống file định nghĩa cách mà liệu file lưu trữ thiết bị lưu trữ tác động hệ thống file đến file Một dạng thức hệ thống file đưa giới hạn kích thước file thiết bị lưu trữ mà hệ thống file hỗ trợ Một vài hệ thống file hỗ trợ cho file lớn nhỏ, đĩa lớn nhỏ Một hệ thống file thường bao gồm thành phần: Sector khởi động (Boot sector), bảng định vị file (FAT: File Allocation Table), bảng thư mục gốc (Root Directory), Trang 163 Giáo trình hệ điều hành tập file thư mục công cụ quản lý thành phần Các thành phần có cấu trúc phương thức tổ chức khác dạng thức hệ thống file khác Người ta thường dùng tên FAT hệ thống file để gọi tên hệ thống file Hệ điều hành MS_DOS sử dụng hệ thống file FAT12 FAT16, hệ điều hành Windows9x sử dụng hệ thống file FAT32 CDFS, hệ điều hành Windows NT Windows 2000 sử dụng hệ thống file FAT12, FAT16, FAT32, CDFS (CD_ROM File System, UDF (Universal Disk Format) NTFS (New Technology File System) Các điều khiển hệ thống tập tin ❖ Các điều khiển hệ thống tập tin (FSD: File system driver) quản lý dạng thức hệ thống file khác FSD thức xuất từ windowsNT/2000 Trong windows 2000 có loại FSD: Local FSD Network/ Remote FSD Local FSD: quản lý volume nối trực tiếp với máy tính Network/ Remote FSD: cho phép người sử dụng chương trình người sử dụng truy cập liệu volume nối với máy tính xa ❖ Local FSD (FSD cục bộ): Các Local FSD bao gồm tập tin: Ntfs.sys, Fastfat.sys, Cdfs.sys Raw FSD (được tích hợp Ntoskrnl.exe) Hình sau cho thấy cách local FSD tương tác với quản lý I/O thiết bị lưu trữ Các local FSD chịu trách nhiệm đăng ký với phận quản lý I/O, FSD đăng ký phận quản lý I/O gọi để thực việc xác nhận volume ứng dụng hệ thống khởi tạo truy cập đến volume Hình 10.5 FSD cục Trang 164 Giáo trình hệ điều hành Việc xác nhận volume bao hàm việc kiểm tra boot sector volume thông tin hệ thống khác Sector dạng thức hệ thống file hỗ trợ windows 2000 dành riêng cho boot sector volume Boot sector chứa đầy đủ thông tin cần thiết để local FSD vừa nhận biết mà sector chứa dạng thức mà FSD quản lý tìm kiếm metadata khác lưu trữ đĩa Để cải tiến hiệu suất, local FSD thường sử dụng hệ thống quản lý cache để cache liệu hệ thống file bao gồm metadata ➢ Các Network/Remote FSD (FSD mạng/từ xa): Các Remote FSD bao gồm thành phần: Một Client Server Các client remote FSD cho phép ứng dụng truy cập đến file thư mục xa Client FSD chấp nhận yêu cầu I/O từ ứng dụng chuyển thành lệnh giao thức hệ thống file mạng để thơng qua mạng chuyển đến server remote FSD Server FSD lắng chờ lệnh đưa đến từ kết nối mạng thực chúng cách đưa yêu cầu I/O đến phận quản lý local FSD (Local FSD manages) volume chứa file thư mục mà lệnh có ý định xử lý Hình cho thấy tương tác client server hệ thống remote FSD Cũng giống local FSD, client remote FSD thường sử dụng dịch vụ phận quản lý cache để che dấu liệu tập tin cục thư mục xa Các server remote FSD tham gia vào việc trì kết nối đến cache thơng qua client remote FSD Hình 10.6 FSD mạng Trang 165 Giáo trình hệ điều hành Các thuật toán đọc đĩa Tất công việc phụ thuộc vào việc nạp chương trình nhập xuất tập tin, điều quan trọng dịch vụ đĩa phải nhanh tốt Hệ điều hành tổ chức dịch vụ truy xuất đĩa tốt cách lập lịch yêu cầu truy xuất đĩa Tốc độ đĩa bao gồm ba phần Để truy xuất khối đĩa, trước tiên phải di chuyển đầu đọc đến track hay cylinder thích hợp, thao tác gọi seek thời gian để hoàn tất gọi seek time Một đến track, phải chờ khối cần thiết đến đầu đọc Thời gian chờ gọi latency time Cuối vận chuyển liệu đĩa nhớ gọi transfer time Tổng thời gian cho dịch vụ đĩa tổng ba khoảng thời gian Trong seek time latency time nhiều thời gian nhất, để giảm thiểu thời gian truy xuất hệ điều hành đưa thuật toán lập lịch truy xuất a Lập lịch FCFS: Phương pháp lập lịch đơn giản FCFS (first-come,first-served) Thuật toán dể lập trình khơng cung cấp dịch vụ tốt Ví dụ: cần phải đọc khối theo thứ tự sau: 98, 183, 37, 122, 14, 124, 65, 67 Giả sử đầu đọc vị trí 53 Như đầu đọc qua khối 53, 98, 183, 37, 122, 14, 124, 65, 67 hình sau: Hình 10.7 Phương pháp FCFS b Lập lịch SSTF (shortest-seek-time-first) Thuật toán di chuyển đầu đọc đến khối cần thiết theo vị trí gần với vị trí hành đầu đọc Ví dụ: cần đọc khối sau: 98, 183, 37, 122, 14, 124, 65, 67 Giả sử đầu đọc vị trí 53 Như đầu đọc qua khối 53, 65, 67, 37, 14, 98, 122, 124 183 hình sau: Trang 166 Giáo trình hệ điều hành Hình 10.8 Phương pháp SSTF Với ví dụ này, thuật toán SSTF làm giảm số khối mà đầu đọc phải di chuyển 208 khối c Lập lịch SCAN Theo thuật toán này, đầu đọc di chuyển phía đĩa từ di chuyển qua phía Ví dụ: cần đọc khối sau: 98, 183, 37, 122, 14, 124, 65, 67 Giả sử đầu đọc vị trí 53 Như đầu đọc qua khối 53, 37, 14, 0, 65, 67, 98, 122, 124 183 hình sau: Hình 10.9 Phương pháp SCAN Thuật tốn cịn gọi thuật tốn thang máy Hình ảnh thuật tốn giống hình ảnh người quét tuyết, hay quét d Lập lịch C-SCAN Thuật toán tương tự thuật toán SCAN, khác di chuyển đến đầu đĩa, trở đầu bắt đầu đĩa Lấy lại ví dụ trên, thứ tự truy xuất khối là: 53, 65, 67, 98, 122, 124, 183, 199, 0, 14, 37 hình sau: Trang 167 Giáo trình hệ điều hành Hình 10.10 Phương pháp C-SCAN e Lập lịch LOOK: Nhận xét hai thuật toán lập lịch SCAN C-SCAN luôn chuyển đầu đọc đĩa từ đầu sang đầu Nhưng thơng thường đầu đọc chuyển đến khối xa hướng khơng đến cuối Do SCAN C-SCAN chỉnh theo thực tế gọi lập lịch LOOK Như hình sau: Hình 10.11 Phương pháp LOOK Lựa chọn thuật toán lập lịch: Với thuật toán lập lịch, vấn đề phải lựa chọn thuật toán cho hệ thống Thuật tốn SSTF thơng thường Thuật tốn SCAN C-SCAN thích hợp cho hệ thống phải truy xuất liệu khối lượng lớn Với thuật toán lập lịch nào, điều quan trọng khối lượng số kiểu khối cần truy xuất Ví dụ, số khối cần truy xuất liên tục FCFS thuật tốn tốt Quản lý lỗi Đĩa đối tượng mà truy xuất gây nhiều lỗi Một số lỗi thường gặp là: ❖ Lỗi lập trình: yêu cầu đọc sector khơng tồn Trang 168 Giáo trình hệ điều hành Lỗi lập trình xảy yêu cầu điều khiển tìm kiếm cylinder khơng tồn tại, đọc sector không tồn tại, dùng đầu đọc không tồn tại, vận chuyển vào nhớ không tồn Hầu hết điều khiển kiểm tra tham số báo lỗi khơng thích hợp ❖ Lỗi checksum tạm thời: gây bụi đầu đọc Bụi tồn đầu đọc bề mặt đĩa gây lỗi đọc Nếu lỗi tồn tại, khối bị đánh dấu hỏng phần mềm ❖ Lỗi checksum thường trực: đĩa bị hư vật lý khối ❖ Lỗi tìm kiếm: ví dụ đầu đọc đến cylinder phải đọc ❖ Lỗi điều khiển: điều khiển từ chối thi hành lệnh RAM Disks Ý tưởng RAM disk đơn giản Thiết bị khối phần lưu trữ trung gian với hai lệnh: đọc khối ghi khối Thông thường khối lưu trữ đĩa mềm đĩa cứng RAM disk dùng phần định vị trước nhớ để lưu trữ khối RAM disk có ưu điểm cho phép truy xuất nhanh chóng (khơng phải chờ quay hay tìm kiếm) Như thích hợp cho việc lưu trữ chương trình hay liệu truy xuất thường xuyên Hình 10.12 Tổ chức RAM disks Trang 169 Giáo trình hệ điều hành Hình mơ tả ý tưởng RAM disk Một RAM disk chia làm nhiều khối, số lượng tùy thuộc vào dung lượng vùng nhớ Mỗi khối có kích thước vừa kích thước khối thực đĩa Khi driver nhận thị đọc ghi khối, tìm nhớ RAM disk vị trí khối, thực việc đọc hay ghi thay từ đĩa mềm hay đĩa cứng Một ứng dụng RAMDisk Windows Hình 10.13 Mơ hình RAM disk Interleave Bộ điều khiển đọc ghi đĩa phải thực hai chức đọc/ghi liệu chuyển liệu vào hệ thống Để thực đồng hai chức này, điều khiển đọc đĩa cung cấp chức interleave Trên đĩa sector số hiệu liên tiếp không nằm kế bên mà có khoảng cách định, khoảng cách xác định trình format đĩa Hình 10.14 Hoạt động Interleave với banks Ví dụ: giả sử hệ thống có 17 sector, interleave chọn sector bố trí theo thứ tự sau: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Cách đọc sau: Trang 170 Giáo trình hệ điều hành Lần 1: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Lần 2: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Lần 3: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Lần 4: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Như sau bốn lần thứ tự sector đọc từ đến 17 Hình 10.15 Thứ tự lắp đầy vào bank interleave với (n=4) V HỆ THỐNG I/O CHUẨN (TERMINALS) Mọi máy tính liên lạc với hay nhiều terminals Terminals có nhiều dạng khác Bộ điều khiển terminals ẩn dấu khác biệt, phần độc lập thiết bị hệ điều hành chương trình người sử dụng không cần thiết phải viết lại cho loại terminal Phần cứng terminal Dưới quan điểm hệ điều hành, terminal chia làm hai loại lớn dựa vào cách liên lạc với hệ điều hành Loại thứ bao gồm loại terminal giao chuẩn RS-232 (COM1) Loại thứ hai terminal dùng ánh xạ nhớ Mỗi loại chia làm nhiều loại nhỏ hình sau: Trang 171 Giáo trình hệ điều hành Hình 10.16 Các loại Terminals Terminal RS-232 thiết bị bao gồm bàn phím hình Đây thiết bị giao tiếp tuần tự, lần bit Những terminals dùng connector 25-pin, pin dùng để chuyển liệu, pin dùng để nhận liệu, pin nền, 22 pin lại có chức khác nhau, hầu hết thường thường không dùng đến Để gởi ký tự cho terminal RS-232, máy tính lần chuyển bit, ngồi có bit bắt đầu, sau có bit kết thúc để giới hạn ký tự Thường thường tốc độ vận chuyển 1200, 2400, 4800, 9600…bps Vì máy tính terminal làm việc với ký tự mà phải liên lạc với bit nên hệ thống phải thiết kế chuyển đổi gọi UART Bộ phận gắn vào card giao tiếp RS-232 Hình 10.17 Terminal RS-232 Để in ký tự, điều khiển terminal ghi ký tự lên card giao tiếp, sau chuyển cho UART Terminal RS-232 chia làm nhiều loại Dạng đơn giản terminal hardcopy(printing) Ví dụ ký tự nhập vào từ bàn phím chuyển cho máy tính Trang 172 Giáo trình hệ điều hành Các ký tự từ máy tính xuất máy in Dạng tương tự ký tự xuất hình gọi "glass ttys" có chức tương tự Terminals intelligent dùng máy tính nhỏ Điểm khác biệt với loại quan điểm hệ điều hành gữi ký tự ASCII ESC sau ký tự khác dùng để chuyển cursor đến vị trí hình, chèn dịng vào hình Blit terminal có xử lý mạnh hình có 1024x800 điểm giao tiếp với máy tính RS-232 Terminal ánh xạ nhớ Dạng thứ hai terminal terminal ánh xạ nhớ Loại khơng giao tiếp với máy tính qua đường serial Nó phần của hệ thống máy tính Terminal ánh xạ nhớ giao tiếp nhớ đặc biệt gọi video RAM, phần nhớ định vị CPU Hình 10.18 Terminal ánh xạ nhớ Trên card video RAM có chip gọi điều khiển video Chip lấy thông tin từ video RAM tạo tín hiệu video để điều khiển hình Màn hình tạo tia điện tử quét từ xuống Thường thường có khoảng từ 200 đến 1200 dịng, dịng có từ 200 đến 1200 điểm Mỗi điểm gọi pixel Bộ điều khiển tín hiệu xác định điểm sáng hay tối Màn hình màu có ba tia đỏ, lục xanh Thơng thường hình mono xây dựng ký tự box có chiều rộng pixel chiều cao 14 pixel (bao gồm khoảng trống ký tự) có 25 dịng dịng có 80 ký tự Mỗi khung vẽ lại từ 45 đến 70 lần giây Bộ điều khiển video đặt dòng 80 ký tự vào video RAM Một ví dụ hình ánh xạ ký tự máy IBM PC Một phần nhớ địa 0xB000 cho hình đơn sắc 0xB800 cho hình màu Mỗi ký tự hình chiếm hai bytes nhớ Byte thấp chứa giá trị ASCII ký tự, Trang 173 Giáo trình hệ điều hành byte cao chứa thuộc tính màu sắc, nhấp nháy v.v Màn hình 80x25 chiếm 4000 bytes nhớ video RAM Hình 10.19 Ánh xạ hình Khi CPU ghi ký tự vào video RAM, xuất hình theo lần hiển thị (1/50 giây cho mono, 1/60 cho màu) CPU nạp 4K ảnh hình tính trước vào video RAM vài phần triệu giây Với tốc độ 9600 bps, ghi 2000 ký tự vào terminal RS-232 khoảng 2083 phần triệu giây Terminal ánh xạ nhớ cho phép truy xuất nhanh Terminal bit-map tương tự vậy, ngoại trừ bit video RAM kiểm sốt điểm hình Màn hình có 1024x800 pixel cần dùng 100 K nhớ khó thiết kế font kích thước cho ký tự Bàn phím giao tiếp thông qua cổng song song giao tiếp RS-232 Mỗi gõ phím vào, CPU bị ngắt, điều khiển bàn phím xác định kiểu ký tự đọc từ cổng I/O Đơi bàn phím cung cấp số hiệu phím, khơng phải mã ASCII Trên IBM PC gõ phím A mã ký tự 30 đưa vào ghi I/O Bộ điều khiển xác định ký tự chữ hoa hay chữ thường tổ hợp phím Phần mềm nhập Bàn phím hình độc lập với thiết bị Cơng việc điều khiển bàn phím tập hợp liệu nhập từ bàn phím chuyển cho chương trình người sử dụng Khi có phím gõ, gây ngắt, điều khiển yêu cầu ký tự suốt trình ngắt Nếu ngắt gây lời gọi ngắt ngơn ngữ lập trình cấp thấp chuyển ký tự cho chương trình Nó sử dụng buffer nhớ thông điệp để báo cho điều khiển biết có ký tự nhập Một điều khiển nhận ký tự, bắt đầu xử lý Nếu dạng mã bàn phím, ánh xạ lại mã ASCII thật Nếu terminal dạng cook, ký tự phải lưu trữ nhận hết dịng người sử dụng xóa phần nội dung Trang 174 Giáo trình hệ điều hành Có hai loại buffer thơng thường Dạng thứ nhất, điều khiển chứa pool buffer, buffer chứa 16 ký tự Có cấu trúc liệu liên kết với nó, có chứa trỏ trỏ tới chuỗi buffer Khi ký tự chuyển cho chương trình, loại khỏi buffer Dạng thứ hai buffer trực tiếp có cấu trúc liệu tổ chức theo dạng thứ khơng đủ nhớ Hình sau cho biết khác biệt hai cách hình sau: Hình 10.20 Hai dạng cấu trúc liệu Terminal Mặt dù hình bàn phím hai thiết bị logic riêng biệt, người quen với việc gõ ký tự xem xuất hình Một số terminal cho phép tự động hiển thị lên hình vừa gõ dấu gõ password Một số terminal không hiển thị ký tự gõ phải dựa vào phần mềm để hiển thị input, xử lý gọi echoing Echoing phức tạp chương trình phải xuất lên hình người dùng gõ vào Bộ điều khiển bàn phím phải kiểm sốt khơng cho ghi chồng lên output chương trình Echoing gặp khó khăn người nhập gõ nhiều 80 ký tự hình 80 ký tự dịng Một vấn đề khác xử lý tab Bộ điều khiển phải tính tốn vị trí thời cursor sau tính tốn để chuyển cho chương trình cho echoing tính tốn khoảng trống phải hiển thị Vấn đề phải xử lý carriage return line feed để chuyển cursor qua đầu dòng Việc xử lý tùy thuộc vào hệ điều hành khác Ngồi phải kiểm sốt tổ hợp ký tư ký tự xố, lùi, hay phím chức Phần mềm xuất Phần mềm xuất đơn giản nhập hai dạng thiết bị terminal RS-232 ánh xạ nhớ khác Phương pháp thơng thường terminal RS-232 có buffer xuất cho loại terminal Dạng buffer pool buffer nhập dạng tận hiến input Khi chương trình ghi lên terminal, trước tiên xuất lên Trang 175 Giáo trình hệ điều hành buffer Sau xuất lên buffer, ký tự xuất, sau điều khiển tạm dừng, có ngắt phát sinh, ký tự xuất, tiếp tục Với terminal ánh xạ nhớ, vấn đề đơn giản Những ký tự in xuất lần từ chương trình người dùng xuất lên video RAM Với số kýtự xử lý đặc biệt Ví dụ: backspace, carriage return, line feed, bell (CTRL-G) Bộ điều khiển ánh xạ nhớ, lưu giữ phần mềm vị trí video RAM, ký tự in được xuất theo thứ tự, ký tự đặc biệt cập nhật thích hợp Khi line feed xuất cuối dòng hình, hình cuộn Thường thường phần cứng cung cấp số giúp đỡ Hầu hết điều khiển hình chứa ghi xác định vị trí video RAM để bắt đầu đặt byte vào dịng hình Phần mềm soạn thảo hình phải có nhiều xử lý phức tạp xuống dịng Để tương thích, số điều khiển terminal hỗ trợ số xử lý, thông thường là: ❖ Di chuyển cursor lên, xuống, trái, phải vị trí ❖ Di chuyển cursor đến vị trí x,y ❖ Chèn ký tự hay chèn dịng ❖ Xóa ký tự hay dịng ❖ Cuộn hình lên xuống n dịng ❖ Xố hình từ vị trí cursor đến cuối dịng hình ❖ Tạo tương phản, gạch dưới, nhấp nháy, hay mode thường ❖ Tạo, hủy, di chuyển quản trị cửa sổ Bài tập Giả sử đĩa có side, side có 1024 track, track có 32 sector Tốc độ xoay đĩa 6000 vòng/phút Thời gian di chuyển track 100ms Giả sử thời gian đọc chuyển liệu không đáng kể Cho biết để truy xuất tất sector logic sau phải tốn bao lâu: 34, 16, 120, 14, 86, 200, 79, 300, 8, 500, 170, 450, 1000, 380, 800 Biết: Sector = Seclog / SecTrk + Side = (Seclog/SecTrk) / SideNo Track = (Seclog/(Sectrk *SideNo)) Với Seclog sector logic, SideNo số side, Sectrk số sector track Trang 176 ... trình người sử dụng hệ điều hành, hệ điều hành đưa lời gọi hệ thống Chương trình người sử dụng dùng lời gọi hệ thống để liên lạc với hệ điều hành yêu cầu dịch vụ từ hệ điều hành Mỗi lời gọi hệ. .. điều hành – Vận hành cấu trúc hệ điều hành sơ đồ cho trước – Phân tích đặc điểm kiến trúc máy ảo hệ điều hành đại – Nhận biết đặc điểm cấu trúc hệ thống hệ điều hành Và liên hệ đến thực tế hệ điều. .. chức hệ điều hành để hệ điều hành đạt mục tiêu: Giúp người sử dụng khai thác máy tính dễ dàng chương trình người sử dụng chạy máy tính Định nghĩa hệ điều hành Hệ điều hành chương trình hay hệ chương