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

báo cáo bài tập lớn học phần hệ điều hành lập lịch cho cpu trong windows

11 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Nội dung

Trang 1

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:

Trang 2

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 3

1 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 4

Nhậ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 5

1.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 6

Cuố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 8

Windows 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 9

2 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 10

Priority 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

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

Ngày đăng: 23/07/2024, 17:20

w