Tổng quát lập lịch cho CPU Khái niệm cơ bản về lập lịch trong CPU Lập lịch CPU là quy trình quan trọng trong hệ điều hành, giúp tối ưu hóa việc sử dụng tài nguyên CPU để đáp ứng nhu cầ
Trang 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHENIKAA
(2 es
UNIVERSITY
BAO CAO BAI TAP LON
HOC PHAN HE DIEU HANH LAP LICH CHO CPU TRONG WINDOWS
Ho và tên sinh viên:
Mã sinh viên:
Ngành học:
Khóa:
Tên lớp:
Vũ Quốc Việt
22010256 Công nghệ thông tin K16
CNTTI
Hà Nội, Năm 2024
Trang 2
MỤC LỤC
Nội dung
1.1 Tổng quát lập lịch cho CPU L- - 1S S1 3E S3 1111 TH HE HH TH ngay 1.1.1 Khái niệm cơ bản về lập lịch trong CPU - - 5c n St serrrrrrree
1.1.2 Khái niệm cơ bản về các thuật toán lập - 5c Sc 2+ Se E2 errrrerex
1.2 Lap lich cho CPU trong WindOwS na
1.2.1 Cơ bản về việc lập lich cho CPU tron Wind OWS .c.ccccccesssscessescsssersseseeseenseseeeseens 1.2.2 Một số thuật toán được sự dụng trong lập lich cho CPU trong Windows 1.2.3 Một số khái niệm và điều cần hiểu trong việc lập lịch cho CPU trong
M0) o TP
2 "c6
2 _ Ví dụ và liên hệ về lập lịch cho CPU trong Windows cành eireerrey
2.1 — Ví dụ về lập lịch cho CPU trong WindOWS à- Q LH nàng HH ngư 2.1.1 — liên hệ về lập lịch cho CPU trong Windows - ác cty
Trang 31 Lập lịch cho CPU trong Windows
1.1
1.1.1
Tổng quát lập lịch cho CPU
Khái niệm cơ bản về lập lịch trong CPU
Lập lịch CPU là quy trình quan trọng trong hệ điều hành, giúp tối ưu hóa việc sử
dụng tài nguyên CPU để đáp ứng nhu cầu chạy các tiến trình của người dùng Có
nhiều thuật toán lập lịch CPU hiệu quả như FCFS, SJF, SRTF và RR để đảm bảo các
tiến trình được thực hiện một cách hiệu quả và chính xác Với quy trình này, người
dùng có thể đồng thời chạy nhiều ứng dụng mà không bị gián đoạn hoặc ảnh hưởng đến hiệu suất của hệ thống Chính vì vậy, lập lịch CPU đóng vai trò quan trọng trong
việc nâng cao trải nghiệm người dùng trên các thiết bị điện tử
1.1.2 Khái niệm cơ bản về các thuật toán lập
Dưới đây là một số thuật toán phổ biển của lập lịch
First-Come-First-Serve (FCFS): Tiến trình đến trước sẽ được thực hiện trước Đây là
a, u
thuật toán đơn giản nhất, nhưng có thể dẫn đến hiện tượng "đợi lâu" cho các tiến trình sau đến nếu tiến trình đầu tiên là một tiến trình dài hạn
Shortest Job First (SJF): Chọn tiến trình có thời gian thực hiện ngắn nhất để thực
hiện trước Có cả SJF không ưu tiên (non-preemptive) và SIF ưu tiên (preemptive)
Priority Scheduling: Mỗi tiến trình được gán một mức độ ưu tiên, và tiến trình có
mức độ ưu tiên cao nhất sẽ được thực hiện trước
Round Robin (RR): Các tiến trình được thực hiện theo chu kỳ cố định, mỗi tiến trình
được thực hiện trong một khoảng thời gian nhất định (quantum) trước khi chuyển
sang tiến trình khác
Các thuật toán lập lịch như FCFS, SJF, Priority Scheduling, và Round Robin đều đưa
ra cách tiếp cận khác nhau trong việc quản lý việc thực hiện các tiến trình trên CPU
FCFS đơn giản nhưng có thể gây đợi lâu, SIF ưu tiên tiến trình ngắn nhất, Priority
Scheduling ưu tiên theo mức độ ưu tiên, và Round Robin thực hiện theo chu kỳ cố định
Trang 4Nhận xét chung là mỗi thuật toán có ưu và nhược điểm, và lựa chọn phụ thuộc vào
yêu cầu cụ thể của hệ thống FCFS đơn giản nhưng không công bằng, SJF tối ưu hóa
thời gian thực hiện nhưng có thể gây ưu tiên cho các tiến trình ngắn hạn, Priority Scheduling đáp ứng ưu tiên nhưng có thể dẫn đến độc đáo, và Round Robin cung cấp công bằng nhưng có thể không hiệu quả với các công việc lâu dài
Lựa chọn thuật toán lập lịch cần phải cân nhấc kỹ lưỡng để đảm bảo sự cân bằng giữa công bằng và hiệu suắt trong hệ thống
1.2 Lập lịch cho CPU trong Windows
1.2.1 Cơ bản về việc lập lịch cho CPU tron Windows
Trong hệ điều hành Windows, lập lịch cho CPU được quản lý bởi thành phần gọi là
"Task Scheduler" (Lập lịch công việc) Task Scheduler giúp quản lý và thực hiện các tác
vụ định kỳ và không định kỳ trên hệ thống Tuy nhiên, Task Scheduler không thực sự quản lý lập lịch cho CPU mức độ thấp, mà chỉ tập trung vào các tác vụ được lên lịch để chạy trong không gian người dùng
Windows sử dụng một loạt các kỹ thuật lập lịch và quản lý tác vụ để đảm bảo rằng các tiến trình và dịch vụ chạy mượt mà và hiệu quả
- Priority Levels (Mức ưu tiên): Windows sử dụng mức ưu tiên để xác định mức độ quan trọng của các tiến trình Các mức ưu tiên bao gồm Realtime, High, Above Normal, Normal, Below Normal va Low
- Preemption (Ngắt): Windows hỗ trợ preemption, nghĩa là một tiến trình có thể bị
ngắt bắt cứ lúc nào nếu có một tiến trình khác có mức ưu tiên cao hơn cần được
thực hiện
-._ Quantum: Là khoảng thời gian tối đa mà một tiến trình có thể sử dụng CPU trước
khi bị chuyển sang tiến trình khác Windows sử dụng khái niệm này trong Round Robin Scheduling
-_ Interrupts (Ngất): Các sự kiện và ngất từ thiết bị ngoại vi hoặc các sự kiện khác có
thể ảnh hưởng đến lập lịch của CPU trong Windows
- Thread Scheduling: Windows hé tro viéc [én lich cho cdc tiéu trinh (thread) trong
một tiến trình Các tiểu trình này có thể chia sẻ tài nguyên và chạy độc lập.
Trang 51.2.2 Một số thuật toán được sự dụng trong lập lịch cho CPU trong Windows Trong hệ điều hành Windows, quản lý lập lịch CPU được thực hiện bởi một thành phần gọi là "Scheduler" (Lập lịch viên) Windows sử dụng một loạt các thuật toán lập
lịch để quản lý việc thực hiện các tiến trình Cụ thể, một số thuật toán và khái niệm
quan trọng liên quan đến lập lịch trong Windows bao gồm:
- Multilevel Queue Scheduler: Windows stv dung mét hé théng hang doi đa cấp (Multilevel Queue) dé phan chia các tiến trình thành các nhóm ưu tiên khác
nhau Mỗi nhóm ưu tiên có một bộ thuật toán lập lịch riêng Ví dụ, có các hàng đợi ưu tiên cao, hàng đợi ưu tiên thấp, và các hàng đợi khác
- _ Priority Scheduling: Mỗi tiến trình được gán một mức độ ưu tiên, và Scheduler
sẽ ưu tiên thực hiện tiến trình có mức độ ưu tiên cao hơn
- Preemption: Trong Windows, lập lịch có khả năng bị gián đoạn (preemptive scheduling), có nghĩa là một tiến trình có thể bị "chặn" để thực hiện một tiến
trình ưu tiên cao hơn khi cần thiết
- Thread Scheduling: Windows hé trợ luồng (thread) như một đơn vị thực hiện công việc Scheduler có thể lập lịch cho các luồng của một tiến trình một cách
độc lập
- Affinity: Windows cho phép người quản trị hoặc các ứng dụng cụ thể xác định
"affinity" (sự liên kết} giữa một tiến trình và một hoặc nhiều CPU cụ thể, giúp tối
ưu hóa hiệu suất trong môi trường đa CPU
-_ Windows System Timer: Hệ thống Windows cũng sử dụng một hệ thống định
thời (system timer) để đánh thức CPU để chuyển đổi giữa các tiến trình và luồng Windows sử dụng hệ thống lập lịch CPU đa cấp linh hoạt, giúp quản lý hiệu suất và công bằng giữa các tiến trình Điểm nổi bật bao gồm việc sử dụng Multilevel Queue Scheduler để phân nhóm ưu tiên, Priority Scheduling để ưu tiên tiến trình, và khả năng
gián đoạn (preemption) để xử lý ngay lập tức các tiến trình quan trọng
Hỗ trợ luồng (thread) cho phép lập lịch độc lập cho từng luồng của một tiến trình, tận
dụng hiệu suất đa nhân của CPU Affinity cho phép kiểm soát định rõ sự liên kết giữa tiến trình và CPU cụ thể, giúp tối ưu hóa hiệu suất trong môi trường đa CPU.
Trang 6Cuối cùng, Windows System Timer đảm bảo đánh thức CPU và quản lý thời gian
chuyển đổi linh hoạt giữa các tiến trình và luồng Tất cả những tính năng này kết hợp nhau để cung cấp hệ thống lập lịch mạnh mẽ, đáp ứng và hiệu quả trong quản lý tài
nguyên CPU
1.2.3 Một số khái niệm và điều cần hiểu trong việc lập lịch cho CPU trong Windows
Thời Gian Lượng Tử (Time Quantum): Là khoảng thời gian tối đa mà một tiến trình hoặc luồng có thể chạy liên tục trước khi bị chuyển sang tiến trình khác
Điều này đặc biệt quan trọng trong thuật toán lập lịch Round Robin
Tiến Trình (Process} và Luồng (Thread): Trong Windows, tiến trình là một chương
trình đang chạy, trong khi luồng là đơn vị nhỏ nhất của một tiến trình có thể
thực hiện công việc
Tiến Trình Idle: Là một tiến trình đặc biệt mà hệ điều hành chạy khi không có
tiến trình nào cần xử lý Nhiệm vụ của tiến trình Idle là giảm tiêu thụ năng lượng của hệ thống khi nó không hoạt động
Ngắt (Interrupt): Là sự kiện hoặc tín hiệu từ phần cứng hoặc phần mềm yêu cầu
sự chú ý ngay lập tức từ CPU Lập lịch cũng phải xem xét quản lý các ngắt khi
chuyển đổi giữa các tiến trình và luồng
Tiến Trình Độ Ưu Tiên Cao (High Priority Process): Là tiến trình được ưu tiên để chạy trước so với các tiến trình khác Điều này có thể được quản lý thông qua
mức độ ưu tiên của tiến trình
Power Management (Quản Lý Năng Lượng): Hệ điều hành Windows quản lý việc
tiết kiệm năng lượng bằng cách giảm hoạt động của CPU khi không cần thiết, và
lập lịch phải xem xét các chính sách quản lý năng lượng
Affinity: Affinity xác định rằng một tiến trình hoặc luồng chỉ có thể chạy trên một
số CPU nhất định Điều này có thể được cấu hình để tối ưu hóa hiệu suất trong
các hệ thống đa CPU
Interrupt Handling (Xử Lý Ngắt): Là quá trình quản lý và xử lý các sự kiện ngắt từ
phần cứng hoặc phần mềm, và lập lịch phải cân nhắc đến quyết định chuyển đổi giữa các tiến trình để xử lý các ngắt.
Trang 7-_ Thread Priorities (Ưu Tiên Luồng): Mỗi luồng trong một tiến trình có một mức
độ ưu tiên riêng, quyết định thứ tự thực hiện giữa các luồng trong cùng một tiến
trình
- _ Wait Chain Traversal (Duyệt Chuỗi Chờ Đợi): Windows sử dụng kỹ thuật này để
xác định xem một tiến trình/Iưuồng có bị chặn (blocked) bởi tài nguyên hay
không và điều chỉnh lập lịch dựa trên tình trạng này
- Foreground and Background Processes (Tién Trinh Truc va Sau Ctra S6):
Windows ưu tiên tiến trình trước cửa số (foreground) để cung cấp trải nghiệm người dùng mượt mà hơn so với tiến trình nền (background)
-_ Windows System Timer: Được sử dung để định thời và đánh thức CPU để thực
hiện lập lịch chuyển đổi giữa các tiến trình và luồng
- User Mode va Kernel Mode: Windows chia thành hai chế độ thực thi - User
Mode (Chế độ Người Dùng) và Kernel Mode (Chế độ Hạt Nhân), và quản lý lập lịch cũng cần xác định chuyển đổi giữa chúng
- Interrupt Service Routine (ISR): La m6t ham được thực thi ngay khi một ngắt xảy
ra, và nó thường là một phần quan trọng của quá trình lập lịch
- DPC (Deferred Procedure Call): La m6t loại ngắt được sử dụng trong Windows
để chờ đợi và thực hiện một công việc sau một thời điểm ngắn
Tổng quát chung, quá trình lập lịch cho CPU trong hệ điều hành Windows là một
hệ thống phức tạp đầy đủ các yếu tố cần xem xét Các khái niệm như thời gian lượng tử, tiến trình và luồng, quản lý năng lượng, affinity, xử lý ngắt, và chế độ thực
thi như User Mode và Kernel Mode đều đóng vai trò quan trọng
Quyết định lịch trình đòi hỏi sự cân nhắc kỹ lưỡng đối với ưu tiên của tiến trình,
xử lý ngắt, và việc quản lý tài nguyên CPU Việc hiểu rõ về Wait Chain Traversal giúp xác định tình trạng chặn của tiến trình/Iưồng, trong khi Affinity tối ưu hóa hiệu suất
trong hệ thống đa CPU
Thêm vào đó, quản lý ngắt thông qua Interrupt Service Routine (ISR) và Deferred Procedure Call (DPC) đóng vai trò quan trọng trong việc xử lý các sự kiện
ngắt và thực hiện công việc sau một khoảng thời gian ngắn.
Trang 8Windows System Timer định thời và đánh thức CPU để thực hiện lập lịch
chuyển đổi giữa các tiến trình và luồng Chế độ người dùng và chế độ hạt nhân quyết định cách thức thực thi của các tiến trình
Cuối cùng, ưu tiên tiến trình trước cửa số (foreground} giúp cung cấp trải nghiệm người dùng mượt mà hơn so với các tiến trình nền (background)
Tất cả những yếu tố này kết hợp lại nhằm mục đích tối ưu hóa hiệu suất hệ thống,
đảm bảo công bằng giữa các tiến trình, và cung cấp trải nghiệm người dùng ổn định
và hiệu quả
1.2.4 Đánh giá chung
Tổng quát, quá trình lập lịch cho CPU trong hệ điều hành Windows là một hệ thống phức tạp, tích hợp nhiều khái niệm và thuật toán để đảm bảo hiệu suất, công bằng giữa các tiến trình, và trải nghiệm người dùng mượt mà Windows sử
dụng một loạt các kỹ thuật như Multilevel Queue Scheduler, Priority Scheduling,
va Preemption để quản lý ưu tiên và phân phối tài nguyên CPU một cách hiệu quả
Các khái niệm như thời gian lượng tử, tiến trình và luồng, quản lý năng lượng, affinity, xử lý ngắt, và chế độ thực thi đều được tích hợp để đáp ứng đồng thời các
yêu cầu của hệ thống và người dùng Việc quản lý ngắt thông qua ISR và DPC, cũng như sử dụng Windows System Timer, đóng vai trò quan trọng trong việc xử lý sự
kiện và đảm bảo thời gian chuyển đổi linh hoạt giữa các tiến trình và luồng
Wait Chain Traversal giúp định rõ tình trạng chặn của tiến trình hoặc luồng, trong
khi Affinity tối ưu hóa hiệu suất trong hệ thống đa CPU Chế độ người dùng và chế
độ hạt nhân quyết định cách thức thực thi của các tiến trình, trong khi ưu tiên tiến
trình trước cửa số giúp cung cấp trải nghiệm người dùng mượt mà
Tổng thể, Windows Task Scheduler và Scheduler kết hợp các khái niệm và thuật toán này để tạo ra một hệ thống lập lịch mạnh mẽ và linh hoạt, đảm bảo tối ưu hóa hiệu suất của hệ thống
Trang 92 Ví dụ và liên hệ về lập lịch cho CPU trong Windows
2.1 Ví dụ về lập lịch cho CPU trong Windows
Hãy xem xét một ví dụ đơn giản về cách lập lịch CPU có thể hoạt động trong Windows,
giả sử có ba tiến trình:
Tiến trình A (Ưu Tiên Cao):
- _ Mức độ ưu tiên cao nhất, được ưu tiên thực hiện trước
- Được gán một thời gian lượng tử (quantum) lớn để thực hiện công việc
Tiến trình B (Ưu Tiên Trung Bình):
-_ Mức độ ưu tiên trung bình, được thực hiện sau khi Tiến trình A hoàn thành
- Được gán thời lượng tử trung bình
Tiến trình C (Ưu Tiên Thấp):
-_ Mức độ ưu tiên thấp nhất, được thực hiện sau Tiến trình B
- _ Được gán thời lượng tử nhỏ hơn
Trong trường hợp này, Windows Scheduler sử dụng Priority Scheduling Tiến trình A được thực hiện trước vì có mức độ ưu tiên cao nhất Sau khi A hoàn thành, Windows chuyển
sang thực hiện Tiến trình B và sau đó là Tiến trình C
Nếu Tiến trình A chưa hoàn thành trong một chu kỳ lượng tử, nó có thể được gián đoạn (preempted) để thực hiện Tiến trình B nếu B có ưu tiên cao hơn Điều này đảm bảo sự công bằng giữa các tiến trình và không cho phép một tiến trình chiếm lĩnh CPU quá lâu
Tóm lại, Windows sử dụng các chiến lược lập lịch như Priority Scheduling và Round Robin để quản lý CPU sao cho các tiến trình được thực hiện một cách công bằng và hiệu quả
2.1.1 liên hệ về lập lịch cho CPU trong Windows
Hãy tưởng tượng rằng lập lịch CPU trong Windows giống như việc quản lị một cuộc họp lớn với nhiều người tham gia, và bạn là người chịu trách nhiệm xếp định thứ tự người nào được phép nói trong từng đợt Dưới đây là một cách để liên kết với đời sống thông qua ví dụ này:
Multilevel Queue Scheduler:
-_ Giống như việc phân nhóm người tham gia cuộc họp thành các nhóm ưu tiên dựa trên mức độ quan trọng của họ trong cuộc họp Những người có vấn đề quan trọng hơn được đặt ở nhóm ưu tiên cao hơn
Trang 10Priority Scheduling:
- Nhu việc đưa ra ưu tiên cho người nào đó có điều quan trọng để đề cập trước Những người có mức độ ưu tiên cao sẽ được ưu tiên trước để đảm bảo rằng các vấn đề quan trọng được giải quyết ngay lập tức
Round Robin (RR):
- _ Mỗi người có một khoảng thời gian cố định để nói Sau mỗi đợt, quyết định chuyển sang người tiếp theo Điều này giúp mọi người có cơ hội nói và không để ai chiếm lĩnh
cuộc họp quá lâu
Affinity:
-_ Xác định liệu một người có "liên kết" với một số nhóm cụ thể hay không Việc này giống
như việc một người chỉ tham gia các phần của cuộc họp mà họ quan tâm
Interrupt Handling và Deferred Procedure Call (DPC):
- Khi có sự kiện đặc biệt xảy ra (ví dụ như cuộc điện thoại đến), bạn phải quyết định liệu nên gián đoạn cuộc họp hiện tại để xử lý sự kiện đó hay không
User Mode và Kernel Mode:
- _ Chuyển đổi giữa "chế độ người dùng" khi mọi người chỉ nói chuyện thông thường và
"chế độ hạt nhân" khi cần phải giải quyết những vấn đề nội dung và phức tạp Wait Chain Traversal:
- Néu một người đang chờ đợi thông tin từ người khác để tiếp tục nói, bạn cần phải xác
định liệu họ đang bị chặn hay không và điều chỉnh lịch trình của họ dựa trên tình trạng này
f> Những tương đồng này giúp hiểu rõ hơn về cách lập lịch CPU hoạt động trong một ngữ
cảnh thực tế, giúp tạo ra một ảnh hưởng sinh động và dễ hiểu
10