Giải bài kiểm tra hôm nay
+9
nhu_nhu
PhamThiKhanhHa
ngothimyphuong107h1083
huynhloitrinh
hochdh
khanh.nd_08H1010044
Thuy Trang
vancoi
phuong.ntt-08h1010074
13 posters
Trang 1 trong tổng số 1 trang
Giải bài kiểm tra hôm nay
Câu 1.
* Phân tích nguyên lý tập luồng:
- Tiến trình cha tạo lập sẵn một tập luồng khi khởi động.
- Các luồng trong tập luồng luôn sẵn sàng chờ công việc.
- Khi tiến trình cha (ví dụ Web Server) nhận thêm một yêu cầu, một luồng được đánh thức
và đưa vào vận hành.
- Phục vụ xong, luồng được đưa trả về tập luồng.
- Nếu số yêu cầu lớn hơn số luồng trong tập, tiến trình cha chờ đến khi có luồng được giải phóng.
* Ví dụ ứng dụng sử dụng tập luồng như: bài tóan sản xuất và tiêu thụ, bài tóan nhà hiền triết cùng ăn,...
* Tạo tập luồng gồm 100 luồng nhà sản xuất.
for (i=0; i<100; i++)
ProducerHandle[i]=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Producer, (void *) i, 0,
&roducerHandleID);
Câu 2.
* Cách tạo winsork
Vào Toolbox -> Right click -> chọn Componens -> chọn Microsoft Winsok Control 6.0 -> khi đó tạo xong xuất hiện biểu tượng winsork, ta chọn và kéo vào form để khởi tạo.
* Các câu lệnh dùng trong ứng dụng chat
RemoteHost = "LocalHost" ‘ Tên Máy hay IP
RemotePort = 1001 ‘ Số hiệu port kết nối
Bind 1002 ' Số hiệu port của máy cục bộ
SendData ' phương thức dùng để gửi dữ liệu
GetData ' Phương thức dùng để lấy dữ liệu về.
Câu 3. ý nghĩa câu lệnh code
#define BUFFER_SIZE 10
-> định nghĩa kích thước bộ đểm gồm 30 phần tử.
HANDLE semEmpty, semFull;
-> Tao Hai đèn hiệu trong đó, sememty cho biết số vùng trống của bộ đểm,
giá trị của nó chính là số vùng trống của bộ đệm.
Còn semfull cho biết số sản phẩm có trong bộ đệm. Giá trí của semfull chính là
số sản phẩm trong bộ đệm.
semEmpty=CreateSemaphore(0, BUFFER_SIZE, BUFFER_SIZE, 0);
-> Tạo đèn hiệu semEmty, trong đó Buffer_Size đầu là Buffer ban đầu,
còn Buffer_Size thứ hai là số Buffer tối đa.
semFull=CreateSemaphore(0, 0, BUFFER_SIZE, 0);
-> Tạo đèn hiệu semFull.
WaitForSingleObject(semFull, INFINITE);
-> Chờ cho đến khi có vùng trống
printf("SemFull Handle = %d",semfull);
WaitForSingleObject(semFull, INFINITE);
printf("Semempty Handle = %d",semempty);
Đây là bài giải tham khảo, bạn nào biết nhớ post bài giải lên cho mọi người cùng xem nha.
* Phân tích nguyên lý tập luồng:
- Tiến trình cha tạo lập sẵn một tập luồng khi khởi động.
- Các luồng trong tập luồng luôn sẵn sàng chờ công việc.
- Khi tiến trình cha (ví dụ Web Server) nhận thêm một yêu cầu, một luồng được đánh thức
và đưa vào vận hành.
- Phục vụ xong, luồng được đưa trả về tập luồng.
- Nếu số yêu cầu lớn hơn số luồng trong tập, tiến trình cha chờ đến khi có luồng được giải phóng.
* Ví dụ ứng dụng sử dụng tập luồng như: bài tóan sản xuất và tiêu thụ, bài tóan nhà hiền triết cùng ăn,...
* Tạo tập luồng gồm 100 luồng nhà sản xuất.
for (i=0; i<100; i++)
ProducerHandle[i]=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Producer, (void *) i, 0,
&roducerHandleID);
Câu 2.
* Cách tạo winsork
Vào Toolbox -> Right click -> chọn Componens -> chọn Microsoft Winsok Control 6.0 -> khi đó tạo xong xuất hiện biểu tượng winsork, ta chọn và kéo vào form để khởi tạo.
* Các câu lệnh dùng trong ứng dụng chat
RemoteHost = "LocalHost" ‘ Tên Máy hay IP
RemotePort = 1001 ‘ Số hiệu port kết nối
Bind 1002 ' Số hiệu port của máy cục bộ
SendData ' phương thức dùng để gửi dữ liệu
GetData ' Phương thức dùng để lấy dữ liệu về.
Câu 3. ý nghĩa câu lệnh code
#define BUFFER_SIZE 10
-> định nghĩa kích thước bộ đểm gồm 30 phần tử.
HANDLE semEmpty, semFull;
-> Tao Hai đèn hiệu trong đó, sememty cho biết số vùng trống của bộ đểm,
giá trị của nó chính là số vùng trống của bộ đệm.
Còn semfull cho biết số sản phẩm có trong bộ đệm. Giá trí của semfull chính là
số sản phẩm trong bộ đệm.
semEmpty=CreateSemaphore(0, BUFFER_SIZE, BUFFER_SIZE, 0);
-> Tạo đèn hiệu semEmty, trong đó Buffer_Size đầu là Buffer ban đầu,
còn Buffer_Size thứ hai là số Buffer tối đa.
semFull=CreateSemaphore(0, 0, BUFFER_SIZE, 0);
-> Tạo đèn hiệu semFull.
WaitForSingleObject(semFull, INFINITE);
-> Chờ cho đến khi có vùng trống
printf("SemFull Handle = %d",semfull);
WaitForSingleObject(semFull, INFINITE);
printf("Semempty Handle = %d",semempty);
Đây là bài giải tham khảo, bạn nào biết nhớ post bài giải lên cho mọi người cùng xem nha.
Khách vi- Khách viếng thăm
Thanks ban nhiu
bạn giỏi quá, mới đây mà post bài lên rùi
phuong.ntt-08h1010074- Tổng số bài gửi : 137
Join date : 05/05/2009
Câu 1
for (i=0; i<100; i++)
ProducerHandle[i]=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Producer, (void *) i, 0,
&roducerHandleID[i]);
Hinh như la phai như thế này. Vi lam như ban se tao ra 100 Producer cùng ID í.
Admin
- Thêm ID như HongChien làm càng tốt chứ sao.
- VanCoi chính là bạn thích nhạc Bao Thanh Thiên của thày. Sao hôm ở lớp hỏi không thấy nói (chắc ít đi học).
ProducerHandle[i]=CreateThread(0,0, (LPTHREAD_START_ROUTINE)Producer, (void *) i, 0,
&roducerHandleID[i]);
Hinh như la phai như thế này. Vi lam như ban se tao ra 100 Producer cùng ID í.
Admin
- Thêm ID như HongChien làm càng tốt chứ sao.
- VanCoi chính là bạn thích nhạc Bao Thanh Thiên của thày. Sao hôm ở lớp hỏi không thấy nói (chắc ít đi học).
vancoi- Tổng số bài gửi : 45
Join date : 01/05/2009
Câu 2
So sánh giữa Chat Unicode và Winsock Unicode:
- Chat Unicode dùng phương thức UDP và k0 cần kết nối Client Server.
- Winsock Unicode dùng phương thức TCP và kết nối Client Server.
Mình làm thế này có đúng k0 nhỉ? Bạn nào xem và sửa chữa bổ sung dùm mình nhé. Thanks.
- Chat Unicode dùng phương thức UDP và k0 cần kết nối Client Server.
- Winsock Unicode dùng phương thức TCP và kết nối Client Server.
Mình làm thế này có đúng k0 nhỉ? Bạn nào xem và sửa chữa bổ sung dùm mình nhé. Thanks.
Thuy Trang- Tổng số bài gửi : 25
Join date : 22/02/2009
Re: Giải bài kiểm tra hôm nay
Bạn post nhanh thật, hinh như mình giống bạn 1 phần !
thanks bạn nhiều nhe !
thanks bạn nhiều nhe !
khanh.nd_08H1010044- Tổng số bài gửi : 38
Join date : 08/04/2009
Age : 41
Đến từ : TP. Hồ Chí Minh
Re: Giải bài kiểm tra hôm nay
minh cung lam tuong tu nhu ban Thuy Trang á, khong biet dung khong nhi.
hochdh- Tổng số bài gửi : 41
Join date : 10/05/2009
Re: Giải bài kiểm tra hôm nay
Minh cung lam nhu the, khong biet co dung khong
huynhloitrinh- Tổng số bài gửi : 6
Join date : 19/03/2009
Wow!!!
Moi zua` kiem tra xong la` co bai jai tham khao oy`,hehe.Thanks
ngothimyphuong107h1083- Tổng số bài gửi : 19
Join date : 23/03/2009
Re: Giải bài kiểm tra hôm nay
Mình chỉ thấy các bạn nêu sự khác nhau giữa Chat Unicode va Chat TCPSinglePort thôi, có bạn nào biết sự giống nhau giữa Chat Unicode va Chat TCPSinglePort không?
PhamThiKhanhHa- Tổng số bài gửi : 25
Join date : 04/03/2009
Re: Giải bài kiểm tra hôm nay
Đợt này chắc bạn "binhit09" đạt điểm cao nhất lớp luôn wá !!!
Các bạn ơi lớp mình thi lý thuyết rồi chắc là không phải thi thực hành nữa đâu nhỉ ???
Các bạn ơi lớp mình thi lý thuyết rồi chắc là không phải thi thực hành nữa đâu nhỉ ???
nhu_nhu- Tổng số bài gửi : 10
Join date : 07/03/2009
Re: Giải bài kiểm tra hôm nay
giờ thì chưa biết đc, chờ thầy chấm điểm ra là biết ai đúng ai sai liền mà
maianhkiet- Tổng số bài gửi : 9
Join date : 13/05/2009
Re: Giải bài kiểm tra hôm nay
sao nhanh vay nhi??? tot nhat nen nho thay giang lai 1 lan nua cho minh hieu, minh khong hieu sao thay de quen qua!! oai ghe
voquoctoan08h1010099- Tổng số bài gửi : 30
Join date : 16/03/2009
Re: Giải bài kiểm tra hôm nay
PhamThiKhanhHa đã viết:Mình chỉ thấy các bạn nêu sự khác nhau giữa Chat Unicode va Chat TCPSinglePort thôi, có bạn nào biết sự giống nhau giữa Chat Unicode va Chat TCPSinglePort không?
Mình nghĩ, sự giống nhau là: đều là công cụ giúp các client trao đổi thông tin với nhau.
Kô biết như thế có đúng kô ???
maianhkiet- Tổng số bài gửi : 9
Join date : 13/05/2009
Re: Giải bài kiểm tra hôm nay
Hic hic, xem xong đáp án, không biết mình đúng không nữa đây, mà có bro nào có câu trả lời chính xác chưa vậy?
khoai_dao- Tổng số bài gửi : 35
Join date : 13/04/2009
Re: Giải bài kiểm tra hôm nay
Mình xin góp ý như sau.
Nếu khai báo 100 luồng sản xuất thì chỉ cần
HANDLE ProducerHandle[100];
Còn nếu muốn tạo 2 luồng sản xuất thì có thể tạo ở 2 trạng thái ngủ hoặc thi hành ngay
Cần khai báo thêm
DWORD ProducerID[100];
Vòng for thì tự biết ha
ProducerHandle[i] = CreateThread(0,0,(LPTHREAD_START_ROUNTINE)Producer,0,4,&ProducerID[i]);//ngủ
hoặc
ProducerHandle[i] = CreateThread(0,0,(LPTHREAD_START_ROUNTINE)Producer,0,0,&ProducerID[i]);//thi hành ngay
Nếu khai báo 100 luồng sản xuất thì chỉ cần
HANDLE ProducerHandle[100];
Còn nếu muốn tạo 2 luồng sản xuất thì có thể tạo ở 2 trạng thái ngủ hoặc thi hành ngay
Cần khai báo thêm
DWORD ProducerID[100];
Vòng for thì tự biết ha
ProducerHandle[i] = CreateThread(0,0,(LPTHREAD_START_ROUNTINE)Producer,0,4,&ProducerID[i]);//ngủ
hoặc
ProducerHandle[i] = CreateThread(0,0,(LPTHREAD_START_ROUNTINE)Producer,0,0,&ProducerID[i]);//thi hành ngay
lqhlam- Tổng số bài gửi : 90
Join date : 17/03/2009
Re: Giải bài kiểm tra hôm nay
Eo ơi! Mình hổng dám nhận đâu bởi vì trong bài làm mình viết rối lắm chứ không được mạch lạc thế kia, hơn nữa câu Phân tích nguyên lý lập trình đa luồng mình làm sai rồi. Hy vọng thầy châm chước cho cả lớp đâu hết luôn đi để yên tâm làm bài thi cuối kỳ nữa, hix...., khổ quá đi...
Admin
- Sai một chút và hơi rắc rối: Không sao cả.
- Thày sẽ châm chước. Nhưng trình bày lại trên Diễn đàn cũng là cách cái thiện điểm đấy!
Admin
- Sai một chút và hơi rắc rối: Không sao cả.
- Thày sẽ châm chước. Nhưng trình bày lại trên Diễn đàn cũng là cách cái thiện điểm đấy!
Khách vi- Khách viếng thăm
Similar topics
» Giải bài kiểm tra giữa kỳ
» GIẢI BÀI KIỂM TRA GIỮA KỲ !!!!!!!!!!!!!!!!!!!!!!!!!!!!
» Giải Đề thi Kiểm tra giữa kỳ (10-11-2011)
» Cách giải bài tập về các thuật giải điều phối CPU (Thuật giải RRS )
» Chương 3: Quy nạp - Đệ quy
» GIẢI BÀI KIỂM TRA GIỮA KỲ !!!!!!!!!!!!!!!!!!!!!!!!!!!!
» Giải Đề thi Kiểm tra giữa kỳ (10-11-2011)
» Cách giải bài tập về các thuật giải điều phối CPU (Thuật giải RRS )
» Chương 3: Quy nạp - Đệ quy
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