Khái niệm QT và luồng

Một phần của tài liệu Cơ bản về hệ điều hành (Trang 48 - 50)

QT là đối t−ợng trong HĐH, biểu thị việc thực hiện một ch−ơng trình trong một phiên làm việc: QT là một đơn vị tính toán cơ sở trong hệ thống.

Một số điểm phân biệt hai khái niệm ch−ơng trình và QT: Ch−ơng trình liên quan đến bài toán cần giải quyết (các tham số hình thức), tên ch−ơng trình, độ dài, ngôn ngữ nguồn .… QT là một lần sử dụng ch−ơng trình đã có để giải quyết bài toán trong một tình huống cụ thể (tham số đã đ−ợc cụ thể). QT có trạng thái quá trình, bao gồm trạng thái phân bố các thành phần của QT trong bộ nhớ trong ...

QT đ−ợc gọi là đơn nếu các lệnh (thành phần con) trong nó đ−ợc thực hiện một cách tuần tự. Thuật ngữ đồng thời liên quan đến việc mô tả sự thực hiện đồng thời các QT

Đa ch−ơng trình Mô hình quan niệm Chỉ 1 ch−ơng trình hoạt với 4 ch−ơng trình của 4 QT tuần tự động trong mọi thể hiện

đơn. Giữa hai QT có những thành phần đ−ợc phép thực hiện đồng thời. Các thành phần khác cần đ−ợc đồng bộ hoặc truyền thông giữa chúng.

Luồng (thread) là một biến thể của QT, t−ơng ứng với tr−ờng hợp khi thực hiện một QT lại sinh ra một QT khác. QT đơn thực chất là QT đơn luồng, trong thời gian thực hiện, nó không tạo ra một QT mới.

QT đa luồng là QT mà trong khi thực hiện nó cho ra một QT mới: Đây là tr−ờng hợp đặc biệt của tính đồng thời khi QT cha và QT con "đồng thời" thực hiện và chia xẻ tài nguyên CPU cùng bộ nhớ trong và mỗi luồng có trạng thái riêng của mình.

Hình 3.3 trình bày tính đồng thời hai mức của một QT và một luồng. Tại mức thứ nhất (mức thấp), các QT chạy đồng thời dị bộ theo HĐH gốc. Khi xem xét tại mức đồng thời thứ hai, mỗi QT đồng thời chạy tựa một máy tính ảo hỗ trợ tính đồng thời của các luồng. Một QT đ−ợc hiểu một cách đơn giản nh− một không gian địa chỉ lôgic mà tại đó luồng thực hiện.

Trong HĐH tập trung, thuật ngữ "khối điều khiển QT" PCB (Process Control Block) dùng để chỉ cấu trúc dữ liệu chứa các thông tin về QT, hỗ trợ việc điều khiển CPU và

Hệ điều hành gốc

QT đơn Các QT đa luồng

Th− viện hỗ trợ thời gian chạy của luồng PCB Luồng PCB TCB TCB TCB L L L PCB TCB TCB TCB L L L Hình 3.3. Quá trình và luồng Hình 3.2. Trạng thái của QT 1. QT kết khối để nhập dữ liệu 2. Bộ lập lịch chọn QT khác 3. QT đ−ợc chọn 4. Nhập dữ liệu xong Kết khối Blocked Sẵn sàng Ready Thực hiện Running 2 3 4 1

điều khiển QT (thông tin trạng thái: thanh ghi địa chỉ lệnh, nội dung các thanh ghi, con trỏ stack, cổng truyền thông, và đặc tả file ...). PCB chứa các thông tin cần thiết để luân chuyển thực hiện QT đ−ợc quản lý bằng HĐH gốc.

Giống nh− QT, luồng cũng có các thủ tục và stack riêng. Thông tin trạng thái về luồng đ−ợc cho trong khối điều khiển luồng TCB (Thread Control Block). TCB đ−ợc quản lý bởi Th− viện hỗ trợ thời gian chạy luồng. TCB là riêng đối với mỗi luồng trong khi PCB lại đ−ợc chia xẻ cho các luồng t−ơng tác để đồng bộ và truyền thông. Thông tin trong TCB ít hơn nhiều so với thông tin trong PCB và chỉ gồm nội dung các thanh ghi (bộ đếm ch−ơng trình, đỉnh stack, tập thanh ghi). Các thông tin trạng thái khác đ−ợc bảo quản trong PCB. Bởi lý do đó, luồng đ−ợc gọi QT nhẹ trong khi đó QT đ−ợc gọi là

QT nặng. Chú ý về mặt sử dụng ký hiệu, trong các HĐH hoạt động theo chế độ mẻ

(batch, lô) dùng ký hiệu TCB với nghĩa khác là "khối điều khiển bài toán" - Task Control Block.

Thi hành luồng trong không gian ng−ời dùng đ−ợc chỉ ra trong hình 3.4, và chỉ có QT (mà không phải là luồng) đ−ợc HĐH nhìn thấy. Ngoài ra, luồng đ−ợc thực hiện trong không gian nhân và đ−ợc quản lý trực tiếp bởi HĐH gốc. Luồng trong một QT đ−ợc khởi tạo tĩnh hoặc động bởi một QT điều khiển hoặc một luồng khác.

Một phần của tài liệu Cơ bản về hệ điều hành (Trang 48 - 50)