Các tiến trình đồng thời

Một phần của tài liệu GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT (Trang 27 - 29)

Chương 3 XỬ LÝ CÁC TIẾN TRÌNH ĐỒNG THỜI

3.1 Các tiến trình đồng thời

3.1.1 Khái niệm

Các tiến trình hoạt động trong hệ thống tồn tại hai mối quan hệ: độc lập và hợp tác song hành. Nếu tiến trình được hoạt động độc lập nếu nĩ khơng gây ảnh hưởng và bị ảnh hưởng các tiến trình khác. Nhưng thực tế các hệ điều hành mạng, phân tán, chia sẻ thời gian, việc thực hiện một tiến tình này cĩ ảnh hưởng tới các tiến trình khác và ngược lại các tiến trình dùng dữ liệu chung cùng hồn thành một tác vụ nào đĩ, nên phải đồng bộ hố các tiến trình khơng đồng bộ. Do đĩ:

• Trong hệ thống cĩ thể tồn tại nhiều tiến trình tại một thời điểm .

• Nếu hệ thống cĩ một CPU, các tiến trình sẽ chia sẻ thời gian phục vụ của CPU. Bằng các thuật tốn lập lịch của CPU các tiến trình được chuyển ngữ cảnh qua lại liên tục cĩ thể tới hàng triệu lần trong một đơn vị thời gian, ta cảm thấy các tiến trình được thực hiện một cách đồng thời (cocurrent ).

• Nếu hệ thống cĩ nhiều CPU, mỗi CPU cĩ thể phục vụ cho một tiến trình. Các tiến trình đĩ được phục vụ song song ( parallel )

P1 P2

CPU

P3

Thực hiện các tiến trình 1 CPU Thực hiện các tiến trình nhiều CPU

3.1.2 Cấu trúc “ parabegin – parend “

Trong việc xử lý các tiến trình đồng thời cĩ nhiều ngơn ngữ hỗ trợ song song.

Một trong cấu trúc song song hay sử dụng là CoBegin.. CoEnd hay ParBegin … ParEnd. Để minh họa, chúng ta sử dụng cấu trúc ParBegin … ParEnd .

• Cấu trúc song song ParBegin … ParEnd được phát biểu như sau: Parbegin

S2 ; …. Sn Parend;

Như vậy, trong một hệ thống chương trình bao gồm nhiều đoạn ParBegin …

ParEnd. Các đoạn ParBegin … ParEnd ấy phải được xử lý một cách tuần tự. Các

lệnh trong khối ParBegin … ParEnd phải được xử lý song song nghĩa là các tiến trình để thực hiện trong các lệnh ấy phải được thực hiện trong các luồng khác nhau. Cách tính tốn song song cĩ thể giảm thời gian thực thi của hệ thống. Tuỳ theo quan hệ các tiến trình và cấu trúc dữ liệu của chúng mà cĩ thể lập lịch song song từng đoạn hay khơng ?

Thí dụ 1: Tính biểu thức : S:= -x + 2*y + (x+2) *( y-1) Các cơng việc tuần tự như sau theo 7 bước như sau:

1. –x 2. 2*y 3. x+2 4. y-1 5. –x+2*y 6. (x+2)*(y-1) 7. –x+2*y + (x+2)*(y-1)

Ta cĩ thể thực hiện tính tốn song song như sau:

ParBegin temp1 := -x ; temp2:= 2*y ; temp3 := x+2 ; temp4 := y-1 ; ParEnd ; ParBegin

temp5 :=temp1 + temp2 ; temp6 := temp3 * temp4 ;

ParEnd ;

s:=temp6 +temp7

So với xử lý tuần tự thực hiện 7 lệnh nhưng xử lý song song chỉ thực hiện cĩ 3 lệnh.

Thí dụ 2: Tính biểu thức : x:=(-b + (b*2 – 4*a*c)*0.5)/(2*a) Ta cĩ thể ước lượng 6 lệnh để xử lý song song như sau :

1 ParBegin

temp1 := -b ; temp2:= b*2 ; temp3 := 4*a ;

temp4 := 2*a ;

ParEnd ;

2 temp5 := temp3 *c ; 3 temp5 := temp2 –temp5; 4 temp5 :=temp5**0.5 5 temp5 :=temp1 +temp5; 6 x:=temp5 / temp4

Một phần của tài liệu GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT (Trang 27 - 29)