2. Kiến trúc hệ thống
2.1. SimJava Discrete Event Model
SimJava là gói mô phỏng sự kiện rời rạc thực thi trong Java.Mô phỏng trong SimJava chứa một số lượng của các thực thể chạy song song trong tiến trình riêng của nó. Hành vi của một thực thể được mã hóa trong Java bằng cách sử dụng phương thức body (). Các đối tượng có quyền truy cập vào một số lượng nhỏ mô phỏng nguyên bản: • sim_schedule () sẽ gửi các đối tượng sự kiện đến các tổ chức khác thông qua port • sim_hold () tổ chức cho mô phỏng thời gian
• sim_wait () chờ đợi một sự kiện của đối tượng đến.
Những tính năng này giúp xây dựng một mạng lưới các thực thể hoạt động giao tiếp bằng bằng cách gửi và nhận các sự kiện đối tượng thụ động một cách hiệu quả.
Các thuật toán mô phỏng sự kiện rời rạc, ở SimJava, là như sau: Một đối tượng trung tâm Sim_system duy trì thời gian hàng đợi các sự kiện trong tương lai. Ban đầu tất cả các thực thể được tạo ra và phương thức body() của chúng được đặt ở trạng thái chạy. Khi một thực thể gọi một chức năng mô phỏng, đối tượng Sim_system tạm dừng tiến trình của thực thể và và đặt một sự kiện trên hàng đợi trong tương lai cho sự xử lý chức năng. Khi tất cả thực thể dừng, Sim_system bật sự kiện kế tiếp khỏi hàng đợi, qua thời gian mô phỏng cho phù hợp, và khởi động lại các thực thể cho phù hợp. Điều này tiếp tục cho đến khi sự kiện không được tạo ra.Nếu các máy ảo Java hỗ trợ các tiến trình riêng, sau đó tất cả các thực thể có thể chạy đồng thời trong cùng thời gian mô phỏng.
2.2. Thực thể Grid Sim
GridSim hỗ trợ các thực thể mô phỏng của bộ vi xử lý đơn hoặc đa xử lý, các nguồn tài nguyên không đồng nhất có thể được cấu hình như hệ thống chia sẻ. Nó cho phép thiết lập đồng hồ của chúng để các múi giờ khác nhau có thể mô phỏng nguồn tài nguyên phân tán về mặt địa láy. Nó hỗ trợ các thực thể phỏng mạng được sử dụng giao tiếp giữa các tài nguyên. Trong quá trình mô phỏng, GridSim tạo ra một số các thực thể đa luồng, mỗi trong số đó chạy song song trong tiến trình riêng. Hành vi của một thực thể cần phải được mô phỏng trong phương thức body(), quyết định bởi SimJava.
Hình 19 - Sơ đồ dòng chay trong GridSim dựa vào mô phỏng
Môi trường mô phỏng cần phải trừu tượng tất cả các thực thể và thời gian của chúng phụ thuộc vào tương tác của hệ thống thực. Nó cần hỗ trợ việc tạo ra các chức năng đáp ứng thời gian phụ thuộc của người sử dụng cho các thực thể tương tác. Chức năng phản hồi có thể là một chức năng các thực thể trong quá khứ, hiện tại, hoặc cả hai. GridSim dựa trên sự mô phỏng chứa các thực thể cho người sử dụng, môi giới, tài nguyên, dịch vụ thông tin, số liệu thống kê, và mạng dựa I / O như thể hiện trong hình
2.3. Mô hình ứng dụng
GridSim không xác định rõ ràng bất kỳ mô hình ứng dụng cụ thể nào. Trong GridSim, mỗi tác vụ độc lập có thể yêu cầu thay đổi thời gian xử lý và kích thước các tập tin đầu vào. Tác vụ như vậy có thể được tạo ra và yêu cầu của chúng được xác định thông qua đối tượng Gridlet. Gridlet là một gói chứa tất cả các thông tin liên quan đến tác vụ và
chi tiết việc quản lý việc thực thi của nó như độ dài tác vụ thể hiện trong MIPS, các thao tác đĩa I / O , kích thước của tập tin đầu vào và đầu ra, và các tác vụ ban đầu. Các thông số cơ bản này giúp việc xác định thời gian thực hiện, thời gian cần thiết để vận chuyển các tập tin đầu vào và đầu ra giữa người sử dụng và các nguồn tài nguyên từ xa, và trả cho Gridlet xử lý lại để khởi tạo cùng với các kết quả. Bộ công cụ GridSim hỗ trợ các giao thức và dịch vụ quản lý phạm vi lớn của Gridlet, điều này cho phép các lịch trình ánh xạ Gridlet vào tài nguyên và quản lý nó thông qua chu kỳ sống
Hình 20 - Mô hình giao tiếp thực thể thông qua thực thể đầu vào và đầu ra
2.4. Mô hình giao thức tương tác
Các giao thức tương tác giữa các thực thể GridSim được thực hiện bằng cách sử dụng sự kiện. Trong GridSim, các thực thể sử dụng sự kiện cho cả yêu cầu dịch vụ và phân phối dịch vụ. Các sự kiện có thể được đưa lên bởi bất kỳ thực thể được chuyển giao ngay lập tức hoặc qui định độ trễ cho các thực thể khác hoặc cho chính nó. Các sự kiện được bắt nguồn từ cùng một thực thể được gọi là sự kiện nội bộ và bắt nguồn từ những
thực thể bên ngoài được gọi là sự kiện bên ngoài. Thực thể có thể phân biệt các sự kiện này dựa trên việc xác định nguồn liên kết với chúng. Các giao thức GridSim được sử dụng để xác định các dịch vụ của thực thể. Tùy thuộc vào các giao thức dịch vụ, các sự kiện GridSim có thể được tiếp tục phân thành sự kiện đồng bộ và không đồng bộ. Một sự kiện được gọi là đồng bộ khi tổ chức nguồn sự kiện chờ đợi cho đến khi các sự kiện đích thực thể thực hiện tất cả các hành động liên kết với sự kiện (tức là, việc cung cấp các dịch vụ đầy đủ). Một sự kiện được gọi là không đồng bộ khi nguồn sự kiện thực thể đặt ra một sự kiện và tiếp tục với các hoạt động khác mà không cần chờ đợi để hoàn thành của nó. Khi đến đích thực thể nhận được các sự kiện hoặc yêu cầu dịch vụ, nó đáp ứng kết quả bằng cách gửi một hoặc nhiều sự kiện, mà sau đó có thể có những hành động thích hợp. Cần lưu ý rằng các sự kiện bên ngoài có thể là đồng bộ hoặc các sự kiện không đồng bộ, nhưng nội bộ cần phải được đưa ra như sự kiện không đồng bộ duy nhất để tránh tắt nghẽn
Các thực thể GridSim (người sử dụng, môi giới, tài nguyên, dịch vụ thông tin, số liệu thống kê, tắt máy) gửi các sự kiện đến thực thể khác để yêu cầu dịch vụ, cung cấp kết quả, hoặc nâng cao các hoạt động nội bộ. Lưu ý GridSim thực hiện các thực thể cốt lõi để mô phỏng các dịch vụ tài nguyên, dịch vụ thông tin, số liệu thống kê. Nguồn sự kiện và các thực thể đích phải cùng giao thức yêu cầu dịch vụ và phân phối.
Khi GridSim bắt đầu, các thực thể tài nguyên đăng ký với GIS bằng cách gửi sự kiện. Quá trình đăng ký tài nguyên là tương tự như GRIS đăng ký với GIIS trong hệ thống Globus . Tùy thuộc vào yêu cầu thực thể của người dùng, các thực thể trung gian sẽ gửi một sự kiện để các thực thể GIS, để thông báo truy vấn tìm kiến tài nguyên. GIS thực thể trả về một danh sách các nguồn tài nguyên đăng ký và chi tiết liên hệ của chúng. Các thực thể trung gian gửi các sự kiện đến nguồn tài nguyên với yêu cầu cấu hình và thuộc tính của tài nguyên. Chúng trả về thông tin nhưng chi phí nguồn tài nguyên, khả năng, tính sẵn có, tải, và các thông số cấu hình khác. Những sự kiện có liên quan đến các thực thể GIS là đồng bộ trong tự nhiên.
Tùy thuộc vào các tài nguyên chọn lựa và chiến lược lịch trình, các thực thể trung gian mà các sự kiện không đồng bộ cho các thực thể tài nguyên điều khiển Gridlet cho việc thực thi - trung gian không cần chờ tài nguyên để hoàn thành nhiệm vụ được giao. Khi xử lý Gridlet được hoàn tất, thực thể tài nguyên cập nhật tình trạng Gridlet và thời gian xử lý và gửi nó trở lại cho bên trung gian bằng cách gửi một sự kiện báo hoàn thành
Các nguồn tài nguyên GridSim sử dụng các sự kiện nội bộ để mô phỏng hành vi của tài nguyên và phân bổ nguồn lực. Các thực thể cần phải được mô hình hóa theo cách mà nó có thể nhận được tất cả các sự kiện có ý nghĩa cho nó. Tuy nhiên, nó là các thực thể để quyết định các hành động liên quan. Ví dụ, trong mô phỏng tài nguyên chia sẻ thời gian (xem Hình 4.5) các sự kiện nội bộ được lên kế hoạch để thông báo thời gian hoàn thành của Gridlet
Hình 22 - Sơ đồ tương tác giữ tài nguyên chia sẽ không gian và các thực thể khác
2.5. Mô hình tài nguyên - Mô phỏng đa nhiệm và đa xử lý
Trong bộ kit GridSim, ta có thề tạo ra các phần tử xử lý (Processing Element-PE) với các tốc độ khác nhau (được đo theo cách phương pháp đánh giá như MIPS hay SPEC). Sua đó, một hay nhiều PE có thể được đặt cùng nhau để tạo ra một máy. Tương tự, nguồn tài nguyên Grid cuối cùng có thể là một khối sử lý đơn, hay khối đa xử lý dùng chung bộ nhớ (share memory multiprocessor-SMP), hoặc một nhóm các máy tính có bộ nhớ được phân chia. Những nguồn tài nguyên Grid này có thể mô phỏng lịch trình có thời gian hay không gian bị chia sẻ phụ thuộc vào chính sách phân bổ. Một PE đơn hay SMP dạng tài nguyên Grid chủ yếu được quản lý bởi các hệ điều hành chia sẻ thời gian sử dụng chính sách sắp lịch round-robin cho việc đa nhiệm. Các hệ thống đa xử lý phân phối bộ nhớ (như các nhóm) thì được quản lý bởi hệ thống hàng đợi, gọi là trình lên lịch chia sẻ không gian, mà thực thi Gridlet bằng cách chạy nó trên một PE tinh vi khi được phân bổ. Hệ thống chia sẻ không gian sử dụng chính sách phân bổ tài nguyên như là đến trước phục vụ trước (first come first serve-FCFS), sử lý tác vụ ngắn
nhất trước, ... Cũng nên chú ý rằng việc phân bổ tài nguyên trong các high-end SMP cũng có thề được thực hiện bằng cách sử dụng trình lên lịch chia sẻ không gian.
Các hệ thống đa nhiệm và đa xử lý cho phép chạy các tác vụ đồng thời để chia sẽ tài nguyên hệ thống như khối xử lý, bộ nhớ, lưu trữ, I/O, và mạng bằng cách lên lịch cho chúng được thực thi trong một khoảng thời gian rất ngắn. Việc mô phỏng chi tiết các tác vụ được lên lịch trong hệ thống thực tế có thề rất phức tạp và tốn thời gian. Vì vậy, trong GridSim, ta trừu tượng háo các thực thể vật lý và mô phỏng cách xử lý cùa chúng dùng quy trình được định hướng, các sự kiện ngắt rời rạc với khoảng thời gian dài tương đương thời gian cần thiết để hoàn thành nhiệm vụ có thời gian còn lại nhỏ nhất. Tài nguyên trong GridSim có thể gửi, nhận, hoặc lên lịch các sự kiện để mô phỏng việc thực thi các sự kiện. Nó lên lịch các self-event để mô phỏng việc phân bổ tài nguyên phụ thuộc vào chính sách lên lịch và số lượng công việc trong hàng đợi hoặc đang xử lý.
Ta hãy xem xét một tình huống sau để thể hiện việc mô phỏng của việc thực thi và lên lịch Gridlets trong nguổn tài nguyên GridSim. Nguồn tài nguyên bao gồm hai PE có bộ nhớ chia sẻ hoặc phân phối, mỗi PE có MIPS là 1 cho đơn giản. Ba Gridlets mà thể hiện các nhiệm vụ với yêu cầu xử lý tương đương với 10, 8.5, và 9.5 MI (triệu tính toán) đến lúc thời gian mô phỏng tương ứng là 0, 4, và 7.
2.6. Mô phỏng việc lên lịch trong nguồn tài nguyên chia sẻ thời gian
Trình mô phỏng tài nguyên GridSim sử dụng các sự kiện nội để mô phỏng việc thực thi và phân bổ của các PE mà chia sẻ cho các công việc Gridlet. Khi công việc đến, các hệ thống chia sẻ thời gian bắt đầu việc thực thi cùa chúng ngay lập tức và chia sẻ tài nguyên cho tất cả các nhiệm vụ. Bất cứ khi nào một công việc Gridlet đến, ta cập nhật thời gian sử lý của các Gridlet sẵn có và sau đó thêm công việc mới đến này vào trong bộ thực thi. Sau đó, nó đợi các sự kiện xảy ra.
Nếu một sự kiện mới đến lại là một sự kiện nội có số đính kèm trùng với sự kiện được xếp lịch gần đây nhất, thì nó được xem như là sự kiện hoàn tất công việc. Phụ thuộc vào số lượng Gridlets trong việc thực thi và số PE trong tài nguyên, GridSim
phân bổ một lượng phù hợp PE chia sẽ cho tất cả các Gridlets trong quá trình sự kiện sử dụng giải thuật. Ta cần chú ý rằng các Gridlets chia sẻ cùng một PE sẽ có cùng một lượng chia sẽ PE. Gridlet hoàn tất được gửi về lại cho nguồn (broker hoặc user) và được xóa khỏi bộ thực thi. GridSim lên lịch một sự kiện nội mới để được chuyển tới vào lúc thời
Khi Gridlet1 đến vào thời điểm 0, nó sẽ được ánh xạ vào PE1 và một xự kiện nội được đưa đến vào thời điểm 10 được lên lcih5 vì thời điểm hoàn thành dự đoán là 10. Vào thời điểm 4, Gridlet2 đến và nó được ánh xạ cho PE2. Thời điểm hoàn thành của Gridlet2 được dự đoán là 12.5 và thời điểm hoàn thành của Gridlet2 vẫn là 10 bởi cả hai được hiện trên hai PE khác nhau. Một sự kiện nội mới được lên lịch, mà sẽ vẫn được được tới vào thời điểm 10. Vào thời điểm 7, Gridlet3 đến, mà sẽ được ánh xạ vào PE2. Nó chia sẽ thời gian với Gridlet2. Vào thời điểm 10, một sự kiện nội được đưa tới nguồn tài nguyên để ám chỉ sự hoàn tất cùa Gridlet1, mà se được gửi về chi broker. Lúc này, khi số lượng Gridlet bằng số lượng PE, chúng sẽ được ánh xạ vào các PE khác nhau. Một sự kiện nội được đưa đến vào thời điểm 14 được lên lịch thông báo thời gian hoàn thành dự kiến của Gridlet2. Khi việc mô phỏng thực hiện, một sự kiện nội được đưa đến vào thời điểm 14 và Gridlet2 được gửi về cho broker. Một sự kiện nội được đưa đến thời điểm 18 được lên lịch đển thông báo thời điểm hoàn thành dự kiến của Gridlet3. Vì không có Gridlet nào xuất hiện trước thời điểm này, nguồn tài nguyên nhận một ngắt nội tại thời điểm 18, thông báo sự kết thúc của Gridlet3.
2.7. Mô phỏng việc lên lịch trong nguồn tài nguyên chia sẻ không gian
Trình mô phỏng tài nguyên GridSim sử dụng các sự kiện nội để mô phỏng việc thực thi và phân bổ các PE cho các công việc Gridlet. Khi công việc đến, các hệ thống chia sẻ không gian bắt đầu việc thực thi ngay lập tức nếu có PE trống sẵn sang, nếu không, nó sẽ xếp hàng. Trong lúc phân công Gridlet, thời gian sử lý được xác định và sự kiện được lên lịch để được gửi tới vào lúc kết thúc xử lý. Bất cứ khi nào Gridlet hoàn tất và sự kiện nội được chuyển tới nhằm thông báo sự kết thúc cùa một công việc Gridlet mà được lên lịch, trình mô phỏng tài nguyên giải phóng PE được phân bổ cho nó, vá sau
đó kiểm tra xem liệu có công việc nào khác trong hàng đợi. Nếu có, nó sẽ lựa chọn một cộng việc thích hợp phụ thuộc vào chính sách và gán cho PE mà còn trống.
Nếu một sự kiện mới đến lại là một sự kiện nội có số đính kèm trùng với sự kiện được xếp lịch gần đây nhất, thì nó được xem như là sự kiện hoàn tất công việc. Nếu có Gridlet trong hàng đợi, thì phụ thuộc vào chính sách phân bồ (ví dụ: Gridlet đầu tiên nếu chính sách FCFS được sử dụng), GridSim lựa chọn Gridlet phù hợp từ hàng đợi và gán nó cho PE hoặc PE phù hợp nếu có nhiều hơn một PE trống. Xem hình 4.6 minh họa về việc phân bổ PE cho Gridlet. Gridlet hoàn tất được gửi về lại cho nguồn (broker hoặc user) và được xóa khỏi bộ thực thi. GridSim lên lịch một sự kiện nội mới để được chuyển tới vào lúc thời gian hoàn thành sớm nhất được dự báo trước của các