1. Trang chủ
  2. » Tất cả

HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS) SleepWakeup

25 7 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 đề Hệ Điều Hành Thời Gian Thực (RTOS) SleepWakeup
Người hướng dẫn Huỳnh Hoàng Hà
Trường học Trường đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh
Chuyên ngành Hệ điều hành thời gian thực (RTOS)
Thể loại Nghiên cứu
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 25
Dung lượng 2,21 MB

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

Nội dung

SLEEP là một lời gọi hệ thống có tác dụng tạm dừng hoạt động của tiến trình (blocked) gọi nó và chờ đến khi được một tiến trình khác « đánh thức ». Lời gọi hệ thống WAKEUP nhận một tham số duy nhất: tiến trình sẽ được tái kích hoạt (đặt về trạng thái ready). Khi một tiến trình chưa đủ điều kiện vào miền găng, nó gọi SLEEP để tự khóa đến khi có một tiến trình khác gọi WAKEUP để giải phóng cho nó. Một tiến trình gọi WAKEUP khi ra khỏi miền găng để đánh thức một tiến trình đang chờ, tạo cơ hội cho tiến trình này vào miền găng

Trang 1

Trường đại học Sư phạm Kỹ thuật TP Hồ Chí Minh

Khoa Đào tạo Chất lượng cao

HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS)

Sleep&Wakeup

GV hướng dẫn: Huỳnh Hoàng Hà

Trang 2

Danh sách các thành viên:

Trang 4

Introduction

Trang 5

o SLEEP là một lời gọi hệ thống có tác dụng tạm dừng

hoạt động của tiến trình (blocked) gọi nó và chờ đến khi được một tiến trình khác « đánh thức »

o Lời gọi hệ thống WAKEUP nhận một tham số duy nhất:

tiến trình sẽ được tái kích hoạt (đặt về trạng thái ready).

Introduction

Trang 6

Ý TƯỞNG int busy; // 1 nếu miền găng đang bị chiếm, nếu không là 0

int blocked; // đếm số lượng tiến trình đang bị khóa.

}

Introduction

o Khi một tiến trình chưa đủ điều

kiện vào miền găng, nó gọi

SLEEP để tự khóa đến khi có một

tiến trình khác gọi WAKEUP để

giải phóng cho nó

o Một tiến trình gọi WAKEUP khi ra

khỏi miền găng để đánh thức một

tiến trình đang chờ, tạo cơ hội

cho tiến trình này vào miền găng

Trang 8

Nhược điểm

 (a) Process A

while (TRUE) {

if (busy) {     blocked = blocked + 1;

    sleep();

} busy = 1;

}

 (b) Process B

while (TRUE) {

if (busy) {     blocked = blocked + 1;

    sleep();

} busy = 1;

}

Initial: + busy=0; // busy=1 means: the CS has a process inside.

+ blocked=0; // blocked: is the number of processes blocked in the Waiting List.

Introduction

Trang 9

Nhược điểm Initial: + busy=0; // busy=1 means: the CS has a process inside.

+ blocked=0; // blocked: is the number of processes blocked in the Waiting List.

 (a) Process A

while (TRUE) {

if (busy) {     blocked = blocked + 1;

    sleep();

} busy = 1;

}

 (b) Process B

while (TRUE) {

if (busy) {     blocked = blocked + 1;

    sleep(); //W = {B}; forever

} busy = 1;

}

Introduction

Trang 10

GIẢI PHÁP

Hệ điều hành cung cấp những

cơ chế đồng bộ hóa dựa trên ý tưởng của chiến lược « SLEEP and WAKEUP » nhưng được xây dựng bao hàm cả phương tiện kiểm tra điều kiện vào miền găng giúp sử dụng an toàn.

Introduction

Trang 11

Semaphor e

Trang 12

o Một semaphore s là một biến gồm các thuộc tính sau:

o Một giá trị khởi tạo nguyên dương s lớn hơn hoặc bằng 0 (s>=0)

o Một hàng đợi (waiting list) f(s) lưu danh sách các tiến trình đang bị khóa (block) trên semaphore s (danh sách f(s) lúc đầu là NULL rỗng, nếu có nhiều tiến trình vào dánh sách thì sẽ theo phương pháp FIFO)

o P và Q là biến con trỏ để đỏ đến tiến trình cần quản lý

o Chỉ có hai thao tác được định nghĩa trên semaphore: down(s) và up(s)

Trang 13

o Down(s): giảm giá trị của semaphore s đi 1 đơn vị nếu semaphore có trị e(s) > 0, và tiếp tục xử lý Ngược lại, nếu e(s) £ 0, tiến trình phải chờ đến khi e(s) >0.

 Down(s): block a process, and put into f(s)

void Down(int s) {

s = s - 1;

if (s < 0) { status(P)= blocked;

enter(P,f(s));

}}

Up(s): wake up a process from f(s)

void Up( int s) {

enter(Q,ready-}

o Up(s): tăng giá trị của semaphore s lên 1 đơn vị Nếu có một hoặc nhiều tiến trình đang chờ trên semaphore s, bị khóa bởi thao tác Down, thì hệ thống sẽ chọn một trong các tiến trình này để kết thúc thao tác Down và cho tiếp tục xử lý

Semaphore

Trang 14

 Process(A) while (TRUE) {

o Situation01: Exclusive access to Critical

section (only 1 process enters the CS)

o Initial: s = 1;

Trang 15

Situation02: control the sequence of 2 Jobs (Job_01 must run completely before Job_02) Initial: s = 0;

while (TRUE) {

Job_01();

Up(s); //Wake up B }

while (TRUE) {

Down(s); // Waiting P1 Job_02();

}

Semaphore

Trang 16

Monitor

Trang 17

Monitor là một cấu trúc đặc biệt gồm các biến, các thủ tục và cấu trúc dữ liệu và tuân theo các thuộc tính sau:

Monitor

Trang 18

Monitor là một cấu trúc đặc biệt gồm các biến, các thủ tục và cấu trúc dữ liệu và tuân theo các thuộc tính sau:

o - Các biến và các cấu trúc dữ liệu bên trong Monitor chỉ được thao tác bởi các thủ tục định nghĩa bên trong Monitor

(encapsulation)

o - Tại một thời điểm chỉ có một tiến trình được quyền sử dụng Monitor (Mutual Exclusive) 

o - Trong một monitor có thể định nghĩa các  biến điều kiện (a,

b, c, ) và hai thao tác đính kèm (wait và signal)

Wait(c): chuyển trạng thái tiến trình gọi sang blocked , và đặt

tiến trình này vào hàng đợi trên biến điều kiện c.

Signal(c): nếu có một tiến trình đang bị khóa trong hàng đợi

của c, tái kích hoạt tiến trình đó, và tiến trình gọi sẽ rời khỏi

monitor

Monitor

Trang 19

Monitor Seraphore

Trang 20

Procedure 1 Procedure N

Monitor.Procedure1() ;

A();

Noncritical-section-}

Monitor Semaphore

Monitor takes care of

Trang 21

Các

phương

pháp khác

Trang 22

o Semaphore: Binary semaphore, counting semaphore.

pháp khác

Trang 23

Tổng kết

Trang 24

o Busy waiting:

+ Dễ dàng thiết lập

+ Vấn đề: tiến trình vẫn giữ CPU dù không làm việc gì.

+ Gồm các giải pháp Lock, Alternating, Peterson, Interrupt

o Sleep and Wakeup:

+ Thiết lập phức tạp.

+ Tối ưu hiệu năng của CPU

+ Gồm các giải pháp Semaphore, Monitor, others,

Tổng kết

Trang 25

Cảm ơn thầy và các bạn đã lắng

nghe!

Ngày đăng: 06/02/2023, 22:53

TỪ KHÓA LIÊN QUAN

w