Giáo trình Hệ điều hành - Chương 2: Quản lý Process & Thread - Khoa Công nghệ Thông tin - Trường ĐH Bách Khoa TP. HCM

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


 

pdf 14 trang xuanthi 30/12/2022 2260
Bạn đang xem tài liệu "Giáo trình Hệ điều hành - Chương 2: Quản lý Process & Thread - Khoa Công nghệ Thông tin - Trường ĐH Bách Khoa TP. HCM", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfgiao_trinh_he_dieu_hanh_chuong_2_quan_ly_process_thread_khoa.pdf

Nội dung text: Giáo trình Hệ điều hành - Chương 2: Quản lý Process & Thread - Khoa Công nghệ Thông tin - Trường ĐH Bách Khoa TP. HCM

  1. Giới thiệu process Mỗi process có 1 vùng nhớ riêng, thường được chia thành các vùng thông tin khác nhau như sau : - Vùng code : chứa danh sách mã lệnh của chương trình. Code - Vùng static data : chứa các biến dữ liệu được khai báo tường minh trong chương trình. Static data - Vùng dynamic data : chứa các vùng nhớ dữ liệu được cấp phát động (thông Dynamic data qua new, maloc ). Kích thước vùng này biến động theo thời gian. - Vùng stack : phục vụ cho việc gọi hàm trong chương trình. Kích thước vùng Stack này biến động theo thời gian. Môn : Hệ điều hành Khoa Công nghệ Thông tin ChChươươngng 1 2: T: Quổngả nquát lý process về hệ đ i&ề uthread hành Trường ĐH Bách Khoa Tp.HCM Slide 3 Giới thiệu process (a) Góc nhìn vật (b) Góc nhìn user (c) đồ thị chạy lý : từng thời điểm : 4 process đang của từng process CPU chỉ chạy 1 chạy song hành. theo thời gian. process. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 4 2
  2. Xóa process Một process sẽ bị xóa từ các sự kiện sau : 1. Nội tại : 1. Khi chương trình chạy đến lệnh kết thúc bình thường của giải thuật. 2. Khi chương trình chạy đến lệnh gây lỗi mà người lập trình trù liệu. 3. Khi chương trình chạy đến lệnh gây lỗi mà người lập trình không trù liệu, trong trường hợp này hệ thống sẽ phát hiện lỗi và xóa process. 2. Bên ngoài : do process khác yêu cầu hệ thống giết. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 7 Cây phân cấp các process Miêu tả mối quan hệ “tạo mới” giữa các process : Một cây process (process tree) ƒ A đã tạo hai process con : B và C ƒ B đã tạo ba process con : D, E, và F Linux dùng khái niệm “process group” để quản lý cây process. Windows không quản lý cây process, mọi process đầu ngang cấp. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 8 4
  3. Trạng thái vi mô của process ‰ Để quản lý trạng thái của 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). Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 11 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. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 12 6
  4. 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. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 15 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). Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 16 8
  5. 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. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 19 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ế. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 20 10
  6. 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. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 23 Phương pháp dùng nhiều hàng chờ Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 24 12
  7. 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. Môn : Hệ điều hành Khoa Công nghệ Thông tin Chương 2 : Quản lý process & thread Trường ĐH Bách Khoa Tp.HCM Slide 27 14