#Week07-Chapter5-1.Pptx

20 5 0
#Week07-Chapter5-1.Pptx

Đ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

#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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan