Giáo trình hướng dẫn phân tích tập hợp các tiến trình hoạt động của hệ thống singleprocessor p8
lượt xem 4
download
Giải pháp dùng Message Với giải pháp này chương trình dùng thông điệp empty. Empty hàm ý có một chỗ trống. Buffer. Khi khởi tạo tiến trình Consumer gởi ngay N thông điệp empty đến tiến trình Producer. Tiến trình Producer tạo ra một dữ liệu mới và chờ đến khi nhận được một thông điệp empty từ consumer thì gởi ngược lại cho Consumer một thông điệp có chứa dữ liệu mà nó tạo ra.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình hướng dẫn phân tích tập hợp các tiến trình hoạt động của hệ thống singleprocessor p8
- 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 Producer/Consumer.Remove; ; Until .F. End; Parend END. {--------------------------------------} II.3.4.3. Giải pháp dùng Message Với giải pháp này chương trình dùng thông điệp empty. Empty hàm ý có một chỗ trống. Buffer. Khi khởi tạo tiến trình Consumer gởi ngay N thông điệp empty đến tiến trình Producer. Tiến trình Producer tạo ra một dữ liệu mới và chờ đến khi nhận được một thông điệp empty từ consumer thì gởi ngược lại cho Consumer một thông điệp có chứa dữ liệu mà nó tạo ra. 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. Sau khi xử lý xong dữ liệu thì consumer gởi lại một thông điệp empty đến tiến trình producer. Sơ đồ điều độ sẽ như sau: Program Producer/Consumer; Var Buffersize: integer; {kích thước Buffer} M, m’: Message; { -------------------------------------} BEGIN Buffersize = N; ParBegin Procedure Producer(); Begin Repeat ; Receive(Consumer,m); Send(Consumer,m) Until .F. End; { ----------------------------------------} Procedure Consumer ()
- 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 Var I:integer; Begin For I := 0 to N Do Send(Producer ,m); Repeat Receive(Producer ,m); Send (Producer,m); Until .F. End. Parend END. {--------------------------------------------------------} Bài toán 2: Trong môi trường hệ điều hành đa nhiệm, có thể tồn tại các file chia sẻ, có thể là các file cơ sở dữ liệu. Nhiều tiến trình hoạt động đồng thời trong hệ thống có thể được chia sẻ sử dụng một file cơ sở dữ liệu này. Tiến trình cần đọc nội dung của file cơ sở dữ liệu được gọi là là tiến trình Reader. Tiến trình cần cập nhật thông tin vào file cơ sở dữ liệu được gọi là là tiến trình Writer. Trong hệ thống này, công tác điều độ tiến trình cần phải thực hiện các ràng buộc sau: 1. Có thể có nhiều tiến trình Reader đồng thời đọc file cơ sở dũ liệu. 2. Không cho phép một tiến trình Writer ghi vào cơ sở dữ liệu khi các tiến trình Reader khác đang đọc cơ sở dữ liệu. 3. Chỉ có duy nhất một tiến trình Writer được phép ghi vào file cơ sở dữ liệu Hãy dùng các giải pháp Semafore, Monitor, Message để tổ chức điều độ cho các tiến trình Reader và Writer trong bài toán ở trên. II.3.4.4. Giải pháp dùng Semaphore (sự đánh tín hiệu bằng cờ) Giải pháp này sử dụng một biến chung RC và hai semaphore (sự đánh tín hiệu bằng cờ) là Mutex và DB. RC (readcount) dùng để ghi nhận số lượng các tiến trình Reader muốn truy xuất file cơ sở dữ liệu, khởi gán bằng 0. Mutex: dùng để kiểm soát truy xuất đến RC, khởi gán bằng 1. DB: dùng để kiểm tra sự truy xuất độc quyền đến cơ sở dữ liệu, khởi gán bằng 1. Sau đây là sơ đồ điều độ:
- 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 Program Producer/Consumer; Const Mutex: Seamafore = 1; Db : Seamafore = 1; Rc : byte = 0; {------------------------------------} BEGIN ParBegin Procedure Reader(); Begin Repeat Down(mutex); Rc = Rc+1; If Rc = 1 then Down(db); Up(mutex); {chấm dứt truy xuất Rc} ; Down(mutex) Rc = Rc-1 If Rc = 0 then Up(db); Up(mutex); < Xử lý dữ liệu đọc được> Until .F. End; {--------------------------------------------} Procedure Writer(); Begin Repeat ; Down(Db); Up(db); Until .F. End; ParEnd
- 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 End. {--------------------------------------------} Giải pháp dùng Monitor II.3.4.5. Giải pháp này sử dụng một biến chung RC, để ghi nhận số lượng các tiến trình reader muốn truy xuất cơ sở dữ liệu. Tiến trình Writer phải chuyển sang trạng thái khoá nếu RC > 0. Khi ra khỏi đoạn găng tiến trình Reader cuối cùng sẽ đánh thức tiến trình Write đang bị khoá. Sau đây là sơ dồ điều độ: Program Producer/Consumer; Monitor Readerwriter Condition Okwrite,Okread Var Rc: integer; Busy: boolean = False; {-------------------------------------} Procedure Beginread() Begin If (busy) then wait(okread); Rc = Rc+1; Signal(okread); End; Procedure Finishread() Begin Rc = Rc - 1; If Rc = 0 Then Wait(okwrite); End; Procedure Beginwrite(); Begin Rc = Rc - 1; If (busy) or (Rc 0) Then Wait(okwrite); Busy = True; End; Procedure FinishWrite() Begin Busy = False;
- 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 If (Okread) Then Signal(okread) Else Signal(okwrite); End; Endmonitor. {------------------------------------------------------------} BEGIN ParBegin Procedure Reader (); Begin Repeat ReaderWriter.BeginRead(); ReaderWriter.FinishRead(); Until .F. End; Procedure Writer (); Begin Repeat ReaderWriter.BeginWrite(); ReaderWriter.FinishWrite(); Until .F. End; Parend END. {------------------------------------------------} II.3.4.6. Giải pháp dùng Message Giải pháp này cần phải có một tiến trình Sever điều khiển việc truy xuất cơ sở dữ liệu. Các tiến trình Writer và Reader gửi các thông điệp yêu cầu truy xuất đến server và nhận từ Sever các thông điệp hồi đáp tương ứng. Sơ đồ điều độ sẽ như sau: Program Producer/Consumer; Begin ParBegin
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình hướng dẫn phân tích các bước để tạo một select query với thiết lập các thuộc tính total và crosstab p1
5 p | 167 | 17
-
Giáo trình hướng dẫn phân tích lãi suất và giá trị của tiền tệ theo thời gian tích lũy p3
5 p | 105 | 10
-
Giáo trình hướng dẫn phân tích lãi suất và giá trị của tiền tệ theo thời gian tích lũy p9
5 p | 99 | 8
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p6
11 p | 84 | 8
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p4
11 p | 94 | 6
-
Giáo trình hướng dẫn phân tích ứng dụng phương thức gán đối tượng cho một giao diện đối lập trừu tượng p8
5 p | 87 | 5
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p7
11 p | 76 | 4
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p3
11 p | 81 | 4
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p2
11 p | 88 | 4
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p1
11 p | 91 | 4
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p3
5 p | 86 | 3
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p10
11 p | 71 | 3
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p9
11 p | 63 | 3
-
Giáo trình hướng dẫn phân tích cấu tạo mô hình quản lý mạng phân phối xử lý dữ liệu p8
11 p | 75 | 3
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p1
5 p | 75 | 2
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p2
5 p | 67 | 2
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p5
5 p | 64 | 2
-
Giáo trình hướng dẫn phân tích khả năng chống phân mảnh dung lượng ổ cứng bằng Clean system p6
5 p | 90 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn