Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
510,48 KB
Nội dung
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 ĐỊNH THỜI BIỂU CPU I Mục tiêu Sau học xong chương này, người học nắm kiến thức sau: • Hiểu khái niệm định thời • Hiểu giải thuật định thời biểu CPU • Vận dụng giải thuật định thời cho hệ thống cụ thể II Giới thiệu Định thời biểu sở hệ điều hành đa chương Bằng cách chuyển đổi CPU trình, hệ điều hành làm máy tính hoạt động nhiều Trong chương này, giới thiệu khái niệm định thời trình bày giải thuật định thời biểu CPU khác Chúng ta xem xét vấn đề chọn giải thuật cho hệ thống xác định III Các khái niệm Mục tiêu đa chương có nhiều q trình chạy thời điểm để tối ưu hóa việc sử dụng CPU Trong hệ thống đơn xử lý, trình chạy thời điểm; trình khác phải chờ CPU rảnh định thời lại Ý tưởng đa chương tương đối đơn giản Một trình thực thi phải chờ yêu cầu nhập/xuất hoàn thành Trong hệ thống máy tính đơn giản CPU rảnh rỗi; tất thời gian chờ lãng phí Với đa chương, cố gắng dùng thời gian để CPU phục vụ cho q trình khác Nhiều trình giữ nhớ thời điểm Khi trình phải chờ, hệ điều hành lấy CPU từ trình cấp CPU tới trình khác Định thời biểu chức hệ điều hành Hầu hết tài nguyên máy tính định thời biểu trước dùng Dĩ nhiên, CPU tài nguyên máy tính ưu tiên Do đó, định thời biểu trọng tâm việc thiết kế hệ điều hành III.1 Chu kỳ CPU-I/O Sự thành công việc định thời biểu CPU phụ thuộc vào thuộc tính xem xét sau trình Việc thực thi trình chứa chu kỳ (cycle) thực thi CPU chờ đợi nhập/xuất Các trình chuyển đổi hai trạng thái Sự thực thi trình bắt đầu với chu kỳ CPU (CPU burst), theo sau chu kỳ nhập/xuất (I/O burst), sau chu kỳ CPU khác, sau lại tới chu kỳ nhập/xuất khác khác, Sau cùng, chu kỳ CPU cuối kết thúc với yêu cầu hệ thống để kết thúc việc thực thi, với chu kỳ nhập/xuất khác, mơ tả hình IV.1 Một chương trình hướng nhập/xuất (I/O-bound) thường có nhiều chu kỳ CPU ngắn Một chương trình hướng xử lý (CPU-bound) có nhiều chu Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 56 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 kỳ CPU dài Sự phân bổ giúp chọn giải thuật định thời CPU hợp lý Hình 0-1-Thay đổi thứ tự CPU I/O burst III.2 Bộ định thời CPU Bất CPU rảnh, hệ điều hành phải chọn trình hàng đợi sẳn sàng để thực thi Chọn trình thực định thời biểu ngắn (short-term scheduler) hay định thời CPU Bộ định thời chọn trình nhớ sẳn sàng thực thi cấp phát CPU tới q trình Hàng đợi sẳn sàng khơng thiết hàng đợi vào trước, trước (FIFO) Xem xét số giải thuật định thời khác nhau, hàng đợi sẳn sàng cài đặt hàng đợi FIFO, hàng đợi ưu tiên, cây, hay đơn giản danh sách liên kết không thứ tự Tuy nhiên, khái niệm tất trình hàng đợi sẳn sàng xếp hàng chờ hội để chạy CPU Các mẫu tin hàng đợi thường khối điều khiển q trình q trình III.3 Định thời biểu trưng dụng Quyết định định thời biểu CPU xảy trường hợp sau: • • • Khi trình chuyển từ trạng thái chạy sang trạng thái chờ (thí dụ: yêu cầu nhập/xuất, hay chờ kết thúc trình con) Khi trình chuyển từ trạng thái chạy tới trạng thái sẳn sàng (thí dụ: ngắt xảy ra) Khi trình chuyển từ trạng thái chờ tới trạng thái sẳn sàng (thí dụ: hồn thành nhập/xuất) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 57 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 • Khi trình kết thúc Trong trường hợp 4, không cần chọn lựa loại định thời biểu Một trình (nếu tồn hàng đợi sẳn sàng) phải chọn để thực thi Tuy nhiên, có lựa chọn loại định thời biểu trường hợp Khi định thời biểu xảy trường hợp 4, nói chế định thời khơng trưng dụng (nonpreemptive); ngược lại, định thời biểu xảy trường hợp 3, nói chế định thời trưng dụng (preemptive) Trong định thời không trưng dụng, CPU cấp phát tới trình, q trình giữ CPU giải phóng CPU hay kết thúc hay chuyển tới trạng thái sẳn sàng Phương pháp định thời biểu dùng hệ điều hành Microsoft Windows 3.1 Apple Macintosh Phương pháp dùng tảng phần cứng xác định khơng đòi hỏi phần cứng đặc biệt (thí dụ, đếm thời gian) yêu cầu để định thời biểu trưng dụng Tuy nhiên, định thời trưng dụng sinh chi phí Xét trường hợp trình chia sẻ liệu Một q trình giai đoạn cập nhật liệu bị chiếm dụng CPU trình thứ hai chạy Q trình thứ hai đọc liệu mà trạng thái thay đổi Do đó, kỹ thuật yêu cầu để điều phối việc truy xuất tới liệu chia sẻ Sự trưng dụng có ảnh hưởng thiết kế nhân hệ điều hành Trong xử lý lời gọi hệ thống, nhân chờ hoạt động dựa theo hành vi trình Những hoạt động liên quan với thay đổi liệu nhân quan trọng (thí dụ: hàng đợi nhập/xuất) Điều xảy trình bị trưng dụng CPU giai đoạn thay đổi nhân (hay trình điều khiển thiết bị) cần đọc hay sửa đổi cấu trúc? Sự lộn xộn chắn xảy Một số hệ điều hành, gồm hầu hết ấn UNIX, giải vấn đề cách chờ lời gọi hệ thống hoàn thành hay việc nhập/xuất bị nghẽn, trước chuyển đổi ngữ cảnh Cơ chế đảm bảo cấu trúc nhân đơn giản nhân khơng trưng dụng trình cấu trúc liệu nhân trạng thái thay đổi Tuy nhiên, mô hình thực thi nhân mơ hình nghèo nàn để hỗ trợ tính tốn thời thực đa xử lý Trong trường hợp UNIX, phần mã rủi ro Vì ngắt xảy lúc ngắt khơng thể bỏ qua nhân, nên phần mã bị ảnh hưởng ngắt phải đảm bảo từ việc sử dụng đồng thời Hệ điều hành cần chấp nhận hầu hết ngắt, ngược lại liệu nhập bị hay liệu xuất bị viết chồng Vì phần mã khơng thể truy xuất đồng hành nhiều q trình, chúng vơ hiệu hóa ngắt lúc nhập cho phép ngắt hoạt động trở lại thời điểm việc nhập kết thúc Tuy nhiên, vơ hiệu hóa cho phép ngắt tiêu tốn thời gian, đặc biệt hệ thống đa xử lý III.4 Bộ phân phát Một thành phần khác liên quan đến chức định thời biểu CPU phân phát (dispatcher) Bộ phân phát module có nhiệm vụ trao điều khiển CPU tới trình chọn định thời biểu ngắn (short-term scheduler) Chức liên quan: • Chuyển ngữ cảnh • Chuyển chế độ người dùng • Nhảy tới vị trí hợp lý chương trình người dùng để khởi động lại trình Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 58 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Bộ phân phát nên nhanh có thể, nạp lần chuyển trình Thời gian cho phân phát dừng trình bắt đầu chạy trình khác gọi thời gian trễ cho việc điều phối (dispatch latency) IV Các tiêu chuẩn định thời Các giải thuật định thời khác có thuộc tính khác có xu hướng thiên vị cho loại trình trình Trong việc chọn giải thuật sử dụng trường hợp nào, phải xét thuộc tính giải thuật khác Nhiều tiêu chuẩn đề nghị để so sánh giải thuật định thời biểu Những đặc điểm dùng để so sánh tạo khác biệt quan trọng việc xác định giải thuật tốt Các tiêu chuẩn gồm: • • • • • Việc sử dụng CPU: muốn giữ CPU bận nhiều Việc sử dụng CPU từ đến 100% Trong hệ thống thực, nên nằm khoảng từ 40% (cho hệ thống nạp tải nhẹ) tới 90% (cho hệ thống nạp tải nặng) Thông lượng: CPU bận thực thi q trình cơng việc thực Thước đo cơng việc số lượng q trình hoàn thành đơn vị thời gian gọi thơng lượng (throughput) Đối với q trình dài, tỉ lệ q trình giờ; giao dịch ngắn, thông lượng 10 q trình giây Thời gian hồn thành: từ quan điểm q trình cụ thể, tiêu chuẩn quan trọng để thực thi q trình Khoảng thời gian từ thời điểm gởi q trình tới q trình hồn thành gọi thời gian hoàn thành (turnaround time) Thời gian hoàn thành tổng thời gian chờ đưa trình vào nhớ, chờ hàng đợi sẳn sàng, thực thi CPU thực nhập/xuất Thời gian chờ: giải thuật định thời CPU không ảnh hưởng lượng thời gian q trình thực thi hay thực nhập/xuất; ảnh hưởng lượng thời gian trình phải chờ hàng đợi sẳn sàng Thời gian chờ (waiting time) tổng thời gian chờ hàng đợi sẳn sàng Thời gian đáp ứng: hệ thống giao tiếp, thời gian hồn thành khơng tiêu chuẩn tốt Thơng thường, q trình tạo liệu xuất tương đối sớm tiếp tục tính tốn kết kết trước xuất cho người dùng Do đó, thước đo khác thời gian từ lúc gởi yêu cầu đáp ứng tạo Thước đo gọi thời gian đáp ứng (response time), lượng thời gian từ lúc bắt đầu đáp ứng không thời gian để xuất đáp ứng Thời gian hồn thành thường bị giới hạn tốc độ thiết bị xuất Chúng ta muốn tối ưu hóa việc sử dụng CPU thơng lượng, đồng thời tối thiểu hóa thời gian hồn thành, thời gian chờ, thời gian đáp ứng Trong hầu hết trường hợp, tối ưu hóa thước đo trung bình Tuy nhiên, vài trường hợp muốn tối ưu giá trị tối thiểu hay giá trị tối đa giá trị trung bình Thí dụ, để đảm bảo tất người dùng nhận dịch vụ tốt, muốn tối thiểu thời gian đáp ứng tối đa Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 59 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Đối với hệ thống tương tác (như hệ thống chia thời), số nhà phân tích đề nghị thay đổi thời gian đáp ứng quan trọng tối thiểu hóa thời gian đáp ứng trung bình Một hệ thống với thời gian đáp ứng phù hợp đốn trước quan tâm nhiều hệ thống chạy nhanh mức trung bình biến đổi cao Tuy nhiên, gần khơng có cơng việc thực giải thuật định thời biểu CPU để tối thiểu hóa thay đổi Khi thảo luận giải thuật định thời biểu CPU khác nhau, muốn hiển thị hoạt động chúng Một hình ảnh xác nên thơng báo tới nhiều q trình, trình chuỗi hàng trăm chu kỳ CPU I/O Để đơn giản việc hiển thị, xem chu kỳ CPU (trong mili giây) q trình thí dụ Thước đo việc so sánh thời gian chờ đợi trung bình V Các giải thuật định thời Định thời biểu CPU giải vấn đề định trình hàng đợi sẳn sàng cấp phát CPU Trong phần mô tả nhiều giải thuật định thời CPU có V.1 Định thời đến trước phục vụ trước Giải thuật định thời biểu CPU đơn giản đến trước, phục vụ trước (first-come, first-served-FCFS) Với chế này, trình yêu cầu CPU trước cấp phát CPU trước Việc cài đặt sách FCFS quản lý dễ dàng với hàng đợi FIFO Khi trình vào hàng đợi sẳn sàng, PCB liên kết tới hàng đợi Khi CPU rảnh, cấp phát tới trình đầu hàng đợi Sau đó, q trình chạy lấy khỏi hàng đợi Mã giải thuật FCFS đơn giản để viết hiểu Tuy nhiên, thời gian chờ đợi trung bình sách FCFS thường dài Xét tập hợp trình sau đến thời điểm 0, với chiều dài thời gian chu kỳ CPU cho theo mini giây Quá trình P1 P2 P3 Thời gian xử lý 24 3 Nếu trình đến theo thứ tự P1, P2, P3 phục vụ theo thứ tự FCFS, nhận kết hiển thị lưu đồ Gantt sau: 24 27 30 Thời gian chờ mili giây cho trình P1, 24 mili giây cho trình P2 27 mili giây cho q trình P3 Do đó, thời gian chờ đợi trung bình (0+24+27)/3=17 mili giây Tuy nhiên, trình đến theo thứ tự P2, P3, P1 kết hiển thị lưu đồ Gannt sau: Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 60 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 30 Thời gian chờ đợi trung bình (6+0+3)/3=3 mili giây Việc cắt giảm quan trọng Do đó, thời gian chờ đợi trung bình sách FCFS thường khơng tối thiểu có thay đổi quan trọng thời gian CPU dành cho q trình khác lớn Ngồi ra, xét lực định thời FCFS trường hợp động Giả sử có q trình hướng xử lý (CPU-bound) nhiều trình hướng nhập/xuất (I/O bound) Khi trình đưa đến quanh hệ thống, ngữ cảnh sau xảy Q trình hướng xử lý nhận CPU giữ Trong suốt thời gian này, tất trình khác kết thúc việc nhập/xuất chuyển vào hàng đợi sẳn sàng, thiết bị nhập/xuất trạng thái rảnh Cuối cùng, trình hướng xử lý kết thúc chu kỳ CPU chuyển tới thiết bị nhập/xuất Tất q trình hướng xử lý có chu kỳ CPU ngắn nhanh chóng thực thi di chuyển trở hàng đợi nhập/xuất Tại thời điểm CPU trạng thái rảnh Sau đó, q trình hướng xử lý di chuyển trở lại hàng đợi sẳn sàng cấp CPU Một lần nữa, tất trình hướng nhập/xuất kết thúc việc chờ hàng đợi sẳn sàng trình hướng xử lý thực Có tác dụng phụ (convoy effect) tất trình khác chờ trình lớn trả lại CPU Tác dụng phụ dẫn đến việc sử dụng thiết bị CPU thấp trình ngắn cấp trước Giải thuật FCSF giải thuật định thời không trưng dụng CPU Một CPU cấp phát tới q trình, q trình giữ CPU giải phóng CPU cách kết thúc hay yêu cầu nhập/xuất Giải thuật FCFS đặc biệt không phù hợp hệ thống chia sẻ thời gian, người dùng nhận chia sẻ CPU với khoảng thời gian V.2 Định thời biểu công việc ngắn trước Một tiếp cận khác việc định thời CPU giải thuật định thời công việc ngắn trước (shortest-job-first-SJF) Giải thuật gán tới trình chiều dài chu kỳ CPU cho q trình sau Khi CPU sẳn dùng, gán tới q trình có chu kỳ CPU ngắn Nếu hai q trình có chiều dài chu kỳ CPU kế tiếp, định thời FCFS dùng Chú ý thuật ngữ phù hợp chu kỳ CPU ngắn (shortest next CPU burst) định thời thực cách xem xét chiều dài chu kỳ CPU q trình tồn chiều dài Chúng ta dùng thuật ngữ SJF hầu hết người sách tham khảo tới nguyên lý loại định thời biểu SJF Thí dụ, xét tập hợp trình sau, với chiều dài thời gian chu kỳ CPU tính mili giây: Quá trình P1 P2 P3 P4 Thời gian xử lý Dùng định thời SJF, định thời biểu cho trình theo lưu đồ Gannt sau: Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 61 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 16 24 Thời gian chờ đợi mili giây cho trình P1, 16 mili giây cho trình P2, mili giây cho trình P3, mili giây cho q trình P4 Do đó, thời gian chờ đợi trung bình (3+16+9+0)/4 = mili giây Nếu dùng chế định thời FCFS thời gian chờ đợi trung bình 10.23 mili giây Giải thuật SJF tối ưu, cho thời gian chờ đợi trung bình nhỏ cho trình cho Bằng cách chuyển trình ngắn trước trình dài thời gian chờ đợi trình ngắn giảm so với việc tăng thời gian chờ đợi trình dài Do đó, thời gian chờ đợi trung bình giảm Khó khăn thật với giải thuật SJF làm để biết chiều dài yêu cầu CPU Đối với định thời dài hệ thống bó, dùng chiều dài giới hạn thời gian xử lý mà người dùng xác định gởi cơng việc Do đó, người dùng động để ước lượng xác giới hạn thời gian xử lý giá trị thấp có nghĩa đáp ứng nhanh Định thời SJF dùng thường xuyên định thời dài Mặc dù SJF tối ưu khơng thể cài đặt cấp định thời CPU ngắn khơng có cách để biết chiều dài chu kỳ CPU Một tiếp cận khác gần định thời SJF thực Chúng ta khơng biết chiều dài chu kỳ CPU có đốn giá trị Chúng ta mong muốn chu kỳ CPU tương tự chiều dài chu kỳ CPU trước Do đó, cách tính tốn mức xấp xỉ chiều dài chu kỳ CPU kế tiếp, chọn trình với chu kỳ CPU đoán ngắn Chu kỳ CPU thường đốn trung bình số mũ chiều dài chu kỳ CPU trước Gọi tn chiều dài chu kỳ CPU thứ n gọi Tn+1 giá trị đoán cho chu kỳ CPU Thì α, với ≤ α ≤ 1, định nghĩa Tn+1 = α tn + (1- α) Tn Công thức định nghĩa giá trị trung bình số mũ Giá trị tn chứa thơng tin nhất; Tn lưu lịch sử khứ Tham số α điều khiển trọng số liên quan lịch sử khứ lịch sử gần việc đốn Nếu α=0 Tn+1=Tn lịch sử gần khơng có ảnh hưởng (điều kiện hành đảm bảo ngắn); α =1 Tn+1=tn chu kỳ CPU gần có ảnh hưởng (lịch sử đảm bảo cũ không phù hợp) Thông dụng hơn, α=1/2 lịch sử gần lịch sử khứ có trọng số tương đương Giá trị khởi đầu T0 định nghĩa số hay tồn giá trị trung bình hệ thống Hình IV.2 hiển thị giá trị trung bình dạng mũ với α=1/2 T0=10 Để hiểu hành vi giá trị trung bình dạng mũ, mở rộng cơng thức cho Tn+1 cách thay Tn để tìm Tn+1=α tn+(1-α) α tn-1+…+(1-α)j α tn-j+…+(1-α)n - 1T0 Vì hai α (1- α) nhỏ hay 1, số hạng có trọng số nhỏ số hạng trước Giải thuật SJF trưng dụng khơng trưng dụng CPU Chọn lựa phát sinh trình đến hàng đợi sẳn sàng q trình trước thực thi Một q trình có chu kỳ CPU tiêp theo ngắn chu kỳ CPU để lại trình thực thi Giải thuật SJF trưng dụng trưng dungj CPU trình thực thi tại, giải thuật SJF không trưng dụng cho phép trình thực thi kết thúc chu kỳ CPU Định thời Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 62 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 SJF trưng dụng gọi định thời thời gian lại ngắn trước (shortest-remaining-time-first) Hình 0-2 Đốn chiều dài chu kỳ CPU Thí dụ, xét trình sau với chiều dài thời gian chu kỳ CPU cho tính mili giây Q trình P1 P2 P3 P4 Thời gian đến Thời gian xử lý Nếu trình vào hàng đợi sẳn sàng thời điểm cần thời gian xử lý hiển thị bảng thời biểu SJF trưng dụng mô tả lưu đồ Gannt sau: P1 P2 P3 10 17 26 Quá trình P1 bắt đầu thời điểm 0, q trình hàng đợi Q trình P2 đến thời điểm Thời gian lại cho P1 (7 mili giây) lớn thời gian yêu cầu trình P2 (4 mili giây) trình P1 bị trưng dụng CPU trình P2 định thời biểu Thời gian chờ đợi trung bình cho thí dụ là: ((10-1) + (1-1) + (17-2) + (5-3))/4 = 6.5 mili giây Định thời SJF không trưng dụng cho kết thời gian chờ đợi trung bình 7.75 mili giây V.3 Định thời theo độ ưu tiên Giải thuật SJF trường hợp đặc biệt giải thuật định thời theo độ ưu tiên (priority-scheduling algorithm) Độ ưu tiên gán với trình CPU cấp phát tới trình với độ ưu tiên cao Quá trình có độ ưu tiên định thời thứ tự FCFS Giải thuật SJF giải thuật ưu tiên đơn giản độ ưu tiên p nghịch đảo với chu kỳ CPU đoán Chu kỳ CPU lớn có độ ưu tiên thấp ngược lại Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 63 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Bây thảo luận định thời có độ ưu tiên cao thấp Các độ ưu tiên thường nằm dãy số cố định, chẳng hạn tới hay tới 4,095 Tuy nhiên, khơng có thoả thuận chung độ ưu tiên thấp hay cao Một vài hệ thống dùng số thấp để biểu diễn độ ưu tiên thấp; ngược lại hệ thống khác dùng số thấp cho độ ưu tiên cao Sự khác dẫn đến lẫn lộn Trong giáo trình dùng số thấp để biểu diễn độ ưu tiên cao Thí dụ, xét tập hợp trình sau đến thời điểm theo thứ tự P1, P2,…, P5 với chiều dài thời gian chu kỳ CPU tính mili giây: Q trình P1 P2 P3 P4 P5 Thời gian xử lý 10 Độ ưu tiên Sử dụng định thời theo độ ưu tiên, định thời trình theo lưu đồ Gannt sau: P2 P5 P1 16 P3 18 P4 19 Thời gian chờ đợi trung bình 8.2 mili giây Độ ưu tiên định nghĩa bên hay bên Độ ưu tiên định nghĩa bên thường dùng định lượng nhiều định lượng đo để tính tốn độ ưu tiên q trình Thí dụ, giới hạn thời gian, yêu cầu nhớ, số lượng tập tin mở tỉ lệ chu kỳ nhập/xuất trung bình với tỉ lệ chu kỳ CPU trung bình Các độ ưu tiên bên ngồi thiết lập tiêu chuẩn bên hệ điều hành quan trọng trình, loại lượng chi phí trả cho việc dùng máy tính, văn phòng hỗ trợ cơng việc, Định thời biểu theo độ ưu tiên trưng dụng khơng trưng dụng CPU Khi q trình đến hàng đợi sẳn sàng, độ ưu tiên so sánh với độ ưu tiên trình chạy Giải thuật định thời theo độ ưu tiên trưng dụng chiếm CPU độ ưu tiên trình đến cao độ ưu tiên trình thực thi Giải thuật định thời theo độ ưu tiên không trưng dụng đơn giản đặt trình đầu hàng đợi sẳn sàng Vấn đề với giải thuật định thời theo độ ưu tiên nghẽn khơng hạn định (indefinite blocking) hay đói CPU (starvation) Một trình sẳn sàng chạy thiếu CPU xem bị nghẽn-chờ đợi CPU Giải thuật định thời theo độ ưu tiên để lại nhiều q trình có độ ưu tiên thấp chờ CPU khơng hạn định Trong hệ thống máy tính tải cao, dòng đặn q trình có độ ưu tiên cao ngăn chặn việc nhận CPU q trình có độ ưu tiên thấp Thơng thường, hai trường hợp xảy Cuối cùng, trình chạy (lúc a.m chủ nhật thời điểm cuối hệ thống nạp q trình nhẹ), hay cuối hệ thống máy tính đổ vỡ tất trình có độ ưu tiên thấp chưa kết thúc Một giải pháp cho vấn đề nghẽn không hạn định hố già (aging) Hóa già kỹ thuật tăng dần độ ưu tiên trình chờ hệ thống thời gian dài Thí dụ, độ ưu tiên nằm dãy từ 127 (thấp) đến (cao), giảm độ ưu tiên trình chờ xuống 15 phút Cuối cùng, chí Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 64 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 trình với độ ưu tiên khởi đầu 127 đạt độ ưu tiên cao hệ thống thực thi Thật vậy, q trình khơng q 32 để đạt độ ưu tiên từ 127 tới V.4 Định thời luân phiên Giải thuật định thời luân phiên (round-robin scheduling algorithm-RR) thiết kế đặc biệt cho hệ thống chia sẻ thời gian Tương tự định thời FCFS trưng dụng CPU thêm vào để chuyển CPU trình Đơn vị thời gian nhỏ gọi định mức thời gian (time quantum) hay phần thời gian (time slice) định nghĩa Định mức thời gian thường từ 10 đến 100 mili giây Hàng đợi sẳn sàng xem hàng đợi vòng Bộ định thời CPU di chuyển vòng quanh hàng đợi sẳn sàng, cấp phát CPU tới q trình có khoảng thời gian tối đa định mức thời gian Để cài đặt định thời RR, quản lý hàng đợi sẳn sàng hàng đợi FIFO trình Các trình thêm vào đuôi hàng đợi Bộ định thời CPU chọn trình từ hàng đợi sẳn sàng, đặt đếm thời gian để ngắt sau định mức thời gian gởi tới q trình Sau đó, hai trường hợp xảy Q trình có chu kỳ CPU định mức thời gian Trong trường hợp này, q trình tự giải phóng Sau đó, định thời biểu xử lý trình hàng đợi sẳn sàng Ngược lại, chu kỳ CPU trình chạy dài định mức thời gian độ đếm thời gian báo gây ngắt tới hệ điều hành Chuyển đổi ngữ cảnh thực thi q trình đặt trở lại hàng đợi sẳn sàng Sau đó, định thời biểu CPU chọn trình hàng đợi sẳn sàng Tuy nhiên, thời gian chờ đợi trung bình sách RR thường dài Xét tập hợp trình đến thời điểm với chiều dài thời gian CPU-burst tính mili giây: Quá trình P1 P2 P3 Thời gian xử lý 24 3 Nếu sử dụng định mức thời gian mili giây trình P1 nhận mili giây Vì u cầu 20 mili giây lại nên bị trưng dụng CPU sau định mức thời gian CPU cấp tới trình hàng đợi, trình P2 Vì P2 khơng cần tới mili giây nên kết thúc trước định mức thời gian hết hạn Sau đó, CPU trình kế tiếp, trình P3 Một trình nhận định mức thời gian CPU trả trình P1 cho định mức thời gian Thời biểu RR là: 10 14 18 22 26 30 Thời gian chờ đợi trung bình 17/3=5.66 mili giây Trong giải thuật RR, không trình cấp phát CPU cho nhiều định mức thời gian hàng Nếu chu kỳ CPU trình vượt định Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 65 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 mức thời gian q trình bị trưng dụng CPU đặt trở lại hàng đợi sẳn sàng Giải thuật RR giải thuật trưng dụng CPU Nếu có n trình hàng đợi sẳn sàng định mức thời gian q trình nhận 1/n thời gian CPU phần, nhiều q đơn vị thời gian Mỗi q trình chờ khơng dài (n-1)x q đơn vị thời gian định mức thời gian Thí dụ, có q trình với định mức thời gian 20 mili giây trình nhận 20 mili giây sau 100 mili giây Năng lực giải thuật RR phụ thuộc nhiều vào kích thước định mức thời gian Nếu định mức thời gian lớn (lượng vơ hạn) sách RR tương tự sách FCFS Nếu định mức thời gian nhỏ (1 mili giây) tiếp cận RR gọi chia sẻ xử lý (processor sharing) xuất (trong lý thuyết) tới người dùng thể q trình n q trình có xử lý riêng chạy 1/n tốc độ xử lý thật Hình 0-3 Hiển thị định mức thời gian nhỏ tăng chuyển đổi ngữ cảnh Tuy nhiên, phần mềm cần xem xét hiệu việc chuyển đổi ngữ cảnh lực việc định thời RR Chúng ta giả sử có trình với 10 đơn vị thời gian Nếu định mức 12 đơn vị thời gian trình kết thúc định mức thời gian, với khơng có chi phí khác Tuy nhiên, định mức đơn vị thời gian trình cần định mức thời gian, dẫn đến chuyển đổi ngữ cảnh Nếu định mức thời gian đơn vị thời gian chuyển đổi ngữ cảnh xảy ra, việc thực thi trình bị chậm hiển thị hình IV.3 Do mong muốn định mức thời gian lớn thời gian chuyển ngữ cảnh Nếu thời gian chuyển ngữ cảnh chiếm 10% định mức thời gian khoảng 10% thời gian CPU dùng cho việc chuyển ngữ cảnh Thời gian hoàn thành phụ thuộc kích thước định mức thời gian Chúng ta thấy hình IV.4, thời gian hồn thành trung bình tập hợp q trình khơng cần cải tiến kích thước định mức thời gian tăng Thơng thường, thời gian hồn thành trung bình cải tiến hầu hết trình kết thúc chu kỳ CPU chúng định mức thời gian Thí dụ, cho q trình có 10 đơn vị thời gian cho trình định mức thời gian đơn vị thời gian, thời gian hồn thành trung bình 29 Tuy nhiên, định mức thời gian 10 thời gian hồn thành trung bình giảm tới 20 Nếu thời gian chuyển ngữ cảnh thêm vào thời gian hồn thành trung bình gia tăng định mức thời gian nhỏ chuyển đổi ngữ cảnh thêm yêu cầu Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 66 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-4 Hiển thị cách thời gian hoàn thành biến đổi theo định mức thời gian Ngoài ra, định mức thời gian lớn người thiết kế việc định thời RR bao gồm sách FCFS Qui tắc định mức thời gian nên dài 80% chu kỳ CPU V.5 Định thời biểu với hàng đợi nhiều cấp Một loại giải thuật định thời khác tạo cho trường hợp mà q trình phân lớp thành nhóm khác Thí dụ: việc phân chia thơng thường thực q trình chạy chế độ giao tiếp (foreground hay interactive) q trình chạy chế độ hay dạng bó (background hay batch) Hai loại q trình có u cầu đáp ứng thời gian khác có u cầu định thời biểu khác Ngồi ra, trình chạy chế độ giao tiếp có độ ưu tiên (hay định nghĩa bên ngồi) cao trình chạy chế độ Một giải thuật định thời hàng đợi nhiều cấp (multilevel queue-scheduling algorithm) chia hàng đợi thành nhiều hàng đợi riêng rẻ (hình IV.5) Các trình gán vĩnh viễn tới hàng đợi, thường dựa thuộc tính q trình kích thước nhớ, độ ưu tiên q trình hay loại q trình Mỗi hàng đợi có giải thuật định thời Thí dụ: hàng đợi riêng rẻ dùng cho trình chế độ chế độ giao tiếp Hàng đợi chế độ giao tiếp định thời giải thuật RR hàng đợi chế độ định thời giải thuật FCFS Ngồi ra, phải có việc định thời hàng đợi, mà thường cài đặt định thời trưng dụng với độ ưu tiên cố định Thí dụ, hàng đợi chế độ giao tiếp có độ ưu tiên tuyệt đối hàng đợi chế độ Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 67 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-5 Định thời hàng đợi nhiều mức Chúng ta xét thí dụ giải thuật hàng đợi nhiều mức với năm hàng đợi: • • • • • Các trình hệ thống Các trình giao tiếp Các trình soạn thảo giao tiếp Các trình bó Các q trình sinh viên Mỗi hàng đợi có độ ưu tiên tuyệt đối hàng đợi có độ ưu tiên thấp Thí dụ: khơng có q trình hàng đợi bó chạy trừ hàng đợi cho trình hệ thống, trình giao tiếp trình soạn thảo giao tiếp rỗng Nếu trình soạn thảo giao tiếp đưa vào hàng đợi sẳn sàng q trình bó chạy q trình bó bị trưng dụng CPU Solaris dùng dạng giải thuật Một khả khác phần (slice) thời gian hai hàng đợi Mỗi hàng đợi nhận phần thời gian CPU xác định, sau định thời trình khác hàng đợi Thí dụ, hàng đợi giao tiếp-nền, hàng đợi giao tiếp cho 80% thời gian CPU cho giải thuật RR trình nó, ngược lại hàng đợi nhận 20% thời gian CPU cho q trình theo cách FCFS V.6 Định thời hàng đợi phản hồi đa cấp Thông thường, giải thuật hàng đợi đa cấp, trình gán vĩnh viễn tới hàng đợi đưa vào hệ thống Các q trình khơng di chuyển hàng đợi Nếu có hàng đợi riêng cho trình giao tiếp trình q trình khơng di chuyển từ hàng đợi tới hàng đợi khác q trình khơng thay đổi tính tự nhiên giao tiếp Cách tổ chức có ích chi phí định thời thấp thiếu linh động dẫn đến tình trạng “đói CPU” Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 68 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-6 Các hàng đợi phản hồi nhiều cấp Tuy nhiên, định thời hàng đợi phản hồi đa cấp (multilevel feedback queue scheduling) cho phép trình di chuyển hàng đợi Ý tưởng tách riêng trình với đặc điểm chu kỳ CPU khác Nếu q trình dùng q nhiều thời gian CPU di chuyển tới hàng đợi có độ ưu tiên thấp Cơ chế để lại trình hướng nhập/xuất trình giao tiếp hàng đợi có độ ưu tiên cao Tương tự, q trình chờ q lâu hàng đợi có độ ưu tiên thấp di chuyển tới hàng đợi có độ ưu tiên cao Đây hình thức hóa già nhằm ngăn chặn đói CPU Thí dụ, xét định thời hàng đợi phản hồi nhiều cấp với ba hàng đợi đánh số từ tới (như hình IV.6) Bộ định thời trước tiên thực thi tất trình chứa hàng đợi Chỉ hàng đợi rỗng thực thi q trình hàng đợi Tương tự, trình hàng đợi thực thi hàng đợi rỗng Một trình đến hàng đợi ưu tiên trình đến hàng đợi Tương tự, trình đến hàng đợi ưu tiên trình vào hàng đợi Một trình đưa vào hàng đợi sẳn sàng đặt hàng đợi Một trình hàng đợi cho định mức thời gian mili giây Nếu khơng kết thúc thời gian di chuyển vào hàng đợi Nếu hàng đợi rỗng trình đầu hàng đợi cho định mức thời gian 16 mili giây Nếu khơng hồn thành bị chiếm CPU đặt vào hàng đợi Các trình hàng đợi chạy sở FCFS hàng đợi rỗng Giải thuật định thời cho độ ưu tiên cao tới trình với chu kỳ CPU mili giây hay Một q trình nhanh chóng nhận CPU, kết thúc chu kỳ CPU bỏ chu kỳ I/O Các q trình cần mili giây 24 mili giây phục vụ nhanh chóng với độ ưu tiên thấp trình ngắn Các trình dài tự động rơi xuống hàng đợi phục vụ thứ tự FCFS với chu kỳ CPU lại từ hàng đợi Nói chung, định thời hàng đợi phản hồi nhiều cấp định nghĩa tham số sau: • • • • Số lượng hàng đợi Giải thuật định thời cho hàng đợi Phương pháp dùng để xác định nâng cấp q trình tới hàng đợi có độ ưu tiên cao Phương pháp dùng để xác định chuyển q trình tới hàng đợi có độ ưu tiên thấp Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 69 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 • Phương pháp dùng để xác định hàng đợi trình vào q trình cần phục vụ Định nghĩa định thời biểu dùng hàng đợi phản hồi nhiều cấp trở thành giải thuật định thời CPU phổ biến Bộ định thời cấu hình để thích hợp với hệ thống xác định Tuy nhiên, định thời yêu cầu vài phương tiện chọn lựa giá trị cho tất tham số để định nghĩa định thời biểu tốt Mặc dù hàng đợi phản hồi nhiều cấp chế phổ biến chế phức tạp VI Định thời biểu đa xử lý Phần thảo luận tập trung vào vấn đề định thời biểu CPU hệ thống với vi xử lý đơn Nếu có nhiều CPU, vấn đề định thời tương ứng phức tạp Nhiều khả thử nghiệm thấy với định thời CPU đơn xử lý, khơng có giải pháp tốt Trong phần sau đây, thảo luận vắn tắt số vấn đề tập trung định thời biểu đa xử lý Chúng ta tập trung vào hệ thống mà xử lý xác định (hay đồng nhất) thuật ngữ chức chúng; xử lý sẳn có dùng để chạy trình hàng đợi Chúng ta cho truy xuất nhớ đồng (uniform memory access-UMA) Chỉ chương trình biên dịch tập hợp thị xử lý cho chạy xử lý Ngay đa xử lý đồng đơi có số giới hạn cho việc định thời biểu Xét hệ thống với thiết bị nhập/xuất gán tới đường bus riêng xử lý Các trình muốn dùng thiết bị phải định thời biểu để chạy xử lý đó, ngược lại thiết bị không sẳn dùng Nếu nhiều xử lý xác định sẳn dùng chia sẻ tải xảy Nó cung cấp hàng đợi riêng cho xử lý Tuy nhiên, trường hợp này, xử lý rảnh với hàng đợi rỗng, xử lý khác bận Để ngăn chặn trường hợp này, dùng hàng đợi sẳn sàng chung Tất trình vào hàng đợi định thời biểu xử lý sẳn dùng Trong chế thế, hai tiếp cận định thời biểu dùng Trong tiếp cận thứ nhất, xử lý định thời Mỗi xử lý xem xét hàng đợi sẳn sàng chung chọn trình để thực thi Nếu có nhiều xử lý cố gắng truy xuất cập nhật cấu trúc liệu chung xử lý phải lập trình cẩn thận Chúng ta phải đảm bảo hai xử lý khơng chọn q trình q trình không bị từ hàng đợi Tiếp cận thứ hai tránh vấn đề cách đề cử xử lý định thời cho trình khác, tạo cấu trúc chủ-tớ (master-slave) Một vài hệ thống thực cấu trúc bước cách tất định định thời, xử lý nhập/xuất hoạt động hệ thống khác quản lý xử lý đơn-một server chủ Các xử lý khác thực thi mã người dùng Đa xử lý không đối xứng (asymmetric multiprocessing) đơn giản đa xử lý đối xứng (symmetric multiprocessing) trình truy xuất cấu trúc liệu hệ thống, làm giảm yêu cầu chia sẻ liệu Tuy nhiên, khơng hiệu Các q trình giới hạn nhập/xuất gây thắt cổ chai (bottleneck) CPU thực tất hoạt động Điển hình, đa xử lý khơng đối xứng cài đặt trước hệ điều hành sau nâng cấp tới đa xử lý đối xứng hệ thống tiến triển Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 70 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VII Định thời thời gian thực Trong chương đầu tìm hiểu tổng quan hệ điều hành thời thực thảo luận tầm quan trọng Ở đây, tiếp tục thảo luận cách mô tả điều kiện thuận lợi định thời cần để hỗ trợ tính tốn thời thực hệ thống máy tính đa mục đích Tính tốn thời thực chia thành hai loại: hệ thống thời thực cứng (hardware real-time systems) yêu cầu để hoàn thành tác vụ tới hạn lượng thời gian đảm bảo Thông thường, trình đưa xem xét với khai báo lượng thời gian cần để hồn thành hay thực nhập/xuất Sau đó, định thời biểu nhận q trình, đảm bảo q trình hồn thành hay từ chối yêu cầu Điều gọi đặt trước tài nguyên (resource reservation) Để đảm bảo đòi hỏi định thời biết xác loại chức hệ điều hành để thực thao tác phải đảm bảo để lượng thời gian tối đa Một đảm bảo hệ thống với lưu trữ phụ nhớ ảo hệ thống gây biến đổi tránh hay thấy trước lượng thời gian thực thi trình xác định Do đó, hệ thống thời thực cứng hình thành từ nhiều phần mềm có mục đích đặc biệt chạy phần cứng tận hiến cho trình tới hạn, thiếu chức đầy đủ máy tính hệ điều hành đại Tính tốn thời gian thực mềm (soft real-time computing) nghiêm khắc Nó u cầu q trình tới hạn nhận độ ưu tiên cao trình khác Mặc dù thêm chức thời thực mềm tới hệ chia sẻ thời gian gây việc cấp phát tài ngun khơng cơng dẫn tới việc trì hỗn lâu hay chí đói tài ngun số q trình, đạt Kết hệ thống mục đích chung hỗ trợ đa phương tiện, đồ họa giao tiếp tốc độ cao, nhiều tác vụ khác khơng hỗ trợ tính toán thời thực mềm Cài đặt chức thời thực mềm đòi hỏi thiết kế cẩn thận định thời biểu khía cạnh liên quan hệ điều hành Trước tiên, hệ thống phải có định thời trưng dụng q trình thời thực phải có độ ưu tiên cao Độ ưu tiên trình thời thực phải khơng giảm theo thời gian độ ưu tiên q trình khơng thời thực giảm Thứ hai, độ trễ việc điều phối phải nhỏ Một trình thời thực nhỏ hơn, nhanh bắt đầu thực thi chạy Quản trị thuộc tính xem xét tương đối đơn giản Thí dụ, khơng cho phép q trình hóa già q trình thời thực, đảm bảo độ ưu tiên q trình khơng thay đổi Tuy nhiên, đảm bảo thuộc tính sau phức tạp Vấn đề nhiều hệ điều hành gồm hầu hết ấn UNIX bị bắt buộc chờ lời gọi hệ thống hoàn thành hay nghẽn nhập/xuất xảy trước thực chuyển ngữ cảnh Độ trễ điều phối hệ thống dài số lời gọi hệ thống phức tạp vài thiết bị nhập/xuất chậm Để giữ độ trễ điều phối chậm, cần cho phép lời gọi hệ thống trưng dụng Có nhiều cách để đạt mục đích Cách thứ chèn điểm trưng dụng (preemption points) lời gọi hệ thống có khoảng thời gian dài, kiểm tra để thấy trình ưu tiên cao cần thực thi hay khơng Nếu đúng, chuyển ngữ cảnh xảy q trình có độ ưu tiên kết thúc, trình bị ngắt tiếp tục với lời gọi hệ thống Các điểm trưng dụng đặt vị trí “an tồn” nhânnơi mà cấu trúc liệu không cập nhật Ngay với độ trễ điều phối trưng dụng lớn vài điểm trưng dụng thêm vào nhân thực tế Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 71 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Một phương pháp khác để giải trưng dụng làm tồn nhân trưng dụng Để đảm bảo họat động thực đúng, tất cấu trúc liệu nhân phải bảo vệ thông qua việc sử dụng chế đồng hóa Với phương pháp này, nhân ln trưng dụng liệu nhân cập nhật bảo vệ từ việc sửa đổi trình có độ ưu tiên cao Đây phương pháp hiệu việc sử dụng rộng rãi; dùng Solaris Hình 0-7 Độ trễ gửi Nhưng điều xảy q trình có độ ưu tiên cao cần đọc hay sửa đổi liệu nhân truy xuất trình khác có độ ưu tiên thấp hơn? Q trình có độ ưu tiên cao chờ q trình có độ ưu tiên thấp kết thúc Trường hợp gọi đảo ngược độ ưu tiên (prioprity inversion) Thật vậy, chuỗi trình truy xuất tài nguyên mà q trình có độ ưu tiên cao cần Vấn đề giải giao thức kế thừa độ ưu tiên (priority-inheritance protocol) tất trình (các trình truy xuất tài ngun mà q trình có độ ưu tiên cao cần) kế thừa độ ưu tiên cao chúng thực với tài nguyên câu hỏi Khi chúng kết thúc, độ ưu tiên chúng chuyển trở lại giá trị ban đầu Trong hình IV.7, hiển thị thay đổi độ trễ điều phối Giai đoạn xung đột (conflict phase) độ trễ điều phối có hai thành phần: • • Sự trưng dụng trình chạy nhân Giải phóng tài ngun q trình có độ ưu tiên thấp yêu cầu trình có độ ưu tiên cao Thí dụ, Solaris độ trễ điều phối với trưng dụng bị vô hiệu hóa vượt qua 100 mili giây Tuy nhiên, độ trễ điều phối với trưng dụng cho phép thường giảm xuống tới mili giây Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 72 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VIII Đánh giá giải thuật Chúng ta chọn giải thuật định thời CPU cho hệ thống xác định nào? Có nhiều giải thuật định thời, giải thuật với tham số riêng Do đó, chọn giải thuật khó Vấn đề định nghĩa tiêu chuẩn dùng việc chọn giải thuật Các tiêu chuẩn thường định nghĩa thuật ngữ khả sử dụng CPU, thời gian đáp ứng hay thông lượng Để chọn giải thuật, trước hết phải định nghĩa trọng số quan trọng thước đo Tiêu chuẩn gồm thước đo như: • Khả sử dụng CPU tối đa ràng buộc thời gian đáp ứng tối đa giây • Thơng lượng tối đa thời gian hồn thành (trung bình) tỉ lệ tuyến tính với tổng số thời gian thực thi Một tiêu chuẩn chọn lựa định nghĩa, muốn đánh giá giải thuật khác xem xét Chúng ta mô tả phương pháp đánh giá khác phần VIII.1 Mơ hình định Một loại quan trọng phương pháp đánh giá gọi đánh giá phân tích (analytic evaluation) Đánh giá phân tích dùng giải thuật cho tải cơng việc hệ thống để tạo công thức hay số đánh giá lực giải thuật cho tải công việc Một dạng đánh giá phân tích mơ hình xác định (deterministic modeling) Phương pháp lấy tải công việc đặc biệt xác định trước định nghĩa lực giải thuật cho tải công việc Thí dụ, giả sử có tải công việc hiển thị bảng Tất trình đến thời điểm thứ tự cho, với chiều dài thời gian chu kỳ CPU tính mili giây Q trình P1 P2 P3 P4 P5 Thời gian xử lý 10 29 12 Xét giải thuật định thời FCFS, SJF RR (định mức thời gian=10 mili giây) cho tập hợp trình Giải thuật cho thời gian chờ đợi trung bình tối thiểu? Đối với giải thuật FCFS, thực thi trình sau: P1 P2 P3 P4 P5 10 39 42 49 61 Thời gian chờ đợi mili giây cho trình P1, 32 mili giây cho trình P2, 39 giây cho trình P3, 42 giây cho trình P4 49 mili giây cho q trình P5 Do đó, thời gian chờ đợi trung bình (0 + 10 + 39 + 42 + 49)/5= 28 mili giây Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 73 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Với định thời không trưng dụng SJF, thực thi trình sau: P3 P4 P1 10 20 P5 32 P2 61 Thời gian chờ đợi 10 mili giây cho trình P1, 32 mili giây cho trình P2, mili giây cho trình P3, mili giây cho trình P4, 20 giây cho trình P5 Do đó, thời gian chờ đợi trung bình (10 + 32 + + + 20)/5= 13 mili giây Với giải thuật RR, thực thi trình sau: P1 10 P2 20 P3 P4 23 30 P5 40 P2 50 P5 P2 52 61 Thời gian chờ đợi mili giây cho trình P1, 32 mili giây cho trình P2, 20 mili giây cho trình P3, 23 mili giây cho trình P4, 40 mili giây cho q trình P5 Do đó, thời gian chờ đợi trung bình (0 + 32 + 20 + 23 + 40)/5 = 23 mili giây Trong trường hợp này, thấy rằng, sách SJF cho kết ½ thời gian chờ đợi trung bình đạt với giải thuật FCFS; giải thuật RR cho giá trị trung gian Mơ hình xác định đơn giản nhanh Nó cho số xác, cho phép giải thuật so sánh với Tuy nhiên, đòi hỏi số đầu vào xác trả lời áp dụng cho trường hợp Việc dùng chủ yếu mơ hình xác định mơ tả giải thuật định thời cung cấp thí dụ Trong trường hợp, chạy chương trình lặp lặp lại đo yêu cầu xử lý chương trình cách xác, dùng mơ hình xác định để chọn giải thuật định thời Qua tập hợp thí dụ, mơ hình xác định hiển thị khuynh hướng phân tích chứng minh riêng Thí dụ, chứng minh mơi trường mơ tả (tất q trình thời gian chúng sẳn dùng thời điểm 0), sách SJF cho kết thời gian chờ đợi nhỏ Tuy nhiên, nhìn chung mơ hình xác định cụ thể yêu cầu tri thức xác để sử dụng cách có ích VIII.2 Mơ hình hàng đợi Các q trình chạy nhiều hệ thống khác từ ngày sang ngày khác khơng có tập hợp q trình tĩnh (và thời gian) để dùng cho mơ hình xác định Tuy nhiên, xác định phân bổ chu kỳ CPU I/O Sự phân bổ đo sau tính xấp xỉ hay ước lượng đơn giản Kết cơng thức tốn mơ tả xác suất chu kỳ CPU cụ thể Thông thường, phân bổ hàm mũ mô tả giá trị trung bình Tương tự, phân bổ thời gian trình đến hệ thống-phân bổ thời gian đến-phải cho Hệ thống máy tính mơ tả mạng server Mỗi server có hàng đợi cho q trình CPU server với hàng đợi sẳn sàng nó, hệ thống nhập/xuất với hàng đợi thiết bị Biết tốc độ đến tốc độ phục vụ, tính khả sử dụng, chiều dài hàng đợi trung bình, thời gian chờ Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 74 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 trung bình, Lĩnh vực nghiên cứu gọi phân tích mạng hàng đợi (queueingnetwork analysis) Thí dụ, gọi n chiều dài hàng đợi trung bình (ngoại trừ trình phục vụ), gọi W thời gian chờ đợi trung bình hàng đợi λ tốc độ đến trung bình cho trình hàng đợi (chẳng hạn trình giây) Sau đó, mong đợi suốt thời gian W trình chờ, λ x W trình đến hàng đợi Nếu hệ thống trạng thái đặn số lượng trình rời hàng đợi phải số lượng trình đến Do đó, n=λxW Cơng thức gọi công thức Little Công thức Little đặc biệt có ích phù hợp cho giải thuật định thời phân bổ trình đến Chúng ta sử dụng cơng thức Little để tính ba biến, biết hai biến khác Thí dụ, biết có q trình đến giây (trung bình) thường có 14 q trình hàng đợi tính thời gian chờ đợi trung bình q trình giây Phân tích hàng đợi có ích việc so sánh giải thuật định thời có số giới hạn Hiện nay, loại giải thuật phân bổ quản lý tương đối giới hạn Tính tốn giải thuật phức tạp phân bổ khó để thực Do đó, phân bổ đến phục vụ thường định nghĩa không thực tế, dễ hướng dẫn mặt tính tốn Thơng thường cần thực số giả định độc lập khơng xác Do đó, để chúng tính câu trả lời, mơ hình hàng đợi thường xấp xỉ hệ thống thật Vì thế, độ xác kết tính tốn nghi vấn VIII.3 Mô Để đạt đánh giá giải thuật định thời xác hơn, dùng mơ (simulations) Mơ liên quan đến lập trình mơ hình hệ thống máy tính Cấu trúc liệu phần mềm biểu diễn thành phần quan trọng hệ thống Bộ mơ có biến biểu diễn đồng hồ; giá trị biến tăng, mô sửa đổi trạng thái hệ thống để phản ánh hoạt động thiết bị, trình định thời Khi mô thực thi, thống kê hiển thị lực giải thuật tập hợp in Hình 0-8 Đánh giá định thời CPU mô Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 75 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Dữ liệu để định hướng mơ sinh nhiều cách Cách thông dụng dùng sinh số ngẫu nhiên, lập trình để sinh trình, thời gian chu kỳ CPU, đến, trình, dựa phân bổ xác suất Sự phân bổ định nghĩa dạng tốn học (đồng nhất, hàm mũ, phân bổ Poisson) hay theo kinh nghiệm Nếu phân bổ định nghĩa theo kinh nghiệm thước đo hệ thống thật nghiên cứu lấy Các kết dùng để định nghĩa phân bổ thật sự kiện hệ thống thực sau phân bổ dùng để định hướng việc mô Tuy nhiên, mô hướng phân bổ khơng xác mối quan hệ kiện hệ thống thực Sự phân bổ thường xuyên hiển thị kiện xảy ra; khơng hiển thị thứ thứ tự xảy chúng Để sửa chữa vấn đề này, dùng băng từ ghi vết (trace tapes) Chúng ta tạo băng từ ghi vết cách giám sát hệ thống thực, ghi lại chuỗi kiện thật (như hình IV.8) Sau đó, thứ tự dùng để định hướng việc mô Băng từ ghi vết cung cấp cách tuyệt vời để so sánh xác hai giải thuật tập hợp liệu vào thật Phương pháp cung cấp kết xác cho liệu vào Tuy nhiên, mơ đắt thường đòi hỏi hàng máy tính để thực Một mơ chi tiết cung cấp kết xác u cầu nhiều thời gian máy tính Ngồi ra, băng từ ghi vết yêu cầu lượng lớn không gian lưu trữ Cuối cùng, thiết kế, mã, gỡ rối mô tác vụ quan trọng VIII.4 Cài đặt Ngay mô cho độ xác có giới hạn Chỉ có cách xác hồn tồn để đánh giá giải thuật định thời mã hóa (code) nó, đặt vào hệ điều hành xem làm việc Tiếp cận đặt giải thuật thật vào hệ thống thật để đánh giá điều kiện hoạt động thật Khó khăn chủ yếu chi phí tiếp cận Chi phí bao gồm khơng mã hóa giải thuật sửa đổi hệ điều hành để hỗ trợ cấu trúc liệu yêu cầu mà phản ứng người dùng thay đổi liên tục hệ điều hành Hầu hết người dùng không quan tâm việc xây dựng hệ điều hành tốt hơn; họ đơn muốn biết trình họ thực thi dùng kết chúng Một hệ điều hành thay đổi liên tục không giúp cho người dùng nhận thấy công việc họ thực Một dạng phương pháp dùng phổ biến cho việc cài đặt máy tính Thí dụ, tiện ích Web mơ tải người dùng phát sinh trước “sống” (goes live), để xác định tượng thắt cổ chai tiện ích để ước lượng người dùng hệ thống hỗ trợ Một khó khăn khác với việc đánh giá giải thuật mơi trường giải thuật dùng thay đổi Môi trường thay đổi không cách thơng thường chương trình viết loại vấn đề thay đổi, mà kết lực định thời Nếu trình cho với độ ưu tiên ngắn người dùng tách q trình lớn thành tập hợp trình nhỏ Nếu trình giao tiếp cho độ ưu tiên vượt qua trình khơng giao tiếp người dùng chuyển tới việc dùng giao tiếp Thí dụ, DEC TOPS-20, hệ thống phân loại trình giao tiếp không giao tiếp cách tự động cách xem lượng nhập/xuất thiết bị đầu cuối Nếu trình khơng có nhập hay xuất tới thiết bị đầu cuối khoảng thời gian phút trình phân loại không giao tiếp di chuyển tới Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 76 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 hàng đợi có độ ưu tiên thấp Chính sách dẫn đến trường hợp người lập trình sửa đổi chương trình để viết ký tự tới thiết bị đầu cuối khoảng thời gian đặn phút Hệ thống cho chương trình có độ ưu tiên cao liệu xuất thiết bị đầu cuối hồn tồn khơng có ý nghĩa Các giải thuật có khả mềm dẻo thay đổi người quản lý hay người dùng Trong suốt thời gian xây dựng hệ điều hành, thời gian khởi động, thời gian chạy, biến dùng định thời thay đổi để phản ánh việc sử dụng hệ thống tương lai Yêu cầu cho việc định thời biểu mềm dẻo trường hợp khác mà tách riêng chế từ sách có ích Thí dụ, hóa đơn cần xử lý in thường thực cơng việc bó có độ ưu tiên thấp, hàng đợi bó cho tạm thời độ ưu tiên cao Tuy nhiên, hệ điều hành chấp nhận loại định thời IX Tóm tắt Định thời CPU tác vụ chọn trình chờ từ hàng đợi sẳn sàng cấp phát CPU tới CPU cấp phát tới trình chọn cấp phát Định thời đến trước, phục vụ trước (FCFS) giải thuật định thời đơn giản nhất, gây q trình ngắn chờ trình trình dài Định thời ngắn nhất, phục vụ trước (SJF) tối ưu, cung cấp thời gian chờ đợi trung bình ngắn Cài đặt định thời SJF khó đốn trước chiều dài chu kỳ CPU khó Giải thuật SJF trường hợp đặc biệt giải thuật định thời trưng dụng thơng thường Nó đơn giản cấp phát CPU tới q trình có độ ưu tiên cao Cả hai định thời độ ưu tiên SJF gặp phải trở ngại việc đói tài nguyên Định thời quay vòng (RR) hợp lý cho hệ thống chia sẻ thời gian Định thời RR cấp phát CPU tới trình hàng đợi sẳn sàng cho q đơn vị thời gian, q định mức thời gian Sau q đơn vị thời gian, q trình khơng trả lại CPU bị chiếm q trình đặt vào đuôi hàng đợi sẳn sàng Vấn đề quan trọng chọn định mức thời gian Nếu định mức lớn, định thời RR giảm định thời FCFS ; định mức nhỏ chi phí định thời dạng thời gian chuyển ngữ cảnh trở nên thừa Giải thuật FCFS không ưu tiên; giải thuật RR ưu tiên Các giải thuật SJF ưu tiên ưu tiên khơng ưu tiên Các giải thuật hàng đợi nhiều cấp cho phép giải thuật khác dùng cho loại khác trình Chung hàng đợi giao tiếp chế độ hiển thị dùng định thời RR hàng đợi bó chạy chế độ dùng định thời FCFS Hàng đợi phản hồi nhiều cấp cho phép trình di chuyển từ hàng đợi sang hàng đợi khác Vì có nhiều giải thuật định thời sẳn dùng, cần phương pháp để chọn chúng Các phương pháp phân tích dùng cách thức phân tích tốn học để xác định lực giải thuật Các phương pháp mô xác định lực cách theo giải thuật định thời mẫu ‘đại diện’ trình tính lực kết Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone.com Trang https://fb.com/sinhvienzonevn 77 ... Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 kỳ CPU dài Sự phân bổ giúp chọn giải thuật định thời CPU hợp lý Hình 0-1-Thay đổi thứ tự CPU I/O burst III.2 Bộ định thời CPU Bất CPU rảnh, hệ điều. .. hồn thành nhập/xuất) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone. com Trang https://fb .com/ sinhvienzonevn 57 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành –... soạn: Th.s Nguyễn Phú Trường - 09/2005 SinhVienZone. com Trang https://fb .com/ sinhvienzonevn 59 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Đối với hệ thống tương