Nguyên lý hệ điều hành - Phần 3 potx

8 374 1
Nguyên lý hệ điều hành - Phần 3 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

1 1 Nguyên lý hệđiềuhành NguyễnHải Châu Khoa Công nghệ thông tin Trường Đạihọc Công nghệ 2 Lậplịch CPU 3 Tạisaophảilậplịch CPU? z Số lượng NSD, số lượng tiến trình luôn lớn hơnsố lượng CPU củamáytínhrất nhiều z Tạimộtthời điểm, chỉ có duy nhấtmộttiến trình đượcthựchiệntrênmộtCPU z Vấn đề: z Nhu cầusử dụng nhiềuhơn tài nguyên (CPU) đang có z Do đócầnlậplịch để phân phốithờigiansử dụng CPU cho các tiếntrìnhcủa NSD và hệ thống 4 Hàng chờ lậplịch tiếntrình Hàng chờ sẵn sàng thựchiện Hàng chờ vào/ra Yêu cầuvào/ra Hếtthờigian sử dụng CPU Tạomộttiến trình con Chờ ngắt CPU Vào/ra Tiếntrìnhcon thựchiện Ngắtxuấthiện 5 CPU-burst và IO-burst z Trong suốtthờigiantồntạitronghệ thống, tiếntrìnhđược xem như thựchiệnhailoại công việcchính: z Khi tiếntrìnhở trạng thái running: Sử dụng CPU (thuậtngữ: CPU-burst) z Khi tiếntrìnhthựchiện các thao tác vào ra: Sử dụng thiếtbị vào/ra (thuậtngữ: I/O burst) 6 Microsoft Office Outlook CPU-burst Adobe Photoshop CPU-burst 2 7 Hai loạitiếntrìnhchính z Căn cứ theo cách sử dụng CPU của tiến trình, có hai loại tiến trình: z Tiếntrìnhloại CPU-bound: Tiếntrìnhcómộthoặc nhiều phiên sử dụng CPU dài z Tiếntrìnhloại I/O-bound: Tiến trình có nhiều phiên sử dụng CPU ngắn(tứclàthờigianvàora nhiều) 8 Bộ lậplịch ra hoạt động khi… 1. Mộttiến trình chuyểntừ trạng thái running sang waiting 2. Mộttiến trình chuyểntừ trạng thái running sang ready 3. Mộttiến trình chuyểntừ trạng thái waiting sang ready 4. Mộttiếntrìnhkếtthúc 9 Các phương pháp lậplịch terminated new ready running waiting admitted exit I/O hoặcsự kiện đãhoàntất Bị ngắt (Interrupt) Chờ I/O hoặc sự kiện Lậplịch 2 1 3 4 z 1 và 4: Lậplịch non-preemptive z Ngượclại: Lậplịch preemptive 10 Lậplịch non-preemptive z Mộttiếntrìnhgiữ CPU đếnkhinókết thúc hoặcchuyển sang trạng thái waiting. z Ví dụ: Microsoft Windows 3.1, Apple Macintosh sử dụng lậplịch non-preemptive z Có thể sử dụng trên nhiềuloạiphầncứng vì không đòi hỏitimer 11 Lậplịch preemptive z Hiệuquả hơnlậplịch non-preemptive z Thuậttoánphứctạphơn non-preemptive và sử dụng nhiều tài nguyên CPU hơn z Ví dụ: Microsoft Windows XP, Linux, UNIX sử dụng lậplịch preemptive 12 Bộđiềuphối (dispatcher) z Nhiệmvụ: z Chuyểntrạng thái (context switch) z Chuyểnvề user-mode z Thựchiệntiến trình theo trạng thái đãlưu z Cầnhoạt động hiệuquả (tốc độ nhanh) z Thờigiancần để bộđiềuphốidừng mộttiến trình và thựchiệntiến trình khác gọilàđộ trễ (latency) củabộđiềuphối 3 13 Các tiêu chí đánh giá lậplịch z Khả năng tậndụng CPU (CPU utilization): Thể hiệnqua tảiCPU –làmộtsố từ 0% đến 100%. z Trong thựctế các hệ thống thường có tảitừ 40% (tảithấp) đến 90% (tảicao) z Thông lượng (throughput): Là số lượng các tiến trình hoàn thành trong một đơnvị thời gian 14 Các tiêu chí đánh giá lậplịch z Thời gian hoàn thành (turnaround time): z t turnaround = t o -t i với t i là thời điểmtiếntrìnhvàohệ thống, t o là thời điểmtiếntrìnhrakhỏihệ thống (kếtthúcthựchiện) z Như vậy t turnaround là tổng: thờigiantảivàobộ nhớ, thờigianthựchiện, thời gian vào ra, thờigian nằm trong hàng chờ… 15 Các tiêu chí đánh giá lậplịch z Thờigianchờ (waiting time): Là tổng thời gian tiến trình phảinằm trong hàng chờ ready (t waiting ) z Các thuậttoánlậplịch CPU không có ảnh hưởng đếntổng thờigianthựchiệnmộttiến trình mà chỉ có ảnh hưởng đếnthờigianchờ củamộttiến trình trong hàng chờ ready z Thờigianchờ trung bình (average waiting time): t averagewaiting =t waiting / n, n là số lượng tiến trình trong hàng chờ 16 Các tiêu chí đánh giá lậplịch z Thờigianđáp ứng (response time): Là khoảng thờigiantừ khi tiếntrìnhnhận được mộtyêucầuchođếnkhibắt đầu đáp ứng yêu cầu đó z t res = t r – t s , trong đó t r là thời điểmnhậnyêu cầu, t s là thời điểmbắt đầu đáp ứng yêu cầu 17 Đánh giá các thuậttoánlậplịch XấuTốtThờigianđáp ứng (response time) XấuTốtThờigianchờ (waiting time) -> Thờigianchờ trung bình XấuTốtThờigianhoànthành (turnaround time) TốtXấuThông lượng (throughput) TốtXấuKhả năng tậndụng CPU (CPU utilization) Giá trị caoGiá trị thấpTiêu chí 18 Các thuậttoánlậplịch 4 19 FCFS (First Come First Served) z Tiến trình nào có yêu cầusử dụng CPU trướcsẽđượcthựchiệntrước z Ưu điểm: Thuậttoánđơngiảnnhất z Nhược điểm: Hiệuquả củathuậttoánphụ thuộcvàothứ tự củacáctiến trình trong hàng chờ, vì thứ tự này ảnh hưởng rấtlớn đến thời gian chờ trung bình (average waiting time) 20 Ví dụ FCFS 1a z Giả sử có 3 tiếntrìnhP 1 , P 2 , P 3 vớithờigian thựchiệntương ứng là 24ms, 3ms, 6ms z Giả sử 3 tiếntrìnhxếphàngtheothứ tự P 1 , P 2 , P 3 . Khi đótacóbiểu đồ Gantt như sau: z Thờigianchờ củacáctiếntrìnhlà: P 1 chờ 0ms, P 2 chờ 24ms, P 3 chờ 27ms z Thờigianchờ trung bình: (0+24+27)/3=17ms P 1 P 2 P 3 0242733 21 Ví dụ FCFS 1b z Xét ba tiếntrìnhtrongvídụ 1a vớithứ tự xếp hàng P 3 , P 2 , P 1 z Biểu đồ Gantt: z Thờigianchờ củacáctiếntrìnhlà: P 3 chờ 0ms, P 2 chờ 6ms, P 3 chờ 9ms z Thờigianchờ trung bình: (0+6+9)/3=5ms z Thờigianchờ trung bình thấphơnthờigian chờ trung bình trong ví dụ 1a P 1 P 2 P 3 069 33 22 Hiệntượng “đoàn hộ tống” z Thuậtngữ: convoy effect z Xảyrakhicómộttiến trình “lớn” P nằm ởđầu hàng chờ và nhiềutiến trình “nhỏ” Q i xếphàng sau P. z “Lớn”: Sử dụng nhiềuthờigianCPU vàvàora z “Nhỏ”: Sử dụng ít thời gian CPU và vào ra z Thuậttoánlậplịch đượcsử dụng là FCFS.: z Hiệntượng xảy ra: CPU, thiếtbị vàoracónhiều thờigianrỗi, thờigianchờ trungbìnhcủacác tiến trình cao 23 Ví dụ convoy effect Hàng chờ sẵn sàng thựchiện Hàng chờ vào/ra Yêu cầuvào/ra Hếtthờigian sử dụng CPU Tạomộttiến trình con Chờ ngắt CPU Vào/ra Tiến trình con thựchiện Ngắtxuấthiện Q 3 (10) Q 2 (10) Q 1 (10) P (40) P (50) Q 1 (10) Q 2 (10) Q 3 (10) 24 Convoy effect: Thờigiansử dụng CPU và thiếtbị vào ra Thiếtbị vào ra CPU 0 40 50 60 70 P Q 1 Q 2 Q 3 40 0 Rỗi 90 P 90 Rỗi Q 1 Q 2 Q 3 100 110 120 130 130 P Rỗi 140 Q 1 Q 2 Q 3 150 160 180 180 P z Giả sử P là tiến trình “lớn” có chu kỳ sử dụng CPU trong 40ms và vào ra trong 50ms z Q 1 , Q 2 , Q 3 là 3 tiến trình “nhỏ”cóchukỳ sử dụng CPU trong 10ms và vào ra trong 10ms z Thứ tự xếp hàng: P, Q 1 , Q 2 , Q 3 Rỗi 5 25 SJF (Shortest Job First) z Với SJF, tham số lậplịch có thêm độ dài của phiên sử dụng CPU tiếp theo t nextburst z Tiếntrìnhcót nextburst nhỏ nhấtsẽđượclập lịch sử dụng CPU trước z Nếu hai tiếntrìnhcót nextburst bằng nhau thì FCFS đượcápdụng 26 SJF (Shortest Job First) z Vớilậplịch dài hạn: Có thể biết t nextburst vì có tham số chỉ ra thờigianchạycủatiếntrìnhkhi đưatiếntrìnhvàohệ thống (job submit) z Khó khăn: Chỉ có thể phỏng đoán được t nextburrt vớilậplịch ngắnhạn z Đọc ở nhà: Dựđoán t nextburst bằng công thức trung bình mũ (exponential average) trang 160-162 trong giáo trình z SJF không tối ưu đượcvớilậplịch ngắnhạn z SJF thường đượcápdụng cho lậplịch dài hạn 27 Lậplịch có độ ưutiên z Thuậtngữ: Priority scheduling z Mỗitiếntrìnhđượcgắnmộtthamsố lậplịch gọilàđộ ưutiênp, với p là mộtsố thực z Tiếntrìnhcóđộ ưutiêncaonhất đượcsử dụng CPU z Qui ướctrongmônhọcnày: z TiếntrìnhP 1 và P 2 có độ ưutiênp 1 , p 2 tương ứng z p 1 >p 2 có nghĩalàtiếntrìnhP 1 có độ ưutiênthấphơn P 2 z SJF là trường hợp đặcbiệtcủalậplịch có ưutiênvới ưutiêncủacáctiếntrìnhlànghịch đảo độ dài phiên sử dụng 28 Lậplịch có độ ưutiên z Hai cách xác định độ ưu tiên: z Độ ưutiêntrong: Được tính toán dựatrêncác tham sốđịnh lượng củatiếntrìnhnhư giớihạnvề thờigian, bộ nhớ, số file đang mở, thờigiansử dụng CPU z Độ ưutiênngoài: Dựavàocácyếutố như mức độ quan trọng, chi phí thuê máy tính… z Chờ không xác định: Mộttiếntrìnhcóđộ ưu tiên thấpcóthể nằm trong hàng chờ trong mộtkhoảng thờigiandàinếu trong hàng chờ luôn có các tiếntrìnhcóđộ ưutiêncaohơn 29 Lậplịch có độ ưutiên z Để tránh hiệntượng chờ không xác định, có thêm tham số tuổi để xác định thờigiantiến trình thờigiannằm trong hàng chờ z Tham số tuổi đượcsử dụng để làm tăng độ ưutiêncủatiếntrình z Ví dụ thựctế: Khi bảodưỡng máy tính IBM 7094 của MIT năm 1973, ngườitathấymột tiếntrìnhnằm trong hàng chờ từ năm 1967 nhưng vẫnchưa đượcthựchiện 30 Ví dụ lậplịch có độ ưutiên z Xét 5 tiến trình như trong bảng vớithứ tự trong hàng chờ là P 1 , P 2 , P 3 , P 4 , P 5 z Sử dụng thuậttoánlậplịch có ưu tiên, ta có thứ tự thựchiệncủacáctiếntrình như sau biểu đồ dưới z Thờigianchờ trung bình là (1+6+16+18)/5=8.2ms 3 1 4 5 2 10 1 2 1 5 P 1 P 2 P 3 P 4 P 5 Độ ưu tiên Thờigian thựchiện (ms) Tiến trình P 1 (3)P 5 (2) 06 16 P 2 (1) 1 P 3 (4) P 4 (5) 18 19 6 31 Round-robin (RR) z Còn gọilàlậplịch quay vòng z Đượcthiếtkếđểáp dụng cho các hệ phân chia thời gian (time-sharing) z RR hoạt động theo chếđộpreemptive z Tham số lượng tử thời gian (time quantum) t quantum : Mỗitiếntrìnhđượcsử dụng CPU trong nhiềunhấtbằng t quantum , sau đó đến lượttiến trình khác 32 Round-robin (RR) z Hiệuquả của RR phụ thuộc độ lớncủa t quantum z Nếu t quantum nhỏ thì hiệuquả của RR giảmvìbộ điềuphốiphảithựchiệnnhiềuthaotácchuyển trạng thái, lãng phí thờigianCPU z Nếu t quantum lớnthìsố thao tác chuyểntrạng thái giảm đi z Nếu t quantum rấtnhỏ (ví dụ 1ms) thì RR được gọi là processor sharing z Nếu t quantum = ∞ thì RR trở thành FCFS 33 Ví dụ RR z Giả sử có 3 tiếntrìnhP 1 , P 2 , P 3 vớithờigianthực hiệntương ứng là 24ms, 3ms, 6ms, thứ tự trong hàng chờ P 1 , P 2 , P 3 ,vào hàng chờ cùng thời điểm0 z Giả sử t quantum =4ms z RR lậplịch các tiến trình như sau: P 2 P 3 P 1 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 11 15 17 21 25 29 33 z Thờigianchờ z P 1 : 0+(11-4)+(17-15)=9ms z P 2 : 4ms z P 3 : 7+(15-11)=11ms z Thờigianchờ trung bình: (9+4+11)/3=8ms 34 Lậplịch vớihàngchờđamức z Thuậtngữ: Multilevel queue scheduling z Đượcsử dụngkhitacóthể chia các tiến trình thành nhiềulớp khác nhau để lậplịch theo các tiêu chí khác nhau, ví dụ: z Lớpcáctiến trình có tương tác (interactive hoặc foreground process) cầncóđộ ưutiêncaohơn z Lớpcáctiếntrìnhchạynền (background) thường khôngcótương tác vớiNSD: Độ ưutiênthấphơn 35 Lậplịch vớihàngchờđamức z Thuậttoánlậplịch với hàng chờđamứcchia hàng chờ ready thành nhiềuhàngchờ con khác nhau, mỗihàngchờ con đượcápdụng mộtloạithuật toán khác nhau, ví dụ: z Hàng chờ các tiến trình background: FCFS z Hàng chờ các tiếntrìnhcótương tác:RR z Các tiếntrìnhđượcphânlớpdựavàođặc tính như bộ nhớ, độ ưu tiên, … z Cầncóthuậttoánlậplịchchocáchàngchờ con, ví dụ: preemptive có độ ưutiêncốđịnh 36 Ví dụ hàng chờđamức z Ví dụ các hàng chờđamứccóđộ ưutiên giảmdần: z Hàng chờ các tiếntrìnhhệ thống z Hàng chờ các tiếntrìnhcótương tác z Hàng chờ các tiến trình là editor z Hàng chờ các tiếntrìnhhoạt động theo lô z Hàng chờ các tiếntrìnhthựctậpcủasinhviên 7 37 Lậplịch vớihàngchờđamức có phảnhồi z Thuậtngữ: Multilevel feedback-queue scheduling z Thuậttoánlậplịch kiểu này nhằmkhắcphục nhược điểm không mềmdẻo củalậplịch với hàng chờđamức z Ý tưởng chính: Cho phép tiến trình chuyểntừ hàng chờ này sang hàng chờ khác, trong khi lậplịch với hàng chờđamức không cho phép điềunày 38 Lậplịch vớihàngchờđamức có phảnhồi z Cách thựchiện: z Độ dài phiên sử dụng CPU và thờigianđãnằm tronghàngchờ là tiêu chuẩnchuyểntiếntrình giữa các hàng chờ z Tiến trình chiếmnhiềuthờigianCPU sẽ bị chuyểnxuống hàng chờ có độ ưutiênthấp z Tiếntrìnhnằm lâu trong hàng chờ sẽđược chuyển lên hàng chờ có độ ưutiêncaohơn 39 Các tham số củabộ lậplịch hàng chờđamứccóphảnhồi z Số lượng các hàng chờ z Thuậttoánlậplịch cho mỗihàngchờ z Phương pháp tăng độ ưutiênchomộttiếntrình z Phương pháp giảm độ ưutiênchomộttiếntrình z Phương pháp xác định hàng đợinàođể đưa mộttiếntrìnhvào 40 Các thuậttoánlậplịch khác z Sinh viên tìm hiểu trong giáo trình: z Lậplịch đaxử lý z Lậplịch thờigianthực 41 Các phương pháp đánh giá thuậttoánlậplịch 42 Mô hình xác định z Thuậtngữ: Deterministic modeling z Dựa vào các trường hợpcụ thể (chẳng hạn các ví dụđã nói trong bài giảng này) để rút ra các kếtluận đánh giá z Ưu điểm: Nhanh và đơngiản z Nhược điểm: Không rút ra đượckếtluận đánh giá cho trường hợptổng quát 8 43 Mô hình hàng chờ z Thuậtngữ: Queueing model z Dựatrênlýthuyếtxácsuất, quá trình ngẫu nhiên. Tài liệuthamkhảo: z Leonard Kleinrock, Queueing Systems: Volume I – Theory (Wiley Interscience, New York, 1975) z Leonard Kleinrock, Queueing Systems: Volume II – Computer Applications (Wiley Interscience, New York, 1976) z Ưu điểm: So sánh đượccácthuật toán lậplịch trong mộtsố trường hợp z Hạnchế: Phứctạpvề mặttoánhọc, lớpcácthuật toán phân tích so sánh đượccònhạnchế 44 Mô phỏng z Thuậtngữ: Simulation z Thựchiện các tình huống giảđịnh trên máy tính để đánh giá hiệuquả củacácthuật toán lậplịch, kiểm nghiệmcáckếtquả lý thuyết z Mô phỏng thường tốnthờigianCPU và không gian lưutrữ z Đượcsử dụng nhiều trong công nghiệp z Ví dụ các hệ mô phỏng mạng (có module hàng chờ): OPNET, NS-2, Qualnet 45 Cài đặtthử trong thựctế z Mô phỏng có thể xem như “qui nạp không hoàn toàn” z Có thể xây dựng hệ thống thử trong thựctế z Ưu điểm: Đánh giá đượchiệuquả thựcsự khi sử dụng z Nhược điểm: z Chi phí cao z Hành vi củangườisử dụng có thể thay đổi theo môi trường hệ thống 46 Tóm tắt z Khái niệmlậplịch, các tiêu chí đánh giá thuật toán lậplịch z Các phương thứchoạt động preemptive và non-preemptive z Các thuật toán lậplịch FCFS, SJF, ưu tiên, RR z Lậplịch vớihàngchờđamức, có và không có phảnhồi z Các phương pháp đánh giá thuậttoánlập lịch 47 Bài tập z Thựchiệnvídụ RR vớilượng tử thờigian 2ms, 6ms và 6ms. z Tính thờigianchờ trungbìnhcủacáctiếntrình trong các trường hợp này. z Khi lượng tử thời gian thay đổi, thờigianchờ trung bình thay đổithế nào? z Tính thời gian hoàn thành (turnaround time) của tấtcả các tiến trình trong các trường hợptrên z Nhậnxétvề sự thay đổithời gian hoàn thành của các tiếntrìnhkhilượng tử thời gian thay đổi 48 Bài tập z Hãy xây dựng mộtvídụ về hiệntượng convoy effect sao cho thờigianrỗicủathiếtbị vào ra ít hơnthờigianrỗicủaCPU. Giả sử có 4 tiến trình, trong đó P là tiếntrình“lớn”, Q 1 , Q 2 , Q 3 là các tiến trình “nhỏ” đượcnằm trong hàng chờ theo thứ tự: P, Q 1 , Q 2 , Q 3 z Tìm hai ví dụ trong thựctế về hàng chờđa mức và hàng chờđamứccóphảnhồivàgiải thích các ví dụ này. . sau: P 2 P 3 P 1 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 11 15 17 21 25 29 33 z Thờigianchờ z P 1 : 0+(1 1-4 )+(1 7-1 5)=9ms z P 2 : 4ms z P 3 : 7+(1 5-1 1)=11ms z Thờigianchờ trung bình: (9+4+11) /3= 8ms 34 Lậplịch. 1 1 Nguyên lý hệ iềuhành NguyễnHải Châu Khoa Công nghệ thông tin Trường Đạihọc Công nghệ 2 Lậplịch CPU 3 Tạisaophảilậplịch CPU? z Số lượng NSD, số lượng. t quantum = ∞ thì RR trở thành FCFS 33 Ví dụ RR z Giả sử có 3 tiếntrìnhP 1 , P 2 , P 3 vớithờigianthực hiệntương ứng là 24ms, 3ms, 6ms, thứ tự trong hàng chờ P 1 , P 2 , P 3 ,vào hàng chờ cùng thời

Ngày đăng: 02/07/2014, 14:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan