1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch

177 45 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

Tiêu đề Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Tác giả Nguyễn Ngọc Khải
Người hướng dẫn PGS.TS. Trương Anh Hoàng
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Luận án tiến sĩ
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 177
Dung lượng 1,12 MB

Cấu trúc

  • Giới thiệu

    • Đặt vấn đề

    • Mục tiêu, đối tượng và phạm vi nghiên cứu

      • Mục tiêu nghiên cứu

      • Đối tượng và phạm vi nghiên cứu

    • Những đóng góp chính, ý nghĩa khoa học và thực tiễn

    • Bố cục của luận án

  • Kiến thức nền tảng và nghiên cứu liên quan

    • Giới thiệu

    • Điều khiển tương tranh dựa trên khóa

      • Khái niệm khóa

      • Kỹ thuật khóa đơn giản

      • Kỹ thuật khóa đọc, ghi

      • Kỹ thuật Semaphore

      • Một số vấn đề trong kỹ thuật khóa

    • Cơ chế bộ nhớ giao dịch phần mềm

      • Khái niệm và tính chất của giao dịch

      • Đặc điểm của chương trình STM

    • Hệ thống kiểu

      • Khái niệm hệ thống kiểu

      • Một số tính chất cơ bản của hệ thống kiểu

      • Ứng dụng và ý nghĩa của hệ thống kiểu

      • Hệ thống kiểu trong hình thức hóa ngôn ngữ

    • Nghiên cứu liên quan

      • Tài nguyên tiêu thụ trong chương trình tuần tự

      • Tài nguyên tiêu thụ trong chương trình tương tranh

      • Tài nguyên tiêu thụ trong chương trình STM

      • Sử dụng hệ thống kiểu xác định biên tài nguyên tiêu thụ bởi chương trình STM

    • Tổng kết chương

  • Ước lượng biên tài nguyên chương trình của ngôn ngữ tối giản

    • Xác định số giao dịch tối đa

      • Ví dụ minh họa

      • Ngôn ngữ giao dịch tối giản

        • Cú pháp

        • Ngữ nghĩa

      • Hệ thống kiểu tính số giao dịch tối đa

        • Kiểu

        • Quy tắc kiểu

        • Định kiểu chương trình ví dụ và thảo luận tính sắc của biên

        • Tính đúng của hệ thống kiểu

    • Xác định biên tài nguyên tiêu thụ của chương trình

      • Ví dụ minh họa

      • Ngôn ngữ giao dịch tối giản cải tiến

        • Cú pháp

        • Ngữ nghĩa

      • Hệ thống kiểu tìm biên tài nguyên tiêu thụ của chương trình

        • Kiểu

        • Quy tắc kiểu

        • Định kiểu cho chương trình ví dụ

        • Tính đúng của hệ thống kiểu

    • Tổng kết chương

  • Tính bộ nhớ tối đa cho chương trình của ngôn ngữ mệnh lệnh

    • Giới thiệu

    • Ví dụ minh họa

    • Ngôn ngữ giao dịch với cấu trúc mệnh lệnh

      • Cú pháp

      • Ngữ nghĩa

    • Hệ thống kiểu tìm biên bộ nhớ cho các biến dùng chung

      • Kiểu

      • Quy tắc kiểu

      • Tính đúng

      • Định kiểu cho chương trình ví dụ

    • Công cụ suy diễn kiểu

      • Định nghĩa kiểu dữ liệu

      • Hàm chính

      • Hàm rút gọn

      • Hàm hợp hai chuỗi

      • Hàm đồng kết thúc

      • Hàm chuyển dạng

      • Hàm chọn

    • Hệ thống kiểu tích hợp xác định biên bộ nhớ cấp phát cho các biến dùng chung

      • Kiểu

      • Quy tắc định kiểu

      • Đặc điểm của hệ thống kiểu

      • Định kiểu chương trình ví dụ và thảo luận tính sắc của biên

    • Tổng kết chương

  • Xác định bộ nhớ giao dịch tối đa cho chương trình của ngôn ngữ hướng đối tượng

    • Giới thiệu

    • Ví dụ minh họa

      • Phân tích hành vi của chương trình

      • Phân tích bộ nhớ sử dụng bởi chương trình

    • Ngôn ngữ giao dịch với cấu trúc hướng đối tượng

      • Cú pháp

      • Ngữ nghĩa

    • Hệ thống kiểu tích hợp tìm biên bộ nhớ giao dịch

      • Kiểu

      • Quy tắc kiểu

      • Định kiểu cho chương trình ví dụ

      • Tính đúng

    • Tổng kết chương

  • Kết luận

    • Những kết quả đạt được

    • Những hạn chế và hướng nghiên cứu tiếp theo

  • Phụ lục: Kiểm thử công cụ suy diễn kiểu

Nội dung

GIỚI THIỆU

Đặt vấn đề

Ngày nay, thiết bị với bộ vi xử lý đa lõi ngày càng trở nên phổ biến, dẫn đến sự phát triển mạnh mẽ của phần mềm tương tranh để tối ưu hóa hiệu suất của hệ thống phần cứng Tuy nhiên, phát triển phần mềm tương tranh yêu cầu kỹ thuật phức tạp hơn so với phần mềm tuần tự, với đồng bộ giữa các luồng là một trong những thách thức lớn nhất trong lĩnh vực này.

Người lập trình thường sử dụng cơ chế đồng bộ dựa trên khóa để quản lý các luồng, tuy nhiên, phương pháp này có thể dẫn đến các lỗi nghiêm trọng như livelock và deadlock, cùng với những khó khăn trong việc quản lý khóa Để khắc phục, một số lập trình viên sử dụng Semaphore, nhưng cơ chế này cũng gặp phải những vấn đề tương tự Để đơn giản hóa quá trình lập trình, các giải pháp thay thế cho cơ chế khóa đã được đề xuất, trong đó bộ nhớ giao dịch (Transactional Memory) nổi bật như một giải pháp hứa hẹn Bộ nhớ giao dịch có thể được triển khai hoàn toàn qua phần mềm (Software Transactional Memory - STM), hoàn toàn qua phần cứng (Hardware Transactional Memory - HTM), hoặc kết hợp cả hai (Hybrid Transactional Memory - HyTM).

Nghiên cứu cho thấy cuộc cách mạng tương tranh chủ yếu là cuộc cách mạng phần mềm, tập trung vào việc lập trình hiệu quả để tận dụng sự gia tăng hiệu suất CPU Luận án này nghiên cứu các chương trình tương tranh hỗ trợ cấu trúc giao dịch lồng nhau và sử dụng cơ chế STM để điều khiển đồng bộ giữa các luồng và giao dịch, gọi chúng là chương trình giao dịch hay chương trình STM.

Cơ chế STM (Software Transactional Memory) đã được tích hợp vào một số ngôn ngữ lập trình hiện đại, cho phép lập trình viên sử dụng thay thế cho cơ chế đồng bộ truyền thống dựa trên khóa Các ngôn ngữ này nổi bật với tính năng giao dịch đa luồng và giao dịch lồng nhau, giúp lập trình viên dễ dàng hơn trong việc quản lý các luồng Giao dịch đa luồng cho phép khởi tạo nhiều luồng trong một giao dịch, trong khi giao dịch lồng nhau cho phép một giao dịch chứa nhiều giao dịch con, yêu cầu đồng bộ hóa khi thực hiện cam kết Mỗi luồng/giao dịch tạo ra các bản sao của các thành phần dùng chung (log) để hoạt động độc lập, và sau khi hoàn thành, chúng sẽ đồng bộ hóa các log và giá trị gốc Nếu không xảy ra xung đột, giao dịch sẽ được hoàn thành; ngược lại, nó sẽ phải thực hiện lại hoặc bị hủy bỏ.

Cơ chế tạo bản sao các thành phần dùng chung trong chương trình STM tiêu tốn nhiều tài nguyên bộ nhớ hơn so với các chương trình truyền thống, dẫn đến nguy cơ thiếu tài nguyên bộ nhớ khi thực thi Hơn nữa, việc tạo ra quá nhiều log đồng thời làm tăng khả năng xung đột, khiến nhiều giao dịch phải thực hiện lại hoặc bị hủy bỏ, từ đó giảm hiệu suất tổng thể của chương trình.

Mục đích nghiên cứu của luận án là phát triển phương pháp ước lượng tĩnh số log tối đa cùng tồn tại và tài nguyên tối đa cần thiết cho các chương trình đa luồng sử dụng cơ chế STM Phương pháp này giúp lập trình viên tối ưu hóa chương trình, nâng cao hiệu suất và sử dụng tài nguyên một cách hiệu quả hơn, từ đó tiết kiệm tài nguyên và giảm thiểu lỗi do thiếu hụt tài nguyên trong quá trình thực thi.

Để giải quyết bài toán phức tạp, luận án chia thành nhiều bước Bước đầu tiên tập trung vào việc xác định số lượng log lớn nhất có thể tồn tại cùng một lúc Thông qua đó, chúng ta đã thu thập được thông tin sơ bộ cần thiết cho các bước tiếp theo.

Chương 1 Giới thiệu 3 bộ về bộ nhớ log sử dụng Làm mịn thêm kích thước của các log này dựa trên thông tin về số lượng và kiểu của các biến hoặc các đối tượng trên các log, chúng ta có được thông tin cụ thể về bộ nhớ sử dụng của chương trình. Đã có nhiều nghiên cứu khác nhau về thiết kế, ứng dụng của cơ chế STM

Mặc dù nhiều nghiên cứu tập trung vào hiệu suất của chương trình, nhưng thường bỏ qua các yếu tố về tài nguyên và năng lượng của hệ thống STM Nếu STM trở thành chủ đạo, việc nghiên cứu tài nguyên và năng lượng cần thiết cho hệ thống là rất quan trọng, đặc biệt đối với các hệ thống nhúng, nơi mà tiêu thụ tài nguyên và năng lượng ảnh hưởng trực tiếp đến tuổi thọ pin Ngoài ra, trong các trung tâm dữ liệu, tài nguyên và năng lượng tiêu hao cũng góp phần đáng kể vào chi phí hoạt động, điều này cũng đúng với môi trường máy tính để bàn Vì vậy, ước lượng tài nguyên và năng lượng tiêu thụ là một bài toán quan trọng trong hầu hết các hệ thống này.

Nghiên cứu này mang tính mới mẻ và có ý nghĩa khoa học không chỉ ở bài toán được đặt ra mà còn ở giải pháp mà luận án đề xuất để giải quyết vấn đề Các nghiên cứu trước đây chủ yếu tập trung vào các chương trình tuần tự hoặc song song độc lập, trong khi bài toán hiện tại thể hiện sự phức tạp khi các luồng không hoạt động độc lập hoàn toàn Cụ thể, khi một giao dịch được cam kết, tất cả các luồng con trong giao dịch đó cũng phải cam kết đồng thời.

Hệ thống kiểu của luận án được thiết kế với cấu trúc thông tin phong phú, có khả năng áp dụng cho nhiều hệ thống song song đồng bộ Việc áp dụng hệ thống kiểu tĩnh giúp xác định tài nguyên một cách chính xác mà không cần thực hiện chương trình, mang lại ý nghĩa khoa học quan trọng cho lĩnh vực phương pháp hình thức trong phát triển phần mềm.

Nghiên cứu này có tính thời sự và cần thiết trong bối cảnh phát triển phần mềm cho thiết bị di động hiện nay, khi ngày càng nhiều thiết bị sử dụng bộ xử lý đa nhân Việc viết chương trình đa luồng để tận dụng các nhân này trở thành một yêu cầu cấp thiết Tuy nhiên, các ngôn ngữ lập trình hiện tại thường áp dụng cơ chế đồng bộ dựa trên khóa, gây khó khăn cho lập trình viên và dẫn đến các lỗi như khóa chết và khóa sống khó kiểm soát Cơ chế bộ nhớ giao dịch sẽ giúp lập trình viên thoát khỏi các vấn đề liên quan đến khóa và đồng bộ, từ đó đơn giản hóa quá trình lập trình và giảm thiểu rủi ro về lỗi khóa.

Bộ nhớ giao dịch không hoàn toàn thay thế cơ chế dựa trên khóa, mà tùy thuộc vào bài toán cụ thể, lập trình viên sẽ chọn giải pháp phù hợp Mặc dù cơ chế đồng bộ dựa trên khóa phổ biến nhờ vào sự quen thuộc và hỗ trợ từ nhiều ngôn ngữ lập trình, nhưng bộ nhớ giao dịch với nhiều ưu điểm vượt trội vẫn là một lựa chọn hấp dẫn Tuy nhiên, cơ chế này cũng có những hạn chế như tiêu tốn nhiều tài nguyên và nguy cơ phải thực hiện lại hoặc hủy bỏ giao dịch, điều này có thể ảnh hưởng đến hiệu suất chương trình Do đó, lập trình viên cần kiểm soát tốt số log và tài nguyên để sẵn sàng áp dụng cơ chế này.

Mục tiêu, đối tượng và phạm vi nghiên cứu

Mặc dù cơ chế STM mang lại nhiều lợi ích cho lập trình viên trong việc đơn giản hóa quá trình viết chương trình, nhưng nếu không quản lý hiệu quả số log và tài nguyên tiêu thụ, có thể dẫn đến lỗi thiếu bộ nhớ hoặc giao dịch phải thực hiện lại nhiều lần, ảnh hưởng đến hiệu suất chương trình Do đó, luận án này đặt ra hai mục tiêu chính nhằm giúp lập trình viên kiểm soát số log và tài nguyên tiêu thụ của chương trình.

Phương pháp tin cậy được đề xuất nhằm ước lượng tĩnh cận trên tài nguyên bộ nhớ cho các thành phần dùng chung trong chương trình giao dịch, không cần phải chạy chương trình Phương pháp này mang tính tổng quát, tạo nền tảng để cải tiến và ứng dụng cho nhiều ngôn ngữ lập trình khác nhau, đồng thời có khả năng mở rộng để xác định các loại tài nguyên khác mà chương trình cần sử dụng.

Công cụ ước lượng biên tài nguyên bộ nhớ là một giải pháp quan trọng giúp lập trình viên tối ưu hóa chương trình của họ Khi được hoàn thiện, công cụ này có thể tích hợp vào các trình soạn thảo hoặc trình biên dịch, cung cấp thông tin về số giao dịch tối đa và biên tài nguyên bộ nhớ cần thiết Điều này không chỉ hỗ trợ lập trình viên trong việc quản lý tài nguyên hiệu quả mà còn nâng cao hiệu suất của ứng dụng.

1.2.2 Đối tượng và phạm vi nghiên cứu

Luận án sẽ nghiên cứu các ngôn ngữ hỗ trợ cấu trúc đa luồng với giao dịch đan xen, đồng thời khám phá cơ chế STM để đồng bộ hóa giữa các luồng và giao dịch.

Bài luận án này tập trung vào việc xác định biên tài nguyên bộ nhớ cho các đối tượng bị nhân bản bởi cơ chế STM, nhằm làm rõ các vấn đề liên quan đến việc cấp phát và giải phóng bộ nhớ trong ngôn ngữ lập trình Ngoài ra, các tính chất như tính kế thừa trong lập trình hướng đối tượng, vòng lặp vô hạn, và xung đột giữa các giao dịch cũng sẽ được xem xét trong các nghiên cứu tiếp theo.

Nghiên cứu này tập trung vào lý thuyết và nền tảng toán học, tạo cơ sở cho các nghiên cứu tiếp theo Trong luận án, việc cài đặt công cụ chỉ dừng lại ở mức cài đặt các công cụ suy diễn kiểu cho chương trình Chúng tôi hy vọng rằng trong tương lai, với thêm thời gian và nguồn lực, nhóm nghiên cứu sẽ phát triển các công cụ hữu ích, có khả năng ứng dụng hiệu quả trong thực tế.

Những đóng góp chính, ý nghĩa khoa học và thực tiễn

Luận án này đóng góp hai hệ thống kiểu nhằm ước lượng tĩnh cận cho tài nguyên cần thiết cho các thành phần dùng chung, cùng với một công cụ để suy diễn kiểu cho chương trình STM.

Hệ thống kiểu thứ nhất được thiết kế với các quy tắc đơn giản, giúp dễ dàng mở rộng và cài đặt Để thực hiện định kiểu, hệ thống này yêu cầu một chương trình hoàn chỉnh, tức là chương trình phải được viết xong và hợp lệ Hệ thống này thích hợp cho việc định kiểu các chương trình nhỏ do một nhóm người ít ỏi phát triển.

Hệ thống kiểu thứ hai cung cấp khả năng định kiểu linh hoạt, cho phép định kiểu các thành phần riêng lẻ trong chương trình mà không cần phải có một chương trình hoàn chỉnh Sau đó, các thành phần này có thể được tích hợp lại để tạo ra kiểu cho toàn bộ chương trình Tính tích hợp này là một đặc điểm quan trọng của các hệ thống kiểu, đặc biệt hữu ích cho các chương trình lớn được phát triển bởi nhiều lập trình viên.

Công cụ suy diễn kiểu được cài đặt dựa trên các quy tắc kiểu đã đề xuất, cho phép định kiểu cho chương trình STM Luận án không chỉ giải quyết bài toán ước lượng tài nguyên bộ nhớ mà còn góp phần phát triển lý thuyết kiểu trong phương pháp hình thức trong công nghệ phần mềm Nó đã cung cấp cho cộng đồng nghiên cứu những bộ quy tắc kiểu nhằm giúp lập trình viên kiểm soát tài nguyên chương trình Bộ quy tắc này là nền tảng để mở rộng và phát triển cho các mục đích khác, như xác định tài nguyên CPU, độ phức tạp thời gian và số gas tiêu thụ trong hợp đồng thông minh trên Ethereum.

Công cụ suy diễn khi tích hợp vào trình soạn thảo không chỉ hỗ trợ lập trình viên tối ưu hóa thuật toán mà còn giúp tiết kiệm tài nguyên trong quá trình phát triển chương trình.

Các nghiên cứu hiện tại chủ yếu tập trung vào chương trình tuần tự hoặc song song với các luồng hoạt động độc lập, chỉ xem đây là những trường hợp riêng trong bài toán nghiên cứu Đối với các chương trình đa luồng sử dụng cơ chế STM, nghiên cứu thường được thực hiện theo phương pháp động, thực thi trong các ngôn ngữ cụ thể để so sánh và đánh giá Tuy nhiên, các phương pháp này chỉ mang lại kết quả gần đúng và cần có chương trình hoàn thiện để tiến hành thử nghiệm.

Hệ thống kiểu trong luận án có cấu trúc thông tin phong phú, có khả năng áp dụng cho nhiều chương trình tương tranh với phương thức đồng bộ tương tự Việc sử dụng hệ thống kiểu này không chỉ giúp xác định tài nguyên mà còn đảm bảo tính chính xác mà không cần phải thực thi chương trình.

Nghiên cứu này có tính thời sự và cần thiết trong bối cảnh phát triển phần mềm cho thiết bị đa nhân hiện nay, khi mà ngày càng nhiều thiết bị sử dụng bộ xử lý đa nhân Việc viết chương trình đa luồng để tận dụng tối đa khả năng của các thiết bị này là một yêu cầu thực tiễn Cơ chế STM giúp lập trình viên viết các chương trình giao dịch đa luồng một cách đơn giản hơn Tuy nhiên, lập trình viên cần kiểm soát tài nguyên sử dụng và số log tối đa để đảm bảo hiệu suất Điều này đặc biệt quan trọng trong lập trình nhúng và cho các thiết bị IoT, nơi tài nguyên bộ nhớ hạn chế và tiêu tốn tài nguyên ảnh hưởng trực tiếp đến tuổi thọ pin Kết quả của luận án cung cấp một giải pháp giúp lập trình viên yên tâm hơn khi sử dụng cơ chế STM, từ đó thúc đẩy việc áp dụng cơ chế này trong thực tế.

Bố cục của luận án

Luận án bao gồm sáu chương, được bố cục như Hình ??, trong đó Chương

Bài luận án này trình bày một cái nhìn tổng quan về vấn đề nghiên cứu, nhấn mạnh những đóng góp quan trọng và ý nghĩa khoa học, cũng như ứng dụng thực tiễn của nó Các chương tiếp theo sẽ được cấu trúc rõ ràng, giúp người đọc dễ dàng theo dõi và hiểu rõ hơn về nội dung nghiên cứu.

Chương 2: Kiến thức nền tảng và nghiên cứu liên quan

Chương 3: Ước lượng biên tài nguyên chương trình của ngôn ngữ tối giản

Chương 4: Tính bộ nhớ tối đa cho chương trình của ngôn ngữ mệnh lệnh

Chương 5: Xác định bộ nhớ giao dịch tối đa cho chương trình hướng đối tượng

Ngôn ngữ giao dịch tối giản

Ngôn ngữ giao dịch tối giản cải tiến

Ngôn ngữ giao dịch mệnh lệnh

Ngôn ngữ giao dịch với cấu trúc hướng đối tượng

HTK tích hợp tính bộ nhớ tối đa cho các đối tượng dùng chung

HTK tích hợp tính bộ nhớ tối đa cho các biến dùng chung

HTK tính bộ nhớ tối đa cho các biến dùng chung;

Công cụ suy diễn kiểu

HTK tính tài nguyên tiêu thụ tối đa

Hệ thống kiểu (HTK) tính số giao dịch tối đa

Chương 2 cung cấp kiến thức cơ bản về cơ chế STM và hệ thống kiểu, hai yếu tố quan trọng liên quan đến bài toán và phương pháp giải quyết trong luận án Cuối chương, luận án đề cập đến các nghiên cứu liên quan và các phương pháp tương tự với phương pháp được đề xuất.

Chương 3 của luận án tập trung vào việc xây dựng một ngôn ngữ giao dịch tối giản và hệ thống kiểu để ước lượng số giao dịch tối đa cho các chương trình Phần cuối chương cải tiến ngôn ngữ lõi bằng cách thêm các tham số thể hiện tài nguyên cần thiết cho mỗi giao dịch, đồng thời nâng cấp hệ thống kiểu để xác định tài nguyên tối đa mà chương trình sử dụng Ngôn ngữ và hệ thống kiểu này mang tính tổng quát, tạo nền tảng cho các chương tiếp theo, đồng thời giúp đơn giản hóa các quy tắc, thuận lợi cho việc theo dõi, phân tích và chứng minh tính đúng đắn của hệ thống kiểu.

Chương 4 của luận án mở rộng ngôn ngữ từ Chương 3 bằng cách bổ sung các lệnh khai báo biến dùng chung và các câu lệnh cơ bản cho ngôn ngữ lập trình hướng cấu trúc Ngôn ngữ này đã tiến gần đến thực tế hơn, với tài nguyên tiêu thụ của các giao dịch được xác định cụ thể thông qua bộ nhớ cấp phát cho các biến dùng chung, thay vì được tham số hóa như trước Luận án cũng xây dựng một hệ thống kiểu để xác định biên bộ nhớ cho các biến này trong chương trình viết bằng ngôn ngữ mới Để kiểm tra tính chính xác của các quy tắc kiểu, một công cụ suy diễn kiểu đã được cài đặt dựa trên các quy tắc đã đề xuất.

Hệ thống kiểu được cải tiến cho phép định kiểu linh hoạt hơn, có khả năng áp dụng cho các thành phần khác nhau của chương trình mà không cần một chương trình hoàn chỉnh như trong Chương 3 Điều này dẫn đến việc tích hợp các kiểu lại để tạo thành kiểu tổng thể cho toàn bộ chương trình, và hệ thống kiểu này được gọi là hệ thống kiểu tích hợp.

- Chương 5 luận án tiếp tục mở rộng ngôn ngữ đã xây dựng trong Chương

Cấu trúc hướng đối tượng trong chương trình đã được cải tiến với cơ chế STM, giúp tối ưu hóa việc sử dụng bộ nhớ Tài nguyên tiêu thụ được xác định là bộ nhớ cấp phát cho các đối tượng trong giao dịch, được gọi là bộ nhớ giao dịch Luận án cũng phát triển một hệ thống kiểu để xác định biên bộ nhớ giao dịch cho các chương trình viết bằng ngôn ngữ này.

Ngôn ngữ và hệ thống kiểu trình bày trong chương này là những công cụ gần gũi với thực tế, cho phép chúng ta viết một cách hiệu quả và chính xác.

Chương 1 Giới thiệu 9 một chương trình giao dịch cơ bản hoạt động theo cơ chế STM và sử dụng hệ thống kiểu để xác định biên bộ nhớ giao dịch cho các chương trình này.

Chương 6 của luận án tổng kết các vấn đề đã được giải quyết và chỉ ra những thách thức còn tồn tại cần tiếp tục nghiên cứu Chương này cũng đề xuất các hướng nghiên cứu trong tương lai nhằm cải thiện sản phẩm của luận án, góp phần vào cộng đồng nghiên cứu và hỗ trợ lập trình viên trong việc phát triển phần mềm hiệu quả và tiết kiệm tài nguyên.

KIẾN THỨC NỀN TẢNG VÀ NGHIÊN CỨU LIÊN QUAN

Trong chương này, luận án giới thiệu các khái niệm và nguyên tắc cơ bản của lập trình tương tranh, cơ chế STM và hệ thống kiểu, tạo nền tảng cho việc giải quyết bài toán nghiên cứu Những kiến thức này sẽ hỗ trợ trong việc phát triển ngôn ngữ và hệ thống kiểu trong các chương tiếp theo Cuối chương, luận án cũng đề cập đến các hướng nghiên cứu trong và ngoài nước liên quan đến việc xác định biên tài nguyên tiêu thụ của chương trình và nghiên cứu về cơ chế STM trong lập trình tương tranh.

Các chương trình tương tranh hứa hẹn nâng cao hiệu suất hệ thống phần mềm, nhưng việc lập trình cho chúng gặp nhiều khó khăn, đặc biệt là trong việc đồng bộ dữ liệu giữa các luồng và tiến trình Điều này đã thu hút sự quan tâm của nhiều nhà nghiên cứu, dẫn đến việc đề xuất nhiều giải pháp khác nhau trong các ngữ cảnh đa dạng.

Trong những năm gần đây, các hệ thống cơ sở dữ liệu đã hoạt động hiệu quả trên kiến trúc tương tranh, với các cơ chế kiểm soát tương tranh được quản lý bởi hệ quản trị cơ sở dữ liệu Giao dịch là cốt lõi của hệ thống, được định nghĩa là chuỗi lệnh hoàn thành một công việc và cho phép truy cập, thao tác đồng thời trên các đối tượng Một giao dịch thành công khi thay đổi trạng thái cơ sở dữ liệu, trong khi đó sẽ không thành công hoặc bị hủy khi không có thay đổi nào Giao dịch được thực hiện qua hệ thống cơ sở dữ liệu hoặc thông qua các giao diện hàm, giúp ẩn đi các chi tiết phức tạp và cung cấp giao diện đơn giản cho người dùng.

Dựa trên thành công của các hệ thống cơ sở dữ liệu với kiến trúc tương tranh, các nhà nghiên cứu đã phát triển ý tưởng về bộ nhớ giao.

Chương 2 Kiến thức nền tảng và nghiên cứu liên quan 11 dịch trên cấp độ chương trình Ý tưởng cơ bản của cơ chế bộ nhớ giao dịch ở cấp độ chương trình được phát triển từ cơ chế giao dịch trong các hệ thống cơ sở dữ liệu, mặc dù chúng cũng có những điểm khác nhau ở một số khía cạnh.

Một giao dịch trong hệ thống cơ sở dữ liệu bao gồm các hướng dẫn không thể chia nhỏ và phải được thực thi đồng thời Các giao dịch này có bốn thuộc tính cơ bản, được gọi là ACID, bao gồm tính nguyên tố, tính nhất quán, tính độc lập và tính bền vững Trong cơ chế bộ nhớ giao dịch phần mềm, các thuộc tính này cũng được áp dụng Luận án sẽ trình bày chi tiết hơn trong phần tiếp theo.

KIẾN THỨC NỀN TẢNG VÀ NGHIÊN CỨU LIÊN

ƯỚC LƯỢNG BIÊN TÀI NGUYÊN CHƯƠNG TRÌNH CỦA NGÔN NGỮ TỐI GIẢN

TÍNH BỘ NHỚ TỐI ĐA CHO CHƯƠNG TRÌNH CỦA NGÔN NGỮ MỆNH LỆNH

XÁC ĐỊNH BỘ NHỚ GIAO DỊCH TỐI ĐA CHO CHƯƠNG TRÌNH CỦA NGÔN NGỮ HƯỚNG ĐỐI TƯỢNG 118 5.1 Giới thiệu

Ngày đăng: 27/06/2022, 11:32

HÌNH ẢNH LIÊN QUAN

Luận án bao gồm sáu chương, được bố cục như Hình ??, trong đó Chương 1 giới thiệu tổng quan về bài toán đặt ra, những đóng góp chính, ý nghĩa khoa học, ý nghĩa thực tế của luận án - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
u ận án bao gồm sáu chương, được bố cục như Hình ??, trong đó Chương 1 giới thiệu tổng quan về bài toán đặt ra, những đóng góp chính, ý nghĩa khoa học, ý nghĩa thực tế của luận án (Trang 21)
Hình 2.1. Sơ đồ các trạng thái của giao dịch. - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Hình 2.1. Sơ đồ các trạng thái của giao dịch (Trang 30)
Bảng từ tố - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng t ừ tố (Trang 39)
Hành vi của chương trình ví dụ này được minh họa trong Hình 3.1. Lệnh - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
nh vi của chương trình ví dụ này được minh họa trong Hình 3.1. Lệnh (Trang 50)
onacid và lệnh commit được ký hiệu bởi [ và ] tương ứng trong Hình. Lệnh - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
onacid và lệnh commit được ký hiệu bởi [ và ] tương ứng trong Hình. Lệnh (Trang 50)
Cú pháp của ngôn ngữ STM tối giản được thể hiện trong Bảng 3.1. Dòng thứ nhất để biểu diễn các luồng/tiến trình - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
ph áp của ngôn ngữ STM tối giản được thể hiện trong Bảng 3.1. Dòng thứ nhất để biểu diễn các luồng/tiến trình (Trang 52)
Bảng 3.3. Ngữ nghĩa giao dịch và luồng của ngôn ngữ STM tối giản - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 3.3. Ngữ nghĩa giao dịch và luồng của ngôn ngữ STM tối giản (Trang 54)
Bảng 3.4. Quy tắc định kiểu cho chương trình STM tối giản - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 3.4. Quy tắc định kiểu cho chương trình STM tối giản (Trang 59)
Bảng 3.5. Cú pháp của ngôn ngữ giao dịch tối giản cải tiến 1.P ∶∶=0∣P∥P∣p(e) - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 3.5. Cú pháp của ngôn ngữ giao dịch tối giản cải tiến 1.P ∶∶=0∣P∥P∣p(e) (Trang 71)
Bảng 3.6. Ngữ nghĩa của ngôn ngữ giao dịch tối giản cải tiến p′freshspawn (p, p′,Γ) =Γ′ - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 3.6. Ngữ nghĩa của ngôn ngữ giao dịch tối giản cải tiến p′freshspawn (p, p′,Γ) =Γ′ (Trang 72)
Bảng 3.7. Quy tắc định kiểu chương trình STM tối giản cải tiến - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 3.7. Quy tắc định kiểu chương trình STM tối giản cải tiến (Trang 76)
Hình 4.1. Mô tả hành vi hoạt động của ví dụ 4.1. - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Hình 4.1. Mô tả hành vi hoạt động của ví dụ 4.1 (Trang 85)
Bảng 4.1. Cú pháp của ngôn ngữ giao dịch cấu trúc mệnh lệnh 1.P ∶∶=ϕ∣P∥P∣p(e)luồng/tiến trình - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 4.1. Cú pháp của ngôn ngữ giao dịch cấu trúc mệnh lệnh 1.P ∶∶=ϕ∣P∥P∣p(e)luồng/tiến trình (Trang 87)
Bảng 4.2. Ngữ nghĩa của ngôn ngữ giao dịch cấu trúc mệnh lệnh - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 4.2. Ngữ nghĩa của ngôn ngữ giao dịch cấu trúc mệnh lệnh (Trang 88)
Bảng 4.3. Quy tắc kiểu x, e ∶int - Hệ thống kiểu để ước lượng tĩnh tài nguyên sử dụng của chương trình giao dịch
Bảng 4.3. Quy tắc kiểu x, e ∶int (Trang 94)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w