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.

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

+2
ngocdangI83C
Huynh Nu Huyen An(I92C)
6 posters

Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  Huynh Nu Huyen An(I92C) 9/11/2010, 10:41

Giả sử P1 có mã S1, P2 có mã S2, P3 có mã S3. Cần tổ chức để S2 và S3 thi hành sau S1
Ta có các đèn hiệu sau:

semmaphore synch2 =0, synch3 =0;


Cấu trúc P1:
S1
signal(synch2);
signal(synch3);

Cấu trúc P2:
S2
wait(synch2);

Cấu trúc P3:
S3
wait(synch3);


Admin
Sai !

Huynh Nu Huyen An(I92C)

Tổng số bài gửi : 26
Join date : 22/09/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 9/11/2010, 13:21

cách mình hiểu như sau

semaphore S2 = 0, S3 = 0
Cấu trúc P1 -----------Cấu trúc P2 --------------------Cấu trúc P3
-----S1-------------------wait(synch2)--------------------wait(synch3)
---signal(synch2)--------S2-------------------------------wait(synch3)
---signal(synch3)------signal(synch3)----------------------S3

mong mọi người góp ý thêm

Admin
- Sai ! Lời giải đúng bao giờ cũng đơn giản, còn đây rắc rối quá.
- Cần biết cách đưa hình hoặc bảng lên ! Để thế ai đọc được ?

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Giai 3 bai tap ve dong bo hoa cac tien trinh

Bài gửi  NguyenThiThu(92c) 9/11/2010, 14:13

Minh k bit cach dua hinh anh len, nen k post bai len dc.huu. cac ban bit chi cho minh voi nhe. cam on nhieu


Được sửa bởi NguyenThiThu(92c) ngày 9/11/2010, 14:48; sửa lần 2.

NguyenThiThu(92c)

Tổng số bài gửi : 4
Join date : 14/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 9/11/2010, 14:20

n tiến trình thì dùng n-1 đèn hiệu bạn ơi

Có 3 tiến trình P1,P2 và P3 có mã tương ứng là S1,S2 và S3
2 đèn hiệu :
semaphore synch1 = 0, synch2 = 0;
Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Mapon

Admin
Đúng, nhưng dùng 1 đèn là hay nhất:
Semaphore synch = 0;
P1
P2
P3
S1
wait(synch);
wait(synch);
signal(synch, 2);
S2
S3

Bạn nào thử "bình luận" giải pháp mới này xem sao !

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 9/11/2010, 15:16

NguyenThiThu(92c) đã viết:Minh k bit cach dua hinh anh len, nen k post bai len dc.huu. cac ban bit chi cho minh voi nhe. cam on nhieu

Bạn vào ImageShack.us, tạo một account, bạn up hình lên đây rồi chép url chèn vào đây, enjoy!

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  TruongHuuHien(I92C) 9/11/2010, 15:42

ngocdangI83C đã viết:n tiến trình thì dùng n-1 đèn hiệu bạn ơi

Có 3 tiến trình P1,P2 và P3 có mã tương ứng là S1,S2 và S3
2 đèn hiệu :
semaphore synch1 = 0, synch2 = 0;
Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Mapon
Theo mình nghĩ lnhư bạn đấy.
TruongHuuHien(I92C)
TruongHuuHien(I92C)

Tổng số bài gửi : 76
Join date : 13/09/2010
Age : 36
Đến từ : HCM City

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  VuThanhLongI92 9/11/2010, 15:45

NguyenThiThu(92c) đã viết:Minh k bit cach dua hinh anh len, nen k post bai len dc.huu. cac ban bit chi cho minh voi nhe. cam on nhieu

Nếu bạn làm bài ra giấy thì chụp lại bằng đt hoặc máy ảnh rồi chép vào máy tính, sau đó up lên dd này khi post bài bằng cách chọn button "Hot an image" gần button "Image" (thầy chỉ mình Razz )

dễ hơn nữa nếu bạn làm bài trong file word hay excel ... thì chụp lại bằng nút "Prnt Scrn" sau đó paste vào công cụ MSPaint trong windows, rồi lưu lại thành file -> up lên như cách trên.

Hy vọng bạn sớm làm được và post lên cho mọi người đc tham khảo Very Happy

VuThanhLongI92

Tổng số bài gửi : 64
Join date : 14/09/2010
Age : 40
Đến từ : HCMC

http://www.msao.vn

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty giải bài toán đồng bộ

Bài gửi  Huynh Nu Huyen An(I92C) 9/11/2010, 15:46

Em cảm ơn thầy và các bạn đã nhận xét.Em sẽ đọc thêm để hiểu bài tập đúng.Mong được Thầy và các bạn có thể giải thích về bài tập này kĩ hơn.

Huynh Nu Huyen An(I92C)

Tổng số bài gửi : 26
Join date : 22/09/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 9/11/2010, 16:00

VuThanhLongI92 đã viết:
NguyenThiThu(92c) đã viết:Minh k bit cach dua hinh anh len, nen k post bai len dc.huu. cac ban bit chi cho minh voi nhe. cam on nhieu

Nếu bạn làm bài ra giấy thì chụp lại bằng đt hoặc máy ảnh rồi chép vào máy tính, sau đó up lên dd này khi post bài bằng cách chọn button "Hot an image" gần button "Image" (thầy chỉ mình Razz )

dễ hơn nữa nếu bạn làm bài trong file word hay excel ... thì chụp lại bằng nút "Prnt Scrn" sau đó paste vào công cụ MSPaint trong windows, rồi lưu lại thành file -> up lên như cách trên.

Hy vọng bạn sớm làm được và post lên cho mọi người đc tham khảo Very Happy

Smile mình cũng nhấn vào Host an image và nó link mình tới ImageShack

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 9/11/2010, 16:02

ngocdangI83C đã viết:n tiến trình thì dùng n-1 đèn hiệu bạn ơi

Có 3 tiến trình P1,P2 và P3 có mã tương ứng là S1,S2 và S3
2 đèn hiệu :
semaphore synch1 = 0, synch2 = 0;
Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Mapon

Admin
Đúng, nhưng dùng 1 đèn là hay nhất:
Semaphore synch = 0;
P1
P2
P3
S1
wait(synch)
wait(synch)
signal(synch, 2)
S2
S3

thầy ơi,sao lại 1 đèn, n tiến trình thì phải n-1 đèn chứ thầy

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  TruongHuuHien(I92C) 9/11/2010, 16:19

Cái số 2 ở phần signal(synch, 2) là đại diện cho 2 tiến trinh P2 và P3 phải ko thầy.

Ah bài này khác với bài tiến trình P1 đi trước rùi tới P2 sau đó tới P3. Thực chất chỉ cần 1 đèn là đủ báo hiệu cho P2 và P3 biết.

Bời vì P1 xong thi P2 và P3 làm việc nên ko cần thiết thêm 1 đèn nữa. Nhưng cái số 2 ở phần signal(synch, 2) là em chưa hiểu rõ.
TruongHuuHien(I92C)
TruongHuuHien(I92C)

Tổng số bài gửi : 76
Join date : 13/09/2010
Age : 36
Đến từ : HCM City

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  VoTrungThanh(I92C) 9/11/2010, 23:38

ngocdangI83C đã viết:n tiến trình thì dùng n-1 đèn hiệu bạn ơi

Có 3 tiến trình P1,P2 và P3 có mã tương ứng là S1,S2 và S3
2 đèn hiệu :
semaphore synch1 = 0, synch2 = 0;
Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Mapon

Admin
Đúng, nhưng dùng 1 đèn là hay nhất:
Semaphore synch = 0;
P1
P2
P3
S1
wait(synch);
wait(synch);
signal(synch, 2);
S2
S3

Bạn nào thử "bình luận" giải pháp mới này xem sao !

Giải :
Hàm signal được viết lại như sau:
signal(semaphore S, int i)
{
S = S + i ;
}
Giả sử tại thời điểm ban đầu, tiến trình P2 được thực hiện, hàm wait(synch) được thực hiện nhưng do lúc đầu synch (đèn hiệu) được gán bằng 0 nên tiến trình P2 sẽ bị quẩn ở đây cho đến khi nào synch(đèn hiệu) lớn hơn 0, tiếp theo giả sử tiến trình P3 được thực hiện, cũng như tiến trình P2, P3 sẽ bị quẩn tại hàm wait(synch) cho đến khi synch(đèn hiệu) lớn hơn 0
--> S2 và S3 sẽ chỉ được thực hiện khi S1 được thực hiện.
Khi tiến trình P1 được thực hiện, lệnh S1 được thi hành, rồi đế lệnh signal. khi lệnh này thi hành xong, synch (đèn hiệu) được tăng lên 2.
Tiếp theo giả sử tiến trình P2 được thực hiện, hàm wait sẽ giảm giá trị synch(đèn hiệu) xuống một đơn vị (synch = 1), tiếp tục lệnh S2 được thực hiện.
Hàm wait của tiến trình P3 có thể được thực hiện trước khi S2 được thực hiện, hàm wait này sẽ giảm giá trị synch(đèn hiệu) xuống một đơn vị (synch = 0), rồi lần lượt S2 , S3 được thi hành.
--> Luôn đảm bảo quy tắc S1 đi trước S2 và S3.

Em cảm ơn thầy đã chia sẽ.

Admin
Bạn này khá lắm, mặc dù vấn đề đang xét thực ra "đơn giản" (mà bản chất của mọi công nghệ là vậy, chỉ có cái đầu của chúng ta "rắc rối" thôi). Em nên đi vào Lập trình.

VoTrungThanh(I92C)

Tổng số bài gửi : 13
Join date : 15/09/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 10/11/2010, 08:43

bạn phân tích hàm signal rất chi tiết và cặn kẽ. Nhưng mình nghĩ đây là một cơ chế hỗ trợ cho việc sử dụng đèn hiệu được linh động hơn, còn thì về cơ bản nó vẫn nằm trong quan điểm là n tiến trình thì dùng n-1 đèn hiệu. Bình thường khi dùng sát nghĩa của quan điểm này thì giá trị của một đèn hiệu sẽ chỉ tăng 1 đơn vị trong hàm signal, còn ở đây khi hàm signal được viết lại và có thêm một tham số truyền thì giá trị của đèn hiệu tăng 2 đơn vị ở mỗi lần gọi hàm, phải chăng ở đây 1 đèn hiệu đã đảm nhận vai trò của 2 đèn hiệu...?giống đèn giao thông hiện tại là 3 đèn với 3 màu khác nhau, có thể thay bằng 1 đèn nhưng chớp tắt lúc xanh, lúc đó, lúc vàng

Admin
- Suy nghĩ đúng. Dùng 1 đèn hiệu nhưng với nhiều màu hơn là để thay thế các đèn "thừa" (trang bị thêm thì phải tốn tiền "mua"). Mà dùng 1 đèn thấy sáng sủa và dễ hiểu hơn. Hàm ReleaseSemaphore() của Windows dùng để thực thi signal() có tham biến thứ 2 là số lượng cần tăng cho giá trị của đèn hiệu.
- Bạn này tiến bộ nhiều quá. Nhờ kiên trì "học lại" đấy. Không uổng công đâu.

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 10/11/2010, 09:00

ngocdangI83C đã viết:bạn phân tích hàm signal rất chi tiết và cặn kẽ. Nhưng mình nghĩ đây là một cơ chế hỗ trợ cho việc sử dụng đèn hiệu được linh động hơn, còn thì về cơ bản nó vẫn nằm trong quan điểm là n tiến trình thì dùng n-1 đèn hiệu. Bình thường khi dùng sát nghĩa của quan điểm này thì giá trị của một đèn hiệu sẽ chỉ tăng 1 đơn vị trong hàm signal, còn ở đây khi hàm signal được viết lại và có thêm một tham số truyền thì giá trị của đèn hiệu tăng 2 đơn vị ở mỗi lần gọi hàm, phải chăng ở đây 1 đèn hiệu đã đảm nhận vai trò của 2 đèn hiệu...?giống đèn giao thông hiện tại là 3 đèn với 3 màu khác nhau, có thể thay bằng 1 đèn nhưng chớp tắt lúc xanh, lúc đó, lúc vàng

Admin
- Suy nghĩ đúng. Dùng 1 đèn hiệu nhưng với nhiều màu hơn là để thay thế các đèn "thừa" (trang bị thêm thì phải tốn tiền "mua"). Mà dùng 1 đèn thấy sáng sủa và dễ hiểu hơn. Hàm ReleaseSemaphore() của Windows dùng để thực thi signal() có tham biến thứ 2 là số lượng cần tăng cho giá trị của đèn hiệu.
- Bạn này tiến bộ nhiều quá. Nhờ kiên trì "học lại" đấy. Không uổng công đâu.

hihi,em cảm ơn thầy lắm lắm, em chỉ xin thầy cho em điểm chuyên cần và điểm diễn đàn nhiều một chút thôi ạ

Admin
- Điểm Diễn đàn được tối đa rồi đấy (3 đ). Điểm Chuyên cần cũng cao nhất luôn (2 đ), còn Điểm Giữa kỳ thì chắc 5 thôi (nhưng phải làm được ở mức độ nào đó) vì đề sẽ dựa vào những nội dung thảo luận trên Diễn đàn (xem kỹ phân tích của thày và các bạn thì làm được).
- Nhắc tất cả: Phải đi học đều vì Kiểm tra Giữa kỳ có thể bất cứ lúc nào !

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

Bài gửi  ngocdangI83C 10/11/2010, 09:32

ngocdangI83C đã viết:
ngocdangI83C đã viết:bạn phân tích hàm signal rất chi tiết và cặn kẽ. Nhưng mình nghĩ đây là một cơ chế hỗ trợ cho việc sử dụng đèn hiệu được linh động hơn, còn thì về cơ bản nó vẫn nằm trong quan điểm là n tiến trình thì dùng n-1 đèn hiệu. Bình thường khi dùng sát nghĩa của quan điểm này thì giá trị của một đèn hiệu sẽ chỉ tăng 1 đơn vị trong hàm signal, còn ở đây khi hàm signal được viết lại và có thêm một tham số truyền thì giá trị của đèn hiệu tăng 2 đơn vị ở mỗi lần gọi hàm, phải chăng ở đây 1 đèn hiệu đã đảm nhận vai trò của 2 đèn hiệu...?giống đèn giao thông hiện tại là 3 đèn với 3 màu khác nhau, có thể thay bằng 1 đèn nhưng chớp tắt lúc xanh, lúc đó, lúc vàng

Admin
- Suy nghĩ đúng. Dùng 1 đèn hiệu nhưng với nhiều màu hơn là để thay thế các đèn "thừa" (trang bị thêm thì phải tốn tiền "mua"). Mà dùng 1 đèn thấy sáng sủa và dễ hiểu hơn. Hàm ReleaseSemaphore() của Windows dùng để thực thi signal() có tham biến thứ 2 là số lượng cần tăng cho giá trị của đèn hiệu.
- Bạn này tiến bộ nhiều quá. Nhờ kiên trì "học lại" đấy. Không uổng công đâu.

hihi,em cảm ơn thầy lắm lắm, em chỉ xin thầy cho em điểm chuyên cần và điểm diễn đàn nhiều một chút thôi ạ

Admin
- Điểm Diễn đàn được tối đa rồi đấy (3 đ). Điểm Chuyên cần cũng cao nhất luôn (2 đ), còn Điểm Giữa kỳ thì chắc 5 thôi (nhưng phải làm được ở mức độ nào đó) vì đề sẽ dựa vào những nội dung thảo luận trên Diễn đàn (xem kỹ phân tích của thày và các bạn thì làm được).
- Nhắc tất cả: Phải đi học đều vì Kiểm tra Giữa kỳ có thể bất cứ lúc nào !
Dạ em cảm ơn thầy nhiều lắm ạ!

ngocdangI83C

Tổng số bài gửi : 85
Join date : 04/10/2010

Về Đầu Trang Go down

Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1 Empty Re: Giaỉ quyết bài toán đồng bộ P1 tới trước báo hiệu P2 và P3 cùng chạy sau P1

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