Bài giảng môn Hệ điều hành - Chương 2: Quản lý Process & Thread
1.1 Khái niệm process
1.2 Tạo, xóa process
1.3 Trạng thái process
1.4 Khái niệm thread
1.5 Lập lịch chạy các process
1.6 Các phương pháp lập lịch
Tóm tắt nội dung Bài giảng môn Hệ điều hành - Chương 2: Quản lý Process & Thread, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
từng process, HĐH sẽ dùng 1 record dữ liệu gồm nhiều field, mỗi field chứa 1 thông tin trạng thái mà HĐH muốn quản lý. Một field đặc biệt trong record quản lý là field chứa mã trạng thái vĩ mô của process tương ứng để HĐH biết process đang chạy hay đang Ready | Blocked. Các record quản lý của các process sẽ được hợp thành 1 bảng quản lý : bảng này rất quan trọng của HĐH Bảng quản lý trạng thái thường được hiện thực bằng danh sách liên kết để việc thêm/bớt từng record dễ dàng và hiệu quả (vì tần suất tạo/xóa process rất cao theo thời gian). Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 12 Chương 2 : Quản lý process & thread 2.4 Khái niệm Thread Process tuần tự chỉ chứa 1 luồng thi hành lệnh (Thread) cho 1 chương trình từ điểm nhập đến điểm kết thúc. Hình bên miêu tả 1 máy tính đang chạy 3 chương trình đồng thời, mỗi chương trình được viết bằng giải thuật tuần tự, nghĩa là chỉ chứa 1 thread. 7Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 13 Chương 2 : Quản lý process & thread Process multi-thread Computer Process Thread Program counter của thread Hình bên miêu tả 1 máy tính đang chạy 3 chương trình đồng thời, mỗi chương trình được viết bằng giải thuật song song gồm 3 tác vụ chạy đồng thời, mỗi tác vụ tương ứng với 1 thread độc lập. Tuy nhiên các thread của cùng 1 process đều truy xuất đến không gian làm việc của process => có thể gây ra tranh chấp và làm hư hỏng tài nguyên bị tranh chấp. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 14 Chương 2 : Quản lý process & thread Khác biệt giữa gọi hàm và tạo thread mới F1(); Hàm F1 Process mono-thread (chỉ chứa 1 luồng màu đỏ) CreateThread(F1,..); Hàm F1 Process multi-thread (chứa 1 luồng chính màu đỏ và 1 luồng con màu xanh) Gởi sự kiện kết thúc 8Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 15 Chương 2 : Quản lý process & thread 2.5 Lập lịch cho các process chạy Dùng cơ chế phân chia thời gian (time-sharing) để chạy các process đồng thời trên 1 CPU. Dùng timer để tính khe thời gian. Mỗi lần hết khe hay process hiện hành chờ I/O, trình lập lịch sẽ thực hiện công việc “chuyển ngữ cảnh process” để dừng process hiện hành và cho phép process khác chạy. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 16 Chương 2 : Quản lý process & thread Lập lịch cho các process chạy Công việc “chuyển ngữ cảnh process” để dừng process hiện hành và cho phép process khác chạy gồm các bước chính yếu sau đây : 1. Dừng process hiện hành (P1) lại. 2. Cất trạng thái của P1 vào record quản lý tương ứng để dùng sau. 3. Chọn 1 process (P2) trong bảng process để chạy tiếp (theo các tiêu chí nào đó). 4. Phục hồi trạng thái của P2 từ record quản lý. 5. Kích hoạt timer đếm khe thời gian. 6. Cho P2 tiếp tục chạy từ vị trí ngừng trước đây. Công việc “chuyển ngữ cảnh process” là xác định, CPU có tốc độ càng cao thì thực hiện chuyển ngữ cảnh càng nhanh (càng tốt ít thời gian). 9Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 17 Chương 2 : Quản lý process & thread Lập lịch cho các process chạy Độ lớn của khe thời gian được xác định bằng cách dùng hòa giữa 2 yêu cầu mâu thuẫn nhau : 1. Sao cho các ứng dụng chạy hiệu quả nhất : để được yêu cầu này, ta phải chọn khe càng lớn càng tốt để tỉ lệ thời gian process chạy thực sự/thời gian chuyển ngữ cảnh trong từng khe là lớn nhất. 2. Sao cho ứng dụng tương tác nhanh với người dùng để lừa họ rằng ứng dụng luôn luôn chạy (chứ không phải chạy cà giựt) : để được yêu cầu này, ta phải chọn khe càng nhỏ càng tốt để khoảng cách thời gian giữa 2 lần chạy liên tiếp của process là nhỏ nhất. Hiện nay, khe thời gian thường ở mức vài ms để 1 process có thể chạy nhiều lần (>20) trong 1 giây. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 18 Chương 2 : Quản lý process & thread 2.6 Các phương pháp lập lịch cho các process Trong việc “chuyển ngữ cảnh process”, bước chọn 1 process trong bảng process để chạy tiếp cần được nói rõ thêm. Tùy theo các tiêu chí cần đạt được mà ta sẽ chọn phương pháp nào. Hiện người ta đã đề nghị nhiều phương pháp, nhưng mỗi phương pháp chỉ đáp ứng 1 vài tiêu chí cú thể. Sau đây chúng ta sẽ nghiên cứu 4 phương pháp điền hình : 1. Phương pháp Round-robin 2. Phương pháp dựa vào quyền ưu tiên 3. Phương pháp dùng nhiều hàng chờ quyền ưu tiên 4. Phương pháp cho process ngắn chạy trước. 10 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 19 Chương 2 : Quản lý process & thread Phương pháp Round-robin Tiêu chí đạt được : xử lý các process theo tinh thần bình đẳng. Ý tưởng : - Dùng 1 hàng chờ trật tự (danh sách liên kết), process nào đến yêu cầu chạy trước được nằm trước, process nào yêu cầu sau phải nằm sau. - Khi hết khe thời gian mà vẫn cần chạy tiếp (thường là vậy), process phải quay về đuôi hàng chờ để được giải quyết cho lần chạy sau. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 20 Chương 2 : Quản lý process & thread Phương pháp Round-robin Tùy góc nhìn mà tiêu chí bình đẳng có đạt được không ? Theo góc nhìn toán học và lý thuyết thì phương pháp Round- robin đạt được tiêu chí bình đẳng hầu như tuyệt đối. Tuy nhiên trong thực tế, vì yêu cầu dùng CPU để chạy giải thuật của từng process rất khác nhau, có process rất phức tạp chạy nhiều ngày mới xong, có process rất đơn giản chỉ cần vài giây, thậm chí vài ms là xong rồi nên phương pháp Round-robin trở nên rất bất bình đẳng thực tế. 11 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 21 Chương 2 : Quản lý process & thread Phương pháp dựa vào quyền ưu tiên Tiêu chí đạt được : xử lý các process theo quyền ơu tiên của từng process : process có quyền cao thì được chạy nhiều hơn process có độ ưu tiên thấp. Ý tưởng : - Vị trí chờ của process trong hàng chờ không quan trọng, - Mỗi process có chỉ số quyền ưu tiên xác định (lấy từ quyền ưu tiên của user kích hoạt process). - Khi cần chọn process chạy tiếp, hệ thống sẽ chọn process có độ ưu tiên cao nhất trong hàng chờ, bất chấp nó đến trước hay sau. - Khi hết khe thời gian mà vẫn cần chạy tiếp (thường là vậy), process phải quay về hàng chờ để được giải quyết cho lần chạy sau. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 22 Chương 2 : Quản lý process & thread Phương pháp dựa vào quyền ưu tiên Khuyết điểm chính của phương pháp này là rất dễ dẫn đến tình trạng “tắt nghẻn có chọn lọc” : process có quyền ưu tiên thấp sẽ phải chờ rất lâu, thậm chí là không thời hạn vì luôn có process quyền ưu tiên cao hơn mình nằm trong hàng chờ (trình trạng này dễ xảy ra). 12 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 23 Chương 2 : Quản lý process & thread Phương pháp dùng nhiều hàng chờ Tiêu chí đạt được : dung hòa giữa 2 phương pháp Round-robin và dựa vào quyền ưu tiên để khắc phục các khuyết điểm của chúng. Ý tưởng : - Tạo nhiều hàng chờ khác nhau, mỗi hàng dành cho các process cùng quyền ưu tiên tương ứng. Trong hàng, process nào đến trước được xử lý trước. - Khi cần chọn 1 process chạy tiếp, hệ thống sẽ dò tuần tự từng hàng chờ theo thứ tự quyền ưu tiên từ cao xuống thấp, hàng chờ nào có process thì chọn process ở đầu hàng đề chạy tiếp. - Khi hết khe thời gian mà vẫn cần chạy tiếp (thường là vậy), process phải quay về hàng chờ để được giải quyết cho lần chạy sau. Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 24 Chương 2 : Quản lý process & thread Phương pháp dùng nhiều hàng chờ 13 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 25 Chương 2 : Quản lý process & thread Phương pháp dùng nhiều hàng chờ Ý tưởng (tt) : - Quyền ưu tiên của process được thiết lập lần đầu dựa vào quyền của user kích hoạt nó. Theo thời gian chạy, tùy tính chất chạy của process mà hệ thống sẽ hiệu chỉnh lại cho phù hợp. - Process sẽ được tăng quyền ưu tiên khi (1) chờ N khe thời gian mà chưa chạy được, (2) dùng CPU rất hiệu quả chứ không chờ I/O, (3)… - Process sẽ bị giảm quyền ưu tiên khi (1) chạy được N khe thời gian rồi, (2) dùng CPU rất kém hiệu quả vì phải chờ I/O quá nhiều, (3)… Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 26 Chương 2 : Quản lý process & thread Phương pháp cho process ngắn chạy trước Tiêu chí đạt được : cho người dùng cảm thấy hệ thống chạy hiệu quả nhất. Ý tưởng : - Theo góc nhìn người dùng, họ nói hệ thống chạy càng hiệu quả khi thấy thời gian đáp ứng cho phần mềm của họ nhanh nhất. - Thời gian đáp ứng phần mềm của hệ thống là khoảng thời gian từ lúc phần mềm được kích hoạt chạy đến lúc nó hoàn thành nhiệm vụ. - Thời gian đáp ứng cho từng phần mềm riêng lẻ không có độ tin cậy cao, do đó người ta dùng thời gian đáp ứng trung bình của hệ thống cho n phần mềm trong khoảng thời gian khảo sát làm thước đo độ hiệu quả của hệ thống. 14 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Slide 27 Chương 2 : Quản lý process & thread Phương pháp cho process ngắn chạy trước Ý tưởng (tt) : - Để hệ thống đáp ứng tốt nhất, ta nên chọn process ngắn nhất chạy trước rồi cứ thế đến process dài nhất sau cùng. - Thí dụ tại thời điểm t0, có 4 process sau cần chạy : P1 chạy tốn 70s, P2 chạy tốn 10s, P3 chạy tốn 2s, P4 chạy tốn 1s. - Nếu ta lập lịch cho P1 chạy trước rồi mới tới P2, rồi P3 rồi P4 thì thời gian đáp ứng trung bình cho 4 phần mềm trên là : (70+80+82+83)/4 = 78.75s. - Còn nếu ta lập lịch theo phương pháp cho process ngắn nhất chạy trước thì thứ tự chạy sẽ là P4 → P3 → P2 → P1 và thời gian đáp ứng trung bình cho 4 phần mềm trên là : (1+3+13+83)/4 = 25s.
File đính kèm:
- Bài giảng môn Hệ điều hành - Chương 2 Quản lý Process & Thread.pdf