Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
911,31 KB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG BÀI GIẢNG MÔN HỆ ĐIỀU HÀNH Giảng viên: ThS Nguyễn Thị Ngọc Vinh Bộ mơn: Khoa học máy tính- Khoa CNTT1 Học kỳ/Năm biên soạn: I/ 2009 - 2010 CHƢƠNG 4: QUẢN LÝ TIẾN TRÌNH www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang NỘI DUNG Các khái niệm liên quan đến tiến trình Luồng (thread) Điều độ tiến trình Đồng hóa tiến trình đồng thời Tình trạng bế tắc đói www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Tiến trình gì? Tiến trình chương trình trình thực Chương trình Tiến trình Thực thể tĩnh Thực thể động Không sở hữu tài nguyên cụ thể Được cấp số tài để chứa tiến trình thực lệnh Tiến trình đƣợc sinh chƣơng trình đƣợc tải vào nhớ để thực Tiến trình ngƣời dùng Tiến trình hệ thống www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Trạng thái tiến trình Phân biệt theo trạng thái: chạy không chạy => Không phản ánh đầy đủ thơng tin trạng thái tiến trình => Mơ hình trạng thái: khởi tạo, sẵn sàng, chạy, chờ đợi, kết thúc Mới khởi tạo: tiến trình đƣợc tạo Sẵn sàng: tiến trình chờ đƣợc cấp CPU để thực lệnh Chạy: lệnh tiến trình đƣợc CPU thực Chờ đợi: tiến trình chờ đợi kiện xảy (blocked) Kết thúc: tiến trình kết thúc việc thực nhƣng chƣa bị xóa www.ptit.edu.vn Điều độ CPU Mới khởi tạo Sẵn sàng Chạy Kết thúc Ngắt Kết thúc vào/ra GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Vào/ra chờ kiện Chờ đợi Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Thơng tin mơ tả tiến trình Đƣợc lƣu cấu trúc liệu gọi khối quản lý tiến trình - PCB (Process Control Block) Các thơng tin PCB: Số định danh tiến trình (PID) Trạng thái tiến trình Nội dung số ghi CPU: Thanh ghi trỏ lệnh: trỏ tới lệnh Thanh ghi trỏ ngăn xếp Các ghi điều kiện trạng thái Các ghi đa www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Thơng tin mơ tả tiến trình PCB: Thơng tin phục vụ điều độ tiến trình: mức độ ƣu tiên tiến trình, vị trí hàng đợi, … Thơng tin nhớ tiến trình Danh sách tài nguyên khác: file mở, thiết bị vào mà tiến trình sử dụng Thông tin thống kê phục vụ quản lý: thời gian sử dụng CPU, giới hạn thời gian www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Bảng danh sách tiến trình Sử dụng bảng tiến trình chứa trỏ tới PCB tồn tiến trình có hệ thống PCB tiến trình trạng thái chờ tài nguyên đƣợc liên kết thành danh sách Bảng tiến trình Con trỏ tới bảng tiến trình Đang chạy PCB Sẵn sàng PCB PCB Chờ đợi đọc đĩa PCB PCB PCB Tiến trình Tiến trình Tiến trình PCB … Tiến trình n www.ptit.edu.vn PCB n GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Các thao tác với tiến trình Tạo tiến trình: Gán số định danh cho tiến trình đƣợc tạo tạo ô bảng tiến trình Tạo không gian nhớ cho tiến trình PCB Khởi tạo PCB Liên kết PCB tiến trình vào danh sách quản lý www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang I CÁC KHÁI NIỆM LIÊN QUAN ĐẾN TIẾN TRÌNH Các thao tác với tiến trình Kết thúc tiến trình: Kết thúc bình thƣờng: yêu cầu HDH kết thúc cách gọi lời gọi hệ thống exit() Bị kết thúc: Bị tiến trình cha kết thúc Do lỗi Yêu cầu nhiều nhớ so với số lƣơng hệ thống cung cấp Thực lâu thời gian giới hạn Do quản trị hệ thống hệ điều hành kết thúc www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 10 V BẾ TẮC Ngăn ngừa bế tắc (tt) Khơng có phân phối lại: Cách 1: Khi tiến trình yêu cầu tài nguyên nhƣng không đƣợc bị cấp phát, HDH thu hồi lại tồn tài ngun giữ Tiến trình thực tiếp sau lấy đƣợc tài nguyên cũ với tài nguyên yêu cầu Cách 2: Khi tiến trình u cầu tài ngun, cịn trống, đƣợc cấp phát Nếu tài nguyên tiến trình khác giữ mà tiến trình chờ cấp thêm tài nguyên thu hồi lại để cấp cho tiến trình u cầu Nếu hai điều kiện khơng thỏa tiến trình yêu cầu tài nguyên phải chờ www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 79 V BẾ TẮC Ngăn ngừa bế tắc (tt) Chờ đợi vòng tròn: Xác định thứ tự cho dạng tài nguyên cho phép tiến trình yêu cầu tài nguyên cho tài ngun mà tiến trình u cầu sau có thứ tự lớn tài nguyên mà yêu cầu trƣớc Giả sử hệ thống có n dạng tài nguyên ký hiệu R1, R2, …, Rn Giả sử dạng tài nguyên đƣợc xếp theo thứ tự tăng dần số Nếu tiến trình yêu cầu số tài ngun dạng Ri sau tiến trình đƣợc phép yêu cầu tài nguyên dạng Rj j > i Nếu tiến trình cần nhiều tài nguyên dạng tiến trình phải yêu cầu tất tài nguyên dạng lúc www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 80 V BẾ TẮC Phòng tránh bế tắc Ngăn ngừa bế tắc: Sử dụng quy tắc hay ràng buộc cấp phát tài nguyên để ngăn ngừa điều kiện xẩy bế tắc Sử dụng tài nguyên hiệu quả, giảm hiệu tiến trình Phịng tránh bế tắc: Cho phép điều kiện đầu xẩy đảm bảo cho trạng thái bế tắc không đạt tới Mỗi yêu cầu cấp tài nguyên tiến trình đƣợc xem xét định tùy theo tình hình cụ thể HDH yêu cầu tiến trình cung cấp thơng tin việc sử dụng tài nguyên (số lƣợng tối đa tài nguyên tiến trình cần sử dụng) www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 81 V BẾ TẮC Phòng tránh bế tắc – thuật toán người cho vay Khi tiến trình muốn khởi tạo, thơng báo dạng tài ngun số lƣợng tài nguyên tối đa cho dạng yêu cầu Nếu số lƣợng yêu cầu không vƣợt khả hệ thống, tiến trình đƣợc khởi tạo Trạng thái đƣợc xác định tình trạng sử dụng tài nguyên thời hệ thống: Số lƣợng tối đa tài nguyên mà tiến trình yêu cầu: Dƣới dạng ma trận M[n][m]: n số lƣợng tiến trình, m: số tài nguyên M[i][j]: số lƣợng tài nguyên tối đa dạng j mà tiến trình i yêu cầu www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 82 V BẾ TẮC Phòng tránh bế tắc – thuật toán người cho vay Số lƣợng tài nguyên lại: Dƣới dạng vectơ A[m] A[j] số lƣợng tài nguyên dạng j lại cấp phát Lƣợng tài nguyên cấp cho tiến trình: Dƣới dạng ma trận D[n][m] D[i][j] lƣợng tài nguyên dạng j cấp cho tiến trình i Lƣợng tài ngun cịn cần cấp Dƣới dạng ma trận C[n][m] C[i][j]=M[i][j]-D[i][j] lƣợng tài ngun dạng j mà tiến trình i cịn cần cấp www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 83 V BẾ TẮC Phòng tránh bế tắc – thuật tốn người cho vay Trạng thái an tồn: trạng thái mà từ có phƣơng án cấp phát cho bế tắc không xẩy Cách phịng tránh bế tắc: Khi tiến trình có yêu cầu cấp tài nguyên, hệ thống giả sử tài nguyên đƣợc cấp Cập nhật lại trạng thái & xác định xem trạng thái có an tồn? Nếu an toàn, tài nguyên đƣợc cấp thật Ngƣợc lại, tiến trình bị phong tỏa &chờ tới cấp phát an tồn www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 84 V BẾ TẮC Phịng tránh bế tắc – thuật tốn người cho vay Hệ thống có dạng tài nguyên X, Y, Z với số lƣợng ban đầu X=10, Y=5, Z=7 tiến trình P1, P2, P3, P4 có u cầu tài nguyên tối đa cho bảng Xét trạng thái sau hệ thống: Là trạng thái an tồn Có thể tìm cách cấp phát khơng P1 dẫn đến bế tắc, VD: P2, P4, P3, P1 P2 P3 P4 X Y Đã cấp Z 0 X Y Z P1 P2 2 P3 P4 2 Yêu cầu tối đa X X Y 3 Còn lại Z P1 P2 P3 P4 Y Z 0 Còn cần cấp P1 yêu cầu cấp phát tài nguyên dạng Y, tức yêu cầu = (0,3,0) Nếu yêu cầu thỏa mãn, hệ thống chuyển sang trạng thái: X Y Z P1 Trạng thái khơng an tồn X Y Z P2 2 P3 0 => yêu cầu (0,3,0) bị từ chối Còn lại P4 www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Cịn cần cấp Trang 85 V BẾ TẮC Phòng tránh bế tắc – thuật toán người cho vay Thuật tốn xác định trạng thái an tồn: Khai báo mảng W kích thước m mảng F kích thước n (F[i] chứa tình trạng tiến trình thứ i kết thúc hay chưa, W chứa lượng tài nguyên lại) Khởi tạo W=A F[i]=false (i=0,…,n-1) Tìm i cho: F[i] = false C[i][j] W[j] với j=0,…,m-1 Nếu khơng có i chuyển sang bước a) W = W + D[i] b) F[i] = true c) Quay lại bước If F[i] = true với i =0,…,n-1 trạng thái an tồn Else trạng thái khơng an tồn www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 86 V BẾ TẮC Phát bế tắc xử lý Hệ thống khơng thực biện pháp ngăn ngừa/phịng tránh => bế tắc xảy Hệ thống định kỳ kiểm tra để phát có tình trạng bế tắc hay khơng? Nếu có, hệ thống xử lý để khơi phục lại trạng thái khơng có bế tắc www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 87 V BẾ TẮC Phát bế tắc xử lý (tt) Phát bế tắc: Trƣờng hợp dạng tài nguyên có tài nguyên =>sử dụng đồ thị biểu diễn quan hệ chờ đợi lần tiến trình Xây dựng đồ thị cấp phát tài nguyên: Các nút tiến trình tài nguyên Tài nguyên đƣợc nối với tiến trình cung có hƣớng tài ngun đƣợc cấp cho tiến trình Tiến trình đƣợc nối với tài ngun cung có hƣớng tiến trình đƣợc cấp tài nguyên www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 88 V BẾ TẮC Phát bế tắc xử lý (tt) Phát bế tắc: Đồ thị chờ đợi: Đƣợc xây dựng từ đồ thị cấp phát tài nguyên cách bỏ nút tƣơng ứng với tài nguyên nhập cung qua nút bị bỏ Cho phép phát tình trạng tiến trình chờ đợi vòng tròn điều kiện đủ để sinh bế tắc Sử dụng thuật tốn phát chu trình đồ thị có hƣớng để phát bế tắc đồ thị chờ đợi www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 89 V BẾ TẮC Phát bế tắc xử lý (tt) Thời điểm phát bế tắc: Bế tắc xuất sau tiến trình u cầu tài ngun khơng đƣợc thỏa mãn => Chạy thuật tốn phát bế tắc có yêu cầu cấp phát tài nguyên không đƣợc thỏa mãn => Cho phép phát bế tắc vừa xẩy Chạy thƣờng xuyên làm giảm hiệu hệ thống => Giảm tần suất chạy thuật toán phát bế tắc: Sau chu kỳ từ vài chục phút tới vài Khi có số dấu hiệu nhƣ hiệu suất sử dụng CPU giảm xuống dƣới ngƣỡng www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 90 V BẾ TẮC Phát bế tắc xử lý (tt) Xử lý bị bế tắc: Kết thúc tất tiến trình bị bế tắc Kết thúc lần lƣợt tiến trình bị bế tắc đến hết bế tắc: Khơi phục tiến trình thời điểm trƣớc bị bế tắc sau cho tiến trình thực lại từ điểm này: HDH phải chạy lại thuật toán phát bế tắc sau kết thúc tiến trình HDH chọn thứ tự kết thúc tiến trình dựa tiêu chí Địi hỏi HDH lƣu trữ trạng thái để thực quay lui khơi phục điểm kiểm tra trƣớc Khi chạy lại, tiến trình lại rơi vào bế tắc tiếp Lần lƣợt thu hồi lại tài nguyên từ tiến trình bế tắc hết bế tắc www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 91 V BẾ TẮC Ngăn ngừa bế tắc cho toán triết gia ăn cơm Đặt hai thao tác lấy đũa triết gia vào đoạn nguy hiểm để đảm bảo triết gia lấy đƣợc hai đũa lúc Quy ƣớc bất đối xứng thứ tự lấy đũa: ví dụ ngƣời có số thứ tự chẵn lấy đũa trái trƣớc đũa phải, ngƣời có số thứ tự lẻ lấy đũa phải trƣớc đũa trái Tại thời điểm cho tối đa bốn ngƣời ngồi vào bàn: Sử dụng thêm cờ hiệu table có giá trị khởi tạo Triết gia phải gọi thao tác wait(table) trƣớc ngồi vào bàn lấy đũa www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 92 V BẾ TẮC Ngăn ngừa bế tắc cho toán triết gia ăn cơm semaphore chopstick[5] = {1,1,1,1,1,1}; semaphore table = 4; void Philosopher(int i){ //tiến trình P(i) for(;;){ //lặp vơ hạn wait(table); wait(chopstick[i]); //lấy đũa bên trái wait(chopstick[(i+1)%5]); //lấy đũa bên phải signal(chopstick[(i+1)%5]); signal(chopstick[i]); signal(table); } } void main(){ StartProcess(Philosopher(1)); StartProcess(Philosopher (5)); } www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MƠN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 93 ... gọi hệ thống exit() Bị kết thúc: Bị tiến trình cha kết thúc Do lỗi Yêu cầu nhiều nhớ so với số lƣơng hệ thống cung cấp Thực lâu thời gian giới hạn Do quản trị hệ thống hệ điều hành. .. Điều độ tiến trình điều độ dịng: Hệ thống trƣớc kia: tiến trình đơn vị thực => điều độ thực với tiến trình Hệ thống hỗ trợ dòng: dòng mức nhân đơn vị HDH cấp CPU => Sử dụng thuật ngữ điều. .. rãi điều độ dịng www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1 Trang 29 III ĐIỀU ĐỘ TIẾN TRÌNH Các dạng điều độ Điều độ dài hạn ngắn hạn Điều