Tổng hợp câu hỏi và câu trả lời Chươnng V

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Tổng hợp câu hỏi và câu trả lời Chươnng V

Bài gửi  HuynhHuuTai(I22A) on 29/3/2013, 11:15

Bài 5:ĐA LUỒNG

Câu 1: Trình bày khái niệm luồng và so sánh với khái niệm tiến trình truyền thống. Phân tích những lợi ích của công nghệ đa luồng.
Khái niệm luồng:
Luồng (Thread) còn gọi là tiến trình nhẹ (LWP- Light weight Process), một đơn vị cơ bản sử dụng CPU.
Luồng cũng có thông tin trạng thái như tiến trình truyền thống (HWP-Heavy Weight Process).
Tiến trình có thể có một luồng chính với nhiều luồng phụ. Mỗi luồng có khả năng chia sẻ tài nguyên với các luồng khác trong tiến trình.
Nhiều luồng có thể dùng chung code với nhau.
So sánh luồng và tiến trình truyền thống:
Một tiến trình truyền thống hay tiến trình nặng có một luồng điều khiển đơn.
*Sự giống nhau:
- Đều có thông tin trạng thái
- Luồng cũng là tiến trình nhưng là tiến trình nhẹ (Light Weigh Process)
- Đa luồng hay đa tiến trình có thể liên quan đến một chương trình.
- Chia sẻ tài nguyên cho nhau, tăng tốc tính toán, đảm bảo tính đơn thể
- 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
- Do dùng chung tài nguyên với luồng cha nên việc tạo lập và chuyển đổi ngữ cảnh cũng nhanh hơn tiến trình
- Cấp phát tài nguyên bộ nhớ cho tiến trình khá tốn kém.
- Lập trình đa luồng thì dễ hơn lập trình đa tiến trình.

*Sự khác nhau:
- Lập trình đa luồng dễ hơn lập trình đa tiến trình.
- Tạo mới một tiến trình khó hơn tạo mới một luồng.
- Luồng không cần gởi, nhận thông điệp.
- Luồng chuyển đổi ngữ cảnh nhanh và ít chiếm tài nguyên hơn tiến trình.
- Luồng chia sẻ tài nguyên dùng chung dể hơn tiến trình.
Những lợi ích của công nghệ đa luồng:
-khả năng đáp ứng 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(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: Tổng đài 1088 là nơi chuyên trả lời các thắc mắc của chúng ta. Trong tổng đài có nhiều nhân viên trực điện thoại. Mỗi nhân viên là một luồng(thread), khi một nhân viên bận thì có các nhân viên khác luôn trong tư thế sẵn sàng đáp ứng các nhu cầu cho chúng ta.
-chia sẻ tài nguyên: 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ễ dùng chung tài nguyên hơn so với trường hợp đa tiến trình.
Vd: Trong một lớp học có thầy giáo và các học sinh. Cả lớp đó là một tiến trình, thầy giáo là luồng chính, các bạn học sinh là luồng phụ cùng học chung một bài học và cách làm việc giống nhau. Các học sinh dùng chung tài nguyên như máy chiếu, bảng, micro,...Việc dùng chung tài nguyên giữa các học sinh trong một lớp thì dễ dàng hơn nhiều so với việc dùng tài nguyên của lớp khác(một tiến trình khác).
-đa luồng sẽ tiết kiệm hơn vì việc tạo mới luồng nhanh hơn: Cấp phát bộ nhớ và tài nguyên cho tiến trình là công việc tốn kém. Do luồng dù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.
-lập trình đa luồng dễ hơn lập trình đa tiến trình vì việc tương tác, truyền thông, liên lạc, dùng chung tài nguyên dễ hơn rất nhiều so với đa tiến trình.


Câu 2: Trình bày nguyên lý tập luồng và ứng dụng. Cho vd minh họa ( trên máy tính và từ đời thường)

Tập luồng:

1. Tiến trình cha tạo lập sẵn một tập luồng khi khởi động.
2. Các luồng trong tập luồng luôn sẵn sàng chờ công việc.
3. 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.
4. Phục vụ xong, luồng được đưa trả về tập luồng.
5. 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ụ 1: Trong một lớp học, sẽ có một thầy giáo (tiến trình cha) và sẽ có nhiều học sinh gọi là (tập luồng)
Mọi học sinh luôn sẵn sàng nghe lời, mệnh lệnh của thầy giáo (sẵn sang chờ công việc)
Khi có cuộc thi học sinh giỏi do trường tô chức, ngày đầu tiên thi môn Văn thì thầy giáo sẽ chọn những học sinh giỏi môn Văn (một luồng) đi ra thi, tranh giải với lớp khác (luồng được đánh thức và đưa ra vận hành)
Trong khi đó, ngày thứ hai thi môn Toán( nhận thêm yêu cầu), thầy giáo sẽ cử nhóm học sinh giỏi môn Toán (một luồng) ra thi để giành chiến thắng (luồng được đánh thức và đưa ra vận hành). Sau khi thi xong và chiến thắng, giành được giải, tất cả học sinh giỏi đó về lớp học (luồng được trả về tập luồng)

Ví dụ 2: Anh lập trình viên khi xây dựng ứng dụng, thì trước tiên anh phải trao dồi và học kiến thức trước.

HuynhHuuTai(I22A)

Tổng số bài gửi : 31
Join date : 12/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


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