1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành: Chương 3.1 - Nguyễn Ngọc Duy

61 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Hệ điều hành: Chương 3.1 cung cấp cho người học những kiến thức như: Khái niệm về tiến trình (process); Tiểu trình (thread); Điều phối tiến trình. Mời các bạn cùng tham khảo!

Chương QUẢN LÝ TIẾN TRÌNH Nội dung chương 1 Khái niệm tiến trình (process) Tiểu trình (thread) Điều phối tiến trình Đồng tiến trình Tình trạng tắc nghẽn (deadlock) Khái niệm tiến trình (process)  Tiến trình chương trình xử lý  Mỗi tiến trình có không gian địa chỉ, trỏ lệnh, tập ghi stack riêng  Tiến trình cần đến số tài nguyên CPU, nhớ chính, tập tin thiết bị nhập/xuất  Hệ điều hành sử dụng điều phối (scheduler) để điều phối việc thực thi tiến trình  Trong hệ thống có tiến trình hệ điều hành tiến trình người dùng  Một tiến trình bao gồm Text section (program code), Data section (chứa global variables) Khái niệm tiến trình (process)  Vùng code: chứa danh sách mã lệnh CT  Vùng static data: chứa biến liệu khai báo tường minh CT  Vùng dynamic data: chứa vùng nhớ liệu cấp phát độ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 Tiến trình nhớ Khái niệm tiến trình (process) Các bước nạp chương trình vào nhớ Khái niệm tiến trình (process) Các bước hệ điều hành khởi tạo tiến trình  Cấp phát định danh (process number hay process identifier, pid) cho trình  Cấp phát khơng gian nhớ để nạp q trình  Khơi tạo khởi liệu Process Control Block (PCB) cho trình PCB nơi hệ điều hành lưu thơng tin q trình  Thiết lập mối liên hệ cần thiết (vd: PCB vào hàng đợi định thời,…) Khái niệm tiến trình (process)  new: tiến trình vừa tạo  ready: tiến trình có đủ tài ngun, cịn cần CPU  running: lệnh tiến trình thực thi  waiting: blocked, tiến trình đợi I/O hồn tất, tín hiệu  terminated: tiến trình kết thúc Khái niệm tiến trình (process) Chuyển đổi trạng thái tiến trình new admit dispatch ready exit terminated running interrupt I/O or event wait I/O or event completion waiting Khái niệm tiến trình (process)  Mỗi tiến trình hệ thống cấp phát Process Control Block (PCB)  PCB cấu trúc liệu quan trọng hệ điều hành Khái niệm tiến trình (process) Chuyển ngữ cảnh (Context switch)  Ngữ cảnh (context) tiến trình trạng thái tiến trình  Ngữ cảnh tiến trình biểu diễn PCB  Chuyển ngữ cảnh (context switch) cơng việc giao CPU cho tiến trình khác Khi cần:  Lưu ngữ cảnh tiến trình cũ vào PCB  Nạp ngữ cảnh từ PCB tiến trình để tiến trình thực thi 10 Điều phối tiến trình Các giải thuật điều phối tiến trình Shortest Job First (SJF) Process Thời điểm đến Burst time (ms) P1 P2 P3 P4  Giản đồ Gantt định thời theo SJF P1 P3 P2 P4 12 16  Thời gian đợi trung bình = (0 + + + 7)/4 = 47 Điều phối tiến trình Các giải thuật điều phối tiến trình Shortest Job First (SJF)  Tương ứng với process cần có độ dài CPU burst  Hàm lựa chọn: chọn process có độ dài CPU burst nhỏ  Chứng minh được: SJF tối ưu việc giảm thời gian đợi trung bình  Nhược điểm: Cần phải ước lượng thời gian cần CPU process 48 Điều phối tiến trình Các giải thuật điều phối tiến trình Shortest Remaining Time First (SRTF) Process Thời điểm đến Burst time (ms) P1 P2 P3 P4  Giản đồ Gantt định thời theo SRTF P1 P2 P3 P2 P4 P1 11 16  Thời gian đợi trung bình = (9 + + + 2)/4 =  Tốt giải thuật nonpreemptive SJF 49 Điều phối tiến trình Các giải thuật điều phối tiến trình Shortest Remaining Time First (SRTF)  Tránh trường hợp độc chiếm CPU process có thời gian thực thi dài  Cần phải quản lý thời gian thực thi lại process  Có thời gian quay vịng tốt SJF  Process có thời gian thực thi ngắn có độ ưu tiên cao 50 Điều phối tiến trình Các giải thuật điều phối tiến trình Priority Scheduling  Mỗi process gán độ ưu tiên  CPU cấp cho process có độ ưu tiên cao  Định thời sử dụng độ ưu tiên có thể: Preemptive Nonpreemptive 51 Điều phối tiến trình Các giải thuật điều phối tiến trình Priority Scheduling  SJF giải thuật định thời sử dụng độ ưu tiên với độ ưu tiên thời gian sử dụng CPU dự-đoán  Gán độ ưu tiên dựa vào:  Yêu cầu nhớ  Số lượng file mở  Tỉ lệ thời gian dùng cho I/O thời gian sử dụng CPU  Vấn đề: trì hỗn vơ hạn định – process có độ ưu tiên thấp không thực thi  Giải pháp: aging – độ ưu tiên process tăng theo thời gian 52 Điều phối tiến trình Các giải thuật điều phối tiến trình Round Robin (RR) Chế độ định: preemptive Khoảng thời gian tối đa cho phép (thường 10 - 100 ms) đảm bảo việc sử dụng timer interrupt Process chạy hết thời gian chuyển cuối hàng đợi ready 53 Điều phối tiến trình Các giải thuật điều phối tiến trình Round Robin (RR) Process Burst time (ms) P1 53 P2 17 P3 68 P4 24  Thời gian lượng định = 20 ms  Giản đồ Gantt: P1 P2 20 37 P3 P4 57 P1 77 P3 97 117 P4 P1 P3 P3 121 134 154 162 Thường có thời gian quay vịng cao SJF, lại có thời gian đáp ứng tốt 54 Điều phối tiến trình Các giải thuật điều phối tiến trình Lượng định thời gian (time quantum) cho Round Robin 55 Điều phối tiến trình Các giải thuật điều phối tiến trình Round Robin  Khi thực chuyển process OS sử dụng CPU process người dùng (OS overhead):  Dừng thực thi, lưu tất thông tin, nạp thông tin process thực thi  Hiệu tùy thuộc vào kích thước thời gian lượng định (còn gọi time slice) Hàm phụ thuộc khơng đơn giản  Time slice ngắn đáp ứng nhanh  Có nhiều chuyển ngữ cảnh: Phí tổn cao  Time slice dài throughput tốt (do giảm phí tổn OS overhead) thời gian đáp ứng lớn  Nếu time slice lớn, RR trở thành FCFS 56 Điều phối tiến trình Các giải thuật điều phối tiến trình Round Robin  Quantum time thời gian chuyển process:  Nếu quantum time = 20 ms thời gian chuyển process = ms, phí tổn OS overhead chiếm 5/25 = 20%  Nếu quantum = 500 ms, phí tổn cịn  1%  Nếu có nhiều người sử dụng hệ thống thuộc loại interactive thấy đáp ứng chậm  Tùy tập công việc mà chọn quantum time phù hợp  Time slice nên lớn tương quan so sánh với thời gian chuyển process  Ví dụ với 4.3 BSD UNIX, time slice giây 57 Điều phối tiến trình Các giải thuật điều phối tiến trình Round Robin  Nếu có n process hàng đợi ready, quantum time q, process lấy 1/n thời gian CPU theo khối có kích thước lớn q  Sẽ khơng có process chờ lâu (n - 1)q đơn vị thời gian  RR sử dụng giả thiết ngầm tất process có tầm quan trọng ngang  RR không phù hợp với hệ thống xác định độ ưu tiên khác cho process  Các process dạng CPU-bound “ưu tiên” 58 Điều phối tiến trình Các giải thuật điều phối tiến trình Thuật tốn nhiều mức độ ưu tiên  Danh sách sẵn sàng chia thành nhiều danh sách  Mỗi danh sách gồm tiến trình có độ ưu tiên áp dụng giải thuật điều phối riêng Điều phối tiến trình Các giải thuật điều phối tiến trình Điều phối theo nhiều mức ưu tiên xoay vòng (Multilevel Feedback) Điều phối tiến trình Các giải thuật điều phối tiến trình Chiến lược điều phối xổ số (Lottery)  Mỗi tiến trình cấp “vé số”  HĐH chọn vé “trúng giải”, tiến trình sỡ hữu vé nhận CPU  Là giải thuật độc quyền  Đơn giản, chi phí thấp, bảo đảm tính cơng cho tiến trình ... (process) Thêm medium-term scheduling  Đơi hệ điều hành (như time-sharing system) có thêm medium-term scheduling để điều chỉnh mức độ multiprogramming hệ thống  Medium-term scheduler  Chuyển... nhớ chính, tập tin thiết bị nhập/xuất  Hệ điều hành sử dụng điều phối (scheduler) để điều phối việc thực thi tiến trình  Trong hệ thống có tiến trình hệ điều hành tiến trình người dùng  Một... Một số hệ thống multithreading (multitasking)  Windows  Solaris  Linux 26 Tiểu trình (thread)  Mộ số mơ hình thực thread  Mơ hình many-to-one  Mơ hình one-to-one  Mơ hình many-to-many 27

Ngày đăng: 28/01/2022, 09:37

Xem thêm: