Tham khảo tài liệu 'giáo trình nguyên lý hệ điều hành_chương 4a', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành - CHƯƠNG IV - LUỒNG Mục đích Sau khi học xong chương này người học nắm được những kiến thức sau Các khái niệm gán với hệ điều hành đa luồng Các vấn đề liên quan với lập trình đa luồng Các ảnh hưởng của luồng tới việc thiết kế hệ điều hành Cách thức các hệ điều hành hiện đại hỗ trợ luồng Giới thiệu Mô hình thực thi trong chương 3 giả sử rằng một quá trình là một chương trình đang thực thi với một luồng điều khiển. Nhiều hệ điều hành hiện đại hiện nay cung cấp các đặc điểm cho một quá trình chứa nhiều luồng thread điều khiển. Trong chương này giới thiệu các khái niệm liên quan với các hệ thống máy tính đa luồng gồm thảo luận Pthread API và luồng Java. Chúng ta sẽ xem xét nhiều vấn đề có liên quan tới lập trình đa luồng và nó ảnh hưởng như thế nào đến thiết kế của hệ điều hành. Cuối cùng chúng ta sẽ khám phá nhiều hệ điều hành hiện đại hỗ trợ luồng tại cấp độ nhân như thế nào. Tổng quan Một luồng thường được gọi là quá trình nhẹ lightweight proces-LWP là một đơn vị cơ bản của việc sử dụng CPU nó hình thành gồm một định danh luồng thread ID một bộ đếm chương trình tập thanh ghi và ngăn xếp. Nó chia sẻ với các luồng khác thuộc cùng một quá trình phần mã phần dữ liệu và tài nguyên hệ điều hành như các tập tin đang mở và các tín hiệu. Một quá trình truyền thống hay quá trình nặng có một luồng điều khiển đơn. Nếu quá trình có nhiều luồng điều khiển nó có thể thực hiện nhiều hơn một tác vụ tại một thời điểm. Hình hiển thị sự khác nhau giữa quá trình đơn luồng và quá trình đa luồng. Sự cơ động Nhiều gói phần mềm chạy trên các máy để bàn PC là đa luồng. Điển hình một ứng dụng được cài đặt như một quá trình riêng rẻ với nhiều luồng điều khiển. Một trình duyệt Web có thể có một luồng hiển thị hình ảnh văn bản trong khi một luồng khác lấy dữ liệu từ mạng. Một trình soạn thảo văn bản có thể có một luồng hiển thị đồ họa luồng thứ hai đọc sự bấm phím trên bàn phím từ người dùng một