Bài giảng Hệ điều hành - Bài 2: Tiến trình & luồng được biên soạn nhằm trang bị cho các bạn những kiến thức về khái niệm Tiến trình (process), giao tiếp giữa các tiến trình, luồng (Thread). Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này.
p Process Một chương trình có nhiều tiến trình Mở Notepad.exe xem file a.txt tiến trình Mở Notepad.exe xem file b.txt tiến trình Chương trình nhìn từ góc độ mã lệnh phần tiến trình 30 30 31 Proc Proc Proc Có cơng việc cần có nhiều tiến trình hợp tác với để hồn thành Thời gian để tạo tiến trình Tạo khối PCB Tạo không gian địa Thời gian chuyển đổi tiến trình Cần có chế giao tiếp: Tách biệt không gian địa tiến trình với Ánh xạ vùng nhớ chia sẻ Truyền thông điệp ▪ send() receive() 32 Code Data Heap Stack Shared Prog Virtual Address Space Data Stack Heap Code Stack Data Heap Code Shared Code Data Heap Stack Shared Prog Virtual Address Space Giao tiếp thông qua thao tác đọc/ghi vùng nhớ chung 33 (Inter-Process Communication) Cơ chế cho phép tiến trình giao tiếp với đồng hóa hành động chúng Hệ thống thơng điệp – tiến trình giao tiếp với không cần phải qua biến dùng chung IPC cung cấp hai thao tác bản: send(message) receive(message) Nếu tiến trình P Q muốn giao tiếp với nhau, chúng phải: tạo đường giao tiếp chúng trao đổi thông điệp thơng qua send/receive 34 Các tiến trình thực thi độc lập hay hợp tác Các tiến trình hợp tác phải có phương tiện giao tiếp với : chia sẻ nhớ, truyền thông điệp 35 Phương pháp chia sẻ nhớ yêu cầu tiến trình giao tiếp chia sẻ số biến Các tiến trình trao đổi thơng tin thơng qua việc sử dụng biến dùng chung Chỉ hệ điều hành cung cấp hệ thống nhớ chia sẻ Phương pháp truyền thông điệp cho phép tiến trình trao đổi thơng điệp Nhiệm vụ cung cấp chế giao tiếp tách rời với hệ điều hành Hai chế dùng lúc hệ điều hành 36 37 Luồng (thread) dòng điều khiển phạm vi tiến trình Tiến trình đa luồng gồm nhiều dòng điều khiển khác không gian địa Những lợi điểm đa luồng gồm đáp ứng nhanh người dùng, chia sẻ tài ngun tiến trình, tính kinh tế khả thuận lợi kiến trúc đa xử lý Tách biệt: Trạng thái CPU, ngăn xếp Chia sẻ: Mọi thứ khác ▪ Data, Code, Heap, môi trường Đặc biệt: Không gian địa (Tại sao?) 38 Mỗi tiến trình ln có luồng (dòng xử lý cho hàm main()) Ngồi luồng chính, tiến trình có nhiều luồng khác Các luồng tiến trình Chia sẻ khơng gian vùng code data Có vùng stack riêng 39 ... phép tiến trình trao đổi thơng điệp Nhiệm vụ cung cấp chế giao tiếp tách rời với hệ điều hành Hai chế dùng lúc hệ điều hành 36 37 Luồng (thread) dòng điều khiển phạm vi tiến trình Tiến. .. tự tiến trình: new: Luồng tạo ready: Luồng chờ để chạy running: Luồng thi hành waiting: Luồng chờ kiện terminated: Luồng kết thúc thi hành Thông tin luồng lưu TCB 49 49 Bài giảng. .. biệt: Không gian địa (Tại sao?) 38 Mỗi tiến trình ln có luồng (dòng xử lý cho hàm main()) Ngồi luồng chính, tiến trình có nhiều luồng khác Các luồng tiến trình Chia sẻ không gian vùng code