Cài đặt semaphore theo cấu trúc
Trang 1 trong tổng số 1 trang
Cài đặt semaphore theo cấu trúc
- Khắc phục chờ bận: Chuyển vòng lặp chờ
thành việc sử dụng toán tử block (tạm dừng)
- Để khôi phục thực hiện từ block, ta có toán tử
wakeup
- Khi đó để cài đặt, ta có cấu trúc dữ liệu mới
cho semaphore:
typedef struct {
int value; // Giá trị của semaphore
struct process *L; // Danh sách tiến trình chờ...
} semaphore;
*
void wait(semaphore *S)
{
S->value--;
if (S->value<0) {
Thêm tiến trình gọi
toán tử vào s->L;
block();
}
}
*
void signal(semaphore *S)
{
S->value++;
if (S->value<=0) {
Xóa một tiến trình P
ra khỏi s->L;
wakeup(P);
}
}
thành việc sử dụng toán tử block (tạm dừng)
- Để khôi phục thực hiện từ block, ta có toán tử
wakeup
- Khi đó để cài đặt, ta có cấu trúc dữ liệu mới
cho semaphore:
typedef struct {
int value; // Giá trị của semaphore
struct process *L; // Danh sách tiến trình chờ...
} semaphore;
*
void wait(semaphore *S)
{
S->value--;
if (S->value<0) {
Thêm tiến trình gọi
toán tử vào s->L;
block();
}
}
*
void signal(semaphore *S)
{
S->value++;
if (S->value<=0) {
Xóa một tiến trình P
ra khỏi s->L;
wakeup(P);
}
}
NgoMinhTien(I22A)- Tổng số bài gửi : 12
Join date : 21/03/2013
Similar topics
» Cài đặt semaphore theo cấu trúc
» Thảo luận Bài 7
» Thảo luận Bài 7
» CẤU TRÚC HỆ ĐIỀU HÀNH - Theo cách hiểu của mình
» Thảo luận Bài 1
» Thảo luận Bài 7
» Thảo luận Bài 7
» CẤU TRÚC HỆ ĐIỀU HÀNH - Theo cách hiểu của mình
» Thảo luận Bài 1
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết