1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo btl hệ điều hành đề tài so sánh các thuật toán lập lịch cho cpu

35 5 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

Định dạng
Số trang 35
Dung lượng 3,49 MB

Nội dung

Chẳng hạn như qua môn học Hệ Điều Hành mà các bạn đã có thể nắm vững sơ bộlý thuyết về cách thức mà các hệ điều hành hoạt động và cách chúng sử dụng bộ nhớRAM, phân chia dung lượng CPU v

Trang 1

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

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO BTL HỆ ĐIỀU HÀNH

Đề tài: So sánh các thuật toán lập lịch cho CPU

Trang 2

Hà Nội, 2-2023

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU VỀ MỤC ĐÍCH VÀ NỘI DUNG BÁO CÁO 3

1.1 Đặt vấn đề 3

1.2 Các bài báo nghiên cứu 3

1.3 Giải quyết vấn đề 6

CHƯƠNG 2 NỘI DUNG VÀ CÁCH THỨC NHÓM TIẾN HÀNH 6

2.1 Các vấn đề được triển khai 6

2.2 Cách thức triển khai mô phỏng 7

2.1.1 Code mô phỏng hoạt động 7

2.1.2 Đo Time Slice 10

CHƯƠNG 3 KẾT QUẢ MÔ PHỎNG 14

CHƯƠNG 4 NHẬN XÉT KÉT QUẢ 33

4.1 So sánh các thuật toán lập lịch 33

4.2 So sánh với giá trị được định nghĩa trong rt.h của linux 35

Link tài liệu tham khảo 36

Trang 3

CHƯƠNG 1 GIỚI THIỆU VỀ VẤN ĐỀ PROCESS SCHEDULING

1.1 Đặt vấn đề

Hiện nay môn các sinh viên đã được tiếp cận về kiến thức các hệ điều hành mới,khác lạ hơn so với hệ điều hành mà các sinh viên thường sử dụng hằng ngày

Chẳng hạn như qua môn học Hệ Điều Hành mà các bạn đã có thể nắm vững sơ bộ

lý thuyết về cách thức mà các hệ điều hành hoạt động và cách chúng sử dụng bộ nhớRAM, phân chia dung lượng CPU và cách thức quản lý bảo mật các dữ liệu

Trong đó có thể nhắc tới một phần quan trọng đó chính là cách hệ điều hành sửdụng các thuật toán lập lịch lên các tiến trình qua đó phân bố dung dượng CPU cho cáctiến trình với mức độ ưu tiên khác nhau để có thể đạt được kết quả là các tiến trình chạytrơn tru

1.2 Các bài báo và nghiên cứu

Việc sử dụng các thuật toán lập lịch và cách thức hoạt động của chúng cụ thể ởđây là trong hệ điều hành Linux đã được nhiều người quan tâm qua đó mà có một lượnglớn các báo cáo, phân tích và nghiên cứu về cách thức hoạt động của hệ điều hành đối vớicác phép lập lịch:

Bài báo 1: Comparison of Different CPU Scheduling Algorithms in OS

Trang 4

Ở bài báo này chúng ta có thể thấy qua được là nó nói về các định nghĩa của cácthuật toán, cách thức chúng triển khai trong hệ điều hành Qua đó đưa ra sự so sánh bảngthống kê sự khác biệt với nhau giữa cách thức triền khai và ứng dụng của các phép lậplịch này.

Bài báo 2: FCFS Scheduling Algorithm: What is, Example Program

Trang 5

Trong bài báo này tác giả đã đề cập chi tiết về phương pháp lập lịch: FCFS mộtphép lập lịch cực kì phổ biến và đặc trưng trong các phép lập lịch Nhưng có thể trong bàibáo này tác giả cũng chỉ đề cập đến việc định nghĩa thuật toán cách hoạt động, và đưa ra

Trang 6

một số cách giải thích bằng nói qua ví dụ không trực quan mà chỉ là các kí tự, con sốkhông hề trực quan

Nhóm cũng đã tìm rất nhiều nguồn tài liệu và các báo khác trên Internet nhưng kếtquả tìm được lại khá giống nhau khi các báo cáo này chỉ cung cấp cho người đọc mộtkhối lượng kiến thức lý thuyết lớn về vấn đề lập lịch cho tiến trình ở trong hệ điều hành.Thứ mà học sinh, sinh viên cần nhất là các báo cáo, thông tin về việc mô phỏng cách thức

và phương pháp hoạt động của các thuật toán lập lịch lại còn rất ít (Theo ngôn ngữ ViệtNam) và cũng khó tiếp cận, hiểu rõ ràng (Tài liệu tiếng anh)

1.3 Giải quyết vấn đề

Vì hiểu rõ sự quan trọng của môn học này, đồng thời cũng cấp cho các bạn sinhviên khác một số thông tin trực quan về vấn đề lập lịch tiến trình trong hệ điều hành.Đồng thời hoàn thiện nội dung báo cáo môn học Nhóm đã quyết định mô phỏng lại cáchcác thuật toán nay hoạt động cụ thể như thế nào ngay trên hệ điều hành Linux bằng cáchlập trình trực tiếp và cho ra kết quả trực quan

CHƯƠNG 2 NỘI DUNG, CÁCH THỨC NHÓM TIẾN HÀNH

2.1 Các vấn đề được triển khai

Điều kiện cần khi thực hiện bài báo cáo: Các thành viên trong nhóm nắm vữngđược lý thuyết về các phép lập lịch, cách chúng hoạt động, cách chúng sử dụng mức độ

ưu tiên của các tiến trình trong hệ điều hành như thế nào

Trong báo cáo này, nhóm thực hành tạo các tạo các tiến trình riêng (các tiến trìnhnày giống hệt nhau), cho các tiến trình đó chạy các thuật toán lập lịch:

Trang 7

Thu thập số liệu vẽ biểu đồ so sánh trước và sau thông tin thời gian chạy của cáctiến trình sử dụng các kiểu lập lịch Đưa ra kết luận cho mỗi lần mô phỏng riêng cho mỗikết quả thu được

Từ đó tập hợp kết luận lại, lập bảng so sánh đối chiếu với lý thuyết thực tế

2.2 Cách thức triển khai hoạt động mô phỏng

2.2.1 Lập trình mô phỏng hoạt động

Process A và B:

• Tạo 2 process chạy vòng lặp vô tận:

o Process A: in ra “process A”

o Process B: in ra “process B”

Process chính:

• Có 2 hàm run_process1(pid1) và run_process2(pid2)

o (pid1, pid2 là ID của process)

• Hai hàm này sử dụng hàm posix_spawn để tạo process nhận ID tương ứng

Trang 8

o posix_spawn() = 0 khi process được tạo thành công.

• Hai hàm này cho phép in ra kết quả của process vừa tạo khi posix_spawn() = 0,ngược lại sẽ trả về lỗi

Một số lệnh sử dụng

Top:

• Sử dụng lệnh Top dùng để quan các tiến trình hiện tại đang xuất hiện trên hệthống:

Trang 9

Real time processes :

• PR = - 1 - real_time_priority (real_time_priority ranges from 1 to 99)

Trang 10

Xem priority và scheduling policy

• Hiện process đang chạy ở SCHED_OTHER, priority = 0

Sửa priority và scheduling policy

• Sử dụng sudo chrt –p –f <pri> <PID> để chỉnh process có ID = <PID> vềSCHED_FIFO với priority = <pri>

Renice

Sửa đổi giá trị nice cho các normal process

• Sử dụng sudo renice –n <NI> –p <PID> để chỉnh process có ID = <PID>

về priority = <NI>

2.2.2 Đo Time slice

Sơ lược hoạt động của chương trình:

• Trình mô phỏng gồm 4 thread A(Thread1), B(Thread2),C (Thread3), D (Thread4)

• Sử dụng biến currentThread để theo dõi Thread nào đang hoạt động:

o currentThread = 0 -> thread A

Trang 12

Sơ lược hoạt động của chương trình:

• Tương tự với các thread 2, 3, 4

Sơ lược hoạt động của chương trình:

• Hàm main:

Set up các thông tin cơ bản của thread:

o Param

Trang 13

o Priority.

o Scheduling policy

Tạo thread sử dụng lệnh pthread_create()

Join thread vừa tạo vào thread main sử dụng lệnh pthread_join()

o Các giá trị trên sẽ được tùy biến thay đổi dựa theo điều kiện đo

Trang 14

CHƯƠNG 3 Kết quả mô phỏng

3.1 Mô phỏng Sched_other

So sánh hai process (1):

• Sử dụng code Mô phỏng hành vi hoạt động

• Process A chạy ở Sched_other

• Process B chạy ở Sched_other

• Dùng lệnh chrt kiểm tra scheduling policy và priority của từng process

• Hiện tại 2 process A, B đang cùng sử dụng SCHED_OTHER với priority =0

Trang 15

Kết quả:

Ta thấy các giá trị “Process A”, “Process B” được in ra gần như luân phiên nhau.Hai process này đang có độ ưu tiên như nhau nên thời gian chúng chiếm dụngCPU cũng như nhau

• Hàm main hoàn chỉnh:

Sử dụng code Đo time slide

Chỉnh thông số -> 4 thread sử dụng sched_other với priority lần lượt là 15 – 10 –

5 – 0

Trang 16

• Bảng thời gian thread chiếm dụng CPU

Trang 17

0 1000000

So sánh hai process (2):

• Process A chạy ở Sched_other

• Process B chạy ở Sched_other

• Sử dụng renice:

PR của process A : 15 + 20 = 35

PR của process B không sửa đổi

Trang 19

• Bảng thời gian thread chiếm dụng CPU

Trang 20

A C B C C B C C B B B B B 0

So sánh hai process (3):

• Process A chạy ở sched_other

• Process B chạy ở sched_batch

Trường hợp 1:

• Cả hai có mức độ ưu tiên như nhau

Trang 21

Kết quả:

Hai process sử dụng CPU như nhau,

như vậy với cùng mức độ ưu tiên, sched_other và sched_batch đều có thể sửdụng CPU như nhau

Trang 22

So sánh hai process:

• Process A chạy ở sched_other

• Process B chạy ở sched_idle

Ta thấy process B “thi thoảng” biến mất trên lệnh top do nó chạy ở trạng thái

“idle”

Kết quả:

Với cùng mức độ ưu tiên, ta thấy process A chiếm toàn bộ thời gian sử dụngCPU, không thấy được bất kì “Process B” được in ra

• Tăng mức độ ưu tiên lên cho process B lớn hơn nhiều process A

Tuy nhiên ta vẫn thấy process A chiếm toàn bộ CPU, chỉ rất ít khi process B có thể

sử dụng CPU

Trang 23

So sánh hai process (4):

• Process A chạy ở sched_batch,

• Process B chạy ở sched_idle

Trang 24

• Tăng mức độ ưu tiên cho process B.

Trang 25

Kết quả:

Process A chiếm toàn bộ thời gian sử dụng CPU

Khi ta kill Process hoặc tạm dừng process B, nếu cả hai cùng ưu tiên như nhauthì process A sẽ được toàn quyền dùng CPU, khi process B resume thì chúng lạichia sẻ CPU như trước

Trang 26

Thread Thời gian chiếm dụng CPU

Với SCHED_RR, tuy có một vài trường hợp xuất hiện giá trị đột biến lớn nhưng

về tổng thể có thể thấy time slice được fix cứng cho từng thread với giá trị

So sánh hai process (6):

Trang 27

• Process B chạy ở Sched_RR,

• Process A chạy ở Shced_Other,

Kết quả:

Process B sẽ chiếm toàn quyền sử dụng CPU do process A luôn ưu tiên hơn(realtime process)

So sánh hai process (7):

• Process A chạy ở sched_FF

• Process B chạy ở sched_FF

Trường hợp 1:

• Cả hai có mức độ ưu tiên như nhau

Tiến trình nào dùng CPU trước sẽ chiếm CPU trước

Trường hợp 2 :

Trang 28

• Khi một process ưu tiên cao hơn được đặt lại cho ưu tiên thấp hơn, bị tạm dừnghoặc kill thì

tiến trình còn lại sẽ lấy toàn bộ CPU

So sánh hai process (8):

• Process A chạy ở Sched_Other

• Process B chạy ở Sched_FF

Kết quả:

Trang 29

Độ ưu tiên không có tác động đáng kể

Tiến trình B sẽ chiếm toàn bộ CPU do nó được ưu tiên hơn (B là real-timeprocess)

• Process A chạy ở Sched_FF

• Process B chạy ở Sched_RR

• Cả 2 có mức độ ưu tiên như nhau

Kết quả:

Hai process cùng sử dụng CPU

Tuy nhiên thời gian sử dụng khác nhau, lúc process A sử dụng CPU lâu hơn, lúclại sử dụng ít hơn nhưng cả process A và process B đều có được một khoảng thờigian dài sử dụng CPU

So sánh hai process:

Trang 30

• Process A chạy ở Sched_RR.

• Process B chạy ở Sched_FF

• Process A có mức độ ưu tiên cao hơn.Kết quả:

Process A sẽ chiếm toàn quyền sử dụng CPU

So sánh hai process (9):

• Process A chạy ở Sched_FF

• Process B chạy ở Sched_RR

• Process A có mức độ ưu tiên cao hơn.Kết quả:

Process A sẽ chiếm toàn quyền sử dụng CPU

Trang 31

Sched_Idle

sử dụngCPU

Sched_F

F process

có thời gian hoạt động thất thường hơn Sched_

RR process

Process A chiếm toàn quyền CPU

Process A chiếm toàn quyền CPU

Process

A chiếm toàn quyền CPU

nào được cấp quyền trước sẽkhông nhường

Process A chiếm toàn quyền CPU

Process A chiếm toàn quyền CPU

Process

A chiếm toàn quyền CPU

Trang 32

CPU chođến khi hết Burst time của nóSched_Oth

Các process luân phiên

sử dụng CPU

Thời gian chiếm dụng CPU tương tự nhau

Các process luân phiên

sử dụng CPU

Thời gian chiếm dụng CPU tương tự nhau

Process

A chiếm toàn quyền CPU

process luân phiên

sử dụng CPU

Thời gian chiếm dụng CPU tương tự nhau

Process

A chiếm toàn quyền CPU

Bảng kết quả Mô phỏng hành vi giữa các thuật toán – Độ ưu tiên process A > process B Pro

Sched_batch

Sched_Idle

Sched_RR Time slide

Process A chiếm toàn quyền CPU

Process A chiếm toàn quyền CPU

Process

A chiếm toàn quyền CPU

Trang 33

quyền

CPU

A khôngnhường CPU chođến khi hết Burst time của nó

Process A chiếm toàn quyền CPU

Process A chiếm toàn quyền CPU

Process

A chiếm toàn quyền CPU

Process A chiếm quyền CPUnhiều hơn Process B

Process A chiếm toàn quyền CPU

Process

A chiếm toàn quyền CPU

chiếm toàn quyền CPU

Process

A chiếm toàn quyền CPU

4.2 So sánh với giá trị được định nghĩa trong rt.h của linux

Timeslice được phân cho các process chạy ở SCHED_OTHER không đều, chúngkhông được fix cứng một giá trị timeslice cố định

Timeslice được phân cho các process chạy ở SCHED_RR được phân bố đều, fixcứng trong khoảng giá trị tầm 100ms, với cùng mức độ ưu tiên Giá trị 100mscũng trùng với giá trị được định nghĩa cho SCHED_RR trong file rt.h của linux

Trang 34

h琀琀ps://www.studocu.com/vn/course/truong-dai-hoc-bach-khoa-ha-noi/he-4 Slide h điêều hành c a thầềy Hàn Huy Dũngệ ủ

(Link:

h琀琀ps://drive.google.com/drive/folders/1-cd6amVh56PDK0QVtUbYt2aZZ1SQLyw8)

Trang 35

Thiếết b hỗỗ tr ị ợ

- Trong quá trình tìm hi u và nghiến c u b n em đã s d ng thiếết b :ể ứ ọ ử ụ ịMáy Laptop Thinkpad , máy tính laptop nitro5

- Vi điếều khi n:ể

11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz 2.42 GHz

Đ có th th c hi n vi c l p trình cũng nh đo đ c các thông sôố báo cáoể ể ự ệ ệ ậ ư ạ

Ngày đăng: 18/06/2024, 17:25

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w