1. Trang chủ
  2. » Công Nghệ Thông Tin

HỆ THỐNG THỜI GIAN THỰC VÀ ỨNG DỤNG TRONG KỸ THUẬT MÔ PHỎNG

36 164 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 702,28 KB

Nội dung

HỆ THỐNG THỜI GIAN THỰC VÀ ỨNG DỤNG TRONG KỸ THUẬT MÔ PHỎNG Nguyễn Văn Trường Trung tâm Công nghệ Mô –HVKTQS Abstract: we all tend to throw the term real-time around quite a bit There seems to be an innate understanding of what it means, but not a formal definition that is widely agreed upon Whatever the case, it does not stop us from using it to impress our listeners It has, after all, a bit of a macho ring to it But the use of it such in diverse contexts often can be confusing Read on for an attempt at an applicable definition Keywords: simulation, RTS, realtime system, 3D graphic Đặt vấn đề Trong năm gần đây, hệ thống điều khiển theo thời gian thực lĩnh vực thu hút nhiều ý giới khoa học nghiên cứu khoa học máy tính Trong đó, vấn đề điều hành thời gian thực vấn đề lập lịch đặc biệt quan trọng Một số ứng dụng quan trọng hệ thống thời gian thực (RTS) ứng dụng rộng rãi dây chuyền sản xuất tự động, rôbốt, điều khiển không lưu, điều khiển thí nghiệm tự động, truyền thông, điều khiển quân Bên cạnh thiết bị mô đưa vào với mục đích đào tạo, tạo thân thiện mô hình với đối tượng thực tế, giúp người học có hiểu biết thiết bị kỹ thực hành thiết bị Hiện số đơn vị quân đội trang bị hệ thống mô huấn luyện lái Điều khẳng định giải pháp ứng dụng công nghệ mô để nâng cao chất lượng huấn luyện hướng đắn Tuy nhiên để hệ thống mô ngày sát thực tế sống động cần đòi hỏi nhiều công sức nghiên cứu lý thuyết, hiểu biết đầy đủ hệ thống thời gian thực để xây dựng thiết bị phục vụ huấn luyện đào tạo Qua tập cho người học cách đưa phán khoảng thời gian hợp lý với tình thực tế Với kết qủa nghiên cứu tích lũy, TTCN Mô xin trình bầy báo để hiểu rõ hệ thống thời gian thực áp dụng cho đồ họa 3D thời gian thực sản phẩm mô Hệ thống thời gian thực 1.1 Khái niệm hệ thống thời gian thực : Một hệ thống thời gian thực (RTS – Realtime Systems) hiểu mô hình xử lý mà tính đắn hệ thống không phụ thuộc vào kết tính toán lôgic mà phụ thuộc vào thời gian mà kết phát sinh Hệ thống thời gian thực thiết kế nhằm cho phép trả lời lại yếu tố kích thích phát sinh từ thiết bị phần cứng ràng buộc thời gian xác định Ở ta hiểu RTS cách hiểu tiến trình, công việc thời gian thực Nhìn chung, RTS có số công việc gọi công việc thời gian thực, công việc có mức độ khẩn cấp riêng phải hoàn tất, ví dụ tiến trình cố gắng điều khiển hoặt giám sát kiện xảy giới thực Bởi kiện xuất giới thực nên tiến trình giám sát kiện phải xử lý theo kịp với thây đổi kiện Sự thay đổi kiện giới thực xảy nhanh, tiến trình giám sát kiện phải thực việc xử lý khoản thời gian ràng buộc gọi deadline, khoản thời gian ràng buộc xác định thời gian bắt đầu thời gian hoàn tất công việc Trong thực tế, yếu tố kích thích xảy thời gian ngắn vào khoảng vài mili giây, thời gian mà hệ thống trả lời lại yếu tố kích thích tốt vào khoảng giây, thường vào khoảng vài chục mili giây, khoảng thời gian bao gồm thời gian tiếp nhận kích thích, xử lý thông tin trả lời lại kích thích Một yếu tố khác cần quan tâm RTS công việc thời gian thực có tuần hoàn hay không ? Công việc tuần hoàn ràng buộc thời gian ấn định theo chu kỳ xác định Công việc không tuần hoàn xảy với ràng buộc thời gian vào lúc bắt đầu lúc kết thúc công việc, ràng buộc xác định vào lúc bắt đầu công việc Các biến cố kích hoạt công việc không tuần hoàn thường dựa kỹ thuật xử lý ngắt hệ thống phần cứng Về mặt cấu tạo, RTS thường cấu thành từ thành tố sau : ƒ Đồng hồ thời gian thực : Cung cấp thông tin thời gian thực ƒ Bộ điều khiển ngắt : Quản lý biến cố không theo chu kỳ ƒ Bộ định biểu : Quản lý qua trình thực ƒ Bộ quản lý tài nguyên : Cung cấp tài nguyên máy tính ƒ Bộ điều khiển thực : Khởi động tiến trình Các thành tố phân định thành phần cứng hay mềm tùy thuộc vào hệ thống ý nghĩa sử dụng Thông thường, RTS kết hợp vào phần cứng có khả tốt so với hệ thống phần mềm có chức tương ứng tránh chi phí đắt cho việc tối ưu hoá phần mềm Ngày nay, chi phí phần cứng ngày rẻ, chọn lựu ưu tiên phần cứng xu hướng chung 2.2 Các loại hệ thống thời gian thực: Các RTS thường phân thành hai loại sau Soft reatime system Hard realtime system : Đối với Soft realtime system, thời gian trả lời hệ thống cho yếu tố kích thích quan trọng, nhiên trường hợp ràng buộc bị vi phạm, tức thời gian trả lời hệ thống vượt giới hạn trễ cho phép, hệ thống cho phép tiếp tục hoạt động bình thường, không quan tâm đến tác hại vi phạm gây (Thường tác hại không đáng kể) Ngược lại với Soft realtime system Hard realtime system, trường hợp người ta quan tâm khắc khe đến hậu vi phạm giới hạn thời gian phép hậu tồi tệ, thiệt hại vật chất, gây ảnh hưởng xấu đến đời sống người Một ví dụ cho loại hệ thống điều khiển không lưu, phân phối đường bay, thời gian cất cánh, hạ cánh không hợp lý, không lúc gây tai nạn máy bay mà thảm họa khó mà lường trước Trong thực tế có nhiều RTS bao gồm hai loại soft hard Trong hai loại này, máy tính thường can thiệp trực tiếp gián tiếp đến thiết bị vật lý để kiểm soát điều khiển hoạt động thiết bị Đứng góc độ này, người ta thường chia RTS làm hai loại sau : i) Embedded system : Bộ vi xử lý điều khiển phần toàn thiết bị, sản xuất trọn gói từ yếu tố cứng đến yếu tố mềm từ nhà máy, người sử dụng chi tiết sử dụng thông qua nút điều khiển, bảng số Với hệ thống này, ta không thấy thiết bị máy tính bình thường bàn phím, hình mà thây vào nút điều khiển, bảng số, đèn tín hiệu hay hình chuyên dụng đặc trưng cho hệ thống Máy giặt ví dụ Người sử dụng việc bấm nút chọn chương trình giặt, xem kết qua hệ thống đèn hiệu Bộ vi xử lý Embedded system lập trình trước gắn chặt vào từ sản xuất lập trình lại Những chương trình chạy độc lập, giao tiếp với hệ điều hành (HĐH) không cho phép người sử dụng can thiệp vào ii) Loại thứ hai bao gồm hệ thống có can thiệp máy tính thông thường Thông qua máy tính ta hoàn toàn kiểm soát điều khiển hoạt động thiết bị phần cứng hệ thống Những chương trình điều khiển có nhiều loại, phục vụ cho nhiều mục đích khác viết lại cho phù hợp với yêu cầu thực tế Hiển nhiên loại hệ thống hoạt động phải cần HĐH điều khiển máy tính HĐH phải có khả nhận biết thiết bị phần cứng, có khả hoàn tất công việc giới hạn thời gian nghiêm ngặt HĐH phải HĐH hổ trợ xử lý thời gian thực – Realtime operating system (RTOS) Hệ điều hành cho hệ thống thời gian thực : 3.1 Sơ lược hệ điều hành : Cho đến nay, nhìn chung chưa có định nghĩa hoàn hảo hệ điều hành (HĐH) HĐH xem chương trình hoạt động người sử dụng phần cứng máy tính với mục tiêu cung cấp môi trường để thực thi chương trình ứng dụng thuận lợi, hiệu việc sử dụng máy tính User User User Các chương trình ứng dụng HỆ ĐIỀU HÀNH Phần cứng máy tính Hình 1: Mô hình trừu tượng hệ thống máy tính Cho đến ngày nay, HĐH phát triển với nhiều loại khác :HĐH quản lý theo lô đơn giản, quản lý theo lô đa chương (Multiprogram), chia xẻ thời gian (Multitasking), xử lý song song, mạng phân tán 3.2 Quan niệm tiến trình, tiểu trình : Trong HĐH đại ngày nay, quan niệm tiến trình tiểu trình trung tâm hệ thống, tất xử lý tập trung vào tiến trình, vào tiểu trình Ở để thuận tiện, ta trọng vào môi trường Windows 32 bit Một tiến trình xem thể thực thi chương trình Trên môi trường Windows 32 bit, tiến trình sở hửu GB không gian địa nhớ không phụ thuộc vào nhớ vật lý Tất DLL cần thiết map vào không gian địa Khi tiến trình tạo lập, có tiểu trình tạo lập tiến trình kết thúc tất tiểu trình kết thúc Một tiến trình có nhiều tiểu trình tạo lập tiến trình khác Tiểu trình thành phần xử lý tiến trình, tiểu trình sở hữu trỏ lệnh riêng, tạp ghi riêng, stack riêng tất nằm không gian địa tiến trình sở hữu Như vậy, tiểu trình tiến trình chia sẻ tài nguyên với Tất công việc điều phối tiến trình nhắm vào hoạt động tiểu trình Các tiểu trình, tiến trình phải liên lạc với để có chế điều phối hợp lý, để có cách thức chia liệu với Các chế liên lạc chia liệu HĐH NNLT đại quan tâm sử dụng tín hiệu, pipe, vùng nhớ chia sẽ, trao đổi thông điệp, sử dụng socket v.v 3.3 Hệ điều hành thời gian thực : Hệ điều hành thời gian thực (RTOS - Realtime Operating system) HĐH có trọng giải vấn đề đòi hỏi khắc khe thời gian cho thao tác xử lý hoặt dòng liệu Đây HĐH đại, tinh vi, thời gian xử lý nhanh, phải cho kết xác thời gian bị thúc ép nhanh HĐH thường sử dụng đồng hồ hệ thống có cho kỳ ngắt nhỏ vào khoảng vài micro giây để thực điều phối tiến trình Các HĐH đại ngày phần lớn hổ trợ (ở mức tương đối) xử lý thời gian thực, cung cấp môi trường tổ chức RTS Theo đánh giá chuyên viên RTS nay, HĐH thuộc họ UNIX đáp ứng tốt yêu cầu khắc khe RTS phức tạp Tuy nhiên, khuôn khổ luận văn với yêu cầu trạng thực tế, hệ thống đựoc quan tâm triển khai hệ thống máy PC sủ dụng HĐH Windows 9x 32 bit Hê điều hành windows vấn đề thời gian thực: Windows thiết kế hãng Microsoft, đời vào 11/1985, trải qua nhiều phiên cải tiến Windows sử dụng rộng rãi giới máy vi tính cá nhân (PC) đưa Microsoft thành công ty hàng đầu giới lĩnh vực tin học Ở ta quan tâm đến Windows với phiên 32 bit Là HĐH đa nhiệm (Multitasking) xử lý 32 bít, chạy môi trường máy PC, có hỗ trợ cho việc xử lý thời gian thực, có yêu cầu cấu hình không cao, cấu hình cao tốc độ xử lý nhanh, tương thích HĐH khác, có nhiều đặc điểm người ưu chuộng giao diện đồ hoạ thân thiện, tính an toàn, khả Plus and Play v.v Về vấn đề thời gian thực, HĐH đa nhiệm đặt móng chia xẻ thời gian Khái niệm tiến trình khái niệm tiểu trình trung tâm tảng cho vấn đề xử lý điều phối, đồng xử lý liên quan thời gian thực khác HĐH vốn viết phần lớn ngôn ngữ C/C++ ngôn ngữ lập trình (NNLT) có khả hổ trợ xử lý thời gian thực (Xem phần Ngôn ngữ lập trình RTS) Cung cấp thư viện dùng chung API cho phép giao tiếp với hệ thống tổ chức đồng hoá tiến trình, tiểu trình Windows không hổ trợ can thiệp trực tiếp vào hệ thống hay thiết bị ngoại vi (nhưng cho phép), nhiên lại cung cấp môi trường giao tiếp dễ dàng Ngôn ngữ lập trình cho hệ thống thời gian thực: 4.1 Tổng quan ngôn ngữ lập trình cho hệ thống thời gian thực: Phần lớn ứng dụng thời gian thực viết ngôn ngữ lập trình (NNLT) truyền thống HĐH truyền thống NNLT không hỗ trợ xử lý có ràng buộc khắc khe thời gian thực thi Cũng có số NNLT loại có phần mở rộng hổ trợ cho phép viết chương trình xử lý thời gian thực cách can thiệp trực tiếp vào phần cứng mà không thông qua NNLT chạy Một số RTS viết từ ngôn ngữ kinh điển C cung cấp thêm thư viện hàm hổ trợ xử lý thời gian thực, yếu tố thời gian thực lúc chia xẻ NNLT RTOS chạy Ngày có nhiều NNLT hổ trợ viết chương trình xử lý thời gian thực, ví dụ Ada chuyên lĩnh vực quân Java vốn thiết kế để dùng hệ thống nhúng thiết bị dân dụng, truyền thông Java có chế hổ trợ đa nhiệm riêng không phụ thuộc vào HĐH C/C++ cung cấp thư viện hàm hỗ trợ chế xử lý thời gian thực theo nhiều HĐH hổ trợ xử lý thời gian thực khác v.v 4.2 Sơ lược ngôn ngữ lập trình C(/C++): NNLT C(/C++) ngày sử dụng rộng rãi nhiều phương diện nhiều loại máy tính, NNLT dùng để viết nhiều NNLT, trình biên dịch viết ứng dụng thương mại NNLT C(/C++) thiết kế vào năm 1973 tiến sĩ Denis Ritche thuộc diện nghiên cứu Bell trực thuộc hãng AT&T, NNLT thuyết kế để viết HĐH UNIX - (họ) HĐH nhiều người sử dụng nay, máy mainframe PC Ngày thị trường có nhiều trình biên dịch cho C C++, phần lớn dựa chuẩn ANSI Turbo C/C++, Borland C/C++, Builder C/C++ hãng Borland, Microsoft C/C++, Visual C/C++ Microsoft C NNLT cấp trung, có cấu trúc (nhưng không thống), nhiên C NNLT mạnh khía cạnh cú pháp phát sinh mã thực thi C kết hợp yếu tố mềm dẽo khả điều khiển mạnh mẽ Assembly tính dễ hiểu, rỏ ràng ngôn ngữ cấp cao khác BASIC, Pascal Về vấn đề thời gian thực, NNLT C(/C++) vốn dùng để viết HĐH UNIX – HĐH có khả xử lý thời gian thực tốt đề cập C(/C++) dùng để viết nhiều HĐH đại khác ngày C(/C++) có sẳn thư viện hàm xử lý thời gian chuẩn, mức độ xác thời gian xử lý lên đến hàng micro giây Bên cạnh khả giao tiếp trực tiếp với thiết bị phần cứng, cần gọi trực tiếp đoạn mã viết Assembly hay chèn trực tiếp mã Assembly vào chương trình viết C Trên HĐH khác Windows, UNIX C(/C++) cung cấp hệ thống hàm hổ trợ xử lý thời gian thực, hổ trợ đồng hóa trình, ràng buộc toàn vẹn, độc quyền truy xuất giúp cho C(/C++) có khả điều khiển đến tiến trình, tiểu trình thực thi Trong xu hướng ngày nay, công nghệ hướng đối tượng quan tâm lĩnh vực RTS, có nhiều NNLT hướng đối tượng hổ trợ xây dựng RTS đời C++, Java Tuy nhiên NNLT lại vi phạm phương pháp luận RTS có nhiều thao tác phụ làm thời gian xử lý Trong thực tế, có số đề án RTS xây dựng dựa không gian đối tượng (cả thiết kế cài đặt) phải ngưng chừng hoặt phải chuyển hướng không đáp ứng ràng buộc thời gian mà nguyên nhân sâu xa bắt nguồn từ NNLT có qua nhiều thao tác phụ nói việc bao bọc liệu theo phương pháp hướng đối tượng làm thời gian truy xuất Quan niệm thời gian hệ thống thời gian thực: 5.1 Đồng hồ hệ thống: Thời gian hệ thống báo đồng hồ gọi đồng hồ hệ thống Trong môi trường có nhiều vi xử lý tồn nhiều đồng hồ, đồng hồ phải đồng với Có thể biểu diễn mức độ xác đồng hồ hệ thống qua hàm số sau: C (t ) = t , ∀t Đồng hồ gọi xác vào thời điểm ti : C (t i ) = t i , ∀t hay dC (t ) =1 dt ti 5.2 Các loại đồng hồ hệ thống: Đơn giản hệ thống có đồng hồ (sever clock), yêu cầu độ xác tin cậy cao Loại giá thành đắt Một loại khác gồm đồng hồ (master clock) đồng với nhiều đồng hồ phụ (slave clock) theo kiểu “polling”, tất đồng có độ xác, đồng hồ bị hỏng đồng hồ phụ thay Đối với hệ thống phân tán, đồng hồ hệ thống bao gồm tất đồng hồ phân tán đồng với theo thuật toán 5.3 Quan niệm rời rạc thời gian: Trong quan niệm RTS, thời gian xem yếu tố rời rạc Đây khía cạnh phức tạp lý thú i) Trong HĐH kinh điển, có đồng hồ quản lý thời gian đồng tiến trình Đồng hồ phát sinh ngắt báo hiệu cho hệ thống theo chu kỳ Chu kỳ điều chỉnh không nhanh hay chậm làm ảnh hưởng đến thời gian thực thi tiến trình, thường vào khoảng vài chục mili giây Chính chu kỳ chia thời gian thành mảnh đủ nhỏ ii) Còn RTOS, hệ thống sử dụng đồng hồ có khả lập trình điều phối ngắt theo chu kỳ đủ nhỏ hợp lý, chu kỳ hệ thống vào khoảng vài micrô giây Trong thực tế RTS thường dựa cách tiếp cận kết hợp hai quan niệm trên, thường quan điểm i) tảng có hổ trợ quan điểm ii) 5.4 Ràng buộc thời gian: Với yếu tố kích thích, hệ thống tiếp nhận vào thời điểm t0, hệ thống tiến hành cấp phát tài nguyên, thực xử lý tính toán hoàn tất việc trả lời vào thời điểm tk khác sau Một ràng buộc tối thiểu định nghĩa qua ba sau: (ID, Tbegin(condition1), Tend(condition2)) Trong đó: ID : Chỉ số tiến trình Tbegin(condition1) : Thời gian bắt đầu tiến trình Tend(condition2) : Thời gian tiến trình hoàn tất xử lý Phụ thuộc vào hệ thống thời gian xác định tài nguyên cần cấp phát, trình giải phóng tài nguyên sau tiến trình sử dụng… Một ràng buộc khắc khe xác định sau: (ID, Tbegin(condition1), CID, FID, Tend(condition2)) Trong đó: ID : Chỉ số tiến trình Tbegin(condition1) : Thời gian bắt đầu tiến trình Tend(condition2) : Thời gian tiến trình hoàn tất xử lý CID : Thời gian ước tính tiến trình (số mẫu thời gian) FID : Tần số mẫu thời gian Mỗi thị sở (Assembly) có thời gian thực thi cố định phụ thuộc vào phần cứng, ví dụ : Chỉ thị Thời gian thực thi (clock) MOV reg8, reg8 JMP 15 IRET 24 IN 10 OUT 10 Như vậy, tiểu trình thực công việc viết nhóm thị (hàm) có thời gian thực cố định, thêm vào có thời gian dùng để khởi tạo tiểu trình, kết thúc tiểu trình dẫn đến thời gian thực công việc lớn Hình 10: Một đồ thị Petri hình sau chuyển đổi t1tới hạn Hình 11: Một đồ thị Petri hình sau kết thúc tất chuyển đổi Không cần vào chi tiết thiết kế, ta nhận thấy mạng Petri, điều kiện, trạng thái thực tế tương ứng với node trạng thái mô hình kiện, kết tương ứng với chuyển đổi Hình 12: Mô tả mạng Petri trình chia CPU cho tiến trình Khi CPU rảnh rỗi (idle) - p2 đánh dấu Ngay có tiến trình vào chờ hàng đợi CPU - p1 đánh dấu, tiến trình thực - t1 Kết thúc t1 – p3 đánh dấu t2 thực Kết thúc t2 – p4 đánh dấu, CPU giải phóng – p2 đánh dấu Quá trình lặp lại có tiến trình vào hàng đợi CPU 11 Đồ họa 3D thời gian thực Đến thuật ngữ “thời gian thực” rõ ràng nghĩa thực nhanh Đối với hệ thống hiển thị thời gian thực điều kiện tốt số khung hình hiên thị hình khoảng 60 đến 85 frames/second Để hiểu rõ ta tìm hiểu khác giữ đồ họa 3D thời gian thực hoạt cảnh 3D Hoạt cảnh sử dụng sản phẩm Mutilmedia cụ thể tạo film, sản phẩm đồ họa phục vụ công việc in ấn Còn phần mềm đồ họa thời gian thực ứng dụng ứng dụng mô phỏng, ví dụ tập bay, tập lái, trò chơi, có khả tương tác Cả hai loại sản phẩm sử dụng hình ảnh mô hình thực tế với mức độ chi tiết cao với thuật toán làm trơn trạng thái thay đổi cảnh đồ họa Thông qua thuật toán tô bóng số lượng khung hình ngữ cảnh đơn vị thời gian Nhưng có vài khác biệt sau • Phần mềm mô cần số lượng khung hình thời gian thực, nghĩa khung hình phải liên tục liệu cập nhật (bao gồm vị trí hướng quan sát) Còn hoạt cảnh số lượng khung hình đặt trước, tạo cảnh phải hàng để tạo • Phần mềm mô cần độ tương tác cao để điều khiển chuyển động đối tượng cảnh Hoạt cảnh không cho phép tương tác, người dùng cảm nhận thự động với cảnh • Sự khác biệt quan trọng khác tương tác mô có mục đích Ngoài mô hình mô có phần chi tiết hoạt cảnh mục đích để tăng số lượng khung hình • Phần mềm mô yêu cầu số lượng khung hình đạt 15-60 fps, phụ thuộc vào độ phức tạp chi tiết cảnh Còn film yêu cầu số lượng khung hình 24 tùy thuộc vào yêu cầu chuẩn nhừng số lượng khung hình cố định theo thời gian 11.1 Hiển thị đồ họa thời gian thực: Phương pháp truyền thống hiển thị cảnh đồ họa 3D thời gian thực sử dụng ba pha riêng biệt APP, CULL, DRAW: APP làm nhiệm vụ cập nhật liệu động, bao gồm vị trí camera, vị trí đối tượng chuyển động, CULL phụ thuộc vào APP làm nhiệm vụ lọc cảnh xếp đối tượng theo độ ưu tiên khung nhìn để tăng tốc độ hiển thị cảnh đồng thời tùy thuộc vào việc cập nhật vị trí camera, tạo liệu hiển thị theo kiểu danh sách để pha DRAW vẽ cảnh lên hình Quá trình vẽ trình duyệt qua danh sách thông báo cho OpenGL xử lý ta xem hình 12 Hình 12: Ba pha hiển thị đồ họa thời Hình 13 - Chia pha thành nhiệm vụ song song cho hệ thống có nhiều hình gian thực hiển thị đồ họa Trong hệ thống có nhiều hình hiển thị đồ họa, CULL DRAW trở nên cần thiết pha sản sinh danh sách hiển thị thực vẽ hình khung nhìn khác Tuy nhiên hệ thống cần pha APP chung để cập nhật liệu Dưới trình tự yêu cầu cần thực theo quan điểm đa nhiệm cho nhiều hình hiển thị Với mô hình máy đơn cần xử lý pha theo thời kỳ (APP, CULL0, DRAW0, CULL1, DRAW1, CULL2, DRAW2…) Theo trình tự cần nhiều thời gian để thực khung hình qua trình tự thực pha Để phân nhiệm ta định hai nhiệm vụ sau miêu tả hình 13: ƒ Nhiệm vụ thực pha APP ƒ Nhiệm vụ CULL / DRAW cho hình Với hệ thống đa xử lý, tất nhiệm vụ thực song song xử lý riêng biệt Hơn nữa, CULL / DRAW chia phần để chạy song song hệ thống Có hai mô hình thực hệ thống xử lý song song: ƒ Chia cắt nhiệm vụ lớn thành nhiều nhiệm vụ nhỏ độc lập để thực song song nhiệm vụ máy để giảm bớt thời gian xử lý ƒ Thực nhiệm vụ lớn song song máy cho đồng thời gian hệ thống Với hai mô hình ta tách pha CULL/DRAW từ pha APP, sau tiếp tục chia pha CULL DRAW thành nhiều nhiệm vụ chạy song song riêng biệt theo mô hình thứ Ghép CULL/DRAW thành nhiệm vụ kép cho hệ thống hiển thị theo mô hình thứ hai Nhưng xuất vài vấn đề giai đoạn chạy song song Trước hết, pha phải xử lý liệu kỳ Nghĩa pha APP phải kết thúc làm việc liệu trước pha CULL Tương tự pha DRAW bắt đầu xử lý liệu mà pha CULL chưa làm việc xong Tuy nhiên, APP không cần phải đợi hai pha CULL DRAW làm việc xong mà xử lý liệu khung hình hệ thống vận hành theo Hình 11.3 mô tả Bên cạnh liệu dùng chung hai giai đoạn phải bảo vệ dùng đệm Bên cạnh liệu ghi pha giai đoạn đọc pha chạy song song hệ thống Điều đòi hỏi cần có hệ thống quản lý liệu lớn để xử lý liệu 3D Đây mô hình hãng SGI đưa có hiệu sản phẩm đồ họa hãng hình 14 Nhưng vài năm gần trở lên lạc hậu vài lý sau: ƒ Vấn đề thời gian thực, sản phẩm mô yêu cầu độ hiển thị khung hình 60 Hz nghĩa khung hình cần 16.667 mili giây để pha thực xong nhiệm vụ Vào năm 90, SGI phát triển kỹ thuật đồ họa thời gian thực với xử lý đạt yêu cầu hệ thống máy tính có tốc độ thấp so với Trong tốc độ đồ họa phụ thuộc nhiều vào hai pha APP CULL ƒ Hơn nữa, hệ thống băng thông rộng phát triển giảm bớt thời gian liên thông pha máy chủ máy trạm, với kỹ thuật xử lý đa luồng có kết khả quan ƒ Một vấn đề cuối cần thiết yêu cầu thiết bị mô phải đáp ứng tương tác người dùng Vì yêu cầu hình ảnh trực quan sinh động với tốc độ hiển thị thời gian thực Hình 14 - Mô hình xử lý song song "Truyền thống" 11.2 Cách tiếp cận Các ứng dụng đồ họa 3D chất lượng cao chạy phần cứng thời mong muốn có số khung hình lớn 60 cần phải có thời gian xử lý pha Pre - CULL (Có thể hiểu pha APP – theo mô hình cũ) CULL nằm khoảng mili-giây đến 3,5 mili-giây để thực khung hình Xét hệ thống xử lý đơn, hình hiển thị Với yêu cầu giảm bớt thời gian pha Pre – CULL CULL, sơ đồ pha có dạng hình 15 Hình 15 - Bộ xử lý đơn, hình hiển thị theo mô hình pha Pre – CULL CULL Qua sơ đồ ta thấy tất pha nằm khung hình, độ trễ giảm khung hình Nhưng pha DRAW chiếm nửa thời gian thực khung hình Các ứng dụng đồ họa có lợi từ đồ thị khung cảnh, mà pha CULL loại bỏ đối tượng không thuộc khung hình cần hiển thị để đưa vào nhánh đồ thị nhằm tối ưu hóa liệu Xét mô hình đa xử lý với nhiều hình hiển thị Cần phải tận dụng hết lợi ích hệ thống đa xử lý việc sử dụng luồng chạy pha Pre - CULL, pha CULL/DRAW hệ thống Để làm điều giả thiết hai khía cạnh quản lý liệu : 1) Dữ liệu ghi pha Pre –CULL có thuộc tính toàn cục 2) Dữ liệu sinh pha CULL mang tính cục tiếp cận cặp nhiệm vụ CULL/DRAW 11.3 Ứng dụng thiết kế Mô hình xử lý đa luồng đồ họa Mô hình tổng quát thiết kế theo sơ đồ chung hình 16: Luồng Chính Luồng thực Pre - CULL Khai báo hệ CPU đảm nhiệm nhiệm vụ CULL / DRAW Có thể chạy luồng đơn, luồng riêng biệt phụ thuộc vào mô hình xử lý chọn từ mục trước Điều xác định hostname hệ thống, tham số định CPU hệ thống làm việc với để hiển thị cảnh Hình 16 Mô hình xử lý song song tổng quát Có hai mô hình mục trước đề cập để thực mô hình đa nhiệm (multitask), đa hình hiển thị đồ họa (multi – display) Sự khác chỗ có định ghép hai pha CULL/DRAW thành hay không Ở đưa hai phương pháp phương pháp có đặc tính riêng Mô hình A Mô hình ghép hai pha CULL/DRAW thành nhiệm vụ kép miêu tả theo sơ đồ hình 17 Hình 17: Ba pha hiển thị đồ họa thời gian thực theo mô hình A Mô hình giả thiết khung hình thực theo thứ tự, dùng luồng cho nhiệm vụ kép CULL/DRAW Thời gian tiến trình B C thực theo sơ đồ hình 18 Pha Pre – Cull cập nhật liệu động đồ thị khung cảnh Dữ liệu động bao gồm vị trí camera, định vị đối tượng chuyển động bên cảnh, số khung hình thời gian trôi qua, đồng phương tiện quản lý liệu khác Dữ liệu giả thiết liệu toàn cục, cấp phát lấy ứng dụng Như vậy, pha CULL phải đợi Pre – CULL kết thúc tiến trình Khi pha Pre – Cull thực xong báo hiệu cho pha CULL thực CULL đọc liệu động cập nhật, sinh liệu để hiển thị, liệu mang tính cục không cho ứng dụng tiếp cận lấy từ pha DRAW Dữ liệu xử lý phân kỳ Pha DRAW duyệt qua danh sách hiển thị cảnh đồ họa Hình 18 Sơ đồ miêu tả quan hệ liệu pha mô hình A Mô hình B Mô hình tách riêng luồng riêng biệt cho hai pha CULL / DRAW hình 19 Hình 19: Ba pha hiển thị đồ họa thời gian thực theo mô hình B Dữ liệu cho mô hình mô tả theo sơ đồ hình 20 sau Hình 20 Sơ đồ miêu tả quan hệ liệu pha mô hình B Sơ đồ khác với sơ đồ mô hình A dùng luồng cho nhiệm vụ kép CULL/DRAW Ở pha DRAW không duyệt liệu cung cấp pha CULL cách trực tiếp mà qua hai đệm Dữ liệu phát sinh từ pha CULL ghi vào đệm Buffer pha vẽ đọc liệu từ đệm Buffer Khi đồng hai pha CULL DRAW trỏ tới đệm trao đổi Cách tiếp cận yêu cầu phân cảnh pha CULL cần có hai đệm cục bộ, phải bổ sung việc đồng hai pha CULL DRAW 11.4 Ứng dụng thư viện OpenSG xây dựng sản phẩm mô Hiện có nhiều thư viện đồ họa 3D tích hợp thuật toán xử lý song song cảnh đồ họa 3D thời gian thực cho phép xây dựng sản phẩm mô với liệu lớn Nổi bật thư viện OpenSG www.opensg.org OpenSG hệ thống thư viện nguồn mở ( LGPL) cho phép sử dụng tự Nó chạy IRIX, Windows Linux dựa OpenGL Yêu cầu sức mạnh tính toán ứng dụng gần vô hạn - yêu cầu lập trình tính toán chuyên ngành yêu cầu chất lượng cao hiển thị liệu Để làm điều cần phải có sức mạnh siêu máy tính nhóm máy xử lý theo chế song song Nhưng siêu máy tính đắt tiền nhiều lần Việc dùng nhiều máy tính theo chế song song ngày quan tâm xây dựng sản phẩm Dưới mô hình ứng dụng máy theo chế song song Hình 21 – Mô hình máy tính theo có chế xử lý song song hiển thị hình Trong sơ đồ cần ba máy: Máy trạm chạy ứng dụng thực hai pha APP CULL (cập nhật liệu, điều khiển tương tác người máy, thực tính toán mô chuyên ngành.) Hai máy chủ thực pha DRAW nghĩa hiển thị cảnh thông qua hai camera khác mô hai mắt nguời Với thư viện OpenSG ta thực xử lý song song 48 máy Hình 22 Một cảnh trả lại hai cửa sổ độc lập Hình ảnh cho thấy ba cửa sổ: nhỏ cho tương tác mô (sự chuyển động chuột hay bàn phím) Cả hai cửa sổ khác hiển thị cảnh thể hiển thị cửa sổ Để làm điều cần hai chương trình khác ( Client & Server) Giới toàn chương trình rút gọn Chương trình chạy máy trạm // all needed include files #include #include #include #include #include #include #include OSG_USING_NAMESPACE using namespace std; SimpleSceneManager *mgr; NodePtr scene; int setupGLUT( int *argc, char *argv[] ); int main(int argc, char **argv) { #if OSG_MINOR_VERSION > ChangeList::setReadWriteDefault(); #endif osgInit(argc,argv); int winid = setupGLUT(&argc, argv); //this time we'll have not a GLUTWindow here, but this one MultiDisplayWindowPtr multiWindow = MultiDisplayWindow::create(); //set some necessary values beginEditCP(multiWindow); // we connect via multicast multiWindow->setConnectionType("Multicast"); // we want two rendering servers multiWindow->getServers().push_back("Server1"); multiWindow->getServers().push_back("Server2"); endEditCP(multiWindow); //any scene here scene = makeTorus(.5, 2, 16, 16); // and the ssm as always mgr = new SimpleSceneManager; mgr->setWindow(multiWindow); mgr->setRoot (scene); mgr->showAll(); multiWindow->init(); glutMainLoop(); return 0; } void display(void) { //redrawing as usual mgr->redraw(); //the changelist should be cleared - else things //could be copied multiple times OSG::Thread::getCurrentChangeList()->clearAll(); // to ensure a black navigation window glClear(GL_COLOR_BUFFER_BIT); glutSwapBuffers(); } void reshape(int w, int h) { glutPostRedisplay(); } void mouse(int button, int state, int x, int y) { if (state) mgr->mouseButtonRelease(button, x, y); else mgr->mouseButtonPress(button, x, y); glutPostRedisplay(); } void motion(int x, int y) { mgr->mouseMove(x, y); glutPostRedisplay(); } int setupGLUT(int *argc, char *argv[]) { glutInit(argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); int winid = glutCreateWindow("OpenSG"); glutReshapeFunc(reshape); glutDisplayFunc(display); glutMouseFunc(mouse); glutMotionFunc(motion); return winid; } Chương trình chạy máy chủ #include #include #include #include #include OSG_USING_NAMESPACE using namespace std; GLUTWindowPtr window; RenderAction *ract; ClusterServer *server; void display(); void reshape( int width, int height ); int main(int argc,char **argv) { int winid; // initialize Glut glutInit(&argc, argv); glutInitDisplayMode( GLUT_RGB |GLUT_DEPTH | GLUT_DOUBLE); if (!argv[1]){ cout setId(winid); window->init(); //create a new server that will be connected via multicast //argv[1] is the name of the server (at least it should be ) server = new ClusterServer(window,argv[1],"Multicast",""); server->start(); glutMainLoop(); return 0; } void display() { //simply execute the render action server->render(ract); //and delete the change list OSG::Thread::getCurrentChangeList()->clearAll(); } void reshape( int width, int height ) { window->resize( width, height ); } 12 Môt số kết nghiên cứu Sử dụng kỹ thuật thời gian thực đồ họa ứng dựng thư viene OpenSG, xây dựng thành công mô hình song song, đa hình hiển thị nhiều máy Số khung hình đạt 60 fps bảo đảm việc tương tác qua lại người dùng, đáp ứng yêu cầu đạt thiết bị tập lái (Hiện ứng dụng sản phẩm hệ thống tập lái xe BMP-1 TTCN Mô thực cảnh 3D hiển thị hình 23) Hình 23 Cảnh chiều hệ thống tập lái xe BMP-1 13 Kết luận Với cách tiếp cận báo sử dụng lợi phần cứng để xây dựng mô hình đa nhiệm, song song, đa luồng đa hình hiển thị đồ họa Mô hình nêu ứng dụng tốt sản phẩm đồ họa yêu cầu có liệu lớn đòi hỏi tương tác thời gian thực Tuy vậy, việc hoàn thiện mô hình cần đầu tư thêm nhiều thời gian công sức, tập hợp lực lượng đông đảo giáo viên tham gia đội ngũ chuyên gia chuyên ngành Trong tương lai cần hoàn thiện thêm chức năng: • Quản lý hỗ trợ thiết bị thực ảo (Bao gồm bàn phím, chuột joistick, Trackball) 14 Tài liệu tham khảo [1] Open Scenegraph, (Robert Osfield) 2004 www.openscenegraph.org [2] Open SG, (Dirk Reiners) 2000 www.opensg.org [3] Silicon Graphics Inc SGI OpenGL Optimizer Whitepaper http://www.sgi.com/software/optimizer/whitepaper.pdf, 1998 [4] Net Juggler Guide, (Allard, J et al) http://netjuggler.sourceforge.net 2001 [5] MPI: The Complete Reference, (Snir, M et al) MIT Press, 1996 [6] osgVRPN: http://mew.cx/osg/ [7] VRPN: http://www.cs.unc.edu/Research/vrpn/ [8] OpenThread: http://openthread.sourceforge.net 2004 [9] Open Producer : http://Producer.sourceforge.net 2004

Ngày đăng: 21/11/2016, 02:48

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Open Scenegraph, (Robert Osfield) 2004. www.openscenegraph.org [2]. Open SG, (Dirk Reiners) 2000. www.opensg.org Sách, tạp chí
Tiêu đề: Open Scenegraph", (Robert Osfield) 2004. www.openscenegraph.org [2]. "Open SG
[4]. Net Juggler Guide, (Allard, J. et al) http://netjuggler.sourceforge.net 2001 [5]. MPI: The Complete Reference, (Snir, M. et al) MIT Press, 1996 Sách, tạp chí
Tiêu đề: Net Juggler Guide", (Allard, J. et al) http://netjuggler.sourceforge.net 2001 [5]. "MPI: The Complete Reference
[3]. Silicon Graphics Inc. SGI OpenGL Optimizer Whitepaper. http://www.sgi.com/software/optimizer/whitepaper.pdf, 1998 Link
[6]. osgVRPN: http://mew.cx/osg/ Link
[7]. VRPN: http://www.cs.unc.edu/Research/vrpn/ Link
[8]. OpenThread: http://openthread.sourceforge.net 2004 Link
[9]. Open Producer : http://Producer.sourceforge.net 2004 Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w