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

Báo cáo giữa kỳ bài tập lớn hệ điều hành đề tài tìm hiểu và mô phỏng các thuật toán lập lịch cho cpu

41 7 0

Đ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 đề Tìm Hiểu Và Mô Phỏng Các Thuật Toán Lập Lịch Cho CPU
Tác giả Nguyễn Mạnh Toàn, Phùng Ngọc Tùng, Nguyễn Phương Linh, Đinh Việt Thắng, Kiều Đức Thành
Người hướng dẫn TS. Nguyễn Thanh Bình
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Điện Tử
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 41
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để cho các tiến trình được xử lý hiệu quả và thời gian đợi là ít nhất, hệ điều hành sẽ phải sử dụng một giải thuật lập lịch thích hợp nhất để chọn một trong các tiến trình trong hàng đợi

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

Giảng viên hướng dẫn: TS Nguyễn Thanh Bình

Nguyễn Mạnh Toàn 20200543 Điện tử 08 - K65 Phùng Ngọc Tùng 20203781 Điện tử 08 - K65 Nguyễn Phương Linh 20203730 Điện tử 08 - K65 Đinh Việt Thắng 20200607 Điện tử 08 - K65 Kiều Đức Thành 20203583 Điện tử 08 - K65

Hà Nội, 11/2023

Trang 2

LỜI NÓI ĐẦU

Hệ điều hành được coi là linh hồn của phần cứng máy tính, là môi trường để cho các chương trình thực thi trên nó Với chức năng phân phối và quản lý tài nguyên hợp

lý, đồng thời có thể tạo giao diện thân thiện với người dùng, hệ điều hành là một phần then chốt không thể thiếu được trong mỗi hệ thống máy tính điện tử

Trong môi trường xử lý đa nhiệm, có thể xảy ra tình huống nhiều tiến trình đồng thời sẵn sàng để được xử lý Điều này yêu cầu hệ điều hành sẽ phải lựa chọn và xử lý các tiến trình trong hàng đợi một cách hợp lý và hiệu quả Do đó, một trong những chức năng quan trọng không thể thiếu của hệ điều hành là lập lịch cho tiến trình

Để cho các tiến trình được xử lý hiệu quả và thời gian đợi là ít nhất, hệ điều hành

sẽ phải sử dụng một giải thuật lập lịch thích hợp nhất để chọn một trong các tiến trình trong hàng đợi Giải thuật phải tối ưu năng suất của CPU và giảm thời gian chờ đợi trung bình, giúp các tiến trình được thực thi nhanh chóng

Chính vì những tính năng đặc biệt mà giải thuật lập lịch tiến trình đem lại và để tìm hiểu kĩ về nguyên tắc hoạt động của chúng, nhóm chúng em sẽ cùng nhau tìm hiểu và

nghiên cứu đề tài: “Tìm hiểu và mô phỏng các thuật toán lập lịch cho CPU”

Nhóm chúng em xin gửi lời cảm ơn chân thành đến Thầy Nguyễn Thanh Bình đã hướng dẫn, đưa ra quy trình tìm hiểu để nhóm chúng em có thể hoàn thành được mục tiêu của đề tài Trong quá trình thực hiện đề tài, chúng em không tránh khỏi những thiếu sót, rất mong nhận được chỉ dẫn và góp ý của thầy để đề tài ngày càng hoàn thiện hơn

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 2

DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT 4

DANH MỤC HÌNH VẼ 5

PHÂN CÔNG CÔNG VIỆC 6

CHƯƠNG 1: LÝ THUYẾT CƠ BẢN VỀ HỆ ĐIỀU HÀNH 7

1.1 Giới thiệu chung về Hệ điều hành 7

1.2 Các chức năng của Hệ điều hành 7

1.3 Nhiệm vụ của Hệ điều hành 8

1.4 Phân loại hệ điều hành 8

CHƯƠNG 2: TỔNG QUAN VỀ TIẾN TRÌNH 9

2.1 Khái niệm tiến trình 9

2.2 Các trạng thái của tiến trình 10

2.3 Các đặc tính của tiến trình 11

2.4 Khối điều khiển tiến trình (Process Control Block) 11

CHƯƠNG 3: LẬP LỊCH CHO TIẾN TRÌNH 13

3.1 Chu kỳ CPU và I/O burst 13

3.2 Bộ lập lịch CPU (CPU Scheduler) 14

3.3 Bộ điều phối (Dispatcher) 14

3.4 Tiêu chuẩn lập lịch (Scheduling criteria) 15

3.5 Mục tiêu của lập lịch 15

3.6 Lập lịch ưu tiên (Preemptive Scheduling) 15

CHƯƠNG 4: GIẢI THUẬT LẬP LỊCH 17

4.1 Thuật toán First Come First Serve (FCFS) 17

4.2 Thuật toán Shortest Job First (SJF) 19

4.3 Thuật toán Shortest Remain Time First (SRTF) 22

4.4 Thuật toán Priority Scheduling 26

4.5 Thuật toán Round Robin (RR) 30

KẾT LUẬN 40

TÀI LIỆU THAM KHẢO 41

Trang 4

DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT

Từ viết tắt Định nghĩa và giải thích

CPU Central Processing Unit – Bộ xử lý trung tâm

PCB Process Control Block – Khối điều kiển tiến trình

Trang 5

DANH MỤC HÌNH VẼ

HÌNH 1 HỆ ĐIỀU HÀNH 7

HÌNH 2 PROCESS IN MEMORY 9

HÌNH 3 SƠ ĐỒ CHUYỂN TRẠNG THÁI CỦA TIẾN TRÌNH 10

HÌNH 4 PROCESS CONTROL BLOCK (PCB) 12

HÌNH 5 CHU KỲ LUÂN PHIÊN CỦA ĐỢT CPU VÀ I/O 13

HÌNH 6 BIỂU ĐỒ THỜI LƯỢNG CÁC ĐỢT CPU 14

HÌNH 7 MÔ TẢ THUẬT TOÁN FCFS 17

HÌNH 8 BIỂU ĐỒ PHÂN BỐ THỜI GIAN CỦA THUẬT TOÁN FCFS 18

HÌNH 9 MÔ TẢ THUẬT TOÁN SJF 20

HÌNH 10 BIỂU ĐỒ PHÂN BỐ THỜI GIAN CỦA THUẬT TOÁN SJF 21

HÌNH 11 BIỂU ĐỒ PHÂN BỐ THỜI GIAN CỦA THUẬT TOÁN SRTF 25

HÌNH 12 MÔ TẢ THUẬT TOÁN ROUND ROBIN 30

HÌNH 13 TIME QUANTUM VÀ CHUYỂN ĐỔI NGỮ CẢNH 35 HÌNH 14 LẬP LỊCH HÀNG ĐỢI ĐA CẤP (MULTILEVEL QUEUE SCHEDULING)

ERROR! BOOKMARK NOT DEFINED

HÌNH 15 CÁC HÀNG ĐỢI PHẢN HỒI ĐA CẤP (MULTILEVEL FEEDBACK QUEUES)

ERROR! BOOKMARK NOT DEFINED.

Trang 6

PHÂN CÔNG CÔNG VIỆC

1 Đinh Việt Thắng Tìm hiểu lý thuyết tiến trình, lý thuyết thuật

toán, soạn thảo báo cáo

2 Kiều Đức Thành Tìm hiểu lý thuyết lập lịch, lý thuyết thuật

toán, soạn thảo báo cáo

3 Nguyễn Phương Linh Tìm hiểu thuật toán, đề xuất mô phỏng cải

tiến Round Robin, soạn thảo báo cáo

4 Nguyễn Mạnh Toàn

Phùng Ngọc Tùng

Tìm hiểu và mô phỏng thuật toán, soạn thảo báo cáo, làm slide

Trang 7

CHƯƠNG 1: LÝ THUYẾT CƠ BẢN VỀ HỆ ĐIỀU HÀNH

Trong chương này, chúng em xin trình bày tổng quan về hệ điều hành Sau đó, chúng em sẽ trình bày khái niệm, các chức năng, nhiệm vụ và phân loại hệ điều hành

1.1 Giới thiệu chung về Hệ điều hành

Hệ điều hành là một phần mềm chạy trên máy tính và các thiết bị di động, dùng để điều hành, quản lý các thiết bị phần cứng và các tài nguyên phần mềm trên máy tính, và các thiết bị di động

Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng máy tính Khi khởi động máy tính, hệ điều hành được khởi động đầu tiên, sau

đó người sử dụng mới có thể sử dụng được các chương trình ứng dụng khác thông qua giao diện tương tác do hệ điều hành cung cấp

Hình 1 Hệ điều hành

1.2 Các chức năng của Hệ điều hành

Hệ điều hành có các chức năng chính sau:

Trang 8

- Quản lý tiến trình (process management)

- Quản lý bộ nhớ (memory management)

- Quản lý hệ thống lưu trữ

- Giao tiếp với người dùng

1.3 Nhiệm vụ của Hệ điều hành

➢ Điều khiển và quản lý trực tiếp các phần cứng

➢ Thực hiện một số thao tác cơ bản trong máy tính như các thao tác đọc, viết tập tin, quản lý hệ thống tập tin (file system) và các kho dữ liệu

➢ Cung ứng một hệ thống giao diện sơ khai cho các ứng dụng

➢ Cung ứng một hệ thống lệnh cơ bản để điều hành máy Các lệnh này gọi là lệnh hệ thống (system command)

1.4 Phân loại hệ điều hành

Phân loại hệ điều hành dưới góc độ người sử dụng và số chương trình được thực thi cùng lúc trong hệ điều hành:

❖ Hệ điều hành đơn nhiệm một người sử dụng

Hệ điều hành chỉ cho phép tại một thời điểm chỉ có một chương trình được thực thi Muốn thực hiện nhiều chương trình, các chương trình phải được thực hiện lần lượt Mỗi lần làm việc cũng chỉ có một người được đăng nhập vào hệ thống

VD: MS-DOS (tiền thân của hệ điều hành Windows hiện nay)

❖ Hệ điều hành đa nhiệm một người sử dụng

Hệ điều hành loại này chỉ cho phép một người đăng nhập vào hệ thống nhưng có thể kích hoạt cho hệ thống thực hiện nhiều chương trình đồng thời

VD: Hệ điều hành Windows 95

❖ Hệ điều hành đa nhiệm nhiều người sử dụng

Hệ điều hành loại này cho phép nhiều người đăng nhập vào hệ thống tại các thời điểm khác nhau (thông qua tên tài khoản - Account Name) và thực hiện đồng thời nhiều chương trình Hệ điều hành loại này phức tạp, đòi hỏi máy tính phải có bộ xử lí mạnh và

bộ nhớ trong lớn Đa số các hệ điều hành ngày nay là đa nhiệm nhiều người dùng

VD: Windows XP, Windows 7, Linux,

Trang 9

CHƯƠNG 2: TỔNG QUAN VỀ TIẾN TRÌNH

2.1 Khái niệm tiến trình

• Tiến trình (process) được coi là một chương trình (program)đang được xử lý

• Một tiến trình bao gồm:

- Giá trị tập thanh ghi của bộ xử lý

- Giá trị các vùng dữ liệu trong bộ nhớ như text (chứa mã code thực thi), data (chứa các biến toàn cục), heap (chứa các liên kết được cấp phát động) và stack

(lưu biến cục bộ, các tham số truyền vào hàm và địa chỉ trả về của hàm)

• Mục đích cho nhiều tiến trình hoạt động đồng thời:

- Tăng hiệu suất sử dụng CPU

- Tăng mức độ đa nhiệm

- Tăng tốc độ xử lý

Trang 10

2.2 Các trạng thái của tiến trình

❖ Tại một thời điểm, một tiến trình có thể nhận trong một các trạng thái sau đây:

• New: Tiến trình đang được tạo lập

• Running: Các chỉ thị của tiến trình đang được xử lý

• Ready: Tiến tình chờ được cấp phát CPU để xử lý

• Waiting: Tiến trình dừng để chờ được cấp phát tài nguyên, hoặc chờ thao tác

nhập xuất hoặc chờ một sự kiện nào đó

• Terminated: Tiến trình hoàn tất xử lý

Hình 3 Sơ đồ chuyển trạng thái của tiến trình

❖ Cách tiến trình chuyển trạng thái:

Đầu tiên, khi vừa khởi tạo, tiến trình sẽ ở trạng thái là new

Thông qua bộ định thời dài hạn Long-term Scheduler, tiến trình từ new sẽ được sắp xếp vị trí để vào trong hàng đợi ready

Thông qua bộ định thời Short-term Scheduler, từ trạng thái ready tiến trình sẽ được sắp xếp để chuyển qua trạng thái running (là trạng thái chạy - trạng thái sử dụng

Trang 11

ready: Khi tiến trình bị interrupt (bị ngắt) bởi Short-term Scheduler Các lý do

ngắt có thể là: 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)

terminated: Khi ứng dụng thực thi xong: Khi gặp lệnh exit

2.3 Các đặc tính của tiến trình

a/ Tính hướng nhập/xuất (I/O-boundedness):

Tiến trình khi thực thi, đa số là các thao tác nhập xuất, rất ít lệnh xử lý

b/ Tính hướng xử lý (CPU-boundedness):

Tiến trình khi thực thi, đa số là các thao tác tính toán và xử lý, rất ít thao tác nhập/xuất

c/ Tiến trình tương tác hay xử lý theo lô:

Khi có cả hai tiến trình tương tác và xử lý theo lô, tiến trình xử lý theo lô có thể được tạm dừng và ưu tiên cho tiến trình tương tác được phản hồi ngay lập tức Vì tiến trình tương tác thường yêu cầu thời gian phản hồi nhanh Còn xử lý theo lô chạy ngầm nên có thể trì hoãn

d/ Thời gian đã sử dụng CPU của tiến trình

Các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng

f/ Thời gian còn lại tiến trình cần để hoàn tất

Có thể giảm thiểu thời gian chờ đợi trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tất được thực hiện trước Tuy nhiên hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý

2.4 Khối điều khiển tiến trình (Process Control Block)

Hệ điều hành quản lý các tiến trình trong hệ thống thông qua khối điều khiển tiến trình (process control block - PCB)

Trang 12

Hình 4 Process Control Block (PCB)

PCB là một cấu trúc dữ liệu chứa những thông tin về tiến trình, bao gồm:

- Trạng thái của tiến trình (process state): new, ready, waiting, …

- Thanh ghi program counter: chứa địa chỉ của lệnh tiếp theo được thực thi trong tiến trình này

- Tập thanh ghi CPU

- Thông tin lập lịch của CPU (*)

- Thông tin về bộ nhớ (memory): quản lý thông tin bộ nhớ cấp phát cho tiến trình

- I/O status: danh sách các thiết bị vào ra, danh sách các file đang mở

Trang 13

CHƯƠNG 3: LẬP LỊCH CHO TIẾN TRÌNH

Trong hệ thống đơn nhiệm, tại một thời điểm chỉ có một tiến trình được thực thi,

các tiến trình khác (ready) phải đợi tiến trình đang thực thi hiện tại (running) hoàn thành

rồi mới được cấp CPU Mục tiêu là luôn có một số tiến trình chạy để tối đa hóa việc sử dụng CPU

3.1 Chu kỳ CPU và I/O burst

Qúa trình thực thi tiến trình bao gồm một chu kỳ thực thi CPU và chờ I/O Các tiến trình luân phiên giữa 2 trạng thái này Qúa trình thực thi bắt đầu với một đợt CPU (CPU burst), tiếp theo là một đợt I/O (I/0 burst), tiếp theo là một đợt CPU khác, sau đó là một đợt I/O khác … Cuối cùng, đợt CPU cuối cùng kết thúc với yêu cầu hệ thống chấm dứt thực thi

Hình 5 Chu kỳ luân phiên của đợt CPU và I/O

Thời lượng của các đợt CPU đã được đo rộng rãi Mặc dù chúng khác nhau rất nhiều từ tiến trình này sang tiến trình khác và từ máy tính này sang máy tính khác, chúng

có xu hướng có đường cong tần số tương tự như trong hình bên dưới Đường cong

Trang 14

thường được đặc trưng là hàm mũ hoặc siêu mũ, với một số lượng lớn các đợt CPU ngắn

và một số lượng nhỏ các đợt CPU dài

Hình 6 Biểu đồ thời lượng các đợt CPU

3.2 Bộ lập lịch CPU (CPU Scheduler)

Khi CPU không hoạt động, hệ điều hành phải chọn 1 trong các tiến trình trong hàng đợi sẵn sàng để thực thi Quá trình lựa chọn được thực hiện bởi bộ lập lịch CPU (bộ lập lịch ngắn hạn) Bộ lập lịch chọn 1 tiến trình đã sẵn sàng để thực thi và phân bổ CPU cho tiến trình đó

Lưu ý rằng hàng đợi sẵn sàng có thể được triển khai dưới dạng hàng đợi FIFO, hàng đợi ưu tiên, cây hoặc đơn giản là danh sách liên kết không có thứ tự

Việc một tiến trình chiếm CPU trong thời gian dài sẽ làm cho các tiến trình trong hàng đợi sẵn sàng bị rơi vào trạng thái chờ vô hạn Từ đó làm lãng phí tài nguyên, gây chậm toàn hệ thống Do đó, lập lịch giúp tận dụng tài nguyên hệ thống một cách triệt để

3.3 Bộ điều phối (Dispatcher)

Một thành phần khác liên quan đến lập lịch CPU là bộ điều phối Bộ điều phối là mô-đun trao quyền điều khiển CPU cho tiến trình được chọn bởi bộ lập lịch ngắn hạn Chức năng này bao gồm những điều sau đây:

- Chuyển ngữ cảnh (switching context)

- Chuyển sang chế độ người dùng

- Chuyển đến vị trí thích hợp trong chương trình người dùng để khởi động lại chương

Trang 15

trình đó

Bộ điều phối phải càng nhanh càng tốt, vì nó được gọi mỗi lần chuyển đổi tiến trình Thời gian cần thiết để bộ điều phối dừng 1 tiến trình và bắt đầu chạy 1 tiến trình khác được gọi là độ trễ điều phối

3.4 Tiêu chuẩn lập lịch (Scheduling criteria)

Một số tiêu chuẩn lập lịch của tiến trình cần được quan tâm như:

➢ Mức sử dụng CPU (CPU Utilization): Hệ thống phải tận dụng được CPU tối đa

thời gian CPU càng bận rộn càng tốt (max) (trong khoảng 40 – 90%)

➢ Thông lượng (Throughput ): Số lượng tiến trình hoàn thành trong một đơn vị

thời gian Tiến trình chạy càng nhanh càng tốt (Thông lượng càng lớn càng tốt) (10 tiến trình / giây – 1 tiến trình / giờ)

➢ Thời gian quay vòng (Turnaround Time): Khoảng thời gian từ thời điểm gửi

tiến trình tới khi tiến trình hoàn thành, cần đạt min Thời gian quay vòng càng ngắn thì thông lượng càng lớn

Thời gian quay vòng = thời gian chờ đợi truy cập bộ nhớ + thời gian chờ trong hàng đợi sẵn sàng + thời gian thực thi trên CPU + thực thi I/O

➢ Thời gian chờ (Waiting Time): tổng thời gian chờ trong hàng đợi sẵn sàng, cần

phải nhỏ nhất Thời gian chờ càng lâu thì thời gian quay vòng càng kéo dài dẫn đến thông lượng giảm xuống (Min)

➢ Thời gian phản hồi (Response time): Thời gian từ lúc người dùng gửi yêu cầu

đến lúc có phản hồi đầu tiên, phải nhỏ nhất (Min)

3.5 Mục tiêu của lập lịch

➢ Đảm bảo sự công bằng trong việc phục vụ các tiến trình, tránh tình trạng bị rơi vào trạng thái chờ vô hạn

➢ Tối đa hóa số lượng tiến trình được phục vụ trong một đơn vị thời gian

➢ Tối thiểu chi phí, tài nguyên hệ thống

3.6 Lập lịch ưu tiên (Preemptive Scheduling)

• Các quyết định lập lịch CPU có thể diễn ra trong bốn trường hợp sau:

- Khi một tiến trình chuyển từ trạng thái đang chạy sang trạng thái chờ (ví dụ: do

yêu cầu từ I/O hoặc gọi hàm wait () để kết thúc một tiến trình con)

- Khi một tiến trình chuyển từ trạng thái đang chạy sang trạng thái sẵn sàng (ví

Trang 16

• Khi việc lập lịch chỉ diễn ra trong trường hợp 1 và 4, lập lịch là không ưu tiên

(nonpreemptive) Nếu không, lập lịch là ưu tiên (preemptive)

• Trong lập lịch không ưu tiên, một khi CPU đã được phân bổ cho một tiến trình, tiến trình sẽ giữ CPU cho đến khi nó giải phóng CPU bằng cách kết thúc hoặc bằng cách

chuyển sang trạng thái chờ

Trang 17

CHƯƠNG 4: GIẢI THUẬT LẬP LỊCH

Trong chương này, chúng em xin trình bày về các giải thuật lập lịch: First Come First Serve, Shortest Job First, Shortest Remaining Time First, Round Robin Sau đó, chúng

em sẽ so sánh ưu điểm và nhược điểm của từng giải thuật trên

4.1 Thuật toán First Come First Serve (FCFS)

Trong thuật toán này, độ ưu tiên phục vụ tiến trình căn cứ vào thời điểm hình thành

tiến trình Hàng đợi các tiến trình được tổ chức theo kiểu FIFO (First In First Out), vào

trước sẽ được phục vụ trước Mọi tiến trình đều được phục vụ theo trình tự xuất hiện cho đến khi kết thúc hoặc bị ngắt

Hình 7 Mô tả thuật toán FCFS

Ví dụ: Cho các tiến trình với thời gian đến và thời gian thực thi Sử dụng thuật toán lập lịch FCFS để lập lịch cho các tiến trình

Tiến trình Thời điểm đến (s) Thời gian thực thi (s)

Trang 18

Tại thời điểm t=0, tiến trình P1 đến trước và thực hiện trước (với thời gian thực thi

là 11s)

Tại t = 11, tiến trình P1 thực hiện xong đến tiến trình P2 bắt đầu thực hiện

Tại t = 18, tiến trình P2 thực hiện xong đến tiến trình P3 bắt đầu thực hiện

Tại t = 37, tiến trình P3 thực hiện xong đến tiến trình P4 bắt đầu thực hiện

Tại t = 41, tiến trình P4 thực hiện xong đến tiến trình P5 bắt đầu thực hiện

Hình 8 Biểu đồ phân bố thời gian của thuật toán FCFS

Thời gian chờ (s)

Trang 19

P5 17 9 24 41 50

Từ bảng trên ta tính được thời gian chờ trung bình của các tiến trình là

0 11 18 37 41

135

+ + + +

= giây

Nhận xét:

• Có thể một tiến trình có thời gian xử lý ngắn phải chờ một tiến trình có thời gian xử

lý dài thực thi xong

• Thời gian chờ trung bình phụ thuộc vào thứ tự của các tiến trình trong danh sách sẵn sàng

Ưu điểm:

• Dạng đơn giản nhất của thuật toán lập lịch CPU → dễ dàng lập trình

• CPU không bị phân phối lại (không bị ngắt)

• Ai đến trước được phục vụ trước

• Chi phí thực hiện thấp nhất (vì không phải thay đổi thứ tự ưu tiên phục vụ, thứ tự ưu tiên là thứ tự của tiến trình trong hàng đợi)

Nhược điểm:

• Thời gian chờ trung bình cao

• Là một thuật toán không mang tính ưu tiên non-preemptive, vì vậy sau khi tiến trình

đã được cấp phát cho CPU, nó sẽ không bao giờ giải phóng CPU cho đến khi nó kết thúc quá trình thực thi

• Khi có tiến trình dài, ít bị ngắt thì các tiến trình ngắn ở phía sau hàng đợi phải chờ đợi lâu hơn

4.2 Thuật toán Shortest Job First (SJF)

Thuật toán này xác định thứ tự ưu tiên thực hiện tiến trình dựa vào tổng thời gian thực hiện tiến trình Tiến trình có thời gian thực hiện ngắn sẽ được ưu tiên phục vụ cho lần thực hiện tiếp theo Nếu có các tiến trình có tổng thời gian thực hiện bằng nhau thì sẽ áp dụng FCFS

Trang 20

Hình 9 Mô tả thuật toán SJF

Ví dụ: Cho các tiến trình với thời gian đến và thời gian thực thi Sử dụng thuật toán lập lịch SJF để lập lịch cho các tiến trình

Tiến trình Thời điểm đến (s) Thời gian thực thi (s)

lý trước

Tại thời điểm t = 11s, P1 xử lý xong, P2 được xử lý (với thời gian xử lý xong là 7s) Trong khoảng thời gian P2 thực thi (từ 11 -> 18s), tiến trình P4 và P5 đến (tại thời điểm t

= 13s và t = 17s) và được đưa vào hàng đợi

Lúc này trong hàng đợi có các tiến trình P3, P4, P5 với thời gian thực thi lần lượt là (19s, 4s, 9s) Như vậy P4 có thời gian thực thi nhỏ nhất nên sẽ được ưu tiên thực thi tiếp

Ngày đăng: 05/12/2023, 05:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w