Tính cận trên bộ nhớ LOG của chương trình sử dụng giao dịch (Tóm tắt trích đoạn)

12 145 0
Tính cận trên bộ nhớ LOG của chương trình sử dụng giao dịch (Tóm tắt  trích đoạn)

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN PHAN TÌNH TÍNH CẬN TRÊN BỘ NHỚ LOG CỦA CHƢƠNG TRÌNH SỬ DỤNG GIAO DỊCH LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN Hà Nội - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN PHAN TÌNH TÍNH CẬN TRÊN BỘ NHỚ LOG CỦA CHƢƠNG TRÌNH SỬ DỤNG GIAO DỊCH Ngành: Công Nghệ Thông Tin Chuyên ngành: Kỹ thuật Phần Mềm Mã số: 60480103 LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS Trƣơng Anh Hoàng Hà Nội - 2016 LỜI CAM ĐOAN Tôi xin cam đoan luận văn thực hiện, đƣợc hoàn thành dƣới hƣớng dẫn trực tiếp từ PGS.TS.Trƣơng Anh Hoàng Các trích dẫn có nguồn gốc rõ ràng, tuân thủ tôn trọng quyền tác giả Luận văn không chép nguyên từ nguồn tài liệu khác Nếu có sai sót, xin chịu trách nhiệm Học viên Nguyễn Phan Tình LỜI CẢM ƠN Để hoàn thành đề tài luận văn bên c nh chủ động cố gắng th n đ nhận đƣợc ủng hộ gi p đ nhiệt t nh từ c c tập thể c nh n trƣờng Qua đ y cho phép đƣợc bày t l ng cảm ơn s u sắc tới thầy PGS.TS.Trƣơng Anh Hoàng giảng viên trƣờng Đ i học công nghệ – Đ i học Quốc gia Hà Nội ngƣời đ trực tiếp động viên định hƣớng hƣớng dẫn tận t nh qu tr nh học tập hoàn thành đề tài luận văn Đồng k nh g i lời cảm ơn đến tập thể c c thầy cô gi o trƣờng Đ i học Công Nghệ – Đ i học Quốc gia Hà Nội đ trau dồi kiến thức cho điều đ tảng qu b u g p phần to lớn qu tr nh vận dụng vào hoàn thiện luận văn Cuối c ng xin đƣợc g i l ng biết ơn s u sắc đến gia đ nh b n b đồng nghiệp đ t o điều kiện vật chất c ng nhƣ tinh thần s t c nh bên động viên gi p yên t m học tập kết th c kh a học Tôi xin ch n thành cảm ơn MỤC LỤC LỜI CẢM ƠN DANH MỤC CÁC KÝ HIỆU, THUẬT NGỮ, CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG .7 DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU Tính cấp thiết đề tài Mục tiêu nghiên cứu Phƣơng ph p nghiên cứu Cấu trúc luận văn CHƢƠNG GIỚI THIỆU BÀI TOÁN .10 1.1 Giới thiệu 10 1.2 Hƣớng tiếp cận 11 1.3 Ví dụ minh họa 11 CHƢƠNG MỘT SỐ KIẾN THỨC CƠ SỞ 14 2.1 Hệ thống kiểu .14 2.1.1 Giới thiệu hệ thống kiểu .14 2.1.2 Các thuộc tính hệ thống kiểu 16 2.1.3 Các ứng dụng hệ thống kiểu .16 2.2 Giao dịch nhớ giao dịch phần mềm ( Software Transactional Memory- STM) 18 2.2.1 Giao dịch (Transaction) 18 2.2.2 Bộ nhớ giao dịch phần mềm (Software Transactional Memory- STM) .19 CHƢƠNG NGÔN NGỮ GIAO DỊCH .21 3.1 Cú pháp TM [1] 21 3.2 Các ngữ nghĩa động 21 3.2.1 Ngữ nghĩa cục 21 3.2.2 Ngữ nghĩa toàn cục .22 CHƢƠNG HỆ THỐNG KIỂU CHO CHƢƠNG TRÌNH GIAO DỊCH 24 4.1 Các kiểu .24 4.2 Các quy tắc kiểu .27 CHƢƠNG XÂY DỰNG CÔNG CỤ VÀ THỰC NGHIỆM 30 5.1 Giới thiệu ngôn ngữ lập trình/ tảng .30 5.2 Xây dựng công cụ thực nghiệm 30 5.2.1 Thuật toán rút gọn (chính tắc hóa) chuỗi 31 5.2.2 Thuật toán Cộng (Joint) 33 5.2.3 Thuật toán gộp (Merge) 34 5.2.4 Thuật toán JoinCommit 37 5.2.5 Thuật toán tính cận tài nguyên chƣơng tr nh giao dịch 40 KẾT LUẬN 50 TÀI LIỆU THAM KHẢO 51 DANH MỤC CÁC KÝ HIỆU, THUẬT NGỮ, CHỮ VIẾT TẮT STT CHỮ VIẾT TẮT, THUẬT NGỮ, KÝ HIỆU GIẢI NGHĨA CHỮ VIẾT TẮT TM – Transactional Ngôn ngữ để viết chƣơng tr nh giao dịch Memory STM Software Bộ nhớ giao dịch phần mềm, giải pháp viết Transactional Memory c c chƣơng tr nh song song THUẬT NGỮ 10 11 12 13 14 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Type System Transaction illegal memory reference Data corruption Thread Type checker Type checking Well-behaved Well-formed Ill-behaved Well-typed Ill-typed ADT-Abstract Data Type Illegal instruction Atomicity Consistency Isolation Durability Onacid Commit Nested transactions Multi-threaded Spawn Joint commits Local semantics Global semantics Local enviroments Global enviroments Hệ thống kiểu Giao dịch Tham chiếu nhớ không hợp lệ Hƣ h ng liệu Luồng Bộ kiểm tra kiểu Trình kiểm tra kiểu Tính chất hành x đ ng chƣơng tr nh Tính chất thiết lập đ ng chƣơng tr nh Tính chất hành x yếu chƣơng tr nh Định kiểu tốt Định kiểu yếu Kiểu liệu trừu tƣợng Lệnh không hợp lệ Tính nguyên t Tính quán T nh độc lập Tính bền vững Tr ng thái mở giao dịch Tr ng thái kết thúc giao dịch Các giao dịch lồng Đa luồng Sinh luồng Các commit luồng song song đồng thời thực kết thúc giao tác chung Ngữ nghĩa cục Ngữ nghĩa toàn cục Môi trƣờng cục Môi trƣờng toàn cục 33 Syntax + n - n # n ¬ n Cú pháp KÝ HIỆU Mô tả thành phần + hệ thống kiểu dựa chuỗi số có dấu, mở giao dịch c k ch thƣớc n đơn vị nhớ Mô tả thành phần – hệ thống kiểu dựa chuỗi số có dấu, m thao tác commit liên tiếp Mô tả thành phần # hệ thống kiểu,chỉ số đơn vị nhớ lớn đƣợc s dụng thành phần n Mô tả thành phần ¬ thể số luồng c ng đồng t i thời điểm joint commits DANH MỤC CÁC BẢNG Bảng 3.1 Bảng cú pháp TM 21 Bảng 3.2 Bảng ngữ nghĩa động TM 23 Bảng 4.1 Các quy tắc kiểu 27 Bảng 5.1 Bảng kết kiểm th hàm rút gọn 33 Bảng 5.2 Bảng kết kiểm th hàm cộng 34 Bảng 5.3 Bảng kết kiểm th hàm gộp 37 Bảng 5.4 Bảng kiểm th hàm JoinCommit 40 DANH MỤC CÁC HÌNH VẼ H nh 1.1 Đo n mã cho mô hình giao dịch lồng đa luồng 11 Hình 1.2 Mô hình giao dịch lồng đa luồng 12 Hình 2.1 Hệ thống kiểu trinh biên dịch .17 Hình 2.2 Các tr ng thái giao dịch 18 Hình 4.1 Các luồng song song Joincommit 28 Hình 5.1 Hình mô tả c c giai đo n tính cận tài nguyên nhớ log 40 Hình 5.2 Mô hình giao dịch lồng đa luồng cho ví dụ 5.1 41 Hình 5.3 Mô tả giai đo n thuật toán tính tài nguyên 41 Hình 5.4 Mô hình giao dịch lồng đa luồng cho thực nghiệm .45 Hình 5.5 Màn hình kết thực nghiệm 45 Hình 5.6 Mô hình giao dịch lồng đa luồng cho thực nghiệm .46 Hình 5.7 Màn hình kết thực nghiệm 46 Hình 5.8 Mô hình giao dịch lồng đa luồng cho thực nghiệm .47 Hình 5.9 Màn hình kết ch y thực nghiệm 47 Hình 5.10 Mô hình giao dịch cho thực nghiệm 48 Hình 5.11 Màn hình kết thực nghiệm 48 Hình 5.12 Mô hình giao dịch lồng đa luồng cho thực nghiệm .49 Hình 5.13 Màn hình kết thực nghiệm 49 MỞ ĐẦU Tính cấp thiết đề tài Cùng với phát triển nhƣ v b o khoa học công nghệ, vi x lý đ i ngày thể sức m nh qua nhiều nhân (core) với tốc độ x lý ngày cao Có đƣợc nhƣ bên vi x lý đƣợc thiết kế luồng (thread) có khả ch y x lý song song Trƣớc đ y để lập trình đa luồng, ngƣời ta s dụng chế đồng (synchronization) dựa kh a (lock) để p đặt giới h n quyền truy cập tài nguyên môi trƣờng có nhiều luồng thực thi.Tuy nhiên, áp dụng phƣơng ph p thƣờng nảy sinh vấn đề nhƣ khóa chết (deadlock) lỗi tiềm tàng… Software Transactional Memory (STM- nhớ giao dịch phần mềm) [8] giải ph p đơn giản nhƣng vô c ng m nh mẽ mà giải đƣợc hầu hết vấn đề N đ thay hoàn toàn giải ph p c việc truy cập nhớ dùng chung STM giao tiếp với nhớ thông qua giao dịch Các giao dịch cho phép tự đọc ghi để chia sẻ biến vùng nhớ gọi log đƣợc s dụng để ghi l i ho t động kết thúc giao dịch Một mô hình giao dịch phức t p s dụng STM mô hình giao dịch lồng đa luồng (nested and multi-threaded transaction) [5] Trong trình thực thi c c chƣơng tr nh giao dịch lồng đa luồng, luồng đƣợc sinh giao dịch đƣợc bắt đầu, vùng nhớ gọi log đƣợc cấp phát Các log d ng để lƣu l i biến dùng chung, nhờ mà luồng s dụng biến c ch độc lập Vấn đề đặt đ y t i thời điểm chƣơng tr nh ch y liệu lƣợng nhớ cần cấp ph t cho c c log c vƣợt tài nguyên nhớ máy, hay chƣơng tr nh c thể ch y c ch trơn tru mà không gặp phải lỗi nhƣ hết nhớ Chính vậy, việc x c định cận nhớ thời điểm ch y chƣơng tr nhcủa chƣơng tr nh giao dịch vấn đề then chốt c ý nghĩa quan trọng Chính v l đ luận văn thực đ y nghiên cứu s dụng phƣơng ph p ph n t ch tĩnh để giải toán tính cận nhớ log chƣơng trìnhgiao dịch đƣợc trình bày, dựa báo đ đƣợc tác giả công bố [1] Mục tiêu nghiên cứu Luận văn đƣợc thực dựa nghiên cứu báo [1] Do để hiểu đƣợc giải pháp tác giả đ đề xuất [1], luận văn tập trung nghiên cứu lý thuyết hệ thống kiểu; Các khái niệm c ng nhƣ t nh chất giao dịch; Nghiên cứu cú pháp ngữ nghĩa ngôn ngữ TM (Transactional Memory) – Một ngôn ngữ để viết chƣơng tr nh giao dịch Từ việc nắm đƣợc giải pháp xây dựng hệ thống kiểu đề cập báo, công cụ đƣợc cài đặt dựa ngôn ngữ C# Phƣơng pháp nghiên cứu Để thực đƣợc mục tiêu đ đề luận văn c c phƣơng ph p nghiên cứu sau đ y đ đƣợc kết hợp: - Phƣơng ph p nghiên cứu lý thuyết: bao gồm phân tích, tổng hợp tài liệu, báo có liên quan lý thuyết hệ thống kiểu đặc biệt hệ thống kiểu cho c c chƣơng trình TM, tài liệu thuật toán dựa hệ thống kiểu - Phƣơng ph p thực nghiệm: Cài đặt thuật to n đ đề xuất, ch y th để kiểm tra t nh đ ng đắn chƣơng tr nh Cấu trúc luận văn Luận văn đƣợc trình bày phần, với nội dung phần nhƣ sau: Mở đầu: Nêu tính cấp thiết đề tài, nêu mục tiêu cần nghiên cứu, phƣơng ph p đƣợc s dụng nghiên cứu cấu trúc phần luận văn Chƣơng 1: Giới thiệu toán Trình bày nội dung cụ thể toán tính cận nhớ log chƣơng tr nh có s dụng giao dịch, vấn đề cần giải to n hƣớng tiếp cận để giải toán Trong phần này, c c điểm cải tiến phƣơng ph p giải toán đ y so với c c phƣơng ph p trƣớc c ng đƣợc nêu Ví dụ đƣợc trình bày mục 1.3 minh họa rõ ràng cho to n hƣớng tiếp cận đ đƣa Chƣơng 2: Một số kiến thức sở Trình bày lý thuyết đƣợc s dụng làm sở để giải toán, bao gồm: Lý thuyết hệ thống kiểu nhƣ kh i niệm, thuộc tính hay ứng dụng hệ thống kiểu thực tế; Lý thuyết giao dịch, nhớ giao dịch phần mềm gồm khái niệm, tính chất, ứng dụng… Chƣơng 3: Ngôn ngữ giao dịch Giới thiệu ngôn ngữ giao dịch TM (Transactional memory)- Một ngôn ngữ đƣợc d ng để viết c c chƣơng tr nh giao dịch Trong chƣơng cú pháp ngữ nghĩa ngôn ngữ TM đƣợc trình bày cụ thể Chƣơng 4: Hệ thống kiểu cho chƣơng trình giao dịch Nghiên cứu hệ thống kiểu để giải toán tính cận nhớ log cho chƣơng tr nh c giao dịch đ đƣợc trình bày báo [1] Lý thuyết hệ thống kiểu đƣợc phát triển đ y bao gồm kiểu quy tắc kiểu Chƣơng 5: Xây dựng công cụ thực nghiệm Cài đặt thuật toán kiểu dựa hệ thống kiểu đ đƣợc trình bày chƣơng Từ thuật to n đ xây dựng công cụ để giải toán tính cận nhớ log thực nghiệm để kiểm tra t nh đ ng đắn công cụ Kết luận: Đ nh gi c c kết đ đ t đƣợc, nêu tồn t i hƣớng phát triển TÀI LIỆU THAM KHẢO Tiếng Anh [1] Anh-Hoang Truong, Ngoc-Khai Nguyen, Dang Van Hung, and Dang Duc Hanh (2016) “Calculate statically maximum log memory used by multi-threaded transactional programs”, Theoretical Aspects of Computing – ICTAC 2016, pp 82-99 [2] Anh-Hoang Truong, Dang Van Hung, Duc-Hanh Dang, and Xuan-Tung Vu, “A type system for counting logs of multi-threaded nested transactional programs” In Nikolaj Bjørner, Sanjiva Prasad, and Laxmi Parida, editors, Distributed Computing and Internet Technology - 12th International Conference, ICDCIT 2016, Proceedings, volume 9581 of LNCS, pp 157-168 [3] Hoang Truong (2006), Type Systems for Guaranteeing Resource Bounds of Component Software, Dissertation for the degree Philosophiae Doctor (PhD) University of Bergen, Norway [4] Igarashi Atsushi Pierce Benjamin C Wadler Philip (2001) “Featherweight Java: a minimal core calculus for Java and GJ” Journal ACM Transactions on Programming Languages and Systems, Volume 23, pp 396- 450 [5] Jiang Hui,Lin Dong Zhang Xingyuan Xie Xiren(2001) “Type System in Programming Languages” Journal of Computer Science and Technology, Volume 16, pp 286-292 [6] Luca Cardelli (1996) “Type system”, ACM Computing Surveys (CSUR),Volume 28 Issuse1, pp 263-264 [7] Martin Steffen and Thi Mai Thuong Tran (2009) “Safe commits for Transactional Featherweight Java” Integrated Formal Methods, pp 290-304 [8] N.Shavit, and D.Touitou (1995) “Software Transational Memory” Proceeding PODC '95 Proceedings of the fourteenth annual ACM symposium on Principles distributed computing, pp 204-213 [9] Thi Mai Thuong Tran O.Owe and Martin Steffen (2010) “Safe typing for transactional vs lock-based concurrency in multi-threaded Java” KSE '10 Proceedings of the 2010 Second International Conference on Knowledge and Systems Engineering, pp.188-193 [10] Thi Mai Thuong Tran Martin Steffen and Hoang Truong (2011) “Estimating Resource Bounds for Software Transactions” SEFM 2013 Proceedings of the 11th International Conference on Software Engineering and Formal Methods, Volume 8137, pp 212-228 [11] Xuan-Tung Vu, Thi Mai Thuong Tran, Anh-Hoang Truong, and Martin Steffen “A type system for finding upper resource bounds of multi-threaded programs with nested transactions”, In Symposium on Information and Communication Technologys 2012, SoICT ‟12, Halong City, Quang Ninh, Viet Nam, August 23-24, 2012, pp 21-30 51 ... qua giao dịch Các giao dịch cho phép tự đọc ghi để chia sẻ biến vùng nhớ gọi log đƣợc s dụng để ghi l i ho t động kết thúc giao dịch Một mô hình giao dịch phức t p s dụng STM mô hình giao dịch lồng... Các ứng dụng hệ thống kiểu .16 2.2 Giao dịch nhớ giao dịch phần mềm ( Software Transactional Memory- STM) 18 2.2.1 Giao dịch (Transaction) 18 2.2.2 Bộ nhớ giao dịch phần...ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN PHAN TÌNH TÍNH CẬN TRÊN BỘ NHỚ LOG CỦA CHƢƠNG TRÌNH SỬ DỤNG GIAO DỊCH Ngành: Công Nghệ Thông Tin Chuyên ngành: Kỹ thuật Phần Mềm Mã số:

Ngày đăng: 10/05/2017, 11:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan