Tải bản đầy đủ (.pptx) (54 trang)

THIẾT LẬP Định thời CPU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1019.26 KB, 54 trang )

TIỂU LUẬN
NHÓM 2
ĐỊNH THỜI CPU
Giáo viên hướng dẫn:Nguyễn Xuân Lô
ĐỀ TÀI
STT HỌ VÀ TÊN MSSV GHI CHÚ
1 ĐẶNG CÔNG ĐẠI 11009973 Preemptive/nonpreemptive,Dispatcher,Mục
tiêu điều phối
2 TRƯƠNG THI DIỆU 11017203 Khái niệm và các bộ định thời
3 LÊ HUY DỰ Các giải thuật định thời
4 LÊ XUÂN ĐỊNH 11027453 Multilevel Queue Scheduling
5 LƯU ĐỨC CƯỜNG Multilevel Feedbach Queue
6 LÊ MẠNH CƯỜNG
DANH SÁCH NHÓM 2
Khái niệm cơ bản
Các bộ định thời
Preemptive/nonpreemptive
Dispatcher
Mục tiêu điều phối
Các giải thuật định thời
Multilevel Queue Scheduling
Multilevel Feedbach Queue
NỘI DUNG ĐỀ TÀI

Mục tiêu của đa chương là có nhiều quá trình chạy cùng thời điểm để
tối ưu hóa việc sử dụng CPU. Trong hệ thống đơn xử lý, chỉ một quá
trình có thể chạy tại một thời điểm; bất cứ quá trình nào khác đều phải
chờ cho đến khi CPU rảnh và có thể được định thời lại.

Ý tưởng của đa chương là tương đối đơn giản. Một quá trình được
thực thi cho đến khi nó phải chờ yêu cầu nhập/xuất hoàn thành. Trong


một hệ thống máy tính đơn giản thì CPU sẽ rảnh rỗi; tất cả thời gian
chờ này là lãng phí. Với đa chương, chúng ta cố gắng dùng thời gian
này để CPU có thể phục vụ cho các quá trình khác. Nhiều quá trình
được giữ trong bộ nhớ tại cùng thời điểm. Khi một quá trình phải chờ,
hệ điều hành lấy CPU từ quá trình này và cấp CPU tới quá trình khác.
I.Khái niệm cơ bản

Định thời biểu là chức năng cơ bản của hệ điều hành. Hầu hết tài
nguyên máy tính được định thời biểu trước khi dùng. Dĩ nhiên,
CPU là một trong những tài nguyên máy tính ưu tiên. Do đó, định
thời biểu là trọng tâm trong việc thiết kế hệ điều hành.
I.Khái niệm cơ bản

Trong hệ thống multi-tasking
-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
I.Khái niệm cơ bản
II.Các bộ định thời
II.Các bộ định thời

Định thời dài hạn(long-term scheduling)

Định thời ngắn hạn(short-term scheduling)


Định thời trung hạn(medium-term scheduling)

Định thời dài hạn(Long-term scheduling)
-Xác định chương trình nào nhận đượ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 scheduling thường cố gắng duy trì xen lẫn CPU-bound
và I/O-bound process

Định thời trung hạn(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à thảo luận ở phần quản lí
bộ nhớ
II.Các bộ định thời
 Định thời ngắn hạn(Short-term scheduling)
-Mỗi khi CPU rảnh, Os cần xác định process trong ready queue để
thực thi kế tiếp (do vậy còn được gọi là định thời CPU
-Short-term scheduling còn có tên gọi khác là dispatcher
Định thời CPU xẩy ra khi 1 process:
1. Chuyển từ trạng thái chạy sang trạng thái chờ (vd: I/O request)
2. Chuyển từ trạng thái chạy sang trạng thái sẵn sàng (vd khi một ngắt xuất
hiện clock interrup)
3. Chuyển từ trạng thái đợi sang trạng thái sẵn sàng (Vd: I/O hoàn thành).
4. Kết thúc
II.Các bộ định thời

Thuật toán điều phối cần xem xét và quyết định thời điểm chuyển
đổi CPU giữa các tiến trình. Hệ điều hành có thể thực hiện cơ
chế điều phối theo nguyên lý độc quyền hoặc không độc quyền.

1. Điều phối độc quyền (Preemptive)
2. Điều phối không độc quyền (Nonpreemptive)
III.Preemptive/nonpreemptive
Nguyên lý điều phối độc quyền cho phép một tiến trình
khi nhận được CPU sẽ có quyền độc chiếm CPU đến khi
hoàn tất xử lý hoặc tự nguyện giải phóng CPU. Khi đó
quyết định điều phối CPU sẽ xảy ra trong các tình huống
sau:

Khi tiến trình chuyển từ trạng thái đang xử lý(running)
sang trạng thái bị khóa blocked ( ví dụ chờ một thao
tác nhập xuất hay chờ một tiến trình con kết thúc…).

Khi tiến trình kết thúc.
1.Điều phối độc quyền

Các giải thuật độc quyền thường đơn giản và dễ cài đặt.
Tuy nhiên chúng thường không thích hợp với các hệ
thống tổng quát nhiều người dùng, vì nếu cho phép một
tiến trình có quyền xử lý bao lâu tùy ý, có nghĩa là tiến
trình này có thể giữ CPU một thời gian không xác định,
có thể ngăn cản những tiến trình còn lại trong hệ thống
có một cơ hội để xử lý.
1.Điều phối độc quyền

Ngược với nguyên lý độc quyền, điều phối theo nguyên
lý không độc quyền cho phép tạm dừng hoạt động của một tiến
trình đang sẵn sàng xử lý. Khi một tiến trình nhận được CPU, nó
vẫn được sử dụng CPU đến khi hoàn tất hoặc tự nguyện giải
phóng CPU, nhưng một tiến trình khác có độ ưu tiên có thể dành

quyền sử dụng CPU của tiến trình ban đầu. Như vậy là tiến trình
có thể bị tạm dừng hoạt động bất cứ lúc nào mà không được báo
trước, để tiến trình khác xử lý. Các quyết định điều phối xảy ra
khi :

Khi tiến trình chuyển từ trạng thái đang xử lý (running) sang
trạng thái bị khóa blocked ( ví dụ chờ một thao tác nhập xuất
hay chờ một tiến trình con kết thúc…).
2.Điều phối không độc quyền

Khi tiến trình chuyển từ trạng thái đang xử lý
(running) sang trạng thái ready ( ví dụ xảy ra một
ngắt).

Khi tiến trình chuyển từ trạng thái chờ (blocked) sang
trạng thái ready ( ví dụ một thao tác nhập/xuất hoàn
tất).

Khi tiến trình kết thúc.
2.Điều phối không độc quyền
 Các thuật toán điều phối theo nguyên tắc không độc
quyền ngăn cản được tình trạng một tiến trình độc chiếm
CPU, nhưng việc tạm dừng một tiến trình có thể dẫn đến
các mâu thuẫn trong truy xuất, đòi hỏi phải sử dụng một
phương pháp đồng bộ hóa thích hợp để giải quyết.
 Trong các hệ thống sử dụng nguyên lý điều phối độc
quyền có thể xảy ra tình trạng các tác vụ cần thời gian xử
lý ngắn phải chờ tác vụ xử lý với thời gian rất dài hoàn
tất! Nguyên lý điều phối độc quyền thường chỉ thích hợp
với các hệ xử lý theo lô.

2.Điều phối không độc quyền
 Đối với các hệ thống tương tác(time sharing), các hệ thời
gian thực (real time),cần phải sử dụng nguyên lý điều
phối không độc quyền để các tiến trình quan trọng có cơ
hội hồi đáp kịp thời. Tuy nhiên thực hiện điều phối theo
nguyên lý không độc quyền đòi hỏi những cơ chế phức
tạp trong việc phân định độ ưu tiên, và phát sinh thêm
chi phí khi chuyển đổi CPU qua lại giữa các tiến trình.
2.Điều phối không độc quyền

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
Dispatcher
Dispatcher
Bộ điều phối không cung cấp cơ chế, mà đưa ra các quyết định. Các hệ
điều hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều
phối, nhưng tựu chung cần đạt được các mục tiêu sau :
a) Sự công bằng ( Fairness) :
Các tiến trình chia sẻ CPU một cách công bằng, không có tiến trình nào
phải chờ đợi vô hạn để được cấp phát CPU

b) Tính hiệu qủa (Efficiency) :
Hệ thống phải tận dụng được CPU 100% thời gian.
Mục tiêu điều phối
c) Thời gian đáp ứng hợp lý (Response time) :
Cực tiểu hoá thời gian hồi đáp cho các tương tác của người sử dụng
d) Thời gian lưu lại trong hệ thống ( Turnaround Time) :
Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
e) Thông lượng tối đa (Throughput ) :
Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.
Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản
thân chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở
mức độ nào đó.
Mục tiêu điều phối

Để tổ chức điều phối tiến trình hệ điều hành sử dụng hai danh
sách: Danh sách sẵn sàng (Ready list) dùng để chứa các tiến trình
ở trạng thái sẵn sàng. Danh sách đợi (Waiting list) dùng để chứa
các tiến trình đang đợi để được bổ sung vào danh sách sẵn sàng.

Chỉ có những tiến trình trong ready list mới được chọn để cấp
processor. Các tiến trình bị chuyển về trạng thái blocked sẽ được
bổ sung vào waiting list. Hệ thống chỉ có duy nhất một ready list,
nhưng có thể tồn tại nhiều waiting list. Thông thường hệ điều hành
thiết kế nhiều waitting list, mỗi waitting list dùng để chứa các tiến
trình đang đợi được cấp phát một tài nguyên hay một sự kiện riêng
biệt nào đó.
III.Các giải thuật định thời
III.Các giải thuật định thời
1
2

3
4
5
6
7
Ready list
Waitting list 1
Waitting list 2
8
Hình 2.7: Sơ đồ chuyển tiến trình vào các danh sách
Processor

Trong đó:
1. Tiến trình trong hệ thống được cấp đầy đủ tài nguyên chỉ thiếu processor.
2. Tiến trình được bộ điều phối chọn ra để cấp processor để bắt đầu xử lý.
3. Tiến trình kết thúc xử lý và trả lại processor cho hệ điều hành.
4. Tiến trình hết thời gian được quyền sử dụng processor (time-out), bị bộ điều
phối tiến trình thu hồi lại processor.
5. Tiến trình bị khóa (blocked) do yêu cầu tài nguyên nhưng chưa được hệ điều
hành cấp phát. Khi đó tiến trình được đưa vào danh sách các tiến trình đợi tài
nguyên (waiting list 1).
III.Các giải thuật định thời

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×