Bài giảng Hệ điều hành: Chương: 5.1 - ThS. Trần Thị Như Nguyệt

21 69 0
Bài giảng Hệ điều hành: Chương: 5.1 - ThS. Trần Thị Như Nguyệt

Đ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 5: Đồng bộ cung cấp cho người học các kiến thức: Giới thiệu về race condition, giới thiệu các giải pháp tổng quát để giải quyết tranh chấp,... Mời các bạn cùng tham khảo nội dung chi tiết.

Chương 5: Đồng - CuuDuongThanCong.com https://fb.com/tailieudientucntt Ô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 Scheduling, HRRN, MQ, MFQ CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng 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 hoàn thành trung bình vẽ giản đồ Gantt CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Mục tiêu  Hiểu vấn đề tranh chấp tiến trình 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 giải tranh chấp phân nhóm giải pháp CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Nội dung  Giới thiệu race condition  Giới thiệu giải pháp tổng quát để giải tranh chấp  Phân tích 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  Phân nhóm giải pháp CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Đặt vấn đề  Khảo sát process/thread thực thi đồng thời chia sẻ liệu (qua shared memory, file)  Nếu sự kiểm sốt truy cập liệu chia sẻ đưa đến trường hợp không quán liệ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 CuuDuongThanCong.com L R https://fb.com/tailieudientucntt Đồng 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 CuuDuongThanCong.com Buffer (N) C https://fb.com/tailieudientucntt Đồng Bounded buffer Xét trường hợp Bounded buffer:  Quá trình Producer item nextProduce; while(1){ while(count == BUFFER_SIZE); /*ko lam gi*/ buffer[in] = nextProducer; biến count được chia sẻ count++; giữa producer và consumer in = (in+1)%BUFFER_SIZE;  Quá trình Consumer item nextConsumer; while(1){ while(count == 0); /*ko lam gi*/ nextConsumer = buffer[out]; count ; out = (out+1)%BUFFER_SIZE; CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng 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) CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng 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, quantum time = chu kỳ lệnh T0: producer register1 := count {register1 = 5} T1: producer register1 := register1 + {register1 = 6} T2: consumer register2 := count {register2 = 5} T3: consumer register2 := register2 - {register2 = 4} T4: producer count := register1 {count = 6} T5: consumer count := register2 {count = 4} CuuDuongThanCong.com 10 https://fb.com/tailieudientucntt Đồng 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 quantum time = chu kỳ lệnh T0: producer register1 := count {register1 = 5} T1: producer register1 := register1 + {register1 = 6} T2: producer count := register1 {count = 6} T3: consumer register2 := count {register2 = 6} T4: consumer register2 := register2 - {register2 = 5} T5: consumer count := register2 {count = 5}  Cần phải có giải pháp để các lệnh count++, count phải là đơn nguyên (atomic), nghĩa là thực hiện một lệnh đơn, không bị ngắt nửa chừng CuuDuongThanCong.com 11 https://fb.com/tailieudientucntt Đồng Bounded buffer (tt)  Race condition: nhiều process truy xuất và thao tác đồng thời lên dữ liệu chia sẻ (như biến count) kết quả cuối cùng của việc truy xuất đồng thời này phụ thuộc thứ tự thực thi của các lệnh thao tác dữ liệu  Để dữ liệu chia sẻ được nhất quán, cần bảo đảm cho tại mỗi thời điểm chỉ có một process được thao tác lên dữ liệu chia sẻ Do đó, cần có chế đồng bộ hoạt động của các process này CuuDuongThanCong.com 12 https://fb.com/tailieudientucntt Đồng 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 critical section / exit section /* vào critical section */ /* truy xuất dữ liệu chia sẻ */ /* rời critical section */ remainder section /* làm những việc lại */ } 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) CuuDuongThanCong.com 13 https://fb.com/tailieudientucntt Đồng 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 là một process thực thi vùng tranh chấp, không có process nào khác đồng thời thực thi các lệnh vùng tranh chấp CuuDuongThanCong.com 14 https://fb.com/tailieudientucntt Đồng 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 ngăn cản các 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 nguyên (starvation) CuuDuongThanCong.com 15 https://fb.com/tailieudientucntt Đồng Yêu cầu lời giải cho CS Problem  Tính chất (2) Progress (2) Progress: Một tiến trình tạm dừng bên miền găng không ngăn cản các tiến trình khác vào miền găng Được sửa lại sau: Progress If no process is executing in its critical section and some processes wish to enter their critical sections, then only those processes that are not executing in their remainder sections can participate in deciding which will enter its critical section next, and this selection cannot be postponed indefinitely (Sách tham khảo trang 206)  khơng có process thực thi vùng tranh chấp có sớ process chờ đợi vào vùng tranh chấp thì: – Chỉ process không thực thi Remainder Section tham gia việc định process vào vùng tranh chấp – Và việc chọn lựa khơng trì hỗn vơ hạn CuuDuongThanCong.com 16 https://fb.com/tailieudientucntt Đồng 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 CuuDuongThanCong.com 17 https://fb.com/tailieudientucntt Đồng 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 CuuDuongThanCong.com 18 https://fb.com/tailieudientucntt Đồng 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); CuuDuongThanCong.com 19 https://fb.com/tailieudientucntt Đồng Tổng kết  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 CuuDuongThanCong.com 20 https://fb.com/tailieudientucntt Đồng Câu hỏi ôn tập CuuDuongThanCong.com 21 https://fb.com/tailieudientucntt Đồng ... 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 CuuDuongThanCong.com L R https://fb.com/tailieudientucntt Đồng Bài toán Producer - Consumer  P không... CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Mục tiêu  Hiểu vấn đề tranh chấp tiến trình 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...  Mô tả nêu ưu điểm, như c điểm giải thuật định thời? FCFS, SJF, SRTF, RR, Priority Scheduling, HRRN, MQ, MFQ CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng Bài tập chương  Sử dụng

Ngày đăng: 11/01/2020, 18:13

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