Sự khác biệt giữa tiến trình và luồng
+2
kimgiap(i92c)
ngocdangI83C
6 posters
Trang 1 trong tổng số 1 trang
Sự khác biệt giữa tiến trình và luồng
- Tiến trình là chương trình trong thời gian thực hiện đặt dưới sự quản lý của HĐH.
- Luồng là tiến trình nhẹ, một đơn vị cơ bản sử dụng CPU,cũng có thông tin về trạng thái giống với tiến trình và là một đơn vị nhỏ hơn của tiến trình.
- Có thể có nhiều luồng trong một tiến trình, hoạt động của luồng cũng giống hoạt động của tiến trình nhưng các luồng cùng chia sẽ tài nguyên với các luồng khác, cùng chung một mã chương trình, còn các tiến trình thì hoàn toàn độc lập.
Admin
Đây mới là theo Giáo trình. Cần trình bày cách hiểu của em !
- Luồng là tiến trình nhẹ, một đơn vị cơ bản sử dụng CPU,cũng có thông tin về trạng thái giống với tiến trình và là một đơn vị nhỏ hơn của tiến trình.
- Có thể có nhiều luồng trong một tiến trình, hoạt động của luồng cũng giống hoạt động của tiến trình nhưng các luồng cùng chia sẽ tài nguyên với các luồng khác, cùng chung một mã chương trình, còn các tiến trình thì hoàn toàn độc lập.
Admin
Đây mới là theo Giáo trình. Cần trình bày cách hiểu của em !
ngocdangI83C- Tổng số bài gửi : 85
Join date : 04/10/2010
Re: Sự khác biệt giữa tiến trình và luồng
- Tiến trình (Process)là chương trình trong thời gian thực hiện (đặt dưới sự quản lý của HDH)
- 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ư của 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ể cùng chung một mã chương trình
- 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ư của 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ể cùng chung một mã chương trình
kimgiap(i92c)- Tổng số bài gửi : 144
Join date : 28/07/2010
Đến từ : Bình Định
Re: Sự khác biệt giữa tiến trình và luồng
Em cám ơn thầy đã góp ý cho e.
Thưa thầy theo cách nghĩ của e thì tiến trình mang ý nghĩa rộng hơn và lớn hơn so với luồng, luồng là một phần của tiến trình nằm bên trong tiến trình và chịu sự quản lý của tiến trình, một tiến trình có thể có nhiều luồng, cùng hoạt động, chia sẽ code, bộ nhớ,...,của tiến trình, các luồng trong tiến trình có thể hoạt động đồng bộ với nhau, khi thay đổi code của tiền trình hay một luồng thì sự thay đổi đó có tác động lên toàn bộ các luồng khác.
Tiến trình chịu sự quản lý của hệ điều hành với nhiều thông tin phức tạp và chi tiết hơn so với luồng(vdu: PCB lưu trạng thái của tiến trình, các hàng đợi), cơ chế điều phối tiến trình của hệ điều hành cũng phức tạp hơn so với việc quản lý luồng của tiến trình, hệ điều hành sử dụng các hàng đợi(Job queue, Ready quueu, Device queue...) để điều phối tiến trình, trong khi tiến trình sử dụng cơ chế ngủ thông qua các hàm API để thiết lập chế độ hoạt động của luồng(khởi tạo luồng, đặt luồng vào trạng thái ngủ, đánh thức trở lại, kết thúc luồng...) Khi tiến trình kết thúc thì các luồng trong tiến trình cũng kết thúc nhưng tiến trình phải đợi các luồng kết thúc rồi tiến trình mới kết thúc.
Thưa thầy theo cách nghĩ của e thì tiến trình mang ý nghĩa rộng hơn và lớn hơn so với luồng, luồng là một phần của tiến trình nằm bên trong tiến trình và chịu sự quản lý của tiến trình, một tiến trình có thể có nhiều luồng, cùng hoạt động, chia sẽ code, bộ nhớ,...,của tiến trình, các luồng trong tiến trình có thể hoạt động đồng bộ với nhau, khi thay đổi code của tiền trình hay một luồng thì sự thay đổi đó có tác động lên toàn bộ các luồng khác.
Tiến trình chịu sự quản lý của hệ điều hành với nhiều thông tin phức tạp và chi tiết hơn so với luồng(vdu: PCB lưu trạng thái của tiến trình, các hàng đợi), cơ chế điều phối tiến trình của hệ điều hành cũng phức tạp hơn so với việc quản lý luồng của tiến trình, hệ điều hành sử dụng các hàng đợi(Job queue, Ready quueu, Device queue...) để điều phối tiến trình, trong khi tiến trình sử dụng cơ chế ngủ thông qua các hàm API để thiết lập chế độ hoạt động của luồng(khởi tạo luồng, đặt luồng vào trạng thái ngủ, đánh thức trở lại, kết thúc luồng...) Khi tiến trình kết thúc thì các luồng trong tiến trình cũng kết thúc nhưng tiến trình phải đợi các luồng kết thúc rồi tiến trình mới kết thúc.
ngocdangI83C- Tổng số bài gửi : 85
Join date : 04/10/2010
Re: Sự khác biệt giữa tiến trình và luồng
ngocdangI83C đã viết:- Tiến trình là chương trình trong thời gian thực hiện đặt dưới sự quản lý của HĐH.
- Luồng là tiến trình nhẹ, một đơn vị cơ bản sử dụng CPU,cũng có thông tin về trạng thái giống với tiến trình và là một đơn vị nhỏ hơn của tiến trình.
- Có thể có nhiều luồng trong một tiến trình, hoạt động của luồng cũng giống hoạt động của tiến trình nhưng các luồng cùng chia sẽ tài nguyên với các luồng khác, cùng chung một mã chương trình, còn các tiến trình thì hoàn toàn độc lập.
Admin
Đây mới là theo Giáo trình. Cần trình bày cách hiểu của em !
Hi ,
Xin phép được trình bày về tiến trình và luồng theo cách hiểu của mình.
Tiến trình như một khu rừng có nhiều cây, luồng là cây trong khu rừng đó; Các cây trong khu rừng cùng sử dụng tài nguyên đất,nước và không khí tại khu rừng đó; Khu rừng này có thề trồng 1 loại cây chính và một số cây phụ xung quanh; Vì vấn đề gì đó khu rừng chỉ còn sống một cây duy nhất ( đơn luồng), tuy nhiên khu rừng bên cạnh lại phát triển rất rậm rạp ( đa luồng ).
Trân trọng.
doanthong(I92C)- Tổng số bài gửi : 15
Join date : 14/09/2010
Age : 37
Đến từ : BT
cho minh co y kien nha
ví dụ của bạn cũng dễ hiều mà nghe hơi tức cười, mình đọc mà cười nãy giờ lun ah, hi vọng ban se co them nhiu ví dụ đơn giản và dễ hiểu hơn nữa
ngocdangI83C đã viết:- Tiến trình là chương trình trong thời gian thực hiện đặt dưới sự quản lý của HĐH.
- Luồng là tiến trình nhẹ, một đơn vị cơ bản sử dụng CPU,cũng có thông tin về trạng thái giống với tiến trình và là một đơn vị nhỏ hơn của tiến trình.
- Có thể có nhiều luồng trong một tiến trình, hoạt động của luồng cũng giống hoạt động của tiến trình nhưng các luồng cùng chia sẽ tài nguyên với các luồng khác, cùng chung một mã chương trình, còn các tiến trình thì hoàn toàn độc lập.
Admin
Đây mới là theo Giáo trình. Cần trình bày cách hiểu của em !
ngocdiem_I83C- Tổng số bài gửi : 31
Join date : 21/10/2009
Lập trình đa luồng dễ hơn lập trình đa tiến trình
Mình thấy tâm đắt câu kết của thầy "Lập trình đa luồng ít phức tạp hơn lập trình đa tiến trình", thực chất thì mình cũng gặp Lập trình đa luồng ngoài thực tế, phần lớn sử dụng Java.
Admin
Lập trình đa luồng trong Java cũng dễ như trong Visual C# .NET. Có lẽ, Visual C# .NET "theo" nó.
Admin
Lập trình đa luồng trong Java cũng dễ như trong Visual C# .NET. Có lẽ, Visual C# .NET "theo" nó.
NGUYENVANTINH_I83C- Tổng số bài gửi : 13
Join date : 29/10/2010
Re: Sự khác biệt giữa tiến trình và luồng
ngocdangI83C đã viết:Em cám ơn thầy đã góp ý cho e.
Thưa thầy theo cách nghĩ của e thì tiến trình mang ý nghĩa rộng hơn và lớn hơn so với luồng, luồng là một phần của tiến trình nằm bên trong tiến trình và chịu sự quản lý của tiến trình, một tiến trình có thể có nhiều luồng, cùng hoạt động, chia sẽ code, bộ nhớ,...,của tiến trình, các luồng trong tiến trình có thể hoạt động đồng bộ với nhau, khi thay đổi code của tiền trình hay một luồng thì sự thay đổi đó có tác động lên toàn bộ các luồng khác.
Tiến trình chịu sự quản lý của hệ điều hành với nhiều thông tin phức tạp và chi tiết hơn so với luồng(vdu: PCB lưu trạng thái của tiến trình, các hàng đợi), cơ chế điều phối tiến trình của hệ điều hành cũng phức tạp hơn so với việc quản lý luồng của tiến trình, hệ điều hành sử dụng các hàng đợi(Job queue, Ready quueu, Device queue...) để điều phối tiến trình, trong khi tiến trình sử dụng cơ chế ngủ thông qua các hàm API để thiết lập chế độ hoạt động của luồng(khởi tạo luồng, đặt luồng vào trạng thái ngủ, đánh thức trở lại, kết thúc luồng...) Khi tiến trình kết thúc thì các luồng trong tiến trình cũng kết thúc nhưng tiến trình phải đợi các luồng kết thúc rồi tiến trình mới kết thúc.
bạn này giải thích về sự khác nhau giữa tiến trình và luồng mình thấy cũng rõ ràng nè. mình thấy đúng, nhưng xin bổ sung thêm vài ý như sau cũng từ lý thuyết thầy giản thôi :
- Một tiến trình có thể sinh ra nhiều tiến trình con khác khi thực hiện, luồng thì không.
- Tiến trình độc lập khó chia sẽ tài nguyên với nhau, luồng thì dễ hơn nhiều.
- Chương trình có nhiều luồng sẽ tiết kiệm dc nhiều bộ nhớ hơn so với chạy nhiều tiến trình để cùng hoàn thành một mục đích, công việc nào đó.
Nguyen Dinh Mai Huy(I82C)- Tổng số bài gửi : 58
Join date : 15/09/2010
Re: Sự khác biệt giữa tiến trình và luồng
thanks bạn! Mình nhận ra môn này rất hay, càng ngày mình càng thấy thích môn này, mặc dù cái hay, cái lợi ích của nó không phải là trước mắt, không phải dễ dàng nhìn ra được ở một sớm một chiều, nhưng nó lâu dài, dai dẳng và bền bỉ, nó sẽ theo chúng ta suốt cả cuộc đời, và chúng ta hoàn toàn có thể ứng dụng nó vào tất các các lĩnh vực khác trong đời sống hàng ngày. Nó cũng giống như nền móng của tòa nhà vậy, móng càng chắc, làm càng kỹ thì tòa nhà càng to, càng cao, và càng vững chãi...Cám ơn môn học và cám ơn thầy đã dẫn dãi tận tình và tỉ mỉ cho chúng em!
ngocdangI83C- Tổng số bài gửi : 85
Join date : 04/10/2010
Similar topics
» Thảo luận Bài 5
» Thảo luận Bài 5
» Sự giống và khác nhau giữa Chương trình , Tiến trình và Luồng
» Sự giống và khác nhau giữa Chương trình , Tiến trình và Luồng
» So sánh sự khác nhau giữa lập trình đa luồng và đa tiến trình
» Thảo luận Bài 5
» Sự giống và khác nhau giữa Chương trình , Tiến trình và Luồng
» Sự giống và khác nhau giữa Chương trình , Tiến trình và Luồng
» So sánh sự khác nhau giữa lập trình đa luồng và đa tiến trình
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