Đa tiểu trình một số khái niệm cơ bản

42 2K 8
Đa tiểu trình một số khái niệm cơ bản

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đa tiểu trình một số khái niệm cơ bản

Đa tiểu trình Nội dung chươngMột số khái niệm bảnXây dựng một ứng dụng đa tiểu trìnhĐồng bộ hóa các tiểu trình Một số khái niệm bảnXử lý đồng hành (Concurrent Processing)Đa nhiệm (Multi-Tasking)Tiến trình (Process)Tiểu trình (Thread)Độ ưu tiên của tiến trình (Process priority class)Độ ưu tiên của tiểu trình (Thread priority)Chuyển đổi ngữ cảnh (Context Switch) Xử lý đồng hành Xử lý đồng hành ?Bài toán: kq = a*b + c*dMột hệ thống xử lý đồng hành thường nhiều tiến trình thực thi cùng lúcCác tiến trình thể hoạt động độc lập hay kết hợp với nhau để thực hiện nhiều tác vụ Lợi ích của xử lý đồng hànhCho phép nhiều ứng dụng hoạt động cùng lúcTăng tốc độ xử lýTăng hiệu suất sử dụng CPU… Đa nhiệmHệ điều hành đa nhiệm phân chia thời gian xử lý của CPU thành nhiều “lát thời gian” (time slice) để các tiến trình/tiểu trình thực hiện luân phiên.Tiến trình/tiểu trình đang thực thi sẽ tạm dừng khi time slice của nó hết và tiến trình/tiểu trình khác sẽ chạy.Khi hệ thống chuyển đổi từ thread này sang thread khác, nó sẽ lưu lại ngữ cảnh của thread bị mất quyền và phục hồi ngữ cảnh của thread sắp được chạy. Đa nhiệmĐộ dài time slice phụ thuộc từng hệ điều hành và bộ vi xử lý. Bởi vì time slice khá nhỏ (khoảng 20ms) nên ta cảm giác thực hiện đồng thời.Hệ điều hành Windows hỗ trợ pre-emptive Multi-Tasking (đa nhiệm độ ưu tiên).Những vấn đề khó khăn khi xử lý đa nhiệm:Không gian bộ nhớ để lưu trữ thông tin ngữ cảnh của tiến trìnhtiểu trìnhThời gian để theo vết, quản lý các tiểu trìnhSự tranh chấp tài nguyên dùng chung Tiến trìnhLà một chương trình đang thực thiCó một con trỏ lệnh, vùng không gian địa chỉ ảo riêng, mã lệnh, dữ liệu, object handles, các biến môi trường, độ ưu tiên…Các thuộc tính này tác động lên mọi tiểu trình trực thuộc tiến trìnhMột tiến trình thể nhiều tiểu trình Tiến trình Tiểu trìnhLà đơn vị nhỏ nhất thực thi được trên hệ điều hành Windows 32 bitsLà đơn vị xử lý mà hệ điều hành Windows phân chia time slice.Mỗi tiểu trình bao gồm các stack, trạng thái các thanh ghi CPU,…và một entry trên danh sách các tiểu trình của hệ thống điều phốiCác tiểu trình của cùng một tiến trình chia sẻ nguồn tài nguyên chung của toàn bộ tiến trình. [...]... ThreadState.Suspended Xây dựng ứng dụng đa tiểu trình Tạo lập tiểu trình với ThreadStart Xây dựng ứng dụng đa tiểu trình  Tạo lập tiểu trình  Thay đổi trạng thái của tiểu trình  Kết thúc tiểu trình  Đồng bộ hóa các tiểu trình Một số khái niệm bản  Xử lý đồng hành (Concurrent Processing)  Đa nhiệm (Multi-Tasking)  Tiến trình (Process)  Tiểu trình (Thread)  Độ ưu tiên của tiến trình (Process priority class)  Độ... tiên NORMAL Xây dựng ứng dụng đa tiểu trình Đồng bộ hóa các tiểu trình Xây dựng ứng dụng đa tiểu trình Trả dữ liệu – dùng hàm gọi ngược.  Tạo tiểu trình, truyền dữ liệu và thực thi: Xây dựng ứng dụng đa tiểu trình Tạo lập tiểu trình  Thơng thường, chỉ 1 tiểu trình duy nhất trong một tiến trình lúc bắt đầu.  Từ tiểu trình ban đầu này, ta thể tạo ra các tiểu trình khác bằng cách gọi hàm khởi... của tiểu trình (Thread priority)  Chuyển đổi ngữ cảnh (Context Switch) Xây dựng ứng dụng đa tiểu trình Trả dữ liệu – dùng hàm gọi ngược.  Xây dựng lớp chứa tiểu trình:  Nhận dữ liệu vào và delegate tới hàm gọi ngược.  Trong phần code của tiểu trình sẽ gọi hàm ngược này. Đa tiểu trình Xây dựng ứng dụng đa tiểu trình Kết thúc tiểu trình  Ta thể dùng hàm Abort để gửi thơng điệp u cầu một tiểu. .. dựng ứng dụng đa tiểu trình Đồng bộ hóa các tiểu trình  Dùng từ khóa lock: public void ThreadProc() { lock("crit"){ Thread.Sleep(value*100); } Console.WriteLine(boilerplate, value); if (callback != null) callback(1); } Xây dựng ứng dụng đa tiểu trình Tạo tiểu trình với ParametrizedThreadStart Tiểu trình  Các trạng thái của tiểu trình: Xây dựng ứng dụng đa tiểu trình Trả dữ... ứng dụng đa tiểu trình Tạm dừng/tiếp tục tiểu trình  Ta thể tạm ngưng thực thi một tiểu trình bằng cách gọi hàm Suspend và khôi phục lại hoạt động bằng hàm Resume.  th.Suspend();  th.Resume();  Nếu tiểu trình đang gọi các hàm hệ thống, thao tác suspend sẽ thất bại.  Ứng dụng thể phải gọi SuspendThread nhiều lần cho đến khi suspend thành cơng.  Kiểm tra trạng thái của một tiểu trình thơng... tiểu trình Đồng bộ hóa các tiểu trình  Dùng monitor: Chuyển đổi ngữ cảnh  Để chuyển đổi xử lý từ tiểu trình này sang tiểu trình khác trong hàng đợi, hệ thống phải thực hiện việc chuyển đổi ngữ cảnh:  Sao lưu ngữ cảnh của tiểu trình tạm ngưng xử lý.  Đưa tiểu trình này vào hàng đợi hệ thống độ ưu tiên tương ứng với độ ưu tiên xử lý của tiểu trình.  Xác định tiểu trình sẵn sàng trong hàng... Tiểu trình  Là đơn vị nhỏ nhất thực thi được trên hệ điều hành Windows 32 bits  Là đơn vị xử lý mà hệ điều hành Windows phân chia time slice.  Mỗi tiểu trình bao gồm các stack, trạng thái các thanh ghi CPU,…và một entry trên danh sách các tiểu trình của hệ thống điều phối  Các tiểu trình của cùng một tiến trình chia sẻ nguồn tài ngun chung của tồn bộ tiến trình. Xây dựng ứng dụng đa tiểu. .. Tiến trình Chuyển đổi ngữ cảnh  Việc chuyển đổi ngữ cảnh chỉ được thực hiện trong ba tình huống:  Khi thời gian xử lý của một tiểu trình đã hết.  Khi tiểu trình đang xử lý phải chuyển sang trạng thái chờ, nó phải từ bỏ thời gian xử lý cịn lại.  Một tiểu trình độ ưu tiên xử lý cao hơn vừa từ trạng thái chờ (block, suspend) chuyển sang trạng thái sẵn sàng. Xây dựng ứng dụng đa tiểu trình Đồng... trình Kết thúc tiểu trình  Ta thể dùng hàm Abort để gửi thơng điệp u cầu một tiểu trình kết thúc.  th.Abort();  Để hủy thơng điệp Abort, ta dùng lệnh:  Th.ResetAbort();  Vì tiểu trình trực thuộc tiến trình, nên ta thể kết thúc tất cả các tiểu trình bằng cách kết thúc tiến trình cha. Xây dựng ứng dụng đa tiểu trình Trả dữ liệu – dùng hàm gọi ngược.  Triển khai hàm gọi ngược ứng với delegate: /*... ngữ cảnh của tiểu trình được chọn vào hệ thống, xố bỏ tiểu trình này trong hàng đợi hệ thống và thực thi tiểu trình này. Độ ưu tiên của tiểu trình trong tiến trình  THREAD_PRIORITY_LOWEST (-2): thấp hơn 2 điểm so với độ ưu tiên NORMAL  THREAD_PRIORITY_BELOW_NORMAL (-1): thấp hơn 1 điểm so với độ ưu tiên NORMAL  THREAD_PRIORITY_NORMAL: độ ưu tiên ngang với độ ưu tiên của tiến trình  THREAD_PRIORITY_ABOVE_NORMAL . Đa tiểu trình Nội dung chương Một số khái niệm cơ bản Xây dựng một ứng dụng đa tiểu trình Đồng bộ hóa các tiểu trình Một số khái niệm cơ bản Xử. thuộc tính này tác động lên mọi tiểu trình trực thuộc tiến trình Một tiến trình có thể có nhiều tiểu trình Tiến trình Tiểu trình Là đơn vị nhỏ nhất thực

Ngày đăng: 12/09/2012, 15:43

Hình ảnh liên quan

Bảng 32 mức ưu tiên - Đa tiểu trình một số khái niệm cơ bản

Bảng 32.

mức ưu tiên Xem tại trang 17 của tài liệu.
Bảng 32 mức ưu tiên - Đa tiểu trình một số khái niệm cơ bản

Bảng 32.

mức ưu tiên Xem tại trang 17 của tài liệu.
Bảng 32 mức ưu tiên tt … - Đa tiểu trình một số khái niệm cơ bản

Bảng 32.

mức ưu tiên tt … Xem tại trang 18 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan