1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập môn hệ điều hành chủ đề cpu scheduling

27 3 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề CPU Scheduling
Tác giả Nguyễn Văn Đạt, Trần Trung Tuyến, Nguyễn Tấn Hưng, Trần Hoàng Long, Khúc Anh Duy
Người hướng dẫn Nguyễn Mạnh Hùng
Trường học Trường Đại Học Kiến Trúc Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 27
Dung lượng 215,36 KB

Nội dung

Trong lập lịch SJF, quy trình có Burst Timethời gian thực thi thấp nhất, trong số danh sách các tiến trình có sẵn trong hàng đợi sẵn sàng, sẽ được lên lịch tiếp theo.. Theo thuật toán, h

Trang 1

BỘ XÂY DỰNG TRƯỜNG ĐẠI HỌC KIẾN TRÚC VÀ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-o0o -BÀI TẬP MÔN

HỆ ĐIỀU HÀNH Chủ đề: CPU Scheduling

Sinh viên thực hiện: Nguyễn Văn Đạt

Trần Trung Tuyến Nguyễn Tấn Hưng Trần Hoàng Long Khúc Anh Duy

2155010069 2155010239 2155010129 2155010154 2155010054

Lớp: 21CN4

Giáo viên hướng dẫn: Nguyễn Mạnh Hùng

Hà Nội, tháng 5 năm 2023

Trang 2

Mục lục

1 Khái niệm cơ bản 3

2 Các bộ định thời 3

a) Long-term scheduling 3

b) Medium-term scheduling 3

c) Short term scheduling 3

3 Các tiêu chuẩn định thời CPU 5

4 Các thuật toán 6

a) First Come First Served (FCFS) 6

b) Shortest Job First (SJF) 8

c) Shortest Remaining Time First (SRTF) 10

d) Round - Robin 13

e) Multi Level Queue (MLQ) 18

f) Multi Level Feedback Queue (MLFQ) 21

5, Ngắt 24

Trang 3

CPU SCHEDULING

1 Khái niệm cơ bản

 Trong các hệ thống multitasking

– Thực thi nhiều chương trình đồng thời làm tăng hiệu suất hệ thống

– 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  chiến lược định thời CPU

 Định thời CPU

– Chọn một process (từ ready queue) thực thi

– Với một multithreaded kernel, việc định thời CPU là do OS chọn kernel thread được chiếm CPU

2 Các bộ định thời

a) Long-term scheduling

– Xác định chương trình nào được chấp nhận nạp vào hệ thống để thực thi

– Điều khiển mức độ multiprogramming của hệ thống

– Long term scheduler thường cố gắng duy trì xen lẫn CPU-bound và I/Obound process

b) Medium-term scheduling

– Sự chuyển đổi dựa trên sự cần thiết để quản lý multiprogramming

– Được thực hiện bởi phần quản lý bộ nhớ và được thảo luận ở phần quản lý bộ nhớ

Các bộ định thời (tt)

c) Short term scheduling

- Xác định process nào trong ready queue sẽ được chiếm CPU để thực thi kế tiếp (còn được gọi là định thời CPU, CPU scheduling)

- Short term scheduler còn được gọi với tên khác là dispatcher

- Bộ định thời short-term được gọi mỗi khi có một trong các sự kiện/interrupt sau xảy ra:

Clock interrupt – I/O interrupt – Operating system call, trap – signal

Trang 4

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í 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

Trang 5

3 Các tiêu chuẩn định thời CPU

– Processor utilization: định thời sao cho CPU càng bận càng tốt  cực đại

– Fairness: tất cả process phải được đối xử như nhau

– Throughput: số process hoàn tất công việc trong một đơn vị thời gian  cực đại

Trang 6

4 Các thuật toán

a) First Come First Served (FCFS)

Thuật toán lập lịch trình First come first serve (FCFS) chỉ đơn giản là lên lịch

công việc theo Arrival Time của họ Công việc nào đến trước trong hàng đợi sẵn sàng sẽ lấy CPU trước Arrival Time của công việc càng ít thì công việc nhận được CPU càng sớm Lập lịch FCFS có thể gây ra vấn đề chết đói nếu Burst

Time của quá trình đầu tiên là lâu nhất trong số tất cả các công việc

 Do tính chất không phủ đầu của thuật toán, vấn đề chết đói có thể xảy ra

 Mặc dù nó dễ thực hiện, nhưng nó có hiệu suất kém vì Avg Waiting Time cao hơn so với các thuật toán lập lịch trình khác

Thí dụ

Hãy lấy một ví dụ về thuật toán lập lịch FCFS Trong lịch trình sau, có 5 quy trình

với ID quy trình P0, P1, P2, P3 và P4 P0 đến tại thời điểm 0, P1 tại thời điểm 1,

P2 tại thời điểm 2, P3 đến tại thời điểm 3 và Quy trình P4 đến tại thời điểm 4 trong

hàng đợi sẵn sàng Các quy trình và Arrival Time và Burst tương ứng của chúng

được đưa ra trong bảng sau

Turn Around Time và Waiting Time được tính bằng công thức sau.

1 Turn Around Time = Completion Time – Arrival Time

2 Waiting Time = Turn Around Time – Thời gian liên tục

Avg Waiting Time được xác định bằng cách tổng Waiting Time tương ứng của tất

cả các quá trình và chia tổng cho tổng số quá trình

Trang 7

Avg Waiting Time được xác định bằng cách tổng Waiting Time tương ứng của tất

cả các quá trình và chia tổng cho tổng số quá trình

Avg Waiting Time = 31/5

Burst Time

Completion Time

Turn Around Time

Waiting Time

Trang 8

b) Shortest Job First (SJF)

Shortest Job First (SJF) là một thuật toán lập lịch CPU trong hệ thống máy tính

Thuật toán này sắp xếp các quá trình theo thời gian thực hiện (execution time) từ thấp đến cao và lựa chọn quá trình có thời gian thực hiện ngắn nhất để thực thi

trước

Với SJF, các quá trình mới được đưa vào hàng đợi sẽ được so sánh với các quá

trình đang thực thi, và nếu thời gian thực hiện ngắn hơn thì quá trình mới sẽ được thực thi trước Tuy nhiên, SJF không hoàn toàn công bằng, vì nó có thể dẫn đến tình trạng starvation (quá trình bị đói tài nguyên) Nếu một quá trình có thời gian thực hiện lớn hơn các quá trình khác, nó có thể không được thực thi cho đến khi các quá trình khác đã hoàn thành

SJF có thể được sử dụng để cải thiện hiệu suất của hệ thống máy tính, đặc biệt là trong các hệ thống có nhiều quá trình có thời gian thực hiện ngắn

Trong lập lịch SJF, quy trình có Burst Time(thời gian thực thi) thấp nhất, trong số danh sách các tiến trình có sẵn trong hàng đợi sẵn sàng, sẽ được lên lịch tiếp theo

Tuy nhiên, rất khó dự đoán Burst Time cần thiết cho một quá trình do đó thuật toánnày rất khó thực hiện trong hệ thống

Ưu điểm:

• Thông lượng tối đa

• Waiting Time và Turn Around trung bình tối thiểu

Nhược điểm:

• Có thể đau khổ với vấn đề chết đói

• Nó không thể thực hiện được vì không thể biết trước thời gian Burst chính xác cho một quá trình

Trang 9

2 3 3 13 10 7

Do đó, Không có Quy trình nào đến tại thời điểm 0; sẽ có một vị trí trống

trong biểu đồ Gantt từ thời điểm 0 đến 1 (thời điểm mà quá trình đầu tiên đến).

Theo thuật toán, hệ điều hành lập lịch cho quá trình có Burst Time thấp nhất trong

số các quá trình có sẵn trong hàng đợi sẵn sàng

Cho đến nay, chúng ta chỉ có một quá trình trong hàng đợi sẵn sàng, do đó bộ lập lịch sẽ lập lịch trình này cho bộ xử lý bất kể Burst Time của nó là bao nhiêu

Điều này sẽ được thực hiện cho đến 8 đơn vị thời gian Cho đến khi chúng tôi có thêm ba quy trình nữa được đưa vào hàng đợi sẵn sàng, do đó bộ lập lịch sẽ chọn quy trình có Burst Time thấp nhất

Trong số các quy trình được đưa ra trong bảng, P3 sẽ được thực thi tiếp theo vì nó đang có Burst Time thấp nhất trong số tất cả các quy trình có sẵn

Vì vậy, đó là cách thủ tục sẽ diễn ra trong thuật toán lập lịch trình công việc ngắn

nhất (SJF)

Waiting Time trung bình = 27/5

Trang 10

c) Shortest Remaining Time First (SRTF)

Shortest remaining time first(srtf) hay có tên gọi khác là Shortest remaining time, là một phương pháp lập lịch là phiên bản ưu tiên của việc lập lịch tiếp theo

cho công việc có thời gian ngắn nhất Trong thuật toán lập lịch trình này, tiến trình

có khoảng thời gian nhỏ nhất còn lại cho đến khi hoàn thành được chọn để thực thitrước

Cách hoạt động của SRTF như sau:

1 Khi một tiến trình mới được tạo, hệ thống so sánh thời gian thực thi còn lại của tiến trình này với thời gian thực thi còn lại của tiến trình đang được thựcthi hiện tại

2 Nếu thời gian thực thi còn lại của tiến trình mới ngắn hơn, hệ thống chuyển đổi ngay lập tức sang tiến trình mới và tiếp tục thực thi

3 Nếu thời gian thực thi còn lại của tiến trình mới dài hơn, tiến trình đang được thực thi tiếp tục thực hiện cho đến khi hoàn thành hoặc có tiến trình khác ngắn hơn xuất hiện

4 Khi một tiến trình khác ngắn hơn xuất hiện, hệ thống chuyển đổi sang tiến trình mới và tiếp tục quá trình này

Ưu điểm:

 Thời gian chờ đợi, tồn tại trong hệ thống của mỗi tiến trình đều ngắn

 Thuật toán tối ưu nhất

Nhược điểm:

 Việc cài đặt thuật toán khá phức tạp

 Cần quản lý chặt chẽ việc điều phối các tiến trình

 Quản lý thời gian đến của mỗi tiến trình

Completion Time

Turn Around Time

Waiting Time

Response Time

1 0 8 20 20 12 0

Trang 11

3 2 2 4 2 0 2

Waiting Time trung bình = 24/6

Biểu đồ Gantt được chuẩn bị theo Arrival Time và Burst Time được cho trong bảng

1 Vì, tại thời điểm 0, quy trình khả dụng duy nhất là P1 với Burst Time CPU là 8 Đây là quy trình khả dụng duy nhất trong danh sách do đó nó được lên lịch

2 Quá trình tiếp theo đến ở đơn vị thời gian 1 Vì thuật toán chúng tôi đang

sử dụng là SRTF là thuật toán phủ đầu, quá trình thực thi hiện tại bị dừng

và bộ lập lịch kiểm tra quá trình có thời gian liên tục ít nhất

Cho đến bây giờ, có hai quy trình có sẵn trong hàng đợi sẵn sàng Hệ điềuhành đã thực thi P1 trong một đơn vị Waiting Time đến nay; thời gian nổ còn lại của P1 là 7 đơn vị Burst Time của Quy trình P2 là 4 đơn vị Do

đó, tiến trình P2 được lập lịch trên CPU theo thuật toán

3 Quá trình tiếp theo P3 đến đơn vị thời gian 2 Tại thời điểm này, việc thựchiện quá trình P3 bị dừng và quá trình có Burst Time còn lại ít nhất được tìm kiếm Vì quá trình P3 có 2 đơn vị Burst Time nên nó sẽ được ưu tiên hơn các đơn vị khác

4 Quy trình tiếp theo P4 đến ở đơn vị thời gian 3 Tại thời điểm này, bộ lập lịch sẽ dừng việc thực thi P4 và kiểm tra xem quy trình nào có Burst Time

ít nhất trong số các quy trình có sẵn (P1, P2, P3 và P4) P1 và P2 đang có thời gian nổ còn lại lần lượt là 7 đơn vị và 3 đơn vị

5 P3 và P4 đang có thời gian nổ còn lại mỗi loại 1 đơn vị Vì cả hai đều bình đẳng nên việc lên lịch sẽ được thực hiện tùy theo Arrival Time của

họ P3 đến sớm hơn P4 và do đó nó sẽ được lên lịch lại.Quy trình Tiếp theo P5 đến ở đơn vị thời gian 4 Cho đến thời điểm này, Quy trình P3 đã

Trang 12

hoàn thành việc thực thi và nó không còn trong danh sách Bộ lập lịch sẽ

so sánh Burst Time còn lại của tất cả các quy trình có sẵn Vì Burst Time của quá trình P4 là 1, ít nhất trong số tất cả các quá trình nên điều này sẽ được lên lịch

6 Quy trình Tiếp theo P6 đến ở đơn vị thời gian 5, cho đến thời điểm này, Quy trình P4 đã hoàn thành việc thực thi Chúng tôi có 4 quy trình khả dụng cho đến thời điểm này, đó là P1 (7), P2 (3), P5 (3) và P6 (2) Thời gian Burst của P6 là ít nhất trong số tất cả các P6 do đó được lên lịch Kể

từ bây giờ, tất cả các quy trình đều có sẵn, do đó thuật toán bây giờ sẽ hoạt động giống như SJF P6 sẽ được thực hiện cho đến khi hoàn thành vàsau đó quá trình với thời gian còn lại ít nhất sẽ được lên lịch

Trang 13

d) Round - Robin

Định nghĩa:

Round-Robin là gì ta có thể hiểu nó là một giải thuật định thời CPU

Trong một chu kỳ, mỗi tiến trình được gán một thời gian giữ CPU nhất định

Round Robin xuất phát từ nguyên tắc vòng tròn, lần lượt mỗi người sẽ nhận được một phần bằng nhau của một thứ gì đó

Giải thuật Round Robin cung cấp khả năng thực thi các quy trình miễn phí

Các điều kiện quan trọng được sử dụng trong giải thuật Round Robin:

Thời gian hoàn thành: Là thời gian mà bất kỳ quá trình nào cũng cần hoàn

thành công việc thực hiện

Thời gian quay vòng: Dùng để phân biệt giữa thời gian hoàn thành và thời

gian đến Sử dụng công thức: [Thời gian quay vòng = Thời gian hoàn thành – Thời gian đến]

Thời gian chờ: Dùng để phân biệt giữa thời gian quay vòng và thời gian

liên tục Sử dụng công thức: [Thời gian chờ = Thời gian quay vòng – Thời gian nổ]

Giải thuật Round Robin:

 Đầu tiên có một hàng đợi trong đó các quy trình được sắp xếp theo thứ tự đến trước xử lý trước

 Mỗi giá trị lượng tử được cấp phát để thực hiện mỗi quá trình

 Quá trình đầu tiên được thực hiện cho đến khi kết thúc giá trị lượng tử Sau

đó, mỗi ngắt được tạo ra và trạng thái được lưu

 CPU chuyển sang quy trình tiếp theo, phương pháp cũng tượng tự và được thực hiện theo

 Các bước tương tự được lặp lại cho đến khi kết thúc quá trình

Ưu điểm:

• Với sự hỗ trợ của Round Robin giúp các công việc phân bổ cho CPU được phân bổ hợp lý

• Tất cả các quy trình đều được xử lý mà không có bất kỳ ưu tiên nào

• Giải thuật mang lại hiệu suất tốt cho thời gian phản hồi trung bình

• Trong giải thuật không gặp phải các vấn đề thiếu hụt hay hiệu ứng bảo vệ

• Round Robin không mang tính chu kỳ

• Thêm các quy trình mới tạo vào cuối hàng đợi

• Khi thực hiện, một lượng tử thời gian cụ thể được phân bổ cho các công việckhác nhau

• Mỗi quá trình sẽ có cơ hội lên lịch lại sau một thời gian lượng tử cụ thể

Trang 14

• Một bộ lập lịch vòng tròn thường sử dụng tính năng chia sẻ thời gian Điều này có nghĩa là cung cấp cho mỗi công việc một khe thời gian hoặc lượng tử

Nhược điểm:

• Nếu thời gian ngắt của hệ điều hành thấp, đầu ra của bộ xử lý sẽ bị giảm

• Hiệu suất bị phụ thuộc nhiều vào lượng tử thời gian

• Không ưu tiên cho những việc quan trọng khi lập lịch vòng tròn

• Phương pháp này mất nhiều thời gian cho việc chuyển đổi ngữ cảnh

• Lượng tử thời gian thấp nên dẫn đến quá trình chuyển đổi ngữ cảnh trong hệthống cao hơn

• Trở ngại trong việc tìm một lượng tử thời gian chính xác

• Không đặt được mức độ ưu tiên

• Khả năng hiểu suy giảm

Thí dụ:

Lập kế hoạch Round –robin được diễn ra theo các bước sau:

Hàng đợi tiến trình Thời gian bắt đầu tiến trình

Trang 15

Bước 1: Quy trình P1 bắt đầu được thực thi với thời gian bắt đầu là 4 trong khi đó P2

và P3 đang ở hàng đợi Mỗi quy trình này đều diễn ra trong khoảng thời gian là 2s

Bước 2: P1 sẽ được thêm vào cuối hàng đợi khi at time = 2 và lúc này P2 được thực

thi

Bước 3: P3 được thực thi và P2 được thêm vào cuối hàng đợi khi at time = 4.

Trang 16

Bước 4: P1 được thực thi khi at time = 6 và P3 lại thêm vào cuối hàng đợi.

Bước 5: Thời gian nổ của P1 là 4 vì thế khi at time = 8 thì P1 hoàn thành việc thực

thi, kế tiếp sẽ là P2

Bước 6: Thời gian nổ của P2 là 3 như vậy khi at time = 9 P2 sẽ thực thi xong, quá

trình thực thi P3 bắt đầu cho đến khi hoàn thành

Trang 17

Bước 7: Thời gian chờ trung bình của ví dụ trên được tính như dưới đây:

Thời gian chờ đợi:

 P1= 0+ 4= 4

 P2= 2+4= 6

 P3= 4+3= 7

Trang 18

e) Multi Level Queue (MLQ)

Multi Level Queue là một thuật toán lập lịch (scheduling) trong hệ điều hành,

nơi các tiến trình (processes) được phân loại và ưu tiên theo nhiều mức độ khác nhau Mỗi mức độ sẽ có một queue (hàng đợi) riêng để lưu trữ các tiến trình

Trong thuật toán Multi Level Queue, các tiến trình được phân loại vào các queue khác nhau dựa trên các yếu tố như độ ưu tiên giảm dần: thời gian hoàn thành, thời gian đáp ứng, v.v Các tiến trình trong cùng một queue sẽ được ưu tiên

xử lý trước các tiến trình trong các queue khác

Thuật toán Multi Level Queue thường được sử dụng trong các hệ thống đa nhiệm (multitasking) để đảm bảo việc xử lý các tiến trình được ưu tiên và hiệu quả hơn Tuy nhiên, việc thiết lập các queue khác nhau và định nghĩa các tiêu chí phân loại tiến trình có thể là một thách thức đối với các nhà phát triển hệ thống

Cách hoạt động:

Thuật toán Multi Level Queue (MLQ) chia các tiến trình trong hệ thống vào các hàng đợi (queue) khác nhau dựa trên mức độ ưu tiên của chúng Các hàng đợi này được sắp xếp theo thứ tự ưu tiên giảm dần Cụ thể, các tiến trình ưu tiên cao sẽđược đưa vào các hàng đợi ưu tiên cao hơn, trong khi các tiến trình ưu tiên thấp hơn sẽ được đưa vào các hàng đợi ưu tiên thấp hơn

Khi một tiến trình được tạo ra, nó sẽ được đưa vào hàng đợi ưu tiên cao nhất, tùy thuộc vào độ ưu tiên của tiến trình đó Các tiến trình trong hàng đợi cao nhất sẽ được CPU thực thi đầu tiên Nếu một tiến trình đang chạy trong hàng đợi cao nhất nhưng không hoàn thành trong một khoảng thời gian nhất định, nó sẽ bị đẩy xuống hàng đợi ưu tiên thấp hơn để các tiến trình khác ưu tiên cao hơn được thực thi trước

Trong hệ thống MLQ, mỗi hàng đợi sẽ có một bộ lập lịch riêng biệt để quản

lý các tiến trình trong hàng đợi đó Các bộ lập lịch này có thể sử dụng các thuật toán lập lịch khác nhau, tùy thuộc vào đặc tính của các tiến trình trong hàng đợi đó

Ví dụ, các tiến trình ưu tiên cao có thể sử dụng thuật toán Round Robin để đảm bảo tính công bằng, trong khi các tiến trình ưu tiên thấp hơn có thể sử dụng thuật toán First-Come, First-Serve để đơn giản hóa quá trình lập lịch

Một số hệ thống MLQ có thể có nhiều hơn hai hàng đợi và các tiến trình có thể được đưa qua lại giữa các hàng đợi khác nhau, tùy thuộc vào các tham số như thời gian chờ đợi và độ ưu tiên của tiến trình Tuy nhiên, việc sử dụng quá nhiều hàng đợi có thể làm tăng độ phức tạp của hệ thống và làm giảm hiệu suất của nó

Ngày đăng: 18/03/2024, 16:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w