1. Trang chủ
  2. » Giáo án - Bài giảng

#Week07-Chapter5-1.Pptx

20 5 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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 323,3 KB

Nội dung

#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx#Week07-Chapter5-1.Pptx

HỆ ĐIỀU HÀNH Chương – Đồng (1) 02/25/2023 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Ôn tập chương  Tại phải định thời? Nêu định thời mô t ả chúng?  Các tiêu chuẩn định thời CPU?  Có giải thuật định thời? Kể tên?  Mô tả nêu ưu điểm, nhược điểm giải thu ật định thời? FCFS, SJF, SRTF, RR, Priority Schedu ling, HRRN, MQ, MFQ 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Bài tập chương  Sử dụng giải thuật FCFS, SJF, SRTF, Priority -Pre, RR (10) đ ể tính giá trị thời gian đợi, thời gian đáp ứng thời gian hồn thành trung bình vẽ giản đồ Gaint 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Mục tiêu chương  Hiểu vấn đề tranh chấp tiến trình tron g hệ điều hành  Biết giải pháp để giải tranh chấp  Hiểu vấn đề giải tranh chấp  Biết yêu cầu giải pháp việc g iải tranh chấp phân nhóm giải pháp 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Nội dung chương  Giới thiệu race condition  Giới thiệu giải pháp tổng quát để giải tran h chấp  Phân tích chi tiết vấn đề việc giải quyế t tranh chấp  Yêu cầu giải pháp việc giải tranh ch ấp  Phân nhóm giải pháp 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Vấn đề cần đồng  Khảo sát process/thread thực thi đồng thời chia sẻ liệu (qua shared memory, file)  Nếu khơng có sự kiểm sốt truy cập liệu chia sẻ đưa đến trường hợp không quán l iệu (data inconsistency)  Để trì sự qn liệu, hệ thớng cần có chế bảo đảm sự thực thi có trật tự process đồng thời Q p 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved R L Bài toán Producer - Consumer  P không ghi liệu vào buffer đầy  C không đọc liệu từ buffer trống  P C không thao tác buffer lúc Giới hạn, không giới hạn ??? P 02/25/2023 Buffer (N) C Copyrights 2020 CE-UIT All Rights Reserved Bounded buffer  Quá trình Producer item nextProduce; while(1){ while(count == BUFFER_SIZE); /*ko lam gi*/ buffer[in] = nextProducer; count++; in = (in+1)%BUFFER_SIZE;  Quá trình Consumer biến count chia sẻ producer consumer item nextConsumer; while(1){ while(count == 0); /*ko lam gi*/ nextConsumer = buffer[out]; count ; out = (out+1)%BUFFER_SIZE; 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Bounded buffer (tt)  Các lệnh tăng, giảm biến count tương đương ngôn ngữ máy là: Producer (count++)  register1 = count  register1 = register1 +  count = register1 Consumer (count )  register2 = count  register2 = register2 -  count = register2 Trong đó, register ghi CPU 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved Bounded buffer (tt)  Mã máy lệnh tăng giảm biến count bị thực thi xen kẽ  Giả sử count Chuỗi thực thi xảy ra, q uantum time = chu kỳ lệnh       02/25/2023 0:producer register1 := count 1:producer register1 := register1 + 2:consumer register2 := count 3:consumer register2 := register2 – 4:producer count := register1 5:consumer count := register2 Copyrights 2020 CE-UIT All Rights Reserved {register1 = 5} {register1 = 6} {register2 = 5} {register2 = 4} {count = 6} {count = 4} 10 Bounded buffer (tt)  Mã máy lệnh tăng giảm biến count bị thực thi xe n kẽ  Giả sử count Chuỗi thực thi xảy ra, quant um time = chu kỳ lệnh 0:producer register1 := count {register1 = 5} 1:producer register1 := register1 + {register1 = 6} 2:producer count := register1 {count = 6} 3:consumer register2 := count {register2 = 6} 4:consumer register2 := register2 – {register2 = 5} 5:consumer count := register2 {count = 5}  Cần phải có giải pháp để lệnh count++, count phải đơn nguyên (a tomic), nghĩa thực lệnh đơn, không bị ngắt nửa chừng       02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 11 Bounded buffer (tt)  Race condition: nhiều process truy xuất thao tác đồng thời lên liệu chia sẻ (như biến count)  Kết cuối việc truy xuất đồng thời phụ thuộc thứ tự thực thi lệnh thao tác liệu  Để liệu chia sẻ quán, cần bảo đảm cho thời điểm chỉ có process thao tác lên liệu c hia sẻ Do đó, cần có chế đồng hoạt động proc ess 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 12 Vấn đề Critical Section  Giả sử có n process truy xuất đồng thời liệu chia sẻ  Cấu trúc process Pi có đoạn code sau: Do { entry section /* vào critical section */ critical section /* truy xuất dữ liệu chia xẻ */ exit section /* rời critical section */ remainder section /* làm những việc khác */ } While (1)  Trong process có đoạn code có chứa thao tác lên liệu chia sẻ Đoạn code gọi vùng tranh ch ấp (critical section, CS) 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 13 Vấn đề Critical Section (tt)  Vấn đề Critical Section: phải bảo đảm sự loại trừ tương hỗ (mutual exclusion, mutex), tức process thực thi vùng tranh chấp, khơng có process khác đồng t hời thực thi lệnh vùng tranh chấp 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 14 Yêu cầu lời giải cho CS Problem  Lời giải phải thỏa ba tính chất:  (1) Loại trừ tương hỗ (Mutual exclusion): Khi process P th ực thi vùng tranh chấp (CS) khơng có process Q khác thực thi CS Q  (2) Progress: Một tiến trình tạm dừng bên ngồi miền găng khơng đ ược ngăn cản tiến trình khác vào miền găng  (3) Chờ đợi giới hạn (Bounded waiting): Mỗi process chỉ phải chờ đ ể vào vùng tranh chấp khoảng thời gian có hạn định Khơng xảy tình trạng đói tài ngun (starvation) 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 15 Phân loại giải pháp  Nhóm giải pháp Busy Waiting  Sử dụng biến cờ hiệu  Sử dụng việc kiểm tra luân phiên  Giải pháp Peterson  Cấm ngắt  Chỉ thị TSL  Nhóm giải pháp Sleep & Wakeup  Semaphore  Monitor  Message 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 16 Các giải pháp “Busy waiting”  Tiếp tục tiêu thụ CPU chờ đợi vào miền găng  Khơng địi hỏi sự trợ giúp Hệ điều hành While (chưa có quyền) do_nothing() ; CS; Từ bỏ quyền sử dụng CS 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 17 Các giải pháp “Sleep & Wake up”  Từ bỏ CPU chưa vào miền găng  Cần Hệ điều hành hỗ trợ if (chưa có quyền) Sleep() ; CS; Wakeup (somebody); 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 18 Tóm tắt lại nội dung buổi học  Race condition  Các giải pháp tổng quát để giải tranh chấp  Các chi tiết vấn đề việc giải tranh chấp  Yêu cầu giải pháp việc giải tranh chấp  Các nhóm giải pháp 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 19 THẢO LUẬN 02/25/2023 Copyrights 2020 CE-UIT All Rights Reserved 20

Ngày đăng: 25/02/2023, 17:59