Tài nguyên của tiến trình và luồng

Một phần của tài liệu Giáo trình môn Hệ Điều Hành PTIT (Trang 52 - 53)

CHƯƠNG 2 : QUẢN LÝ TIẾN TRÌNH

2.2. LUỒNG

2.2.3. Tài nguyên của tiến trình và luồng

Trong hệ thống cho phép đa luồng, tiến trình vẫn là đơn vị được hệ điều hành sử dụng để phân phối tài nguyên. Mỗi tiến trình và tất cả các luồng thuộc tiến trình đó sẽ sở hữu chung một số số tài nguyên bao gồm:

- Khơng gian nhớ của tiến trình. Đây là khơng gian nhớ lơgic, có thể là khơng gian nhớ ảo, được sử dụng để chứa phần chương trình (các lệnh), phần dữ liệu của tiến trình. - Các tài nguyên khác như file do tiến trình mở, thiết bị hoặc cổng vào/ra.

Đến đây có sự khác biệt giữa tiến trình đơn luồng và tiến trình đa luồng như thể hiện trên hình 2.7.

Hình 2.7: Mơ hình đơn luồng và đa luồng

Trong mơ hình đơn luồng, tiến trình sẽ có khối quản lý tiến trình PCB chứa đầy đủ thơng tin về trạng thái tiến trình, giá trị các thanh ghi. Tiến trình cũng có ngăn xếp của mình để chứa tham số và trạng thái hàm/thủ tục/chương trình con khi thực hiện chương trình con. Khi tiến trình thực hiện, tiến trình sẽ làm chủ nội dung các thanh ghi và con trỏ lệnh của mình. Khi chuyển đổi tiến trình, những thông tin này sẽ được lưu vào PCB như đã nói ở trên.

chương

trình dữ liệu tài nguyên khác

khối quản lý

tiến trình PCB ngăn xếp

chương

trình dữ liệu tài nguyên khác

khối quản lý luồng ngăn xếp khối quản lý luồng ngăn xếp khối quản lý luồng ngăn xếp

Tiến trình đơn luồng Tiến trình đa luồng

Đối với mơ hình đa luồng, do mỗi luồng có chuỗi thực hiện riêng của mình, mỗi luồng cần có khả năng quản lý con trỏ lệnh, nội dung thanh ghi. Luồng cũng có trạng thái riêng như chạy, bị khóa, sẵn sàng. Những thông tin này được chứa trong khối quản lý luồng, thay vì chứa trong PCB chung cho cả tiến trình. Ngồi ra, mỗi luồng cịn có ngăn xếp riêng của mình, dùng để lưu các trạng thái, truyền tham số, chứa các biến tạm thời cho trường hợp thực hiện chương trình con.

Như vậy, trong mơ hình đa luồng, tất cả luồng của một tiến trình chia sẻ khơng gian nhớ và tài ngun của tiến trình đó. Các luồng có cùng khơng gian địa chỉ và có thể truy cập tới dữ liệu (các biến, các mảng) của tiến trình. Nếu một luồng thay đổi nội dung của biến nào đó, luồng khác sẽ nhận ra sự thay đổi này khi đọc biến đó. Nhờ cách tổ chức này, mơ hình đa luồng có một số ưu điểm như sẽ phân tích trong phần sau.

Một phần của tài liệu Giáo trình môn Hệ Điều Hành PTIT (Trang 52 - 53)