Giáo an Bài giảng: Công nghệ thông tin về hệ điều hành Chương 3: Đồng bộ tiến trình

47 943 0
Giáo an Bài giảng: Công nghệ thông tin về hệ điều hành Chương 3: Đồng bộ tiến trình

Đ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

Đồng tiến trình Nội dung  Nhu cầu thơng tin tiến trình  Tranh đoạt điều khiển miền găng  Các giải pháp đồng PTIT, 2012 Operating systems Nhu cầu thông tin tiến trình Trong hệ thống, tiến trình có nhu cầu liên lạc với để:  Chia sẻ thông tin  Phối hợp thực công việc PTIT, 2012 Operating systems Mục tiêu đồng  Đảm bảo độc quyền truy xuất  Đảm bảo chế phối hợp tiến trình PTIT, 2012 Operating systems Bài tốn Hai tiến trình P1 P2 truy xuất liệu chung tài khoản ngân hàng: if (So_du > Tien_rut) So_du = So_du – Tien_rut else Access denied! PTIT, 2012 Operating systems Bài toán  P1  P2 if (So_du > Tien_rut) if (So_du > Tien_rut) So_du = So_du – Tien_rut So_du = So_du – Tien_rut else Access denied! PTIT, 2012 else Access denied! Operating systems Bài toán PTIT, 2012 Operating systems Bài toán  Process A Next_free_slot = Put file in slot7 Wait the print job  Process B Next_free_slot = Put file in slot7 Wait for the print job(for ever!!!) PTIT, 2012 Operating systems Tranh đọat điều khiển (race condition) PTIT, 2012 Operating systems Miền găng  Race condition (tương tranh): nhiều tiến trình thực thi mà kết phụ thuộc vào thứ tự thực thi tiến trình  Miền găng (critical section): đoạn chương trình có khả gây lỗi truy xuất tài nguyên chung PTIT, 2012 Operating systems 10 Xây dựng monitor monitor philosopher{ enum (thinking, hungry, eating} state[5]; condition self[5]; void init(); void test(int i); void pickup( int i); void putdown (int i); } PTIT, 2012 Operating systems 33 Khởi tạo monitor  Tất triết gia suy nghĩ… void init (){ for(int i=0; i < 5; i++) state[i] = thinking; } PTIT, 2012 Operating systems 34 Kiểm tra điều kiện trước ăn Nếu TGi đói hai TG bên cạnh khơng ăn TGi ăn void test (int i) { if ((state[i] == hungry) && state[(i + 4)%5] != eating) && state[(i + 1)%5] != eating) self[i].signal(); //Đánh thức TGi state[i] = eating; }  PTIT, 2012 Operating systems 35 Lấy nĩa void pickup(int i) { state[i] = hungry; test(i); if (state[i] != eating) self[i].wait(); //TGi chờ đến lượt } PTIT, 2012 Operating systems 36 Trả nĩa void putdown(int i){ state[i] = thinking; test((i + 4) % 5); test((i + 1) % 5); } PTIT, 2012 Operating systems 37 Cài đặt tiến trình Philosophers pp; Tiến trình i: while(1) { Noncritical-section(); pp.pickup(i); eat(); pp.putdown(i); Noncritical-section(); } PTIT, 2012 Operating systems 38 Một số tập đồng hóa Một biến X chia sẻ hai tiến trình thực đoạn code sau : X = X +1; if ( X == 20) X = 0; while ( TRUE ); Bắt đầu với giá trị X = 0, chứng tỏ giá trị X vượt 20 Dùng semaphore để bảo đảm X không vượt 20 ? PTIT, 2012 Operating systems 39 Một số tập đồng hóa Xét hai tiến trình: P1 {A1; A2} P2 {B1; B2} Dùng semaphore để đồng cho A1 B1 hoàn tất trước A2 hay B2 bắt đầu PTIT, 2012 Operating systems 40 Một số tập đồng hóa P1: w = x1 * x2 P2: v = x3 * x4 Dùng Semaphore để đồng tiến trình bên để kết tốn xác P3: y = v * x5 P4: z = v * x6 P5: y = w * y P6: z = w * z P7: ans = y + z PTIT, 2012 Operating systems 41 Bài tập Xét giải pháp đồng hoá sau : while (TRUE) { int j = 1-i; flag[i]= TRUE; turn = i; while (turn == j && flag[j]==TRUE); critical-section (); flag[i] = FALSE; Noncritical-section (); } Đây có phải giải pháp bảo đảm độc quyền truy xuất không ? PTIT, 2012 Operating systems 42 Bài tập Giả sử máy tính khơng có lệnh TSL, có lệnh Swap có khả hốn đổi nội dung hai từ nhớ thao tác phân chia : void Swap(int a, int b){ int temp; temp = a; a = b; b = temp; } Sử dụng lệnh tổ chức truy xuất độc quyền không ? PTIT, 2012 Operating systems 43 Bài tập  Nếu thuật tốn Petterson khơng dùng biến turn có đảm bảo điều kiện miền găng không? PTIT, 2012 Operating systems 44 Bài tập Xét hai tiến trình sau : process A { while (TRUE) na = na +1; } process B { while (TRUE) nb = nb +1; } Đồng hoá xử lý hai tiến trình trên, sử dụng hai semaphore tổng quát, cho thời điểm có nb < na

Ngày đăng: 22/04/2014, 14:51

Từ khóa liên quan

Mục lục

  • Đồng bộ tiến trình

  • Nội dung

  • Nhu cầu thông tin giữa các tiến trình

  • Mục tiêu đồng bộ

  • Bài toán 1

  • Slide 6

  • Bài toán 2

  • Slide 8

  • Tranh đọat điều khiển (race condition)

  • Miền găng

  • Nguyên tắc

  • Các giải pháp đồng bộ

  • Giải pháp “busy and waiting”- Thực hiện bằng phần mềm

  • Slide 14

  • Slide 15

  • Giải pháp “busy and waiting”- Thực hiện bằng phần cứng

  • Slide 17

  • Giải pháp “sleep and wakeup”

  • Slide 19

  • Slide 20

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

Tài liệu liên quan