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.

Thảo luận Bài 5

+48
PhamHuyHoang(I113A)
TranMinhNhat61 (102c)
lebichtram89 (113a)
trinhquangtrong91 (113a)
PhanDiecLoi34 (113A)
CaoTheAnh01(113A)
nguyenduchuy19 (113A)
LUUDINHTOAN(I11C)
LeKimHoang (113A)
TrangSiMinhHai (113A)
ngongocdiep06 (113A)
NguyenVanNghiem(HC11TH3A)
tranthanhphu49 (113A)
LamVuThai (113A)
LeDangBaoNgoc55 (113A)
NguyenVuLinh12053_I11C
VuMinhTan (113A)
NguyenThiKimNgan (113A)
TranThiHuyenTrang(113A)
NguyenVanNgoc65 (113A)
dothanhnhan44 (113A)
nguyendinhhieu13 (113A)
NguyenHuuNghiep72
HoThienLang27 (113A)
voanhvy (113A)
nguyenchithuc(113A)
LeThanhNhan45 (113A)
MaiTrieuHung16 (113A)
NguyenPhamTanPhat(113A)
DangThiKimKhanh (113A)
ledinhngankhanh (113a)
TranThichThem (113A)
NguyenVanQuyet57 (113A)
TranThiThuyHang79 (113A)
trantrungnam-HC11TH2A
lechaukhoa(113A)
NguyenHuuLinh31(113A)
NguyenTrungTruc (113A)
NguyenVanLam(I13A)
PhamQuocAnh02 (113A)
NguyenThiNgocPhuong(113A)
NguyenNgocTrungNam (113A)
buidainghia(113A)
LeLamThang (113A)
NguyenThiThuThuy (113A)
HaHoangCongTien80 (113A)
phamanhtuan95(113A)
Admin
52 posters

Trang 9 trong tổng số 9 trang Previous  1, 2, 3, 4, 5, 6, 7, 8, 9

Go down

Thảo luận Bài 5 - Page 9 Empty lợi ích của đa luồng

Bài gửi  LamVuThai (113A) 11/10/2012, 11:20

- Khả năng đáp ứng (Responsiveness) tốt hơn: Trong khi một luồng bị ách hoặc quá bận, luồng khác vẫn vận hành bình thường (ví dụ, luồng chính của trình duyệt vẫn tương tác với người dùng trong khi dữ liệu được lấy về).
VD:người 1 người thu ngân trong siêu thị đang tính tiền cho khách hàng mặc dù đằng sau còn rất nhiều người khách khác thì trong lúc đó cũng đang có nhiều người thu ngân khác phục vụ cho các khách hàng khác
- Chia sẽ tài nguyên (Resource Sharing): Theo mặc định, các luồng có thể dùng chung bộ nhớ và tài nguyên của luồng cha. Vài luồng cùng vận hành trong một vùng địa chỉ, do đó dễ chia sẻ tài nguyên hơn so với trường hợp đa tiến trình.
VD:Mẫu csdl quản lí sinh viên trong trường nếu thống nhất dùng chung 1 mẫu thì dễ dàng chỉnh sửa nếu cần thay đổi
- Tiết kiệm (Economy): Cấp phát bộ nhớ và tài nguyên cho tiến trình là một công việc tốn kém. Do luồng chung tài nguyên với cha và các luồng khác, việc tạo lập và chuyển ngữ cảnh cũng nhanh hơn (Solaris 2: Tạo tiến trình chậm hơn 30 lần, chuyển ngữ cảnh chậm hơn 5 lần).
VD:2 sinh viên cùng phòng học cùng lớp thì nên đi 1 xe máy sẽ đỡ tốn kém hơn là mỗi người đi 1 xe
- Tận dụng được thế mạnh của kiến trức đa xử lý: Đa luồng làm tăng tính song song trên hệ máy nhiều CPU. Mỗi luồng có thể được chạy bởi CPU riêng.
VD:với một CPU đa luồng bạn sẽ thấy sự cải thiện lớn khi xem DVD trong lúc máy vẫn đang chơi game online mà tốc độ không bị ảnh hưởng, bởi vì từng ứng dụng sẽ được gán trên các lõi khác nhau.

LamVuThai (113A)

Tổng số bài gửi : 41
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Trình bày nguyên lý tập luồng và cho ví dụ minh họa

Bài gửi  LamVuThai (113A) 11/10/2012, 11:21

Tập luồng (Thread Pools):
+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ụ:
Trong một doanh trai quân đội sẽ có một tướng lĩnh (tiến trình cha) và sẽ có một đội binh (tập luồng).
Đội binh này sẽ sẳn sàng chiến đầu khi có mệnh lệnh (sẵn sàng chờ công việc).
Khi có một tên địch đột nhập, Tướng lĩnh sẽ điều binh sĩ 1 (một luồng) đi bắt tên địch (một luồng được đánh thức và đưa vào vận hành).
Trong khi đó, lại có thêm một tên địch khác đột nhập (nhận thêm một yêu cầu), Tướng lĩnh sẽ điều binh sĩ 2 (một luồng) đi bắt địch (một luồng khác được đánh thức và đưa vào vận hành).
Sau khi bắt địch xong, binh sĩ sẽ trở về doanh trại (luồng được trả về tập luồng)

LamVuThai (113A)

Tổng số bài gửi : 41
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty So sánh giữa lập trình đa luồng và đa tiến trình

Bài gửi  LamVuThai (113A) 11/10/2012, 11:24

a. Giống nhau :

1. Đều có thông tin trạng thái
2. Luồng còn được gọi là tiến trình nhẹ
3. Nhiều luồng or nhiều tiến trình có thể liên quan đến một chương trình
4. Chia sẻ tài nguyên cho nhau
5. Tăng tốc tính toán
6. Đảm bảo tính đơn thể

b. Khác nhau

1. Do luồng cùng vận hành trong 1 vùng địa chỉ vì vậy dể dùng chung tài nguyên hơn đa tiến trình
VD : Mượn đồ dùng trong gia đình thì dể hơn mượn của hàng xóm
2. Do luồng chung tài nguyên với cha & các luồng khác nên việc tạo lập & chuyển ngữ cảnh cũng
nhanh hơn tiến trình
VD : Việc ngăn riêng ra một phòng trong nhà thì nhanh hơn là chờ nhà nước cấp cho
một căn hộ
3. Cấp phát bộ nhớ & tài nguyên cho tiến trình thì tốn kém hơn luồng
4. Lập trình đa luồng thì dể hơn đa tiến trình

LamVuThai (113A)

Tổng số bài gửi : 41
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Xử lý đa luồng và xử lý song song khác nhau như nào??

Bài gửi  TranMinhNhat61 (102c) 13/10/2012, 00:21

- Đa luồng thường dành cho cpu, ví dụ giải bài 1+1+2+2 thì 1 luồng nó sẽ phải làm 3 phép cộng theo thứ tự, làm xong phép cộng trước rồi mới làm phép cộng sau, đa luồng nó sẽ xử lý (1+1) đồng thời với (2+2), thời gian thực hiện chỉ bằng 2 phép cộng.
- Song song thường dùng cho video card hơn, mỗi video card cao cấp có chừng 3000 shader giống như 3000 cái core cpu con, thích hợp với chẻ nhỏ công việc. Trong khi đó cpu đa luồng có thể làm trước các bước tiếp theo, còn videocard chỉ đơn giản là chia việc ra, mỗi core làm từ đầu đến cuối

TranMinhNhat61 (102c)

Tổng số bài gửi : 55
Join date : 16/07/2012

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Đa Luồng....

Bài gửi  NguyenVanQuan105 25/10/2012, 10:18

Đa luồng
Đa luồng là một kỹ thuật cho phép một chương trình hoặc một quá trình để thực hiện nhiều nhiệm vụ đồng thời (cùng một lúc và song song). Nó cho phép một quá trình để chạy các nhiệm vụ của nó trong chế độ song song trên một hệ thống xử lý duy nhất

Trong khái niệm xử lý đa luồng, một số quá trình nhiều nhẹ đang chạy trong một tiến trình / chương trình, nhiệm vụ hoặc một bộ xử lý duy nhất. Ví dụ, bạn sử dụng một trình xử lý, bạn thực hiện nhiều nhiệm vụ khác nhau như in ấn, kiểm tra chính tả và như vậy. Phần mềm đa luồng xử lý mỗi quá trình như là một chương trình riêng biệt.

Trong Java, Java Virtual Machine (JVM) cho phép một ứng dụng có nhiều chủ đề thực hiện chạy đồng thời. Nó cho phép một chương trình có trách nhiệm hơn cho người sử dụng. Khi một chương trình có nhiều chủ đề sau đó CPU có thể chuyển đổi giữa hai chủ đề để thực hiện chúng cùng một lúc.
Ví dụ, nhìn vào sơ đồ hiển thị như sau:

Trong sơ đồ này, hai chủ đề đang được thực hiện có nhiều hơn một nhiệm vụ. Nhiệm vụ của mỗi thread được chuyển sang các nhiệm vụ của các chủ đề khác.

Ví dụ nguyên lý tập Luồng
Trong một cửa hàng làm tóc, có rất nhiều nhân viên hớt tóc, làm móng... (tương ứng là các luồng con)

Cứ mỗi người nhân viên, sẽ chịu trách nhiệm phục vụ cho khách hàng của mình (mỗi luồng có thể chạy bởi CPU riêng), do đó có bao nhiêu nhân viên trong tiệm hớt tóc thì sẽ tương ứng với số luồng trong tập luồng
Số lượng luồng càng nhiều khả năng đáp ứng càng cao

Khi có khách hàng đến, thì nhân viên nào đang trống khách (đang ngồi chơi # đang ngủ) thì sẽ phục vụ cho khách hàng ( luồng được nhân yêu cầu, được đánh thức và đưa vào vận hành) khi phục vụ xong nhân viên được tạm nghỉ giải lao chờ có khách hàng mới (luồng trả về tập luồng)

Nếu số lượng khách hàng quá đông, hơn số lượng nhân viên, thì khách hàng sẽ xếp hàng đợi đến khi có 1 nhân viên rảnh (1 luồng được giải phóng)

1. Một số thông tin thêm về đa luồng
- Hỗ trợ luồng được cung cấp hoặc ở cấp người dùng, cho các luồng người dùng hoặc ở cấp nhân, cho các luồng nhân như sau:
• Luồng người dùng: được hỗ trợ dưới nhân và được cài đặt bởi thư viện luồng tại cấp người dùng. Thư viện cung cấp hỗ trợ cho việc tạo luồng, lập thời biểu, và quản lý mà không có sự hỗ trợ từ nhân. Vì nhân không biết các luồng cấp người dùng, tất cả việc tạo luồng và lập thời biểu được thực hiện trong không gian người dùng mà không cần sự can thiệp của nhân. Do đó, các luồng cấp người dùng thường tạo và quản lý nhanh, tuy nhiên chúng cũng có những trở ngại. Thí dụ, nếu nhân là đơn luồng thì bất cứ luồng cấp người dùng thực hiện một lời gọi hệ thống nghẽn sẽ làm cho toàn bộ quá trình bị nghẽn, thậm chí nếu các luồng khác sẳn dùng để chạy trong ứng dụng. Các thư viện luồng người dùng gồm các luồng POSIX Pthreads, Mach C-threads và Solaris 2 UI-threads.
• Luồng nhân: được hỗ trợ trực tiếp bởi hệ điều hành. Nhân thực hiện việc tạo luồng, lập thời biểu, và quản lý không gian nhân. Vì quản lý luồng được thực hiện bởi hệ điều hành, luồng nhân thường tạo và quản lý chậm hơn luồng người dùng. Tuy nhiên, vì nhân được quản lý các luồng nếu một luồng thực hiện lời gọi hệ thống nghẽn, nhân có thể lập thời biểu một luồng khác trong ứng dụng thực thi. Trong môi trường đa xử lý, nhân có thể lập thời biểu luồng trên một bộ xử lý khác. Hầu hết các hệ điều hành hiện nay như Windows NT, Windows 2000, Solaris 2, BeOS và Tru64 UNIX (trước Digital UNIX)-hỗ trợ các luồng nhân.
2. Các trạng thái của luồng
-Running : đang chạy – được hiểu là khi hệ thống định rõ vị trí luồng trong CPU
-Ready to run : đã chạy ( nhưng chưa được định vị trí trong CPU )
-Resumed : luồng ở trạng thái “ready to run” sau khi suspended/ blocked
-Suspended : luồng tự nguyện dừng lại để cho 1 luồng khác chạy
-Blocked : luồng đang đợi tài nguyên để tiếp tục hoặc bị 1 sự kiện của hệ thống
chặn ngang


Được sửa bởi NguyenVanQuan105 ngày 25/10/2012, 10:35; sửa lần 1.

NguyenVanQuan105

Tổng số bài gửi : 12
Join date : 13/08/2012

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Trình bày nguyên lý tập luồng và cho ví dụ minh họa

Bài gửi  NguyenVanQuan105 25/10/2012, 10:31

Tập luồng (Thread Pools):
+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ụ:
Trong một doanh trai quân đội sẽ có một tướng lĩnh (tiến trình cha) và sẽ có một đội binh (tập luồng).
Đội binh này sẽ sẳn sàng chiến đầu khi có mệnh lệnh (sẵn sàng chờ công việc).
Khi có một tên địch đột nhập, Tướng lĩnh sẽ điều binh sĩ 1 (một luồng) đi bắt tên địch (một luồng được đánh thức và đưa vào vận hành).
Trong khi đó, lại có thêm một tên địch khác đột nhập (nhận thêm một yêu cầu), Tướng lĩnh sẽ điều binh sĩ 2 (một luồng) đi bắt địch (một luồng khác được đánh thức và đưa vào vận hành).
Sau khi bắt địch xong, binh sĩ sẽ trở về doanh trại (luồng được trả về tập luồng)

NguyenVanQuan105

Tổng số bài gửi : 12
Join date : 13/08/2012

Về Đầu Trang Go down

Thảo luận Bài 5 - Page 9 Empty Re: Thảo luận Bài 5

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Trang 9 trong tổng số 9 trang Previous  1, 2, 3, 4, 5, 6, 7, 8, 9

Về Đầu Trang

- Similar topics

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