Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
380,49 KB
Nội dung
MÔN HỆ ĐIỀU HÀNH Chương 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 process 1.6 Các phương pháp lập lịch Tài liệu tham khảo : chương 2, sách "Modern Operating Systems", Andrew S Tanenbaum: , 2nd ed, Prentice Hall Môn : Hệ điều hành Chương : Quản lý process & thread Slide Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.1 Giới thiệu process Chương tr nh (program) = danh s ch c c lệnh để giải vấn đề n o đ , cất tr n đĩa dạng file Khi chương tr nh nạp v o RAM v CPU bắt đầu thi h nh chương tr nh điểm nhập th chương tr nh trở th nh process, CPU thực thi hết lệnh n y đến lệnh kh c từ tr n xuống hay theo điều khiển lệnh thực thi Process gồm thành phần : danh sách lệnh cấu thành thuật giải chương trình liệu Process chứa luồng thi h nh lệnh cho chương tr nh từ điểm nhập đến điểm kết th c Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide https://fb.com/sinhvienzonevn Giới thiệu process Mỗi process có vùng nhớ riêng, thường chia thành vùng thông tin khác sau : - Vùng code : chứa danh sách mã lệnh chương trình - Vùng static data : chứa biến liệu khai báo tường minh chương trình - Vùng dynamic data : chứa vùng nhớ liệu cấp phát động (thơng qua new, maloc…) Kích thước vùng biến động theo thời gian - Vùng stack : phục vụ cho việc gọi hàm chương trình Kích thước vùng biến động theo thời gian Code Static data Dynamic data Stack Môn : Hệ điều hành Chương1 2: Tổng : Quản lý process & thread Chương quát hệ điều hành Slide Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Giới thiệu process (a) Góc nhìn vật lý : thời điểm CPU chạy process Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com (b) Góc nhìn user : process chạy song hành (c) đồ thị chạy process theo thời gian Môn : Hệ điều hành Chương : Quản lý process & thread Slide https://fb.com/sinhvienzonevn Giới thiệu process Trình lập lịch (Scheduler) module chức HĐH, điều khiển việc chạy process theo thời gian để thỏa mãn tiêu chí xác định mà HĐH cần thực Môn : Hệ điều hành Chương : Quản lý process & thread Slide Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.2 Tạo process Một process tạo từ kiện sau : Do hệ thống tự tạo theo nhu cầu quản lý hệ thống (thường process hệ thống tạo lúc khởi động HĐH) Do người dùng kích hoạt chạy phần mềm Do thuật giải phần mềm chạy, gọi dịch vụ CreateProcess để tạo process theo yêu cầu riêng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide https://fb.com/sinhvienzonevn Xóa process Một process bị xóa từ kiện sau : Nội : Khi chương trình chạy đến lệnh kết thúc bình thường giải thuật Khi chương trình chạy đến lệnh gây lỗi mà người lập trình trù liệu 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, trường hợp hệ thống phát lỗi xóa process Bên ngồi : process khác yêu cầu hệ thống giết Môn : Hệ điều hành Chương : Quản lý process & thread Slide Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Cây phân cấp process Miêu tả mối quan hệ “tạo mới” process : Một process (process tree) A tạo hai process : B C B tạo ba process : D, E, F Linux dùng khái niệm “process group” để quản lý process Windows không quản lý process, process đầu ngang cấp Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide https://fb.com/sinhvienzonevn 2.3 Trạng thái process Theo thời gian hoạt động, process thay đổi trạng thái Có cấp độ trạng thái : Trạng thái vĩ mô : HĐH đặt để quản lý process Trạng thái vi mô : trạng thái chi tiết sau lệnh máy thực thi Thường có trạng thái vĩ mô phổ biến : Running (đang chíếm CPU chạy), Ready (chờ CPU để chạy), Blocked (bị giam chờ I/O) Các kiện gây chuyển trạng thái : thực I/O tốc độ chậm Chạy hết khe thời gian Được chọn để chạy khe thời gian kế I/O sẵn sàng phục vụ Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Hệ điều hành Chương : Quản lý process & thread Slide Trạng thái vi mô process Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 10 https://fb.com/sinhvienzonevn Trạng thái vi mô process Để quản lý trạng thái process, HĐH dùng record liệu gồm nhiều field, field chứa thông tin trạng thái mà HĐH muốn quản lý Một field đặc biệt record quản lý field chứa mã trạng thái vĩ mô process tương ứng để HĐH biết process chạy hay Ready | Blocked Các record quản lý process hợp thành bảng quản lý : bảng quan trọng HĐH Bảng quản lý trạng thái thường thực danh sách liên kết để việc thêm/bớt record dễ dàng hiệu (vì tần suất tạo/xóa process cao theo thời gian) Môn : Hệ điều hành Chương : Quản lý process & thread Slide 11 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.4 Khái niệm Thread Process chứa luồng thi hành lệnh (Thread) cho chương trình từ điểm nhập đến điểm kết thúc Hình bên miêu tả máy tính chạy chương trình đồng thời, chương trình viết giải thuật tuần tự, nghĩa chứa thread Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 12 https://fb.com/sinhvienzonevn Process multi-thread Hình bên miêu tả máy tính chạy chương trình đồng thời, chương trình viết giải thuật song song gồm tác vụ chạy đồng thời, tác vụ tương ứng với thread độc lập Tuy nhiên thread process truy xuất đến không gian làm việc process => gây tranh chấp 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 Computer Process Thread Program counter thread Môn : Hệ điều hành Chương : Quản lý process & thread Slide 13 Khác biệt gọi hàm tạo thread Process mono-thread (chỉ chứa luồng màu đỏ) Process multi-thread (chứa luồng màu đỏ luồng màu xanh) Hàm F1 F1(); CreateThread(F1, ); Hàm F1 Gởi kiện kết thúc Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 14 https://fb.com/sinhvienzonevn 2.5 Lập lịch cho process chạy Dùng chế phân chia thời gian (time-sharing) để chạy process đồng thời CPU Dùng timer để tính khe thời gian Mỗi lần hết khe hay process hành chờ I/O, trình lập lịch thực cơng việc “chuyển ngữ cảnh process” để dừng process hành 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 Chương : Quản lý process & thread Slide 15 Lập lịch cho process chạy Công việc “chuyển ngữ cảnh process” để dừng process hành cho phép process khác chạy gồm bước yếu sau : Dừng process hành (P1) lại Cất trạng thái P1 vào record quản lý tương ứng để dùng sau Chọn process (P2) bảng process để chạy tiếp (theo tiêu chí đó) Phục hồi trạng thái P2 từ record quản lý Kích hoạt timer đếm khe thời gian Cho P2 tiếp tục chạy từ vị trí ngừng trước Công việc “chuyển ngữ cảnh process” xác định, CPU có tốc độ cao thực chuyển ngữ cảnh nhanh (càng tốt thời gian) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 16 https://fb.com/sinhvienzonevn Lập lịch cho process chạy Độ lớn khe thời gian xác định cách dùng hòa yêu cầu mâu thuẫn : Sao cho ứng dụng chạy hiệu : để yêu cầu này, ta phải chọn khe lớn tốt để tỉ lệ thời gian process chạy thực sự/thời gian chuyển ngữ cảnh khe lớn Sao cho ứng dụng tương tác nhanh với người dùng để lừa họ ứng dụng luôn chạy (chứ chạy cà giựt) : để yêu cầu này, ta phải chọn khe nhỏ tốt để khoảng cách thời gian lần chạy liên tiếp process nhỏ Hiện nay, khe thời gian thường mức vài ms để process chạy nhiều lần (>20) giây Môn : Hệ điều hành Chương : Quản lý process & thread Slide 17 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 2.6 Các phương pháp lập lịch cho process Trong việc “chuyển ngữ cảnh process”, bước chọn process bảng process để chạy tiếp cần nói rõ thêm Tùy theo tiêu chí cần đạt mà ta chọn phương pháp Hiện người ta đề nghị nhiều phương pháp, phương pháp đáp ứng vài tiêu chí cú thể Sau nghiên cứu phương pháp điền hình : Phương pháp Round-robin Phương pháp dựa vào quyền ưu tiên Phương pháp dùng nhiều hàng chờ quyền ưu tiên Phương pháp cho process ngắn chạy trước Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 18 https://fb.com/sinhvienzonevn Phương pháp Round-robin Tiêu chí đạt : xử lý process theo tinh thần bình đẳng Ý tưởng : - Dùng hàng chờ trật tự (danh sách liên kết), process đến yêu cầu chạy trước nằm trước, process yêu cầu sau phải nằm sau - Khi hết khe thời gian mà cần chạy tiếp (thường vậy), process phải quay đuôi hàng chờ để giải 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 Chương : Quản lý process & thread Slide 19 Phương pháp Round-robin Tùy góc nhìn mà tiêu chí bình đẳng có đạt khơng ? Theo góc nhìn tốn học lý thuyết phương pháp Roundrobin đạt tiêu chí bình đẳng tuyệt đối Tuy nhiên thực tế, yêu cầu dùng CPU để chạy giải thuật process khác nhau, có process phức tạp chạy nhiều ngày xong, có process đơn giản cần vài giây, chí vài ms xong nên phương pháp Round-robin trở nên bất bình đẳng thực tế Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 20 https://fb.com/sinhvienzonevn 10 Phương pháp dựa vào quyền ưu tiên Tiêu chí đạt : xử lý process theo quyền ơu tiên process : process có quyền cao chạy nhiều process có độ ưu tiên thấp Ý tưởng : - Vị trí chờ process hàng chờ khơng quan trọng, - Mỗi process có số quyền ưu tiên xác định (lấy từ quyền ưu tiên user kích hoạt process) - Khi cần chọn process chạy tiếp, hệ thống chọn process có độ ưu tiên cao hàng chờ, bất chấp đến trước hay sau - Khi hết khe thời gian mà cần chạy tiếp (thường vậy), process phải quay hàng chờ để giải 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 Chương : Quản lý process & thread Slide 21 Phương pháp dựa vào quyền ưu tiên Khuyết điểm phương pháp 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 phải chờ lâu, chí khơng thời hạn ln có process quyền ưu tiên cao nằm hàng chờ (trình trạng dễ xảy ra) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 22 https://fb.com/sinhvienzonevn 11 Phương pháp dùng nhiều hàng chờ Tiêu chí đạt : dung hòa phương pháp Round-robin dựa vào quyền ưu tiên để khắc phục khuyết điểm chúng Ý tưởng : - Tạo nhiều hàng chờ khác nhau, hàng dành cho process quyền ưu tiên tương ứng Trong hàng, process đến trước xử lý trước - Khi cần chọn process chạy tiếp, hệ thống dò hàng chờ theo thứ tự quyền ưu tiên từ cao xuống thấp, hàng chờ có process chọn process đầu hàng đề chạy tiếp - Khi hết khe thời gian mà cần chạy tiếp (thường vậy), process phải quay hàng chờ để giải 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 Chương : Quản lý process & thread Slide 23 Phương pháp dùng nhiều hàng chờ Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 24 https://fb.com/sinhvienzonevn 12 Phương pháp dùng nhiều hàng chờ Ý tưởng (tt) : - Quyền ưu tiên process thiết lập lần đầu dựa vào quyền user kích hoạt Theo thời gian chạy, tùy tính chất chạy process mà hệ thống hiệu chỉnh lại cho phù hợp - Process tăng quyền ưu tiên (1) chờ N khe thời gian mà chưa chạy được, (2) dùng CPU hiệu không chờ I/O, (3)… - Process bị giảm quyền ưu tiên (1) chạy N khe thời gian rồi, (2) dùng CPU hiệu phải chờ I/O 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 Chương : Quản lý process & thread Slide 25 Phương pháp cho process ngắn chạy trước Tiêu chí đạt : cho người dùng cảm thấy hệ thống chạy hiệu Ý tưởng : - Theo góc nhìn người dùng, họ nói hệ thống chạy hiệu thấy thời gian đáp ứng cho phần mềm họ nhanh - Thời gian đáp ứng phần mềm hệ thống khoảng thời gian từ lúc phần mềm kích hoạt chạy đến lúc hồn thành nhiệm vụ - Thời gian đáp ứng cho phần mềm riêng lẻ khơng có độ tin cậy cao, người ta dùng thời gian đáp ứng trung bình hệ thống cho n phần mềm khoảng thời gian khảo sát làm thước đo độ hiệu hệ thống Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 26 https://fb.com/sinhvienzonevn 13 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 chạy trước đến process dài sau - Thí dụ thời điểm t0, có 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 tới P2, P3 P4 thời gian đáp ứng trung bình cho phần mềm : (70+80+82+83)/4 = 78.75s - Còn ta lập lịch theo phương pháp cho process ngắn chạy trước thứ tự chạy P4 → P3 → P2 → P1 thời gian đáp ứng trung bình cho phần mềm : (1+3+13+83)/4 = 25s Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone.com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 27 https://fb.com/sinhvienzonevn 14 ... không quản lý process, process đầu ngang cấp Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone. com Môn : Hệ điều hành Chương : Quản lý process & thread Slide https://fb .com/ sinhvienzonevn... chứa thread Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM SinhVienZone. com Môn : Hệ điều hành Chương : Quản lý process & thread Slide 12 https://fb .com/ sinhvienzonevn Process multi -thread. .. Computer Process Thread Program counter thread Môn : Hệ điều hành Chương : Quản lý process & thread Slide 13 Khác biệt gọi hàm tạo thread Process mono -thread (chỉ chứa luồng màu đỏ) Process multi-thread