Danh mục

Bài giảng Lập trình môi trường Window: Chương 8 - Ngô Thanh Hùng

Số trang: 42      Loại file: pdf      Dung lượng: 700.24 KB      Lượt xem: 6      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 8,000 VND Tải xuống file đầy đủ (42 trang) 0
Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 8 trình bày các khái niệm cơ bản của đa tiểu trình, dộ ưu tiên của tiến trình, chuyển đổi ngữ cảnh, xây dựng ứng dụng tiểu trình và đồng bộ hóa các tiểu trình. Mời các bạn tham khảo chi tiết bài giảng.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình môi trường Window: Chương 8 - Ngô Thanh Hùng Đa tiểu trìnhCuuDuongThanCong.com https://fb.com/tailieudientucnttNộ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 CuuDuongThanCong.com https://fb.com/tailieudientucnttMột số khái niệm cơ 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) CuuDuongThanCong.com https://fb.com/tailieudientucnttXử 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 có nhiều tiến trình thực thi cùng lúc Các tiến trình có thể hoạt động độc lập hay kết hợp với nhau để thực hiện nhiều tác vụ CuuDuongThanCong.com https://fb.com/tailieudientucnttLợ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 … CuuDuongThanCong.com https://fb.com/tailieudientucnttĐ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. CuuDuongThanCong.com https://fb.com/tailieudientucnttĐ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ó 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 có độ ư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ình và tiể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 CuuDuongThanCong.com https://fb.com/tailieudientucnttTiế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 có thể có nhiều tiểu trình CuuDuongThanCong.com https://fb.com/tailieudientucnttTiến trình CuuDuongThanCong.com https://fb.com/tailieudientucnttTiể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. CuuDuongThanCong.com https://fb.com/tailieudientucnttTiểu trình Các trạng thái của tiểu trình: CuuDuongThanCong.com https://fb.com/tailieudientucnttTiểu trình Khi kết thúc time slice của mình, một tiểu trình sẽ dừng lại và nhường tài nguyên cho các tiểu trình khác. Quá trình này được gọi là chuyển đổi ngữ cảnh (context switch). Độ ưu tiên là thuộc tính giúp hệ điều hành xác định tiểu trình nào sẽ được thực hiện tiếp theo, đồng thời phân chia thời gian xử lý của CPU. Khi thời điểm context switch đến, đơn vị điều phối (dispatcher) sẽ khảo sát tập các tiểu trình ở trạng thái sẵn sàng và chọn tiểu trình đầu tiên có độ ưu tiên cao nhất trên hàng đợi để thực hiện. CuuDuongThanCong.com https://fb.com/tailieudientucnttĐộ ưu tiên của tiến trình IDLE_PRIORITY_CLASS: chỉ được thực hiện khi không còn tiến trình nào sử dụng CPU NORMAL_PRIORITY_CLASS: được quyền sử dụng CPU theo thời gian phân chia. Đây là độ ưu tiên mặc định cho tiến trình khi mới tạo lập HIGH_PRIORITY_CLASS: Tiến trình được dành quyền sử dụng CPU từ các tiến trình thuộc lớp Normal ngay khi cần REALTIME_PRIORITY_CLASS: Có độ ưu tiên cao nhất, được sử dụng CPU bất kỳ lúc nào ABOVE_NORMAL_PRIORITY_CLASS (chỉ có trong Windows 2000 trở lên): cao hơn NORMAL nhưng thấp hơn HIGH priority BELOW_NORMAL_PRIORITY_CLASS (chỉ có trong Windows 2000 trở lên): cao hơn IDLE nhưng thấp hơn NORMAL priority CuuDuongThanCong.com https://fb.com/tailieudientucnttĐộ ưu tiên của tiểu trình Mỗi tiểu trình có 1 độ ưu tiên được xác lập từ 0 (thấp nhất) đến 31 (cao nhất), giá trị này gọi là Base Priority Base Priority là giá trị độ ưu tiên của tiểu trình tính trên toàn hệ thống Base Priority được xác định bởi:  Độ ưu tiên của tiến trình chứa nó  Mức độ ưu tiên của tiểu trình bên trong tiến trình CuuDuongThanCong.com https://fb.com/tailieudientucnttĐộ ưu tiên của tiểu trình trongtiế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 (+1): cao hơn 1 điểm so với độ ưu tiên NORMAL THREAD_PRIORITY_HIGHEST (+2): cao hơn 2 điểm so với độ ưu tiên NORMAL CuuDuongThanCong.com https://fb.com/tailieudientucnttĐộ ưu tiên của tiểu trình trongtiến trình Theo mặc định một tiểu trình vừa mới được tạo ra sẽ có độ ưu tiên THREAD_PRIORITY_NORMAL Ta có thể xác định độ ...

Tài liệu được xem nhiều: