Thảo luận Bài 5

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

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

Lợi Ích Đa Luồng

Bài gửi  PhanNgocThoai(I22B) on 3/5/2013, 19:16

- Đáp ứng yêu cầu tốt hơn vì có nhiều luồng trả lời. Giả sử một luồng đang bận thì sẽ có những luồng khác trả lời.
Vd: Khi gọi đến tổng đài cần tư vấn. Giả sử có nhiều người đang gọi cùng một lúc mà chỉ có một nhân viên trực máy thì sẽ gây ra tình trạng bận máy liên tục => Chưa đáp ứng tốt nhu cầu của khách hàng. Nhưng nếu có nhiều nhân viên trực => phục vụ được nhiều khách hàng đồng thời.
- Chia sẽ tài nguyên tốt hơn so với đa tiến trình. Vì các luồng cùng nằm trong một tiến trình, nên việc chia sẽ nội dung trong một tiến trình sẽ dễ dàng hơn.
Vd: Khi cần mượn xe thì mượn người trong gia đình lúc nào cũng dễ dàng hơn mượn người ngoài.
- Tiết kiệm hơn vì việc cấp phát bộ nhớ từ tiến trình cho luồng nhanh hơn.
Vd: Khi có ai đó trong nhà lập gia đình, thì họ sẽ cần một nơi để ở. Nếu ngăn vách để tạo thêm một phòng sẽ tiết kiệm hơn so với việc mua nhà riêng.
- Tận dụng được đa xử lý (nhiều CPU, thường là các máy server). HĐH sẽ cấp cho mỗi một luồng chính nguyên cả CPU => tốc độ sẽ nhanh hơn gấp nhiều lần so với sử dụng chỉ một CPU
Vd: Gia đình có một máy tính, nếu hai người cần sử dụng thì chỉ mỗi người có thể sử dụng ở một thời điểm => tốn thời gian. Nhưng nếu có 2 máy thì thì công việc sẽ hoàn tất nhanh hơn.
- Lập trình đa luồng dễ hơn đ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.

PhanNgocThoai(I22B)

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

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

Về Đầu Trang Go down

Những Mô Hình Đa Luồng

Bài gửi  PhanNgocThoai(I22B) on 3/5/2013, 19:22

- Mô hình Many – to – One: Là nhiều User level threads được ánh xạ vào một Kernel Thread. Việc quản lý được thực hiện ở User Level, khi có một thread bị block thì toàn bộ các Process cũng bị block theo.
- Mô hình One - to - One : Ánh xạ mỗi luồng người dùng tới một luồng nhân. Nó cung cấp khả năng đồng hành tốt hơn mô hình nhiều - một bằng cách cho một luồng khác chạy khi một luồng thực hiện lời gọi hệ thống nghẽn; Nó cũng cho phép nhiều luồng chạy song song trên các bộ xử lý khác nhau. Chỉ có một trở ngại trong mô hình này là tạo luồng người dùng yêu cầu tạo một luồng nhân tương ứng. Vì chi phí cho việc tạo luồng nhân có thể đè nặng lên năng lực thực hiện của ứng dụng, các cài đặt cho mô hình này giới hạn số luồng được hỗ trợ bởi hệ thống. Windows NT, Windows 2000 và OS/2 cài đặt mô hình một-một này.
- Mô hình Many - to - Many: Đa hợp nhiều luồng cấp người dùng tới số lượng nhỏ hơn hay bằng các luồng nhân. Số lượng các luồng nhân có thể được xác định hoặc một ứng dụng cụ thể hay một máy cụ thể (một ứng dụng có thể được cấp nhiều luồng nhân trên một bộ đa xử lý hơn trên một bộ đơn xử lý). Trong khi mô hình Many - to - One cho phép người phát triển tạo nhiều luồng người dùng như họ muốn, thì đồng hành thật sự là không đạt được vì nhân có thể lập thời biểu chỉ một luồng tại một thời điểm. Mô hình One - to - One cho phép đồng hành tốt hơn nhưng người phát triển phải cẩn thận không tạo ra quá nhiều luồng trong một ứng dụng. Mô hình Many - to - Many gặp phải một trong hai vấn đề khiếm khuyết là người phát triển có thể tạo nhiều luồng người dùng khi cần thiết và các luồng nhân tương ứng có thể chạy song song trên một bộ đa xử lý.

PhanNgocThoai(I22B)

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

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

Về Đầu Trang Go down

Luồng Người Dùng Và Luồng Nhân

Bài gửi  PhanNgocThoai(I22B) on 3/5/2013, 19:35

-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.

PhanNgocThoai(I22B)

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

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

Về Đầu Trang Go down

Re: Thảo luận Bài 5

Bài gửi  Sponsored content Today at 22:04


Sponsored content


Về Đầu Trang Go down

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

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