Hệ điều hành - Lập lịch tiến trình
Bạn đang xem 20 trang mẫu của tài liệu "Hệ điều hành - Lập lịch tiến trình", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
        Tài liệu đính kèm:
 he_dieu_hanh_lap_lich_tien_trinh.pdf he_dieu_hanh_lap_lich_tien_trinh.pdf
Nội dung text: Hệ điều hành - Lập lịch tiến trình
- KHOA CƠNG NGHỆ THƠNG TIN TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINH HỆ ĐIỀU HÀNH Lập lịch tiến trình
- Một số khái niệm cơ bản*  Chu kỳ CPU-I/O  “CPU-bound” process cĩ thời gian sử dụng CPU nhiều hơn thời gian sử dụng I/O  Phần lớn thời gian của “I/O- bound” process dùng để đợi I/O 2
- Một số khái niệm cơ bản*  Trong các hệ thống multitasking  Tại một thời điểm trong bộ nhớ cĩ nhiều process  Tại mỗi thời điểm chỉ cĩ một process được thực thi  Do đĩ, cần phải giải quyết vấn đề phân chia, lựa chọn process thực thi sao cho được hiệu quả nhất. Cần cĩ chiến lược định thời CPU 3
- Phân loại các hoạt động định thời 4
- Phân loại các hoạt động định thời  Định thời dài hạn (long-term): process nào được chấp nhận vào hệ thống  Định thời trung hạn (medium-term): process nào được đưa vào (swap in), đưa ra (swap out) khỏi bộ nhớ chính  Định thời ngắn hạn (short-term): process nào được thực thi tiếp theo 5
- Định thời dài hạn  Xác định chương trình nào sẽ được đưa vào hệ thống để thực thi  Quyết định độ-đa-lập-trình (degree of multiprogramming)  Nếu càng nhiều process được đưa vào hệ thống  Khả năng các process bị block cĩ xu hướng giảm  Sử dụng CPU hiệu quả hơn  Mỗi process được phân chia khoảng thời gian sử dụng CPU thấp hơn  Thường cĩ xu hướng đưa vào một tập lẫn lộn các CPU-bound process và I/O-bound process 6
- Định thời trung hạn  Quyết định về việc đưa process vào bộ nhớ chính, ra khỏi bộ nhớ chính phụ thuộc vào yêu cầu quản lý việc đa-lập-trình (multiprogramming)  Cho phép bộ định thời dài hạn chấp nhận nhiều proccess hơn số lượng process mà cĩ tổng kích thước được chứa vừa trong bộ nhớ chính  Nhưng nếu cĩ quá nhiều process thì sẽ làm tăng việc truy xuất đĩa, do đĩcần phải lựa chọn độ-đa-lập-trình (level of multiprogramming) cho phù hợp  Được thực hiện bởi phần mềm quản lý bộ nhớ 7
- Định thời ngắn hạn*  Xác định process nào được thực thi tiếp theo, cịn gọi là định thời CPU  Được kích hoạt khi cĩ một sự kiện cĩ thể dẫn đến khả năng chọn một process để thực thi  Ngắt thời gian (clock interrupt)  Ngắt ngoại vi (I/O interrupt)  Lời gọi hệ thống (operating system call)  Signal chương này sẽ tập trung vào định thời ngắn hạn 8
- Nội dung cần quan tâm*  Định thời trên hệ thống cĩ một processor (uniprocessor scheduling): quyết định việc sử dụng (một) CPU cho một tập các process trong hệ thống 9
- Tiêu chí định thời*  Độ lợi CPU (CPU utilization)  Khoảng thời gian CPU bận  Cần giữ cho CPU càng bận càng tốt  Độ hiệu quả sử dụng CPU (CPU efficiency)  Khoảng thời gian CPU thực thi mã của người dùng  Thời gian chờ (waiting time)  Thời gian chờ trong hàng đợi ready  Các process nên được chia sẻ việc sử dụng CPU một cách cơng bằng (fair share) 10
- Tiêu chí định thời*  Thơng năng (throughput)  Số lượng process hồn thành trong một đơn vị thời gian  Thời gian đáp ứng (response time)  Thời gian từ lúc cĩ yêu cầu của người dùng (user request) đến khi cĩ đáp ứng đầu tiên (lưu ý: đáp ứng đầu tiên, chứ khơng phải output)  Thường là vấn đề với các I/O-bound process 11
- Tiêu chí định thời*  Thời gian quay vịng (turnaround time)  Thời gian để hồn thành một process (kể từ lúc nàp vào hệ thống – submission đến lúc kết thúc – termination)  Là thơng số cần quan tâm với các process thuộc dạng CPU- bound  Thời gian quay vịng thi trung bình (average turnaround time)  Thời gian thực thi trung bình được chuẩn hĩa (normalized turnaround time) (đọc thêm)  Tỉ số giữa thời gian quay vịng (turnaround time) và thời gian được phục vụ (service time) của mỗi process  Xác định thời gian đợi của process một cách tương đối 12
- Tiêu chí định thời *  Độ lợi CPU (CPU utilization) – giữ CPU càng bận càng tốt  Tối đa hĩa  Thơng năng (throughput) – số lượng process kết thúc việc thực thi trong một đơn vị thời gian  Tối đa hĩa  Turnaround time – thời gian kể từ lúc bắt đầu đưa vào (submission) đến lúc kết thúc  Tối thiểu hĩa  Thời gian chờ (waiting time) – thời gian một process chờ trong hàng đợi ready  Tối thiểu hĩa  Thời gian đáp ứng (response time) – thời gian từ khi đưa yều cầu đến khi cĩ đáp ứng đầu tiên  Tối thiểu hĩa 13
- Hai thành phần của chiến lược định thời*  Hàm lựa chọn (selection function)  Xác định process nào trong ready queue sẽ được thưc thi tiếp theo. Thường theo một số thơng số, ví dụ: •w = tổng thời gian đợi trong hệ thống •e = thời gian đã được phục vụ •s = tổng thời gian thực thi của process (bao gồm cả “e”) 14
- Hai thành phần của chiến lược định thời*  Chế độ quyết định (decision mode)  Chọn thời điểm hàm lựa chọn định thời thực thi  Nonpreemptive •Một process sẽởtrạng thái running cho đến khi nĩ bị block hoặc nĩ kết thúc  Preemptive • Process đang thực thi cĩ thể bị ngắt và chuyển về trạng thái ready • Tránh trường hợp một process độc chiếm (monopolizing) CPU 15
- Non-preemptive và preemptive  Hàm định thời được thực hiện khi  (1) Chuyển từ trạng thái running sang waiting  (2) Chuyển từ trạng thái running sang ready  (3) Chuyển từ trạng thái waiting, new sang ready  (4) Kết thúc thực thi  Trường hợp 1, 4 được gọi là định thời non-preemptive  Trường hợp 2, 3 được gọi là định thời preemptive 16
- Dispatcher*  Dispatcher sẽ chuyển quyền điều khiển CPU về cho process được chọn bởi bộ định thời ngắn hạn  Bao gồm:  Chuyển ngữ cảnh (sử dụng thơng tin ngữ cảnh trong PCB)  Chuyển về user mode  Nhảy đến vị trích thích hợp trong chương trình ứng dụng để khởi động lại chương trình (chính là program counter trong PCB)  Cơng việc này gây ra phí tổn  Dispatch latency: thời gian mà dispatcher dừng một process và khởi động một process khác 17
- Dispatch latency 18
- Lập lịch Off-line vs. On-line  Thuật tốn Off-line  Lấy tất cả thơng tin về tất cả các cơng việc cần phải lập lịch  Cho ra trình tự đã được lập lịch  Khơng cần sự cưỡng chế (preemptive)  Thuật tốn On-line  Cơng việc xuất hiện vào những thời điểm khơng thể đốn trước.  Rất ít thơng tin  Cần cơ chế cưỡng chế HĐH - 2005
- First-Come-First-Serve (FCFS)  Lập lịch các cơng việc theo thứ tự xuất hiện của chúng.  Off-line FCFS lập lịch theo thứ tự xuất hiện trong dữ liệu đầu vào của nĩ  Thi hành lần lượt mỗi cơng việc cho đến khi hồn thành  Cĩ cả on-line lẫn off-line  Đơn giản, dùng làm cơ sở để phân tích các pp khác  Thời gian phản hồi kém HĐH - 2005
- First Come First Served (FCFS)*  Hàm lựa chọn: chọn process đợi trong hàng đợi ready lâu nhất  Chế độ quyết định: nonpreemptive  Một process sẽ được thực thi cho đến khi nĩ bị block hoặc kết thúc  FCFS thường được quản lý bằng một FIFO queue 21
- First Come First Served (FCFS)* Process Burst Time P1 24 P2 3 P3 3  Giả sử các proccess đến theo thứ tự P1 , P2 , P3  Giản đồ Gantt cho việc định thời là: P1 P2 P3 0 24 27 30  Thời gian đợi cho P1 = 0, P2 = 24, P3 = 27  Thời gian đợi trung bình: (0 + 24 + 27)/3 = 17 22
- First Come First Served (FCFS)*  Giả sử các process đến theo thứ tự: P2 , P3 , P1  Giản đồ Gantt cho việc định thời là: P2 P3 P1 0 3306  Thời gian đợi cho P1 = 6, P2 = 0, P3 = 3  Thời gian đợi trung bình là: (6 + 0 + 3)/3 = 3  Tốt hơn rất nhiều so với trường hợp trước 23
- First Come First Served (FCFS)*  FCFS khơng cơng bằng với các process cĩ CPU burst ngắn. Các process này phải chờ trong thời gian dài (so với thời gian mà nĩ cần phục vụ) thì mới được sử dụng CPU. Điều này đồng nghĩa với việc FCFC “ưu tiên” các process thuộc dạng CPU bound  FCFS thường được sử dụng trong các hệ thống bĩ (batch system) 24
- Ví dụ thực tế  Việc phục vụ khách trong nhà hàng  Thực khách sẽ đến và gọi mĩn ăn cho mình  Mỗi mĩn ăn cần thời gian chuẩn bị khác nhau  Mục tiêu:  Giảm thời gian đợi trung bình của các thực khách  Cách làm nào sẽ phù hợp?  Thơng thường các nhà hàng sẽ phục vụ theo kiểu FCFS (!) 25
- Shortest Job First (SJF)  Cơng việc cĩ thời gian ít nhất sẽ được thi hành trước  Độ đo thời gian phản hồi là tốt nhất Long job Short Short Long job  Chỉ cĩ off-line Tất cả các cơng việc và thời gian thi hành phải được biết trước
- Shortest Job First (SJF)*  Tương ứng với mỗi process cần cĩ độ dài của CPU burst tiếp theo  Hàm lựa chọn: chọn process cĩ độ dài CPU burst nhỏ nhất  SJF tối ưu trong việc giảm thời gian đợi trung bình  Nhược điểm: Cần phải ước lượng thời gian cần CPU tiếp theo của process 27
- Dự đốn thời gian sử dụng CPU*  Trung bình tất cả các kết quả đo được trong quá khứ  Nhưng thơng thường những kết quả càng mới càng phản ánh đúng hành vi của process trong tương lai  Một kỹ thuật thường dùng là sử dụng trung bình hàm mũ (exponential averaging)  τn+1 = α tn + (1-α) τn , 0 1/n cĩ nghĩa là đã gán trọng số của các giá trị càng mới càng tăng 28
- Dự đốn thời gian sử dụng CPU Thời gian sử dụng CPU thực Thời gian dự đốn với α = ½ và τ0 = 10 29
- Shortest Job First (SJF)*  SJF sử dụng ưu tiên ngầm định: cơng việc ngắn nhất được ưu tiên trước  Thường là những cơng việc thuộc loại I/O bound  Process cĩ thời gian thực thi dài cĩ thể bị trì hỗn vơ hạn định nếu các process cĩ thời gian thực thi ngắn liên tục vào  Khơng thích hợp cho mơi trường time-sharing khi khơng dùng preemption  Dù các CPU bound process cĩ “độ ưu tiên” thấp  Nhưng một process khơng thực hiện I/O cĩ thể độc chiếm hệ thống nếu nĩ là process đầu tiên vào hệ thống 30
- Shortest Job First (SJF)* Process Thời điểm đến Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4  SJF tương ứng P1 P3 P2 P4 0 3167 8 12  Thời gian đợi trung bình = (0 + 6 + 3 + 7)/4 = 4
- Shortest Job First (SJF)*  Chế độ quyết định: non-preemptive  Phiên bản preemptive của SJF:  Nếu một process mới đến mà cĩ thời gian sử dụng CPU (CPU burst length) nhỏ hơn thời gian cần CPU cịn lại của process đang thực thi, thì thực hiện preempt process đang thực thi  Cách làm này cịn được gọi là Shortest-Remaining-Time-First (SRTF) 32
- Shortest Remaining Time First (SRTF)* Process Thời điểm đến Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4  Shortest-Remaining-Time-First (SRTF) P1 P2 P3 P2 P4 P1 0 2 4 5 7 11 16  Thời gian đợi trung bình = (9 + 1 + 0 +2)/4 = 3  Tốt hơn giải thuật nonpreemptive SJF 33
- Shortest Remaining Time First (SRTF)*  Tránh trường hợp các process cĩ thời gian thực thi dài độc chiếm CPU  Cần phải quản lý thời gian thực thi cịn lại của các process  Cĩ thời gian quay vịng tốt hơn SJF  Process cĩ thời gian thực thi ngắn cĩ độ ưu tiên ngay lập tức 34
- Priority Scheduling*  Mỗi process sẽ được gán một độ ưu tiên  CPU sẽ được cấp cho process cĩ độ ưu tiên cao nhất  Định thời sử dụng độ ưu tiên cĩ thể:  Preemptive hoặc  Nonpreemptive 35
- Gán độ ưu tiên*  SJF là một giải thuật định thời sử dụng độ ưu tiên với độ ưu tiên là thời-gian-sử-dụng-CPU-dự-đốn  Gán độ ưu tiên cịn dựa vào:  Yêu cầu về bộ nhớ  Số lượng file được mở  Tỉ lệ thời gian dùng cho I/O trên thời gian sử dụng CPU  Các yêu cầu bên ngồi ví dụ như: số tiền người dùng trả khi thực thi cơng việc 36
- Priority Scheduling*  Vấn đề ≡ Trì hỗn vơ hạn định – process cĩ độ ưu tiên thấp cĩ thể khơng bao giờ được thực thi  Giải pháp ≡ Aging – độ ưu tiên của process sẽ tăng theo thời gian 37
- Round Robin (RR)*  Hàm lựa chọn: giống FCFS 1 2 8 3 7 4 6 5 38
- Round Robin (RR)*  Chế độ quyết định: preemptive  Khoảng thời gian tối đa cho phép (thường 10 - 100 ms) được đảm bảo bằng việc sử dụng interrupt  Process đang chạy hết thời gian sẽ được chuyển về cuối của hàng đợi ready 39
- Round Robin (RR)* Process Burst Time P1 53 P2 17 P3 68 P4 24  Quantum time = 20  Giản đồ Gantt: P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162  Thường cĩ thời gian quay vịng cao hơn SJF, nhưng lại cĩ đáp ứng tốt hơn 40
- Quantum time và chuyển ngữ cảnh  Quantum time càng nhỏ thì càng cĩ nhiều lần chuyển ngữ cảnh (context switch) 41
- Thời gian quay vịng và quantum time  Thời gian quay vịng trung bình (average turnaround time) khơng chắc sẽ được cải thiện khi quantum lớn 42
- Quantum time cho Round Robin*  Khi thực hiện process switch thì OS sẽ sử dụng CPU chứ khơng phải process của người dùng  Dừng thực thi, lưu tất cả thơng tin, nạp thơng tin của process sắp thực thi  Performance tùy thuộc vào kích thước của quantum time (hay time slice), và hàm phụ thuộc này khơng đơn giản  Time slice ngắn thì đáp ứng nhanh  Vấn đề: cĩ nhiều chuyển ngữ cảnh. Phí tổn sẽ cao.  Time slice dài hơn thì throughput tốt hơn (do giảm phí tổn) nhưng thời gian đáp ứng lớn  Nếu time slice quá lớn trở thành FCFS. 43
- Quantum time cho Round Robin  Quantum time và thời gian cho process switch:  Nếu quantum time (hay time slice) = 20 ms và thời gian cho process switch = 5 ms, như vậy phí tổn là 5/25 = 20%  Nếu time slice = 500 ms, thì phí tổn chỉ cịn 1% •Nhưng nếu cĩ nhiều người sử dụng trên hệ thống và thuộc loại interactive thì sẽ thấy đáp ứng rất chậm  Tùy thuộc vào tập cơng việc mà lựa chọn quantum time  Time slice nên lớn trong tương quan so sánh với thời gian cho process switch  Ví dụ với 4.3 BSD UNIX time slice là 1 giây 44
- Round Robin  Nếu cĩ n process trong hàng đợi ready, và quantum time là q, nhu vậy mỗi process sẽ lấy 1/n thời gian CPU theo từng khối cĩ kích thước lớn nhất là q  Sẽ khơng cĩ process nào chờ lâu hơn (n-1)q đơn vị thời gian  RR sử dụng một giả thuyết ngầm là tất cả các process đều cĩ tầm quan trọng ngang nhau  Khơng thể sử dụng RR nếu muốn các process khác nhau cĩ độ ưu tiên khác nhau 45
- Round Robin: nhược điểm  Các process dạng CPU-bound vẫn cịn được “ưu tiên”  Ví dụ: •Một I/O-bound process sử dụng CPU trong thời gian ngắn hơn quantum time và bị block để đợi I/O. Và •Một CPU-bound process chạy hết time slice và lại quay trở về hàn đợi ready queue (ở phía trước các process đã bị blocked) 46
- Highest Response Ratio Next (HRRN)  Max RR (Response Ratio)  Ưu tiên short job Proces Arrival Servic s Time e Time 103 226 344 465 582 time spent wait ing + expected service time RR = expected service time 47
- HRRN (Highest Response Ration Next)  Cải tiến giải thuật SJF  Định thời theo kiểu non-preemptive  Độ ưu tiên của quá trình được tính theo công thức: p = (tw + ts)/ts tw waiting time ts service time  Quá trình có độ ưu tiên lớn nhất được phục vụ  Độ ưu tiên động, tính lại khi có quâ trình kết thúc -48-
-  Khi P1 kết thúc, hệ thống định thời lại. Quá Thời gian Thời gian thực thi trình đến (CPU burst time) (giây)  Độ ưu tiên P1 0 7 P2: (6+4)/4=2.5 P2 1 4 P3: (2+2)/2=2 P3 5 2 P2 được ưu tiên Định thời lại P1 P2 P3  Thứ tự định thời: P1ỈP2ỈP3 P1 P2 P3 0711  Nhận xét 1 3 -49-
- Highest Response Ratio Next (HRRN) 0 5 10 15 20 P1 P2 P3 P4 P5 time spent wait ing + expected service time RR = expected service time 50
- Multilevel Queue Scheduling*  Hàng đợi ready sẽ được chia thành nhiều hàng đợi riêng rẽ. Ví dụ:  foreground (cho cơng việc cần giao tiếp - interactive)  background (cho cơng việc dạng bĩ - batch)  Mỗi hàng đợi sẽ cĩ giải thuật định thời riêng. Ví dụ:  foreground – RR  background – FCFS 51
- Multilevel Queue Scheduling*  Định thời cần phải thực hiện giữa các hàng đợi với nhau  Theo cách cố định (fixed priority scheduling) – phục vụ tất cả các process từ foreground rồi mới đến background •Cĩkhả năng xảy ra trì hỗn vơ hạn định (starvation)  Chia thời gian (time slice) – mỗi hàng đợi sẽ được lấy một khoảng sử dụng CPU nhất định để định thời cho các process của mình. Ví dụ: • 80% cho foreground dùng RR • 20% cho background dùng FCFS 52
- Multilevel Queue Scheduling*  Ví dụ Độ ưu tiên cao nhất System Processes Interactive Processes Batch Processes Student Processes Độ ưu tiên thấp nhất 53
- Multilevel Feedback Queue*  Một process cĩ thể di chuyển giữa các queue dựa trên đặc tính của process (kỹ thuật aging cĩ thể được hiện thực theo cách này)  Nếu một process sử dụng CPU trong thời gian quá nhiều, nĩ sẽ bị di chuyển sang một hàng đợi cĩ độ ưu tiên thấp hơn  Nếu một process chờ qua lâu trong một hàng đợi cĩ độ ưu tiên thấp, nĩ sẽ được di chuyển lên hàng đợi cĩ độ ưu tiên cao hơn 54
- Multilevel Feedback Queue*  Ví dụ: Cĩ 3 hàng đợi:  Q0 – RR với time quantum 8  Q1 – RR vơis time quantum 16  Q2 –FCFS  Giải thuật  Cơng việc mới sẽ vào hàng đợi Q0. Khi đến lượt mình, cơng việc sẽ được một khoảng thời gian là 8 milli giây. Nếu khơng kết thúc được trong 8 milli giây, cơng việc sẽ được đưa xuống hàn đợi Q1  Tại Q1, tương tự cơng việc sau khi chờ sẽ được cho một khoảng thời gian thực thi là 16 milli giây. Nếu hết thời gian này vẫn chưa kết thúc sẽ bị chuyển sang Q2 55
- Multilevel Feedback Queue  Multilevel Feedback Queue được xác định bởi các thơng số  Cĩ bao nhiêu hàng đợi?  Với mỗi queue sử dụng giải thuật định thời nào?  Xác định thời điểm thăng cấp cho một process?  Làm sao để xác định thời điểm giáng cấp một process?  Xác định được hàng đợi nào process sẽ vào khi process đĩ cần thực thi? 56
- Policy và Mechanism  Rất quan trọng trong định thời và phân phối tài nguyên  Policy  Điều gì nên (cần) làm  Mechanism  Làm sao để làm điều đĩ  Ví dụ  Policy: tất cả người dùng cần được cơng bằng  Mechanism: sử dụng round robin  Policy: cơng việc được trả tiền cao cĩ độ ưu tiên cao  Mechanism: sử dụng các giải thuật cĩ preemptive 57
- Định thời trên hệ thống multiprocessor  Nếu cĩ nhiều CPU thì cĩ thể thực hiện việc chia tải  Phức tạp hơn so với định thời trên một processor  Làm sao để chia tải?  Asymmetric multiprocessor •Một master processor sẽ thực hiện định thời cho tất cả các processor cịn lại  Symmetric multiprocessor (SMP) •Một processor sẽ cĩ bộ định thời riêng •Sẽ cĩ một hàng đợi ready chung cho tất cả processors, và cĩ một hoặc nhiều hành đợi ready riêng cho mỗi procesor • Được hỗ trợ trên Win XP, Linux, Solaris, Mac OS X 58
- Bài tập Process Burst Time P1 10 P2 29 P3 3 P4 7 P5 12  Tất cả đều đến ở thời điểm 0  Xét các giải thuật FCFS, SFJ, và RR với quantum time = 10





