intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình hình thành tập hợp các tiểu trình và tiến trình hoạt động của hệ thống mutiprocessor p6

Chia sẻ: Safs Gdfghdf | Ngày: | Loại File: PDF | Số trang:5

70
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Xem có tiến trình nào đang đợi trong hàng đợi hay không, nếu có thì đưa tiến trình trong hàng đợi vào đoạn găng. Khi tiến trình gọi Up thì hệ thống sẽ thực hiện như sau: S:= S + 1, nếu S,Sau khi gởi đi thông điệp Emtry, tiến trình consumer sẽ chờ để nhận thông điệp chứa dữ liệu từ tiến trình producer.

Chủ đề:
Lưu

Nội dung Text: Giáo trình hình thành tập hợp các tiểu trình và tiến trình hoạt động của hệ thống mutiprocessor p6

  1. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k xem có tiến trình nào đang đợi trong hàng đợi hay không, nếu có thì đưa tiến trình trong hàng đợi vào đoạn găng. Khi tiến trình gọi Up thì hệ thống sẽ thực hiện như sau: S:= S + 1, nếu S
  2. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k ParBegin P(1); P(2); ParEnd; END. {-------------------------------------------} Ở đây chúng ta cần lưu ý rằng: Down và Up là các thủ tục của hệ điều hành, nên hệ điều hành đã cài đặt cơ chế độc quyền cho nó, tức là các lệnh bên trong nó không thể tách rời nhau. Nếu điều này không được thực hiện thì sơ đồ này trở nên vô nghĩa. Hai thủ tục Down(S) và Up(S) mà chúng tôi đưa ra ở trên chỉ để minh họa cho nguyên lý hoạt động của Down và Up. Sử dụng semaphore (sự đánh tín hiệu bằng cờ) để điều độ tiến trình, mang lại những thuận lợi sau:  Mỗi tiến trình chỉ kiểm tra quyền vào đoạn găng một lần, khi chờ nó không làm gì cả, tiến trình ra khỏi đoạn găng phải đánh thức nó.  Không xuất hiện hiện tượng chờ đợi tích cực, nên khai thác tối đa thời gian xử lý của processor.  Nhờ cơ chế hàng đợi mà hệ điều hành có thể thực hiện gán độ ưu tiên cho các tiến trình khi chúng ở trong hành đợi.  Trị tuyệt đối của S cho biết số lượng các tiến trình đang đợi trên F(S). Nên nhớ rằng, Down và Up là các thủ tục của hệ điều hành nên sơ đồ điều độ sẽ bị thay đổi khi thay đổi hệ điều hành. Đây là một trở ngại của việc sử dụng semaphore (sự đánh tín hiệu bằng cờ) để tổ chức điều độ tiến trình. Các ví dụ sau đây thay cho sự giải thích về sơ đồ điều độ ở trên: Ví dụ 1: Sự thực hiện của hai tiến trình P1 và P2 trong sơ đồ điều độ trên P thực Down/Up S Trạng thái của P1/P2 hiện 1 Down(S) 0 P1 hoạt động 1. P1 2. P2 Down(S) -1 P2 chờ 3. P1 Up(S) 0 P2 hoạt động 4. P1 Down(S) -1 P1 chờ Down(S) 0 P1 hoạt động 5. P2 Ví dụ 2: Nếu trong hệ thống có 6 tiến trình hoạt động đồng thời, cùng sử dụng tài nguyên găng, tài nguyên găng này chỉ cho phép một tiến trình truy xuất
  3. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k đến nó tại một thời điểm. Tức là hệ điều hành phải tổ chức truy xuất độc quyền trên tài nguyên găng này. Thứ tự yêu cầu sử dụng tài nguyên găng của các tiến trình, cùng với thời gian mà tiến trình cần processor khi nó ở trong đoạn găng (cần tài nguyên găng) và độ ưu tiên của các tiến trình, được mô tả như sau:  Có 6 tiến trình yêu cầu sử dụng tài nguyên găng tương ứng với S lần lượt là: A B C D E F  Độ ưu tiên của các tiến trình là (5 là độ ưu tiên cao nhất): 1 1 2 4 2 5  Thời gian các tiến trình cần sử dụng tài nguyên găng là: 4 2 2 2 1 1 Nếu dùng sơ đồ điều độ semaphore (sự đánh tín hiệu bằng cờ) ở trên để tổ chức điều độ cho 6 tiến trình này thì ta có được bảng mô tả sự thực hiện của các tiến trình A, B, C, D, E, F như sau: T Down/ Tiến Tiến trình Các tiến trình S Up trình hoạt động trong hàng thực hiện đợi 0 - - - - 1 1 Down A 0 A - 2 Down B -1 A B 3 Down C -2 A C B 4 Down D -3 A D C B 5 Up A -2 D C B 6 Down E -3 D C E B 7 Up D -2 C E B 8 Down F -3 C F E B 9 Up C -2 F E B 10 Up F -1 E B 11 Up E 0 B - 12 Up B - - 1 Bảng trên lưu ý với chúng ta hai điều. Thứ nhất, trị tuyệt đối của S cho biết số lượng các tiến trình trong hành đợi F(S). Thứ hai, tiến trình chưa được vào đoạn găng thì được đưa vào hàng đợi và tiến trình ra khỏi đoạn găng sẽ đánh thức tiến trình có độ ưu tiên cao nhất trong hành đợi để đưa nó vào đoạn găng. Tiến trình được đưa vào hàng đợi sau nhưng có độ ưu tiên cao hơn sẽ được đưa vào đoạn găng trước các tiến trình được đưa vào hàng đợi trước nó.
  4. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k II.3.3.b. Giải pháp dùng Monitors Giải pháp này được Hoar đề xuất năm 1974 sau đó vào nă m 1975 được Brinch & Hansnen đề xuất lại. Monitor là cấu trúc phần mềm đặc biệt được cung cấp bởi ngôn ngữ lập trình, nó bao gồm các thủ tục, các biến và các cấu trúc dữ liệu được định nghĩa bởi Monitor. Monitor được định nghĩa trong các ngôn ngữ lập trình như pascal+, Modula–2, Modula-3. Monitor của Hoar có các tính chất sau đây: 1. Các biến và cấu trúc dữ liệu bên trong monitor chỉ có thể được thao tác bởi các thủ tục được định nghĩa bên trong monitor đó. 2. Một tiến trình muốn vào monitor phải gọi một thủ tục của monitor đó. 3. Tại một thời điểm, chỉ có một tiến trình duy nhất được hoạt động bên trong monitor. Các tiến trình khác đã gọi monitor phải hoãn lại để chờ monitor rảnh. Hai tính chất 1 và 2 tương tự như các tính chất của các đối tượng trong lập trình hướng đối tượng. Như vậy một hệ điều hành hoặc một ngôn ngữ lập trình hướng đối tượng có thể cài đặt monitor như là một đối tượng có các tính chất đặc biệt. Với tính chất thứ 3 monitor có khả năng thực hiện các cơ chế độc quyền, các biến trong monitor có thể được truy xuất chỉ bởi một tiến trình tại một thời điểm. Như vậy các cấu trúc dữ liệu dùng chung bởi các tiến trình có thể được bảo vệ bằng cách đặt chúng bên trong monitor. Nếu dữ liệu bên trong monitor là tài nguyên găng thì monitor cung cấp sự độc quyền trong việc truy xuất đến tài nguyên găng đó. Monitor cung cấp các công cụ đồng bộ hoá để người lập trình sử dụng trong các sơ đồ điều độ. Công cụ đồng bộ hoá được định nghĩa để sử dụng trong các sơ đồ điều độ như sau: Trong một monitor, có thể định nghĩa các biến điều kiện và hai thao tác kèm theo là Wait và Signal, chỉ có wait và signal được tác động đến các biến điều kiện.  Giả sử C là biến điều kiện được định nghĩa trong monitor.  Wait(c): khi một tiến trình gọi wait, thì wait sẽ chuyển tiến trình gọi sang trạng thái blocked, và đặt tiến trình này vào hàng đợi trên biến điều kiện c. Wait được cài đặt như sau: Procedure Wait(c); Begin Status(p) = blocked; Enter(p,f(c)); End;  Signal(c): khi một tiến trình gọi signal, thì signal sẽ kiểm tra trong hàng
  5. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k đợi của c có tiến trình nào hay không, nếu có thì tái kích hoạt tiến trình đó, và tiến trình gọi signal sẽ rời khỏi monitor. Signal được cài đặt như sau: Procedure Signal(c); Begin If f(c) Null Then Begin Exit(Q,f(c)); {Q là tiến trình chờ trên C} Status(Q) = ready; Enter(Q,ready-lits); end; End, Trình biên dịch chịu trách nhiệm thực hiện việc truy xuất độc quyền đến dữ liệu trong monitor. Để thực hiện điều này, hệ điều hành dùng một semaphore (sự đánh tín hiệu bằng cờ) nhị phân. Mỗi monitor có một hàng đợi toàn cục lưu các tiến trình đang chờ được vào monitor, ngoài ra mỗi biến điều kiện c cũng gắn với một hàng đợi F(c). Với mỗi nhóm tài nguyên găng, có thể định nghĩa một monitor trong đó đặc tả tất cả các thao tác trên tài nguyên này với một số điều kiện nào đó. Sau đây là cấu trúc một Monitor. Sau đây là cấu trúc của monitor: Monitor Condition ; {------------------------------------------------------} Procdure Action1(); {thao tác i} Begin ...... End; {---------------------------} Procedure Actionn(); {thao tác n} Begin ...... End; {---------------------------} End monitor; Mỗi tiến trình muốn sử dụng tài nguyên găng chỉ có thể thao tác thông qua các thủ tục bên trong monitor.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2