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.

Giải bài tập về nhà câu 1,2,3,4 chương 7

+3
LuuDucPhu (102C)
TranThiTuyetNhung [i02c]
TranKimKhoa(102c)
7 posters

Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Giải bài tập về nhà câu 1,2,3,4 chương 7

Bài gửi  TranKimKhoa(102c) 5/5/2011, 08:34

Code:
typedef int semaphore;
semaphore mutex=2; // mặc định đèn hiệu cho 2 xe lên cầu cùng lúc, mỗi xe lên cầu thì mutex giảm đi 1

wait (semaphore s) {
    while (s<=0);  // quẫn tại đây khi trên cầu đã có 2 xe
    s--;
}

signal (semaphore s) {
    s++; // mỗi khi có 1 xe xuống cầu thì mutex lại tăng lên
}

// đoạn code chính cho xe lên cầu
while (1) {
    wait(mutex);
        // đoạn code cho 1 xe lên cầu
    signal(mutex);
}

nếu có sai sót mong mọi người giúp đỡ thêm nhé, thanks! Very Happy

Admin
- Hiểu đúng bài toán và có lời giải bằng chương trình đúng.
- Tuy nhiên, theo thuật giải trên, xe của em "liên tục" qua cầu, nghĩa là vừa qua cầu rồi lại "lên" lần nữa !
- Cần chỉ rõ là đèn hiệu sử dụng có mấy màu ?


Được sửa bởi TranKimKhoa(102c) ngày 5/5/2011, 09:33; sửa lần 2.

TranKimKhoa(102c)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty giải bài tập câu 2

Bài gửi  TranKimKhoa(102c) 5/5/2011, 08:58

Bài tập câu 2: Đảm bảo sao cho P1 trước P2, P2 trước P3

Giải:

ta dùng 2 đèn hiệu sau:

semaphore synch1=0, synch2=0;

Cấu trúc P1
Cấu trúc P2
Cấu trúc P3
S1
signal(synch1)
wait(synch1)
S2
signal(synch2)
wait(synch2)
S3

Admin
Các bài tập đều giải rất đúng. Chắc có tham khảo lời giải của khóa trước ?

TranKimKhoa(102c)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty giải bài tập câu 3

Bài gửi  TranKimKhoa(102c) 5/5/2011, 09:00

Bài tập câu 3: Đảm bảo sao cho P1 trước P2 & P3

Giải:

ta dùng 1 đèn hiệu sau:

semaphore synch=0;

Cấu trúc P1
Cấu trúc P2Cấu trúc P3
S1
signal(synch,2)
wait(synch)
S2
wait(synch)
S3
Tại P1, tín hiệu signal phải tăng lên 2 để P2 và P3 có thể làm việc được.

TranKimKhoa(102c)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty giải bài tập câu 4

Bài gửi  TranKimKhoa(102c) 5/5/2011, 09:27

Bài tập câu 4: Đảm bảo sao cho P3 sau P1 & P2

Giải:

ta dùng 1 đèn hiệu sau:

semaphore synch=-1;

Cấu trúc P1
Cấu trúc P2Cấu trúc P3
S1
signal(synch)
S2
signal(synch)
wait(synch)
S3
Khi P1 hoặc P2 làm xong, thì synch được tăng lên 1 bằng 0 (lúc này P3 vẫn phải wait vì synch <=0), P3 phải đợi 1 trong 2 tiến trình còn lại kết thúc, lúc này synch mới được tăng lên 1 thì P3 mới có thể hoàn thành.

TranKimKhoa(102c)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Câu 5 chương 7

Bài gửi  TranThiTuyetNhung [i02c] 5/5/2011, 10:58

Thực thi bài toán sản xuất và tiêu thụ đồng bộ đèn hiệu:
Hai quá trình cùng chia sẻ một vùng đệm có kích thước gián hạn n. Biến semaphore mutex cung cấp sự loại trừ hỗ tương để truy xuất vùng đệm và được khởi tạo với giá trị 1. Các biến Empty và full dùng để chứa các mục quản của đèn hiệu quản lý số vùng trống và số sản phẩm trong bộ đệm. Biến Semaphore empty được khởi tạo giá trị n, biến semaphore khởi tạo với giá trị 0.
- Dữ liệu chia sẽ:
SEMAPHORE full, empty,mutex;
- Khởi tạo:
full=0;
empty = BUFFER_SIZE;
mutex=1;

Buffer xoay vòng out in

- Có gì thiếu sót các bạn bổ sung cho mình với!
Thank All!






TranThiTuyetNhung [i02c]

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Re: Giải bài tập về nhà câu 1,2,3,4 chương 7

Bài gửi  LuuDucPhu (102C) 5/5/2011, 11:22

TranKimKhoa(102c) đã viết:Bài tập câu 3: Đảm bảo sao cho P1 trước P2 & P3

Giải:

ta dùng 1 đèn hiệu sau:

semaphore synch=0;

Cấu trúc P1
Cấu trúc P2Cấu trúc P3
S1
signal(synch,2)
wait(synch)
S2
wait(synch)
S3
Tại P1, tín hiệu signal phải tăng lên 2 để P2 và P3 có thể làm việc được.

Không hiểu chổ signal(synch,2) nếu như vậy thì phải xây dựng lại hàm signal(semaphore S) thành signal(semaphore S,int n)
{
S+=n;
}
theo mình hiểu là vậy không biết đúng không Smile

Admin
Phát hiện đúng. Cần thêm tham biến mới để mở rộng hàm signal. Có thể duy trì 2 hàm signal: Một hàm chỉ có 1 tham biến, còn hàm kia có thêm tham biến n. Lập trình Hướng đối tượng gọi cơ chế cho phép 2 hàm trùng tên (nhưng với danh sách tham biến khác nhau) là Overriding ("Đạp chồng").

LuuDucPhu (102C)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Re: Giải bài tập về nhà câu 1,2,3,4 chương 7

Bài gửi  TranKimKhoa(102c) 5/5/2011, 16:31

Rất cảm ơn thầy và các bạn đã góp ý. Bài tập 1,2,3 là do em tự làm đấy ạ, em chỉ bị bí câu 4 nên phải tham khảo, nhờ tham khảo nên em mới biết synch=-1 Very Happy

TranKimKhoa(102c)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Các bài tập chương 7

Bài gửi  lavansan(102c) 5/5/2011, 17:25

Thanks các bạn rất nhiều và đây là các bài tập mà các bạn khóa trước đã làm mọi người có thể tham khảo tại đây
lavansan(102c)
lavansan(102c)

Tổng số bài gửi : 11
Join date : 17/02/2011
Age : 36
Đến từ : Bình Định

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Re: Giải bài tập về nhà câu 1,2,3,4 chương 7

Bài gửi  nguyenthingoan (i92c) 6/5/2011, 09:56

Cảm ơn bạn nhiều nha. Đây là thông tin bổ ích.

nguyenthingoan (i92c)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Re: Giải bài tập về nhà câu 1,2,3,4 chương 7

Bài gửi  trantanphat102C 6/5/2011, 13:50

lavansan(102c) đã viết:Thanks các bạn rất nhiều và đây là các bài tập mà các bạn khóa trước đã làm mọi người có thể tham khảo tại đây
Thanks bạn nhiều!

trantanphat102C

Tổng số bài gửi : 29
Join date : 13/03/2011

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Có thầy tham gia vào. Chúng ta yên tâm rồi

Bài gửi  LaiVanTan77(I91C) 6/5/2011, 14:15

LuuDucPhu (102C) đã viết:
TranKimKhoa(102c) đã viết:Bài tập câu 3: Đảm bảo sao cho P1 trước P2 & P3

Giải:

ta dùng 1 đèn hiệu sau:

semaphore synch=0;

Cấu trúc P1
Cấu trúc P2Cấu trúc P3
S1
signal(synch,2)
wait(synch)
S2
wait(synch)
S3

Tại P1, tín hiệu signal phải tăng lên 2 để P2 và P3 có thể làm việc được.

Không hiểu chổ signal(synch,2) nếu như vậy thì phải xây dựng lại hàm signal(semaphore S) thành signal(semaphore S,int n)
{
S+=n;
}
theo mình hiểu là vậy không biết đúng không Smile

Admin
Phát hiện đúng. Cần thêm tham biến mới để mở rộng hàm signal. Có thể duy trì 2 hàm signal: Một hàm chỉ có 1 tham biến, còn hàm kia có thêm tham biến n. Lập trình Hướng đối tượng gọi cơ chế cho phép 2 hàm trùng tên (nhưng với danh sách tham biến khác nhau) là Overriding ("Đạp chồng").
Có thầy tham gia vào, chúng em yên tâm những hiểu biết và những suy nghĩ của chúng em có đúng hay không. Cuối cùng chúng ta cũng có một kiến thức bổ ích. Cảm ơn thầy và các bạn cùng chung tay xây dựng một diễn đàn tri thức. Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven

LaiVanTan77(I91C)

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

Về Đầu Trang Go down

Giải bài tập về nhà câu 1,2,3,4 chương 7 Empty Re: Giải bài tập về nhà câu 1,2,3,4 chương 7

Bài gửi  Sponsored content


Sponsored content


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