Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Đèn hiệu cho phép có n xe chạy trên cầu

2 posters

Go down

Đèn hiệu cho phép có n xe chạy trên cầu Empty Đèn hiệu cho phép có n xe chạy trên cầu

Bài gửi  DuongMinhNguyen(102C) 4/5/2011, 22:49

typedef int semaphore;
int flag; //biến ghi nhận số xe có trên cầu

wait(semephore S)
{
while(flag = n); //nếu trên cầu có n xe thì phải chờ > đèn đỏ
S--;
}

signal(semephore S)
{
if(flag < n) //nếu số xe trên cầu nhỏ hơn n thì đèn xanh
S++;
}

Theo mình nghĩ là vậy. Các bạn đóng góp thêm nha. Tks

Admin
Không phải vậy. Sự việc đơn giản hơn nhiều.

DuongMinhNguyen(102C)

Tổng số bài gửi : 38
Join date : 17/02/2011

Về Đầu Trang Go down

Đèn hiệu cho phép có n xe chạy trên cầu Empty Re: Đèn hiệu cho phép có n xe chạy trên cầu

Bài gửi  LuuDucPhu (102C) 5/5/2011, 09:05

DuongMinhNguyen(102C) đã viết:typedef int semaphore;
int flag; //biến ghi nhận số xe có trên cầu

wait(semephore S)
{
while(flag = n); //nếu trên cầu có n xe thì phải chờ > đèn đỏ
S--;
}

signal(semephore S)
{
if(flag < n) //nếu số xe trên cầu nhỏ hơn n thì đèn xanh
S++;
}

Theo mình nghĩ là vậy. Các bạn đóng góp thêm nha. Tks

Phần này bạn không đưa ứng dụng vào nên khó nhìn rõ vấn đề. Biến flag được khai báo nhưng không được gán giá trị là số xe đang có trên cầu, và không được trả về lại số xe khi có xe mới lên cầu và xe ra khỏi cầu.Mình xin góp ý như vậy Smile

Bài giải của mình là như vậy:
Phần này không thay đổi:
typedef int semaphore;
wait (semaphore S) {
while ( S <= 0 );
S --;
}

signal (semaphore S) {
S ++;
}
Phần ứng dụng cho n xe lên cầu :
semaphore mutex=n; //n là số xe tối đa có thể ở trên cầu
while (1) {
remainder section
wait (mutex);
critical section
signal (mutex);
remainder section
}
Mong bạn Nguyên và các bạn góp ý.

LuuDucPhu (102C)

Tổng số bài gửi : 40
Join date : 17/02/2011

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết