Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
528,51 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Hoàng Thế Tùng XÂY DỰNG HỆ THỐNG GIẢI BÀI TOÁN SMT HIỆU NĂNG CAO – PHẦN MÁY TRẠM KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ phần mềm Cán hướng dẫn: TS Trương Anh Hoàng Cán đồng hướng dẫn: TS Phạm Ngọc Hùng HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Lời cảm ơn Trước hết, xin gửi lời cảm ơn chân thành sâu sắc đến Tiến sỹ Trương Anh Hoàng Tiến sỹ Phạm Ngọc Hùng, người trực tiếp hướng dẫn tơi suốt q trình nghiên cứu phát triển đề tài nghiên cứu Để có kết nghiên cứu nay, vô biết ơn quan tâm, hướng dẫn nhiệt tình hai thầy thời gian vừa qua Tơi xin chân thành cảm ơn thầy cô trường Đại học công nghệ, Đại học Quốc Gia Hà Nội nói chung, thầy khoa cơng nghệ thơng tin nói riêng, người nhiệt tình giảng dạy, giúp tơi có kiến thức q báu để tơi hồn thành đề tài luận văn Tơi xin bày tỏ lịng cảm ơn đến anh chị cao học, bạn nhóm nghiên cứu tơi tìm hiểu xây dựng hồn chỉnh hệ thống giải toán Satisfiability Modulo Theories (SMT) với hiệu cao, giúp tơi hồn thành tốt phần nghiên cứu Và cuối cùng, tơi xin gửi lời cảm ơn đến gia đình, bạn bè người thân bên cạnh, động viên giúp tơi hồn thành tốt luận văn Hà Nội, tháng 05/2010 Hoàng Thế Tùng Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Tóm tắt nội dung Vấn đề giải toán Satisfiability Modulo Theories (SMT) nghiên cứu phát triển nhiều nơi giới Cho đến ngày nay, nhiều trường đại học, tổ chức nghiên cứu đưa giải giải toán SMT (hay cịn gọi SMT solver) Ví dụ Z3 Mcrosoft, yices SRI, CVC3 số trường đại học danh tiếng Mỹ hay boolector, openSMT số trường đại học danh tiếng khác… Tuy nhiên, solver có lợi ưu điểm riêng dạng khác toán SMT Vậy vấn đề đặt để tận dụng hết ưu điểm cho tốn Để giải vấn đề ấy, nhóm nghiên cứu nghiên cứu xây dựng hệ thống giải toán SMT trực tuyến, kết hợp nhiều giải khác để đưa lời giải tối ưu cho tốn SMT Trong khn khổ khóa luận tốt nghiệp cá nhân tôi, xây dựng hai hệ thống hệ thống nêu hệ thống máy khách (users) máy trạm (sử dụng để gọi Solver) Hệ thống máy khách đảm nhiệm việc cung cấp giao diện lập trình ứng dụng (Application Programming Interface hay API) để người dùng sử dụng xây dựng toán SMT theo chuẩn thư viện SMT (SMTLIB) sau gửi tốn đến máy chủ (server) Hệ thống máy trạm tiếp nhận toán từ máy chủ gọi giải để giải tốn gửi máy chủ kết Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Mục lục Chương Mở đầu 1.1 Giới thiệu 1.2 Bài toán đặt 1.3 Cấu trúc nội dung tài liệu Chương Kiến thức tảng 2.1 Giới thiệu SMT 2.2 Bộ giải SMT (SMT solver) 2.3 Thư viện SMT (SMT-LIB) 2.3.1 Cấu trúc SMT-LIB 2.3.2 Khuôn dạng SMT-LIB Chương Phân tích hệ thống 12 3.1 Mơ hình hệ thống 12 3.2 Mô hình ca sử dụng hệ thống 13 3.3 Mô hình hoạt động 15 Chương Phương hướng giải vấn đề 17 4.1 Lựa chọn phương thức kết nối 17 4.2 Lựa chọn ngôn ngữ lập trình 17 4.3 Xác định liệu đầu vào, đầu hệ thống 17 Chương Mô tả hệ thống 19 5.1 Quy định cách thức giao tiếp với máy chủ 19 5.2 Phần máy khách 20 5.2.1 Quy định giao tiếp với máy chủ 20 5.2.2 Các lớp hệ thống máy khách 21 5.2.2.1 Lớp config 21 5.2.2.2 Lớp Client: 21 5.2.2.3 Lớp NetSolver 21 5.2.2.4 Lớp Bench_attribute 22 5.2.2.5 Lớp Formula 22 5.2.2.6 Lớp func_decl 23 5.2.2.7 Lớp pred_decl 24 Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 5.2.2.8 Lớp Term 24 5.2.2.9 Lớp annotation 24 5.2.2.10 Lớp varDecl 24 5.2.2.11 Lớp fvarDecl 24 5.2.2.12 Lớp Arith_symb 25 5.2.2.13 Lớp Identifier 25 5.2.2.14 Lớp quant_var 25 5.3 Phần máy trạm 26 5.3.1 Cơ chế làm việc máy trạm 26 5.3.2 Quy định giao tiếp với máy chủ 27 5.3.3 Hoạt động hệ thống máy trạm 28 5.3.4 Các lớp hệ thống máy trạm 30 5.4 5.3.4.1 Biểu đồ lớp hệ thống 30 5.3.4.2 Lớp config 30 5.3.4.3 Lớp sessionID 30 5.3.4.4 Lớp Solver 31 5.3.4.5 Lớp ReadThread 31 5.3.4.6 Lớp WriteThread 34 Tổng kết 34 Chương Cài đặt thử nghiệm 36 6.1 Cài đặt 36 6.2 Bài toán thực nghiệm 36 6.2.1 Xây dựng toán SMT dựa hàm API 36 6.2.2 Thử nghiệm kết nối với máy chủ toàn hệ thống 37 Hướng phát triển hệ thống 40 Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Danh sách bảng tài liệu Bảng 1: Luật sinh toán hạng Bảng 2: Luật sinh công thức Bảng 3: Luật sinh thuyết Bảng 4: Luật sinh logic Bảng Luật sinh chuẩn Bảng 6: Các lý thuyết quy chuẩn SMT-LIB 1.2 Bảng 7: Các Logic quy chuẩn đưa SMT-LIB 1.2 10 Bảng Bảng liệu tệp tin đầu vào thử nghiệm 37 Bảng 9: Kết thời gian thực nghiệm 37 Bảng 10: Kêt trả thực nghiệm 38 Danh sách hình tài liệu Hình 3.1 Mơ hình hệ thống giải toán SMT hiệu cao 12 Hình 3.2: Mơ hình ca sử dụng hệ thống 14 Hình 3.3: Mơ hình hoạt động hệ thống 15 Hình 5.1: Biểu đồ lớp hệ thống máy trạm 30 Danh sách từ viết tắt tài liệu Từ viết tắt Từ chuẩn SMT Satisfiability Modulo Theories SMT-LIB API Satisfiability Modulo Theories Liblary Application Programming Interface Diễn giải Các lý thuyết module tính thỏa Thư viện lý thuyết module tính thỏa Giao diện lập trình ứng dụng Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Cơng nghệ - ĐH QGHN GVHD: TS Trương Anh Hồng GVĐHD: TS Phạm Ngọc Hùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Chương Mở đầu 1.1 Giới thiệu Hiện nay, với phát triển bùng nổ hầu hết ngành khoa học, ngành khoa học máy tính có tiến to lớn Song song với đó, nhu cần nghiên cứu việc giải đưa tính khả thi biểu thức logic ngày quan tâm phát triển Bởi lẽ, nhiều ứng dụng hay tính tốn ngành khoa học máy tính cần đến cơng thức logic phức tạp Trong khoảng hai thập niên gần đây, ngành khoa học máy tính có tiến lớn việc tự động chứng minh hay bác bỏ tính đắn biểu thức logic Tuy nhiên việc chứng minh biểu thức logic khó khăn nhiều đặt chúng lý thuyết thay chứng minh cách tổng quát [1,2] Những vấn đề gọi lý thuyết module tính thỏa (Satisfiability Modulo Theories hay viết tắt SMT [1]) Cho đến nay, nhiều trường đại học nhà nghiên cứu khoa học máy tính có nghiên cứu, sản phẩm để giải vấn đề Tuy nhiên, việc xây dựng giải vấn đề SMT tối ưu cho trường hợp khó khăn Vì vậy, vấn đề đặt kết hợp giải SMT để có giải tối ưu mặt thời gian 1.2 Bài toán đặt Đối với việc giải vấn đề SMT, nhiều trường đại học quan, tổ chức lớn giới có nghiên cứu đưa sản phẩm Tuy nhiên, với sản phẩm, họ đưa vào thuật toán khác để giải vấn đề Trong khuôn khổ đồ án, việc nghiên cứu chế, tính đắn giải không đề cập đến (kết đưa giải coi đắn) mà tập trung vào việc sử dụng giải công cụ giải vấn đề SMT đưa vào Với kết đưa giải này, cần có kết trả trả tối ưu mặt thời gian Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Để giải vấn đề nói trên, cần có hệ thống phân phối vấn đề SMT cho giải nhận kết trả tối ưu mặt thời gian Ngoài để tiện cho việc sử dụng phát triển hệ thống, cần có thư viện hàm nhúng hỗ trợ người sử dụng xây dựng vấn đề SMT 1.3 Cấu trúc nội dung tài liệu Tài liệu nhằm giới thiệu tốn SMT mơ tả hệ thống giải tốn trực tuyến Chương mở đầu tài liệu giới thiệu qua toán SMT toán đặt cho việc xây dựng hệ thống giải tốn SMT Chương thứ hai tài liệu đề cập tới số kiến thức SMT cấu trúc, khn dạng tốn SMT xây dựng theo chuẩn SMT-LIB Chương coi kiến thức tảng để xây dựng hệ thống giải toán SMT hiệu cao Những kiến thức chương sử dụng để xây dựng hàm API cho hệ thống máy khách số thành phần hệ thống máy trạm Chương ba chương bốn phần phân tích hướng giải vấn đề xây dựng hệ thống giải toán SMT hiệu cao Chương ba tập trung vào vấn đề phân tích, đưa nhìn tổng quan hệ thống quy trình hệ thống hoạt động Chương bốn số lựa chọn giải pháp để giải số vấn đề xây dựng hệ thống Hệ thống giải toán SMT hiệu cao phần máy trạm máy khách mô tả chi tiết chương năm Ở chương này, hệ thống hàm API máy khách mơ tả chi tiết coi tài liệu hướng dẫn cho người dùng sử dụng hàm API Chương sáu đưa phần thực nghiệm đánh giá kết hệ thống Trong chương này, kết số thực nghiệm hệ thống đưa nhằm đưa số ưu điểm mà hệ thống có Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Cơng nghệ - ĐH QGHN GVHD: TS Trương Anh Hồng GVĐHD: TS Phạm Ngọc Hùng Trang LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 Chương Kiến thức tảng 2.1 Giới thiệu SMT Tính thỏa mãn vấn đề quan trọng ngành khoa học máy tính Các vấn đề cần tính thỏa mãn ứng dụng phát triển phần cứng phần mềm, đặc biệt kiểm định phần cứng, kiểm thử, lập lịch, đồ thị [3] Trong lĩnh vực nói trên, nhiều ứng dụng xây dựng dựa việc tạo công thức tiền tố việc chứng minh tính hợp lệ chúng Cho dù hai thập niên gần đây, việc chứng minh tính hợp lệ định lý, biểu thức tiền tố có tiến đáng kể, nhiên, công thức chứng minh cách tự động Lý vấn đề lẽ nhiều công thức khơng quan tâm đến tính khả thi trường hợp tổng quát mà quan tâm lý thuyết tảng [2,1] Việc nghiên cứu tính khả thi công thức lý thuyết tảng gọi lý thuyết module tính thỏa (Satisfiability Modulo Theories hay SMT) công cụ để chứng minh cách tự động tính khả thi đề SMT gọi giải SMT (SMT solver) Lý thuyết SMT đề cập cụ thể phần giới thiệu thư viện SMT 2.2 Bộ giải SMT (SMT solver) Trên thực tế, việc xây dựng sử dụng giải SMT phát triển sớm, từ đầu năm 1980 Tại thời điểm đó, số giải xây dựng Greg Nelson Derek Oppent trường đại học Stanford , Robert Shostak SRI, Robert Boyer J Moore trường đại học Texas Đến cuối năm 1990, việc nghiên cứu SMT đại dựa lợi công nghệ SAT xây dựng nhiều giải SMT tiến [4] Như đề cập trên, khuôn khổ đồ án, việc đánh giá tính đắn, nghiên cứu thuật giải giải không đề cập đến Vấn đề Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 đặt kết giải đưa sớm Hiện nay, có nhiều giải Absolver, Boolector, CVC3, OpenSMT, Yices, Z3… Do yêu cầu hệ thống phải đưa giá trị thỏa mãn (nếu tốn SMT có thỏa mãn) nên giải hệ thống sử dụng phải hỗ trợ chức Ngoài hệ thống sử dụng đầu vào theo chuẩn SMT-Lib ngắt thời gian giải toán (trong trường hợp toán cần thời gian giải lớn), đó, giải cần phải có hỗ trợ chức hoạt động Từ yêu cầu đó, nhóm nghiên cứu phát triển hệ thống định sử dụng song song hai giải Yices SRI International Z3 Microsoft Hai giải có cấu trúc khác dựa thuật giải DPLL (Davis-Putnam-Logemann-Loveland) [5] Việc tìm hiểu, phân tích cấu trúc thuật tốn hai giải không đề cập cụ thể 2.3 Thư viện SMT (SMT-LIB) Đề giải vấn đề SMT, việc nghiên cứu đưa chuẩn đầu vào cần thiết Thơng thường, giải SMT có quy định riêng cho chuẩn đầu vào mình, nhiên thực khó khăn việc thực thi đầu vào giải khác Vì vậy, việc nghiên cứu đưa chuẩn đầu vào thống cần thiết Khoảng tháng tư năm 2004, Silvio Rainise Cesare Tinelli đưa chuẩn SMT-LIB [6] Thời gian sau đó, họ liên tục cải tiến chuẩn đầu vào, bổ sung quy định chuẩn, thuyết Cho đến nay, hai tác giả xây dựng chuẩn SMT-LIB có phiên 2.0, nhiên việc xây dựng đầu vào dựa chuẩn chưa phổ biến Hầu hết giải đầu vào cho vấn đề SMT-LIB sử dụng chuẩn 1.2 mà họ xây dựng vào khoảng tháng năm 2006 2.3.1 Cấu trúc SMT-LIB Như nói trên, vấn đề SMT việc kiểm tra biểu thức logic φ có thỏa mãn hay không lý thuyết T hay có khn mẫu T khả thi Vì vậy, kiến trúc SMT-LIB thường bao gồm vấn đề sau [7]: Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 5.3.2 Quy định giao tiếp với máy chủ Do toàn hệ thống cài đặt trực tuyến, nên trường hợp nhận nhiều toán thời điểm hồn tồn xảy Để xác định kết toán tương ứng với toán nhận trước đó, cần có đánh dấu thứ tự cho tốn Nhóm nghiên cứu đưa thống sử dụng mã sessionID tạo máy chủ gửi kèm với nội dung Việc sử dụng mã sessionID giúp hệ thống tránh nhầm lẫn hai hay nhiều toán gửi lên lúc Quy trình kết nối giữu máy trạm máy chủ sau: - Sau kết nối đến máy chủ, hệ thống cài đặt máy trạm gửi lời chào hỏi đến máy chủ thông qua thẻ cặp thẻ chào hỏi sau: - [Tên chương trình giải toán SMT] Máy chủ sau nhận lời chào gửi đến nội dung toán SMT mà máy khách gửi lên yêu cầu giải Việc gửi liệu bắt đầu thẻ mở kèm thêm mã sessionID trước Mỗi dịng liệu tốn gửi lên kèm theo sessionID tốn thẻ đóng gửi lên: sessionID | sessionID | [nội dung dòng liệu thứ 1] … sessionID | [nội dung dòng liệu thứ n] sessionID | - Sauk hi nhận liệu từ tệp tin chứa toán SMT, hệ thống nhận trễ thời gian giới hạn thực thi toán Việc nhận trễ thời gian giới hạn quy định sau: sessionID | sessionID | [trễ thời gian] sessionID | Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 - Sau có liệu đầy đủ tốn hệt thống gọi chương trình giải tốn SMT để thực việc giải tốn Sau có kết quả, hệ thống gửi lại máy chủ theo quy chuẩn sau: - sessionID | sessionID | [nội dung dòng kết trả thứ 1] … sessionID | [nội dung dòng kết trả thứ 2] sessionID | Sau gửi kết quả, hệ thống tiếp tục nhận chờ toán mà máy chủ gửi đến 5.3.3 Hoạt động hệ thống máy trạm Với toán, hệ thống ghi vào tệp tin có tên sessionID tốn với phần mở rộng smt Và lời giải tốn lưu trữ vào tệp tin có tên sessionID Hiện tại, giới có nhiều giải toán SMT, nhiên, khuôn khổ luận văn này, hệ thống cài đặt thử nghiệm hai giải yices SRI international Z3 Microsoft Mỗi giải cài đặt máy trạm khác với hệ thống xây dựng trình bày Do giải chương trình chạy độc lập, nên hệ thống cần có lời gọi thực thi tới chúng Tuy ngơn ngữ lập trình Java có hỗ trợ việc gọi lệnh hệ điều hành, nhiên để kết xuất kết tệp tin, hệ thống sử dụng trình chuyển hướng kết xuất hệ điều hành sử dụng Do điệu kiện không cho phép, hệ thống cài đặt máy trạm triển khai kiểm thử máy sử dụng điều hành windows hệ hiều hành có nhân Linux Và để sử dụng chuyển hướng kết xuất hệ điều hành khác nhau, hệ thống xây dựng tệp tin thực thi để hỗ trợ hệ thống gọi giải SMT Nội dung tệp tin hỗ trợ sau: - Đối với tệp tin bat cài đặt hệ điều hành windows @echo off [path]\yices.exe -e -tm %2 -smt [path]\%1.smt > [path]\%1.txt echo done! Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 - Đối với tệp tin thực thi (tệp tin thiết lập thuộc tính thực thi) cài đặt hệ điều hành Linux: - [path]/z3.exe /m /t:$2 /smt [path]/$1.smt > [path]/$1.txt echo done! Ở đây, [path] đường dẫn đến tệp tin (thư mục) chương trình giải SMT %1 nhận vào sesstionID toán %2 tham số thời gian ngắt chương trình (được tính giây) - Với giải yices, ta sử dụng tham số -e để đưa kết thỏa mãn tốn khả thi Tham số –tm để xác định trễ thời gian ngắt timeout, tham số -smt để xác định đầu vào giải tệp tin theo chuẩn SMT-LIB - Với giải z3, tương tự ta có tham số /m tương đương với –e, /t: tương đương với –tm /smt tương đương với –smt giải yices - Cả hai giải yices z3 hỗ trợ cài đặt windows Linux, vậy, tùy vào điệu kiện máy trạm, tệp tin thực thi sửa cho phù hợp với hệ điều hành cài đặt (không thiết cài đặt yices hệ điều hành windows z3 linux) Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Cơng nghệ - ĐH QGHN GVHD: TS Trương Anh Hồng GVĐHD: TS Phạm Ngọc Hùng Trang 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 5.3.4 Các lớp hệ thống máy trạm 5.3.4.1 Biểu đồ lớp hệ thống Hình 5.1: Biểu đồ lớp hệ thống máy trạm 5.3.4.2 Lớp config Lớp config chứa quy định địa chỉ, cổng thẻ giao tiếp với máy chủ máy trạm Ngồi ra, lớp cịn quy định tên đường dẫn giải cài đặt máy trạm Việc xây dựng lớp config khiến cho việc quản lý cấu hình cho hệ thống dễ dàng 5.3.4.3 Lớp sessionID Để xác định liệu tốn, tránh nhầm lẫn nhận nhiều dịng liệu từ nhiều toán lúc, để gửi lời giải cho toán đưa ra, ngồi việc quy định mã sessionID cho tốn, cần phải tổ chức liệu hợp lý Đối với kết toán gửi đến, ta cần đưa kết vào Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Cơng nghệ - ĐH QGHN GVHD: TS Trương Anh Hồng GVĐHD: TS Phạm Ngọc Hùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 tệp tin với tệp tin sessionID toán đó, gửi lại máy chủ session ID kèm nội dung tệp tin Cịn việc đọc liệu đầu vào, hệ thống xây dựng lớp sessionID có mảng đối tượng lớp liệu Lớp session ID bao gồm thuộc tính sau: - sessionID: thuộc tính lưu lại sessionID - content: Thuộc tính lưu lại nội dung tốn tương ứng với sessionID gửi lên - Timeout: thời gian ngắt toán gửi lên - runSolver: tiến trình gọi giải để giải tốn gửi lên Mỗi đối tượng lớp sessionID tương ứng với toán gửi lên Nội dung tốn lưu thuộc tính content lớp Mỗi tiến trình xử lý khai báo thuộc tính runSolver lớp Việc đưa tiến trình xử lý gọi giải để giải tốn vào thành thuộc tính lớp sessionID nhằm giải vấn đề ngắt tiến trình có u cầu từ phía máy chủ Khi máy chủ nhận kết tốn từ máy trạm có cài đặt giải khác gửi lên tín hiệu ngắt cho máy trạm cịn thực thi tiến trình giải tốn ấy, việc ngắt tiến trình tương ứng với sessionID mà máy chủ gửi lên gọi 5.3.4.4 Lớp Solver Lớp xây dựng để thực nhiệm vụ mở kết nối có lời chào hỏi trước thực thao tác khác sau 5.3.4.5 Lớp ReadThread Lớp xây dựng để đáp ứng việc đọc liệu từ máy chủ gửi lên máy trạm Sau kết nối máy chủ máy trạm, hệ thống máy trạm ln đảm bảo việc lắng nghe tín hiệu từ máy chủ Để đảm bảo rằng, ln nhận nhiều dịng liệu từ nhiều tốn khác lúc Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 while (true){ _return = in.readLine(); //Đọc liệu gửi lên từ phía máy chủ if (_return.indexOf(config._tag_file)>=0){ openFile(_return); // Tạo tệp tin lưu trữ toán } else if(_return.indexOf(config._closetag_file)>=0){ } else if(_return.indexOf(config._tag_timeout)>=0){ sec[k].setTimeout(_return.substring(p+1));//đặt trễ thời gian cho toán closeFile(_return); // } else if(_return.indexOf(config._tag_destroy)>=0){ k = pos(_return); // xác định tốn cần ngắt interruptSolver(k); // Ngắt tiến trình xử lý toán } else { k = pos(_return); String content = _return.substring(p+1); sec[k].content += content + "\n"; //lưu lại nội dung toán } } Vấn đề kiểm soát nhớ (mảng đối tượng sessionID) đánh dấu việc toán giải xong hay chưa Khi sessionID nhận về, phần tử mảng đối tượng sessionID mà có trạng thái rảnh khởi tạo lưu lại đó, trạng thái tương ứng sessionID bật bận Do việc giải phóng nhớ phụ thuộc vào việc tốn giải xong hay chưa, trạng thái sessionID khai báo lớp đối tượng tiến trình ghi liệu Tức tương ứng với mảng đối tượng lớp sesstionID, có mảng đối tượng ghi liệu kết trả khởi tạo Sinh viên: Hoàng Thế Tùng – K51CNPM – Khoa CNTT - ĐH Công nghệ - ĐH QGHN GVHD: TS Trương Anh Hoàng GVĐHD: TS Phạm Ngọc Hùng Trang 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xây dựng hệ thống giải toán SMT hiệu cao – Phần máy trạm 2010 public ReadThread(Socket sk){ try { for (int i = 0;i