hệ điều hành trần thị như nguyệt 5 1 đồng bộ 1 sinhvienzone com

21 89 0
hệ điều hành trần thị như nguyệt 5 1 đồng bộ 1 sinhvienzone com

Đ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

Chương 5: Đồng - SinhVienZone.com https://fb.com/sinhvienzonevn Ô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 SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com L R https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com Buffer (N) C https://fb.com/sinhvienzonevn Đồ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; SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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) SinhVienZone.com https://fb.com/sinhvienzonevn Đồ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} SinhVienZone.com 10 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 11 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 12 https://fb.com/sinhvienzonevn Đồ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) SinhVienZone.com 13 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 14 https://fb.com/sinhvienzonevn Đồ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) SinhVienZone.com 15 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 16 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 17 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 18 https://fb.com/sinhvienzonevn Đồ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); SinhVienZone.com 19 https://fb.com/sinhvienzonevn Đồ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 SinhVienZone.com 20 https://fb.com/sinhvienzonevn Đồng Câu hỏi ôn tập SinhVienZone.com 21 https://fb.com/sinhvienzonevn Đồng ... giải tranh chấp  Các nhóm giải pháp SinhVienZone. com 20 https://fb .com/ sinhvienzonevn Đồng Câu hỏi ôn tập SinhVienZone. com 21 https://fb .com/ sinhvienzonevn Đồng ... 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); SinhVienZone. com 19 https://fb .com/ sinhvienzonevn Đồng Tổng kết  Race condition  Các... 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 SinhVienZone. com 18 https://fb .com/ sinhvienzonevn Đồng Các giải pháp “Sleep & Wake

Ngày đăng: 28/01/2020, 22:04

Từ khóa liên quan

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

Tài liệu liên quan