Bài giảng Hệ điều hành: Chương 5.1 - ĐH Công nghệ thông tin

20 76 0
Bài giảng Hệ điều hành: Chương 5.1 - ĐH Công nghệ thông tin

Đ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

Mục tiêu của bài giảng chương 5 giúp các bạn hiểu được vấn đề tranh chấp giữa các tiến trình trong hệ điều hành, biết được các giải pháp để giải quyết tranh chấp, hiểu được các vấn đề trong giải quyết tranh chấp, biết được các yêu cầu của các giải pháp trong việc giải quyết tranh chấp và phân nhóm các giải pháp.

HỆ ĐIỀU HÀNH Chương – Đồng (1) 23/03/2017 1/17/2018 Copyrights 2017 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 Scheduling, HRRN, MQ, MFQ 1/17/2018 Copyrights 2017 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 hoàn thành trung bình vẽ giản đồ Gaint 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương  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 1/17/2018 Copyrights 2017 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 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 1/17/2018 Copyrights 2017 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 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved L R Bài tố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 Buffer (N) 1/17/2018 C Copyrights 2017 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; 1/17/2018 Copyrights 2017 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 1/17/2018 Copyrights 2017 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, quantum time = chu kỳ lệnh       1/17/2018 0:producer 1:producer 2:consumer 3:consumer 4:producer 5:consumer register1 := count register1 := register1 + register2 := count register2 := register2 – count := register1 count := register2 Copyrights 2017 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 xen kẽ  Giả sử count Chuỗi thực thi xảy ra, quantum 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 (atomic), nghĩa thực lệnh đơn, không bị ngắt nửa chừng 1/17/2018 Copyrights 2017 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 chia sẻ Do đó, cần có chế đồng hoạt động process 1/17/2018 Copyrights 2017 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) 1/17/2018 Copyrights 2017 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 thời thực thi lệnh vùng tranh chấp 1/17/2018 Copyrights 2017 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 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) 1/17/2018 Copyrights 2017 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 1/17/2018 Copyrights 2017 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 1/17/2018 Copyrights 2017 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); 1/17/2018 Copyrights 2017 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 19 THẢO LUẬN 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved 20 ... Scheduling, HRRN, MQ, MFQ 1/17/2018 Copyrights 2017 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... trung bình vẽ giản đồ Gaint 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương  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... Để trì sự quán 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 1/17/2018 Copyrights 2017 CE-UIT All Rights Reserved L R Bài tốn Producer - Consumer  P khơng

Ngày đăng: 30/01/2020, 00:49

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