CHƯƠNG 2 : QUẢN LÝ TIẾN TRÌNH
2.2. LUỒNG
2.2.4. Ưu điểm của mơ hình đa luồng
So với cách tổ chức tiến trình chỉ chứa một luồng, mơ hình nhiều luồng trong một tiến trình có những ưu điểm chính sau đây:
1) Tăng hiệu năng và tiết kiệm thời gian. Việc tạo, xóa tiến trình địi hỏi cấp phát,
giải phóng bộ nhớ và tài nguyên của tiến trình, do vậy tốn thời gian. Do luồng dùng chung tài nguyên với tiến trình nên tạo và xóa luồng khơng địi hỏi những cơng đoạn này, nhờ vậy tốn ít thời gian hơn nhiều. Việc chuyển đổi luồng cũng nhanh hơn chuyển đổi luồng, do ngữ cảnh của luồng ít thơng tin hơn. Trong một số hệ điều hành, thời gian tạo mới luồng ít hơn vài chục lần so với tạo mới tiến trình.
2) Dễ dàng chia sẻ tài nguyên và thơng tin. Các luồng của một tiến trình dùng chung
không gian địa chỉ và tài nguyên. Tài nguyên dùng chung cho phép luồng dễ dàng liên lạc với nhau, ví dụ bằng cách ghi và đọc vào những biến (vùng bộ nhớ) chung. 3) Tăng tính đáp ứng. Tính đáp ứng (responsiveness) là khả năng tiến trình phản ứng
lại với yêu cầu của người dùng hoặc tiến trình khác. Nhờ mơ hình đa luồng, tiến trình có thể sử dụng một luồng đề thực hiện những thao tác đòi hỏi nhiều thời gian như đọc file dài, và sử dụng một luồng khác để tiếp nhận và xử lý yêu cầu của người dùng, nhờ vậy, tăng khả năng đáp ứng. Việc tăng tính đáp ứng rất quan trọng đối với hệ thống tương tác trực tiếp, tránh cho người dùng cảm giác tiến trình bị treo.
4) Tận dụng được kiến trúc xử lý với nhiều CPU. Trong hệ thống nhiều CPU, các
luồng có thể chạy song song trên những CPU khác nhau, nhờ vậy tăng được tốc độ xử lý chung của tiến trình.
5) Thuận lợi cho việc tổ chức chương trình. Một số chương trình có thể tổ chức dễ
dàng dưới dạng nhiều luồng thực hiện đồng thời. Điển hình là những chương trình bao gồm nhiều thao tác khác nhau cần thực hiện đồng thời, hay chương trình địi hỏi vào/ra từ nhiều nguồn và đích khác nhau. Ví dụ, một chương trình thể hiện một vật chuyển động và phát ra âm thanh có thể tổ chức thành hai luồng riêng, một luồng chịu trách nhiệm phần đồ họa, một luồng chịu trách nhiệm phần âm thanh.