Tải bản đầy đủ (.ppt) (59 trang)

Định thời biểu cho 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 (7.22 MB, 59 trang )

Chương 5:
Định thời biểu cho CPU
Thực hiện: Phạm Tấn Danh
Nguyễn Tất Bình
Nguyễn Khoa Bằng
Chưong 5: Định thời biểu cho CPU

Khái niệm cơ bản.

Các tiêu chuẩn của định thời biểu.

Các thuật toán trong định thời biểu.

Định thời biểu đa bộ xử lý.

Định thời thời gian thực.

Định thời biểu theo luồng.

Các ví dụ về hệ điều hành.

Định thời biểu theo luồng trong Java.

Thuật toán ước lượng.
Các khái niệm cơ bản

Sử dụng tối đa khả năng của CPU với lập
trình đa nhiệm.

Chu kỳ CPU – I/O Burst.
(Burst 1 khái niệm chỉ quá trình truyền tải


dữ liệu không ngừng).
Quá trình xử lý bao gồm : CPU thực hiện
và chờ đợi I/O.

Sự phân phát Burst CPU.
Thay đổi thứ tự của CPU và I/O Bursts
Biểu đồ thời gian của CPU burst
Bộ định thời CPU

Chọn từ những tiến trình đã sẵn sàng thực hiện
trong bộ nhớ, và chỉ định CPU thực hiện nó.

Quyết định định thời CPU có thể xảy ra khi một
tiến trình:
1. Chuyển từ trạng thái đang chạy sang trạng thái
chờ.
2. Chuyển từ trạng thái đang chạy sang trạng thái
sẵn sàng.
3. Chuyển từ trạng thái đang chờ sang trạng thái
sẵn sàng.
4. Kết thúc.

Định thời biểu xảy ra chỉ trong trừờng hợp 1 và 4
gọi là cơ chế định thời không trưng dụng.

Định thời biểu xảy ra trong những trường hợp
khác gọi là cơ chế định thời trưng dụng.
Bộ phân phát

Bộ phân phát là một module có nhiệm vụ

trao điều khiển CPU tới tiến trình được
chọn bởi bộ định thời biểu ngắn, chức năng
này gồm:
* Chuyển ngữ cảnh.
* Chuyển chế độ người dùng.
* Nhảy tới vị trí hợp lý trong chương trình
người dùng để khởi động lại chương trình
đó.

Thời gian trễ cho việc điều phối - thời gian
mất cho bộ phân phát dừng một tiến trình
này và bắt đầu chạy một tiến trình khác.
Các tiêu chuẩn định thời

Tận dụng CPU - giữ cho CPU làm việc hết mức
có thể.

Thông lượng - số lượng tiến trình được hoàn
thành trên một đơn vị thời gian.

Thời gian hoàn thành - khoảng thời gian thực
hiện quá trình và các thành phần liên quan.

Thời gian chờ - khoảng thời gian tiến trình chờ
trong hàng đợi sẵn sàng.

Thời gian đáp ứng - khoảng thời gian từ lúc gởi
yêu cầu cho tới khi đáp ứng đầu tiên nhưng không
là thời gian mất đi để xuất ra đáp ứng đó (môi
trường chia sẽ thời gian).

Tiêu chuẩn tối ưu

Tận dụng tối đa CPU.

Thông lượng tối đa.

Thời gian xử lý thấp nhất.

Thời gian chờ thấp nhất.

Thời gian đáp ứng thấp nhất.
Định thời đến trước phục vụ trước (FCFS)
Tiến trình Thời gian xử lý
P
1
24
P
2
3
P
3
3

Giả sử các tiến trình đến theo thứ tự: P
1
, P
2
,
P
3

Lưu đồ găng cho việc thực hiện là:
P
1
P
2
P
3
0 24 27 30

Thời gian chờ của P
1
= 0; P
2
= 24; P
3
= 27

Thời gian chờ trung bình: (0+24+27)/3 = 17
Định thời FCFS (tt)

Giả sử các tiến trình đến theo thứ tự: P
2
, P
3
,
P
1
Lưu đồ găng cho việc thực hiện là:
P
2

P
3
P
1
0 3 6 30

Thời gian chờ của P
1
= 6; P
2
= 0; P
3
= 3

Thời gian chờ trung bình: (6+0+3)/3 = 3

Tốt hơn trường hợp trên

Tác dụng phụ khi tiến trình ngắn sau tiến
trình dài
Định thời biểu công viêc ngắn nhất truớc(SJF)

Kết hợp với độ dài của tiến trình tiếp theo để
sắp xếp các tiến trình theo thời gian ngắn nhất.

Hai dạng:
* Không trưng dụng - Một khi CPU đã được
cấp cho một tiến trình nó không thể ưu tiên cho
tiến trình khác cho đến khi nó hoàn thành CPU
burst.

* Trưng dụng - Nếu một tiến trình mới đến
với độ dài CPU burst ngắn hơn thời gian còn
lại của tiến trình đang thực hiện. Dạng này
được biết đến như là định thời thời gian còn lại
ngắn nhất trước (SRTF)

SJF là tối ưu - cho thời gian chờ đợi trung bình
nhỏ nhất cho các tiến trình được cho.
Ví dụ của SJF không trưng dụng
Process Arrival Time B urst Time
P
1
0 7
P
2
2 4
P
3
4 1
P
4
5 4

SJF (không trưng dụng)
P
1
P
2
P
3

P
4
0 7 8 12 16

Thời gian chờ trung bình:
= (0+6+3+7)/4 = 4
Ví dụ của SJF trưng dụng
Process Arrival Time B urst Time
P
1
0 7
P
2
2 4
P
3
4 1
P
4
5 4

SJF (Trưng dụng)
P
1
P
2
P
3
P
2

P
4
P
1
0 2 4 5 7 11 16

Thời gian chờ trung bình:
=(9+1+0+2)/4 = 3
Xác định độ dài của CPU Burst tiếp theo

Chỉ có thể ước lượng.

Có thể thực hiện bằng cách dùng độ dài
CPU bursts trước đó sử dụng trung bình
số mũ
Tn+1 = α tn + (1- α) Tn
1. tn = là chiều dài của chu kỳ CPU thứ n
2. Tn+1 = giá trị được đoán cho chu kỳ
CPU kế tiếp
3. 0 ≤ α ≤ 1
4. Định nghĩa
Dự đoán độ dài của CPU burst
Ví dụ của tính trung bình số mũ

α = 0
* Tn+1 = tn
* lịch sử gần đây không có ảnh hưởng

α = 1
* Tn+1 = α tn

* chỉ chu kỳ CPU gần nhất có ảnh hưởng

Nếu chúng ta mở rộng công thức ta được:
Tn+1 = α tn+(1-α) α tn-1+…
+(1-α)j α tn-j+…+(1-α)n - 1T0

Từ (vì) cả hai α và (1- α) là nhỏ hơn hay
bằng 1, mỗi số hạng tiếp theo có trọng số
nhỏ hơn số hạng trước đó.
Định thời theo độ ưu tiên
Định thời theo độ ưu tiên

Thứ tự ưu tiên (kiểu nguyên) được kết hợp với
mỗi tiến trình

CPU cho phép tiến trình với thứ tự ưu tiên cao
nhất (số càng nhỏ quyền ưu tiên càng cao)
* Trưng dụng
* Không trưng dụng

SJF là trường hợp đặc biệt của định thời theo
độ ưu tiên nơi mà quyền ưu tiên được dự
đoán là chu kỳ CPU tiếp theo.

Vấn đề (đói CPU) - là tiến trình có độ ưu tiên
thấp có thể sẽ không bao giờ được thực hiện.

Giải pháp (sự hoá già) - tăng dần độ ưu tiên
theo thời gian của tiến trình.
Luân phiên (RR)


Mỗi tiến trình lấy đơn vị thời gian nhỏ của CPU
(quantum), thường là 10-100 mili giây. Sau khi
thời gian này trôi qua, tiến trình được ưu tiên và
thêm vào cuối hàng đợi sẵn sàng.

Nếu có n tiến trình trong hàng đợi sẵn sàng và
thời gian quantum là q, thì mỗi tiến trình lấy 1/n
của khoản thời gian CPU nhiều nhất là q đơn vị
thời gian cho 1 lần. Không tiến trình nào chờ
quá (n-1)q đơn vị thời gian.

Khả năng thực hiện
* q lớn ⇒ FIFO
* q nhỏ ⇒ q phải dủ lớn đối với sự chuyển đổi
ngữ cảnh, nếu không thì thời gian chuyển đổi
quá cao.
Ví dụ của RR với thời gian quantum = 20
Process Burst Time
P
1
53
P
2
17
P
3
68
P
4

24

Sơ đồ Găng là:
P
1
P
2
P
3
P
4
P
1
P
3
P
4
P
1
P
3
P
3
0 20 37 57 77 91 117 121 134 154 162

Đặc trưng, thời gian hoàn thành cao hơn
SJF, nhưng thời gian đáp ứng nhanh hơn.
Thời gian Quantum và thời gian chuyển đổi ngữ cảnh
Hiển thị cách thời gian hoàn thành
biến đổi theo định mức thời gian

Hàng đợi nhiều cấp

Hàng đợi sẵn sàng được phân chia thành nhiều hàng đợi
riêng lẽ:
chạy ở chế độ giao tiếp (tương tác)
chạy ở chế độ nền (dạng bó)

Mỗi hàng đợi có một giải thuật định thời của chính nó:
* Hàng đợi ở chế độ giao tiếp được định thời bởi giải thuật
RR
* Hàng đợi ở chế độ nền được định thời bởi giải thuật FCFS

Phải có việc định thời giữa các hàng đợi
* Định thời trưng dụng với độ ưu tiên cố định (phục vụ cho
cả chế độ giao tiếp và chế độ nền). Cải thiện cho vấn đề đói
CPU
* Phần thời gian giữa các hàng đợi - Mỗi hàng đợi một phần
thời gian CPU xác định sau đó nó có thể định thời giữa các
tiến trình khác nhau trong hàng đợi của nó (ví dụ trong hàng
đợi giao tiếp-nền, hàng đợi giao tiếp được cho 80% thời gian
của CPU cho giải thuật RR, ngược lại hàng đợi nền nhận
20% thời gian CPU cho các tiến trình của nó theo cách
FCFS)
Giải thuật hàng đợi nhiều cấp

Các quá trình h ệ
th ng ố

Các quá trình giao
ti p ế


Các quá trình so n ạ
th o giao ti p ả ế

Các quá trình bó

Các quá trình sinh
viên
Định thời hàng đợi phản hồi đa cấp

Một tiến trình cố thể di chuyển giữa các hàng đợi:
Đây là hình thức của sự hóa già nhằm ngăn chặn sự
đói CPU

Định thời hàng đợi phản hồi đa cấp được định nghĩa
theo những tham số bên dưới:
* Số lượng hàng đợi
* Giải thuật định thời cho mỗi hàng đợi
* Phương thức được dùng để xác định khi nâng cấp
một tiến trình tới hàng đợi có độ ưu tiên cao hơn.
* Phương thức được dùng để xác định khi nào chuyển
một quá trình tới hàng đợi có độ ưu tiên thấp hơn.
* Phương thức được dùng để xác định hàng đợi nào
một tiến trình sẽ đi vào và khi nào quá trình đó cần
phục vụ.

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

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