1. Trang chủ
  2. » Công Nghệ Thông Tin

Định thời biểu cho cpu

59 607 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

Tiêu đề Định thời biểu cho cpu
Tác giả Phạm Tấn Danh, Nguyễn Tất Bình, Nguyễn Khoa Bằng
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài luận
Định dạng
Số trang 59
Dung lượng 2,63 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Định thời biểu công viêc ngắn nhất truớcSJF• 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.. * Trưng dụng - Nếu một tiến trình mới đến

Trang 1

Chương 5 :

Định thời biểu cho CPU

Nguyễn Tất Bình Nguyễn Khoa Bằng

Trang 2

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.

Trang 3

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

Trang 4

Thay đổi thứ tự của CPU và I/O Bursts

Trang 5

Biểu đồ thời gian của CPU burst

Trang 6

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

• Đị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.

Trang 7

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.

Trang 8

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).

Trang 9

Tiêu chuẩn tối ưu

Trang 10

Định thời đến trước phục vụ trước (FCFS)

Tiến trình Thời gian xử lý

• Thời gian chờ của P1 = 0; P2 = 24; P3 = 27

• Thời gian chờ trung bình: (0+24+27)/3 = 17

Trang 11

• Thời gian chờ của P1 = 6; P2 = 0; P3 = 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

Trang 12

Đị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

Trang 13

Ví dụ của SJF không trưng dụng

Process Arrival Time B urst Time

Trang 15

Xác định độ dài của CPU Burst tiếp theo

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

Trang 16

Dự đoán độ dài của CPU burst

Trang 17

* 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 đó

Trang 18

Đị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.

Trang 19

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.

Trang 20

Ví dụ của RR với thời gian quantum = 20

Process Burst Time

• Đặc trưng, thời gian hoàn thành cao hơn

SJF, nhưng thời gian đáp ứng nhanh hơn

Trang 21

Thời gian Quantum và thời gian chuyển đổi ngữ cảnh

Trang 22

Hiển thị cách thời gian hoàn thành biến đổi theo định mức thời gian

Trang 23

* 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

* Đị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

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)

Trang 24

Giải thuật hàng đợi nhiều cấp

Trang 25

Đị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ụ.

Trang 26

Ví dụ của hàng đợi phản hồi đa cấp

• Ba hàng đợi:

* Q0 - RR với thời gian quantum 8 mili giây

* Q1 - RR với thời gian quantum 16 mili giây

* Q2 – FCFS

• Định thời

* Một tiến trình mới được đua vào hàng đợi Q0

được thực hiện theo cơ chế FCFS Khi nó được cấp CPU một lần nữa, thời gian cho nó là 8 mili giây Nếu chưa hoàn thành trong 8 miligiây, nó

sẽ được đưa vào hàng đợi Q1.

* Tại Q1 tiến trình được thực hiện theo cơ chế

FCFS với thời gian 16 miligiây Nếu nó vẫn chưa hoàn thành, nó bị đưa vào hàng đợi Q2.

Trang 27

Ví dụ của hàng đợi phản hồi đa cấp(tt)

Trang 28

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

• Đinh thời CPU sẽ phức tạp hơn khi có

Trang 29

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

• Hệ thống thời thực cứng - được yêu

cầu để hoàn thành một tiến trình tới

hạn trong lượng thời gian được đảm bảo

• Thời gian thực mềm - yêu cầu các quá

trình tới hạn nhận độ ưu tiên cao hơn các quá trình khác

Trang 30

Định thời theo luồng

• Định thời cục bộ - cách nào để quyết

định luồng thư viện để đặt giá trị cho luồng nào có thể sử dụng LWP

• Định thời toàn cục - Cách nào để nhân

quyết định luồng nhân nào sẽ chạy tiếp theo

Trang 31

Định thời theo luồng API

Trang 32

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

Trang 33

Định thời biểu trong Solaris

Trang 34

Bảng phân phát trong Solaris

Trang 35

Sự ưu tiên trong Window XP

Trang 36

Định thời trong Linux

• Hai thuật toán: Thời gian chia sẽ và thời gian thực

• Thời gian chia sẽ:

* Dựa vào quyền ưu tiên của - tiến trình nào được ưu tiên hơn sẽ được xếp tiếp theo

* Quyền ưu tiên sẽ bị giảm đi khi thời gian bị ngắt quảng

* Khi quyền ưu tiên = 0, tiến trình khác sẽ được chọn

* Khi tất cả các tác vụ có quyền ưu tiên = 0, tạo lại quyền

Trang 37

Mối quan hệ giữa độ ưu tiên

và phần thời gian dài

Trang 38

Danh sách mối liên hệ các công viêc theo độ ưu tiên

Trang 39

Định thời biểu trong Java

lẻo Một luồng chạy cho đến khi:

1 Thời gian quantum của nó kết

thúc

2 Ngăn chặn bởi tiến trình vào/ra

3 Đóng phương thức đang chạy.

Một vài hệ thống có thể hổ trợ chiếm quyền ưu tiên.

Trang 40

Định thời biểu trong Java (tt)

• Độ ưu tiên thay đổi từ 1 đến 10

• Độ ưu tiên nhỏ nhất là 1

• Độ ưu tiên thường là 5

• Độ ưu tiên cao nhất là 10

Trang 41

Định thời biểu trong Java (tt)

• Thay đổi độ ưu tiên sử dụng hàm đặt

độ ưu tiên setPriority()

Trang 42

Định thời biểu trong Java (tt)

Java và Win32

Trang 43

Định thời biểu trong Java (tt)

Định thời của Java theo luồng trong Solaris

Trang 44

Thuật toán đánh giá (ước lượng)

việc nạp lên đã quyết định trước và

chỉ định thực thi cho các thuật toán

của công việc đã nạp đó.

Trang 45

Thuật toán đánh giá (tt)

• Đánh giá các bộ định thời CPU bằng mô phỏng

Trang 46

Thuật toán đánh giá (tt)

Trang 47

Kết thúc chương 5

Trang 48

Phần bổ sung slide 1 CPU

• CPU (Central Processing Unit) Đơn vị xử lý

trung tâm Mạch lưu giữ, xử lý, và điều

khiển bên trong của máy tính, bao gồm đơn vị số học-logic ( ALU), đơn vị điều khiển, và bộ nhớ sơ cấp trong dạng ROM hoặc RAM Chỉ có ALU và đơn vị điều khiển là được

chứa chọn vẹn trong chip gọi là chip vi xử lý; còn bộ nhớ thì được lắp ở một nơi nào đó trên board mẹ hoặc trong một card cắm trên bus mở rộng.

Trang 49

Phần bổ sung slide 1 Định thời biểu

• Định thời biểu là cơ sở của các hệ điều hành đa chương

Bằng cách chuyển đổi CPU giữa các quá trình, hệ điều

hành có thể làm máy tính hoạt động nhiều hơn Trong

chương này, chúng ta giới thiệu các khái niệm định thời cơ bản và trình bày các giải thuật định thời biểu CPU khác nhau.

• Đị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

• Định thời CPU là một tác vụ chọn một tiến trình đang chờ

từ hàng đợi sẳn sàng và cấp phát CPU tới nó CPU được cấp phát tới quá trình được chọn bởi bộ cấp phát.

Trang 50

Phần bổ sung slide 3 Tận dụng CPU

• Mục tiêu của đa chương là có nhiều tiến 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 tiến trình có thể chạy tại một thời điểm; bất cứ tiến 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 tiến 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 tiến trình khác Nhiều tiến

trình được giữ trong bộ nhớ tại cùng thời điểm

Khi một tiến trình phải chờ, hệ điều hành lấy CPU

từ tiến trình này và cấp CPU tới tiến trình khác.

Trang 51

Phần bổ sung slide 3 chu kỳ CPU/IO

Sự thành công của việc định thời biểu CPU phụ

thuộc vào thuộc tính được xem xét sau đây của

tiến trình Việc thực thi tiến trình chứa một chu kỳ

(cycle) thực thi CPU và chờ đợi nhập/xuất Các

tiến trình chuyển đổi giữa hai trạng thái này Sự

thực thi tiến trình bắt đầu với một chu kỳ CPU

(CPU burst), theo sau bởi một chu kỳ nhập/xuất

(I/O burst), sau đó một chu kỳ CPU khác, sau đó lại tới một chu kỳ nhập/xuất khác khác, Sau cùng, chu kỳ CPU cuối cùng sẽ kết thúc với một yêu cầu

hệ thống để kết thúc việc thực thi, hơn là với một chu kỳ nhập/xuất khác.

Trang 52

Phần bổ sung slide 6 Bộ định thời

Bất cứ khi nào CPU rảnh, hệ điều hành phải chọn một trong những tiến trình trong hàng đợi sẳn sàng để thực thi

Chọn tiến trình được thực hiện bởi bộ

định thời biểu ngắn (short-term

scheduler) hay bộ định thời CPU Bộ định thời này chọn các tiến trình trong

bộ nhớ sẳn sàng thực thi và cấp phát

CPU tới một trong các tiến trình đó

Trang 53

Phần bổ sung slide 8 sử dụng CPU

Chúng ta muốn giữ CPU làm việc nhiều nhất có thể Việc sử dụng CPU có thể

từ 0 đến 100% Trong hệ thống thực,

nó nên nằm trong khoảng từ 40% (cho

hệ thống được nạp tải nhẹ) tới 90%

(cho hệ thống được nạp tải nặng)

Trang 54

Phần bổ sung slide 8 Thông lượng

Nếu CPU bận thực thi các tiến trình thì công việc đang được thực hiện Thước

đo của công việc là số lượng tiến trình được hoàn thành trên một đơn vị thời

gian gọi là thông lượng (throughput)

Đối với các tiến trình dài, tỉ lệ này có thể là 1 tiến trình trên 1 giờ; đối với

các giao dịch ngắn, thông lượng có thể

là 10 tiến trình trên giây

Trang 55

Phần bổ sung slide 8 Thời gian hoàn thành

Từ quan điểm của một tiến trình cụ thể, tiêu chuẩn quan trọng là mất bao lâu để thực thi tiến trình đó Khoảng thời gian

từ thời điểm gởi tiến trình tới khi tiến

trình hoàn thành được gọi là thời gian

hoàn thành (turnaround time) Thời

gian hoàn thành là tổng các thời gian

chờ đưa tiến trình vào bộ nhớ, chờ

hàng đợi sẳn sàng, thực thi CPU và

thực hiện nhập/xuất

Trang 56

Phần bổ sung slide 8 Thời gian chờ

Giải thuật định thời CPU không ảnh

hưởng lượng thời gian tiến trình thực thi hay thực hiện nhập/xuất; nó ảnh

hưởng chỉ lượng thời gian một tiến

trình phải chờ trong hàng đợi sẳn sàng

Thời gian chờ (waiting time) là tổng

thời gian chờ trong hàng đợi sẳn sàng

Trang 57

Phần bổ sung slide 10 FCFS

Giải thuật định thời biểu CPU đơn giản nhất là

đến trước, được phục vụ trước (first-come,

first-served-FCFS) Với cơ chế này, tiến trình yêu cầu CPU trước được cấp phát CPU trước Việc cài đặt chính sách FCFS được quản lý dễ dàng với hàng đợi FIFO Khi một tiến trình đi vào hàng đợi sẳn sàng, PCB của nó được liên kết tới đuôi của hàng đợi Khi CPU rảnh, nó được cấp phát tới một tiến trình tại đầu hàng đợi Sau đó, tiến trình đang chạy được lấy ra khỏi hàng đợi Mã của giải thuật FCFS đơn

giản để viết và hiểu Tuy nhiên, thời gian chờ đợi trung bình dưới chính sách FCFS thường

là dài.

Trang 58

Phần bổ sung slide 12 SJF

Một tiếp cận khác đối với việc định thời CPU là giải

thuật định thời công việc ngắn nhất trước

(shortest-job-first-SJF) Giải thuật này gán tới mỗi tiến trình

chiều dài của chu kỳ CPU tiếp theo cho tiến trình sau

đó Khi CPU sẳn dùng, nó được gán tới tiến trình có

chu kỳ CPU kế tiếp ngắn nhất Nếu hai tiến trình có

cùng chiều dài chu kỳ CPU kế tiếp, định thời FCFS

được dùng Chú ý rằng thuật ngữ phù hợp hơn là chu kỳ CPU kế tiếp ngắn nhất (shortest next CPU burst) vì

định thời được thực hiện bằng cách xem xét chiều dài của chu kỳ CPU kế tiếp của tiến trình hơn là toàn bộ

chiều dài của nó Chúng ta dùng thuật ngữ SJF vì hầu hết mọi người và mọi sách tham khảo tới nguyên lý của loại định thời biểu này như SJF

Trang 59

Phần bổ sung slide 12 SJF (tt)

bình nhỏ nhất cho các quá trình được cho Bằng cách chuyển một quá trình ngắn trước một quá trình dài thì thời gian chờ đợi của quá trình

ngắn giảm hơn so với việc tăng thời gian chờ đợi của quá trình dài Do

đó, thời gian chờ đợi trung bình giảm

yêu cầu CPU tiếp theo Đối với định thời dài trong hệ thống bó, chúng ta

có thể dùng chiều dài như giới hạn thời gian xử lý mà người dùng xác định khi gởi công việc Do đó, người dùng được cơ động để ước lượng chính xác giới hạn thời gian xử lý vì giá trị thấp hơn có nghĩa là đáp ứng nhanh hơn Định thời SJF được dùng thường xuyên trong định thời dài

CPU ngắn vì không có cách nào để biết chiều dài chu kỳ CPU tiếp theo Một tiếp cận là khác gần đúng định thời SJF được thực hiện Chúng ta

có thể không biết chiều dài của chu kỳ CPU kế tiếp nhưng chúng ta có đoán giá trị của nó Chúng ta mong muốn rằng chu kỳ CPU kế tiếp sẽ tương tự chiều dài những chu kỳ CPU trước đó Do đó, bằng cách tính toán mức xấp xỉ chiều dài của chu kỳ CPU kế tiếp, chúng ta chọn một quá trình với chu kỳ CPU được đoán là ngắn nhất

Ngày đăng: 13/05/2014, 19:49

HÌNH ẢNH LIÊN QUAN

Bảng phân phát trong Solaris - Định thời biểu cho cpu
Bảng ph ân phát trong Solaris (Trang 34)

TỪ KHÓA LIÊN QUAN

w