lap lich cpu

71 12 1
lap lich cpu

Đ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

• FCFS “không công bằng” với process có CPU burst ngắn vì nó phải chờ trong thời gian dài (so với thời gian mà nó cần phục vụ) thì mới được sử dụng CPU. Điều này đồng nghĩa với việc F[r]

(1)(2)

Mục tiêu

• Hiểu được

– Tại cần phải định thời – Các tiêu chí định thời

– Một số giải thuật định thời

(3)

Phân loại q trình

• Chu kỳ CPU-I/O – CPU burst – I/O burst

• CPU-bound process có thời gian sử dụng CPU nhiều thời gian sử dụng I/O

(4)

Vấn đề cần giải

• Trong hệ thống multiprogramming / multitasking

– Tại thời điểm nhớ có nhiều process – Tại thời điểm có process thực

thi

• Giả sử hệ thống có CPU (1 processor)

(5)

Phân loại hoạt động định thời (1/2) ready ready running running suspended ready suspended ready new new Long-term scheduling Long-term scheduling Medium-term scheduling Short-term scheduling

Đường gạch rời:

(6)

Phân loại hoạt động định thời (2/2)

• Định thời dài hạn (long-term scheduling): xác định process (new) tiếp tục vào “sâu hơn” hệ thống.

– Thường có batch system

• Định thời trung hạn (medium-term scheduling): xác định process đưa vào (swap in), đưa khỏi (swap out) nhớ chính.

– Swap in/out tốn đến vài giây thời gian  chu kỳ định thời trung hạn vài phút.

(7)

Định thời dài hạn

• Ảnh hưởng đến độ-đa-lập-trình (degree of

multiprogramming: số trình nhớ)

• Nếu nhiều process nhớ khả moi process bị block có xu hướng giảm

– Sử dụng CPU hiệu hơn

(8)

Định thời trung hạn

• Qút định việc đưa process (khơng phải process trạng thái new) vào nhớ chính, hay khỏi nhớ chính

• Phụ thuộc vào yêu cầu quản lý việc đa-lập-trình (multiprogramming)

– Cho phép định thời dài hạn chấp nhận (admit) nhiều process số lượng process mà có tổng kích thước chứa vừa nhớ ( kỹ thuật nhớ ảo)

– Nhưng nếu có nhiều process làm tăng việc truy xuất đĩa, cần phải lựa chon độ-đa-lập-trình cho phù hợp

(9)

Định thời ngắn hạn

• Xác định process thực thi tiếp theo, cịn goi là định thời CPU

• Tùy hệ thống ( định thời nonpreemptive,

preemptive) mà kích hoạt có kiện dẫn đến khả chon process để thực thi

– Ngắt thời gian (clock interrupt) – Ngắt ngoại vi (I/O interrupt)

(10)

Nội dung cần quan tâm

• Định thời hệ thống có một processor

(uniprocessor scheduling): quyết định việc sử dụng (một) CPU cho tập process hệ thống

(11)

Tiêu chí định thời (1/4)

• CPU utilization (% sử dụng CPU, Độ lợi CPU)

• Throughput (Thơng năng)

• Turnaround-time (Thời gian quay vịng)

• Response time (Thời gian đáp ứng)

• Waiting time (Thời gian chờ)

(12)

Tiêu chí định thời (2/4)

• CPU utilization (% sử dụng CPU, Độ lợi CPU) – CPU utilization CPU: [0% - 100%]

– Lightly loaded system: < 40%, heavy-loaded: > 90% – Maximize CPU utilization

• Thơng năng (throughput)

(13)

Tiêu chí định thời (3/4)

• Thời gian đáp ứng (response time)

– Thời gian từ lúc có yêu cầu người dùng (user request) đến có đáp ứng đầu tiên

– Thường vấn đề với I/O-bound process – Minimize response time

• Waiting time (Thời gian chờ)

(14)

Tiêu chí định thời (3/4)

• Thời gian đáp ứng (response time)

• Waiting time (Thời gian chờ)

• Thời gian quay vịng (turn-around time)

– Thời gian để process hoàn tất, kể từ lúc vào hệ thống (submission) đến lúc kết thúc (termination) – Là trị đặc trưng cần quan tâm với process

thuộc dạng CPU-bound

– Minimize turn-around time

(15)

Tiêu chí định thời (4/4)

• Độ lợi CPU – giữ CPU bận tốt

– Tối đa hóa

• Thơng – số lượng process kết thúc việc thực thi đơn vị thời gian

– Tối đa hóa

• Turnaround time – thời gian kể từ lúc đưa vào (submission) đến lúc kết thúc

– Tối thiểu hóa

• Thời gian chờ – thời gian process chờ hàng đợi ready

(16)

Scheduling algorithms

• Các giải thuật lập lịch đánh giá qua tiêu chí này.

• Các giải thuật gồm:

– First Come, First Served (FCFS) scheduling – Shortest-Job-First scheduling

– Priority Scheduling

(17)

Tiêu chí định thời từ góc nhìn (1/2)

• Hướng đến người sử dụng (user-oriented)

– Thời gian quay vịng

• Thời gian từ lúc submission đến lúc process kết thúc • Cần quan tâm với hệ thống xử lý bó (batch system)

– Thời gian đáp ứng

(18)

Tiêu chí định thời từ góc nhìn (2/2)

• Hướng đến hệ thống (system-oriented)

– Độ lợi CPU

– Công (fairness)

(19)

Hai thành phần chiến lược định thời (1/2)

• Hàm lựa chọn (selection function)

– Xác định process ready queue thực thi tiếp theo Thường theo tiêu chí như

• w = tổng thời gian đợi hệ thống • e = thời gian phục vụ

• s = tổng thời gian thực thi process (bao gồm trị

(20)

Hai thành phần chiến lược định thời (2/2)

• Chế độ định (decision mode)

Định nghĩa thời điểm hàm lựa chon thực thi

– Nonpreemptive

• Một process trạng thái running cho đến bị block kết thúc

– Preemptive

• Process thực thi bị ngắt chuyển trạng thái ready

(21)

Thời điểm thực thi hàm lựa chọn

ready

ready runningrunning

(2)

(3) (1)

new

(22)

Nonpreemption preemption (1/2)

• Hàm lựa chon thực thi có q trình

(1) chuyển từ trạng thái running sang waiting

(2) chuyển từ trạng thái running sang ready

(3) chuyển từ trạng thái waiting, new sang ready

(4) kết thúc thực thi

• Chiến lược định thời nonpreemptive: thực thi hàm lựa chon trường hợp (quá trình running nếu bị ngắt tiếp tục running sau đó)

(23)

Nonpreemption preemption (2/2)

• Hiện thực chế độ qút định khó hơn? Tại sao?

• Preemptive scheduling: hai loại thực

– Preemption user space

– Có thể preemption kernel space

(24)

Dispatcher

• Dispatcher chuyển quyền điều khiển CPU cho process chon định thời ngắn hạn

• Bao gồm:

– Chuyển ngữ cảnh (sử dụng thông tin ngữ cảnh PCB) – Chuyển user mode

– Nhảy đến vị trí thích hợp (chính program counter PCB) chương trình ứng dụng để trình tiếp tục thực thi

• Cơng việc gây phí tổn

(25)

Scheduling algorithms

• Các giải thuật định thời CPU gồm:

– First Come, First Served (FCFS) scheduling – Shortest-Job-First scheduling

– Priority Scheduling

(26)

First Come First Served (FCFS) (1/5)

• Hàm lựa chon: chon process hàng đợi ready lâu nhất

• Chế độ quyết định: nonpreemptive

– Một process thực thi cho đến block hoặc kết thúc

(27)

First Come First Served (FCFS) (2/5)

Process Burst time (ms)

P1 24

P2 3

P3 3

• Giả sử process đến theo thứ tự P1 , P2 , P3

• Giản đồ GantP1 cho việc định thời là:P2 P3

24 27 30

(28)

First Come First Served (FCFS) (3/5)

• Thời gian phục vụ trung bình = • Thơng =

• Thời gian quay vịng =

P1 P2 P3

24 27 30

(29)

First Come First Served (FCFS) (4/5)

• Giả sử process đến theo thứ tự: P2 , P3 , P1

• Giản đồ Gantt cho việc định thời là:P2 P3 P1

3 30

(30)

First Come First Served (FCFS) (5/5)

• FCFS “khơng cơng bằng” với process có CPU burst ngắn phải chờ thời gian dài (so với thời gian mà cần phục vụ) sử dụng CPU Điều đồng nghĩa với việc FCFS “ưu tiên”

process thuộc dạng CPU bound.

• Câu hỏi: Liệu có xảy trường hợp trì hỗn vơ hạn

định (starvation hay indefinite blocking) với giải thuật FCFS?

(31)

Ví dụ thực tế

• Việc phục vụ khách nhà hàng

– Thực khách đến goi ăn cho mình – Mỗi ăn cần thời gian chuẩn bị khác nhau

• Mục tiêu:

– Giảm thời gian đợi trung bình thực khách

(32)

Shortest Job First (SJF) (1/3)

Process Thời điểm đến Burst time (ms) P1 0,0

P2 2,0

P3 4,0

P4 5,0

• Giản đồ Gantt định thời theo SJF

P1 P3 P2

7

3 16

0

P4

(33)

Shortest Job First (SJF) (2/3)

• Thời gian phục vụ trung bình = • Thơng =

• Thời gian quay vòng =

P1 P3 P2

7

3 16

0

P4

(34)

Shortest Job First (SJF) (3/3)

• Đối với process, cần biết độ dài CPU burst

• Hàm lựa chon: chon process có độ dài CPU burst nhỏ nhất

• Chế độ quyết định: nonpreemptive

• Chứng minh được: SJF tối ưu việc giảm thời gian đợi trung bình

• Vấn đề: Cần phải ước lượng thời gian cần CPU tiếp theo process

(35)

Dự đoán thời gian sử dụng CPU (1/2)

 (Thời gian sử dụng CPU độ dài CPU burst)

• Trung bình có số CPU burst đo khứ

• Giả thiết: CPU burst phản ánh gần hành vi process tương lai

• Phương pháp trung bình hàm mũ (exponential averaging)

– n+1 = tn + (1  )n ,  

• t trị đo được,  trị dự đoán

(36)

Dự đoán thời gian sử dụng CPU (2/2) Độ dài CPU burst

đo

(37)

Shortest Job First (SJF)

• SJF sử dụng ưu tiên ngầm định: công việc ngắn được ưu tiên trước

– Những công việc thuộc loại I/O bound thường có CPU burst ngắn

• Process có thời gian thực thi dài bị trì hỗn vơ hạn định nếu process có thời gian thực thi ngắn liên tục vào

(38)

Shortest Remaining Time First (SRTF) (1/4)

• Chế độ quyết định SJF: nonpreemptive • Phiên preemptive SJF:

– Nếu process đến mà có độ dài CPU burst nhỏ thời gian cần CPU lại process

đang thực thi, thực preempt process thực thi

(39)

Shortest Remaining Time First (2/4)

(Ví dụ giống vd cho SJF)

Process Thời điểm đến Burst time (ms) P1 0,0

P2 2,0

P3 4,0 P4 5,0

• Giản đồ Gantt định thời theo SRTFP1 P2 P3

4

2 11

0

P4

5

P2 P1

(40)

Shortest Remaining Time First (3/4)

• Thời gian phục vụ trung bình = • Thơng =

• Thời gian quay vòng =

P1 P2 P3

2 11

0

P4

5

P2 P1

(41)

Shortest Remaining Time First (4/4)

• Tránh trường hợp process có thời gian thực thi dài độc chiếm CPU

• Cần phải quản lý thời gian thực thi lại các process

• Có thời gian quay vịng tốt SJF

(42)

Priority Scheduling

• Mỗi process gán độ ưu tiên

• CPU cấp cho process có độ ưu tiên cao nhất

• Chế độ quyết định:

– Preemptive

(43)

Gán độ ưu tiên

• SJF: độ ưu tiên thời-gian-sử-dụng-CPU-dự-đốn

• Gán độ ưu tiên cịn dựa vào:

– Yêu cầu nhớ

– Số lượng file mở

(44)

Priority Scheduling

• Vấn đề: trì hỗn vơ hạn định – process có độ ưu tiên thấp không thực thi

(45)

Round Robin (RR) (1/4)

• Hàm lựa chon: giống FCFS

2

3

4

(46)

Round Robin (2/4)

• Chế độ quyết định: preemptive

– Khoảng thời gian tối đa cho phép (quantum time, thường 10 - 100 ms) đảm bảo việc sử dụng timer interrupt

(47)

Round Robin (3/4)

Process Burst time (ms)

P1 53

P2 17

P3 68

P4 24

• Quantum time = 20 ms • Giản đồ Gantt: P

1 P2 P3 P4 P1 P3 P4 P1 P3 P3

(48)

Round Robin (4/4)

• Thời gian phục vụ trung bình = • Thơng =

• Thời gian quay vịng =

(49)

Quantum time chuyển ngữ cảnh

• Quantum time nhỏ có nhiều lần chuyển ngữ cảnh (context switch) thực thi.

(50)

Quantum time thời gian quay vòng

(51)

Quantum time cho Round Robin*

• Khi thực process switch OS sử dụng CPU process người dùng (OS overhead, phí tổn):

– Dừng thực thi, lưu tất thông tin, nạp thông tin process thực thi

• Performance tùy thuộc vào kích thước quantum time (còn goi time slice), hàm phụ thuộc khơng đơn giản

• Time slice ngắn đáp ứng nhanh

– Vấn đề: có nhiều chuyển ngữ cảnh Phí tổn cao

(52)

Quantum time cho Round Robin

• Quantum time thời gian cho process switch:

– Nếu quantum time = 20 ms thời gian cho process switch = ms, phí tổn (OS overhead) chiếm / (20 + 5) = 20% – Nếu quantum = 500 ms, phí tổn cịn  1%

• Nhưng nếu có nhiều người sử dụng interactive thấy đáp ứng chậm

• Tùy thuộc vào tập cơng việc mà lựa chon quantum time

• Quantum time nên lớn tương quan so sánh với thời gian cho process switch

(53)

Round Robin

• Nếu có n process hàng đợi ready,

quantum time q, process lấy 1/n thời gian CPU theo khối có kích thước lớn q

– Sẽ process chờ lâu (n  1)q đơn vị thời gian

(54)

Round Robin: nhược điểm

• Các process dạng CPU-bound cịn “ưu tiên”

– Ví dụ:

• Một I/O-bound process sử dụng CPU thời gian

ngắn quantum time bị blocked để đợi I/O Và

• Một CPU-bound process chạy hết time slice liên tục

quay trở hàng đợi ready queue, thường trước

(55)

Multilevel Queue Scheduling (1/3)

Trường hợp trình phân thành nhóm, ví dụ:

interactive batch.

• Hàng đợi ready chia thành nhiều hàng đợi riêng rẽ Ví dụ:

– foreground (cho cơng việc cần giao tiếp)

– background (cho cơng việc dạng bó)

(56)

Multilevel Queue Scheduling (2/3)

• Định thời cần phải thực hàng đợi với nhau

– Theo cách cố định (fixed priority scheduling) – ví dụ: phục vụ tất process foreground mới đến background

• Có khả xảy trì hỗn vơ hạn định (starvation)

– Chia thời gian (time slice) – hàng đợi

được lấy khoảng sử dụng CPU định để định thời cho process Ví dụ:

• 80% cho foreground (dùng RR)

(57)

Multilevel Queue Scheduling (3/3)

• Ví dụ phân nhóm q trình

System Processes

Interactive Processes

(58)

Multilevel Feedback Queue (1/3)

• Trong hệ thống Multilevel Feedback Queue, định thời di chuyển process

queue tùy theo đặc tính quan sát.

 Ví dụ:

– Nếu process sử dụng CPU lâu, bị di chuyển sang hàng đợi có độ ưu tiên thấp hơn – Nếu process chờ qua lâu hàng đợi có

(59)

Multilevel Feedback Queue (2/3)

• Ví dụ: Có hàng đợi

– Q0 , dùng RR với quantum ms

– Q1 , dùng RR với quantum 16 ms

– Q2 , dùng FCFS

• Giải thuật

– Cơng việc mới vào hàng đợi Q0 Khi đến lượt, công việc

được quantum milli giây Nếu không trả CPU milli giây, công việc đưa xuống đuôi hàng đợi Q1

(60)

Multilevel Feedback Queue (3/3)

• Multilevel Feedback Queue xác định các thông số

– Có hàng đợi?

– Với queue sử dụng giải thuật định thời nào? – Khi thăng cấp process?

(61)

Policy Mechanism *

Rất quan trong định thời phân phối tài nguyên

• Policy

– Điều (what) nên (hay cần) làm

• Mechanism (Implementation)

– Làm (how) để làm điều

• Ví dụ

(62)

Định thời thống multiprocessor *

• Nếu có nhiều CPU thực việc chia tải

– Phức tạp so với định thời processor • Làm để chia tải?

– Asymmetric multiprocessor

• Một master processor thực định thời cho tất processor cịn lại

– Symmetric multiprocessor (SMP)

• Hoặc processor có hàng đợi ready riêng định

thời riêng

• Hoặc có hàng đợi ready chung cho tất processors

(63)

Processor affinity *

• Khi process chạy processor, có một số liệu cache nhớ cache của processor

• Khi process di dời sang processor khác

(64)

Cân tải *

• Một processor có q nhiều tải, bộ xử lý khác lại rảnh

• Cân tải sử dụng:

– Push migration: task đặc biệt định kỳ kiểm tra tải tất processors công việc đẩy đến processor rảnh

– Pull migration: processor rảnh lấy công việc từ processor bận

– Một số hệ thống (ví dụ Linux) thực hai

(65)

Phương pháp đánh giá giải thuật định thời CPU *

• Deterministic modeling

– Định nghĩa trước tập tải (workload) khảo sát performance giải thuật tập tải – Khơng tổng qt

• Queuing model

– Sử dụng queuing theory để phân tích giải thuật – Sử dụng nhiều giả thiết để phục vụ việc phân tích – Khơng sát thực tế

• Mơ phỏng (simulation)

(66)

Tổng kết

• Sự thực thi process

• Bộ định thời chon process từ hàng đợi ready

– Dispatcher thực switching

• Các tiêu chí định thời (thường xung đột nhau)

– Độ lợi CPU, thời gian chờ, thời gian đáp ứng, thơng năng,…

• Các giải thuật định thời

– FCFS, SJF, Priority, RR, Multilevel Feedback Queue,…

• Định thời hệ thống multiprocessor (đoc thêm)

– Processor affinity cân tải

• Phương pháp đánh giá giải thuật định thời CPU (đoc thêm)

(67)

Một số vấn đề bàn thêm

• Cách làm tốt adaptive

• Để thực tối ưu hồn tồn cần phải tiên đoán tương lai (!)

– Thực tế đa số giải thuật lại cho kết gán độ ưu tiên cao cho process có nhu cầu nhất – Vấn đề định thời có xu hướng chuyển sang “tweak

(68)

Bài tập 1

Process Burst Time

P1 10

P2 29

P3 3

P4 7

P5 12

• Tất đến thời điểm

• Xét giải thuật FCFS, SFJ, RR với quantum time = 10 • Giải thuật cho

– thời gian đợi trung bình nhỏ nhất? – thơng cao nhất?

(69)

Bài tập 2

(70)

Bài tập 3

(71)

Bài tập 4

Ngày đăng: 08/05/2021, 07:29

Tài liệu cùng người dùng

Tài liệu liên quan