MỤC LỤC
Các nghiên cứu của luận án tập trung vào nghiên cứu mã nguồn của các phần mềm trên điện thoại di động, trong phần này luận án giới thiệu một số hệ điều hành dành cho thiết bị di động, các ngôn ngữ, thư viện và công cụ lập trình làm cơ sở cho các nghiên cứu về mã nguồn và đề xuất xây dựng một số công cụ hỗ. Sau đó, luận án trình bày các kiến thức liên quan tới thiết bi động va van đề năng lượng trên thiết bị di động, trong đó tập trung vào việc phân tích cấu trúc phần cứng và năng lượng trên các phần cứng, hệ thống phần mềm trên thiết bị di động, các hệ điều.
Khi nghiên cứu về vấn đề tiêu thụ năng lượng của thiết bị di động, các nhà nghiên cứu về phần mềm thường tập trung nghiên cứu sự ảnh hưởng của chương trình (trong đó trực tiếp là mã nguồn) đối với sự tiêu thụ năng lượng. Định nghĩa 3.1 Mot trạng thái tiêu thụ năng lượng (duoc viet tắt là Trạng thái năng lượng) của mot phan cứng la mic độ tiêu thụ năng lượng trong một đơn vi thời gian, tương ứng uới mic độ hoạt động của phần cứng đó. Định nghĩa 3.2 Một trang thái biểu diễn mức độ tiêu thụ năng lượng của thiết bi di động tại một thời điểm, dưới sự ảnh hưởng của mã nguồn ứng dung (được. uiết tắt là Trang thái năng lượng của thiết bi di động, kí hiệu là PSpevice) là sự hợp nhất của các trạng thái năng lượng của các phần cứng.
Định nghĩa 3.3 Ôtômát năng lượng của một ứng dung cụ thể (gọi tắt là ôtômát. năng lượng của ứng dung - kí hiệu là App) là ôtômát năng lượng của thiết bị di động được tối ưu đối uới mã nguồn của ứng dụng đó. (ii) Giải pháp 2: Hợp nhất các ôtômát thành phần trở thành ôtômát năng lượng của thiết bị di động, sau đó phân tích mã nguồn và tối ưu ôtômát năng lượng của thiết bị đi động trở thành ôtômát năng lượng của ứng dụng.
Để hỗ trợ cho những người phát triển phần mềm có thể đặc tả và thực thi UC một cách hình thức, luận án tiến hành phân nhóm các câu lệnh trong mã nguồn đồng thời đặt lại các kí kiệu nhằm đơn giản hóa việc thiết kế các UC. Vi vậy, muốn tính toán được hệ số tiêu thu năng lượng cho mỗi trang thái trong ụtụmỏt năng lượng của ứng dụng Ayằ, ta cần tớnh được hệ số tiờu thụ năng lượng cho mỗi trạng thái năng lượng thành phần: PSrcp, PSgps, PSŠAuao, PSuifi. Định nghĩa 3.5 Hệ số tiêu thụ năng lượng của phần cứng hoặc thiết bị tại một trang thái năng lượng (uiết tắt là hệ số năng lượng) là công suất tiêu thụ của của phần cứng hoặc thiết bị đó trong một giây, được tính theo đơn vi Watt (W).
Galaxy Note 8 (Cấu hình như sau: CPU: Snapdragon 280, GPU: Snapdragon:. Adreno 540, Ram: 6 GB, Storage: 64 GB) được gỡ bỏ các ứng dụng không cần thiết nhằm tránh bị nhiễu trong quá trình tính toán mức tiêu thụ năng lượng. Tuy nhiên, với một số phần cứng không có các API điều khiển thì phương pháp xác định hệ số tiêu thụ đã đề xuất sẽ không thể thực hiện được, cần phải áp dụng các giải pháp khác để đo lường mức độ tiêu thụ cho các trạng thái trên phần cứng.
Tuy nhiên, các phương pháp đo lường trên thiết bị vật lý cũng có những sai số nhất định vì thế các thông số đầu vào (hệ số tiêu thụ năng lượng) cho mô hình sẽ có độ chênh lệch với thực tế, dẫn tới. Nói cách khác, mô hình đã đề xuất chỉ thực hiện với một phần mềm riêng lẻ, chưa mở rộng mô hình với nhiều phần mềm cùng tác động vào các phần cứng của thiết bị. Để ước lượng mức độ tiêu thụ năng lượng dựa trên ôtômát năng lượng của ứng dụng, luận án bổ sung thêm các thành phần thời gian và hệ số tiêu thụ vào.
Thành phần thời gian cho phép lưu trữ lại thời gian tồn tại trong mỗi trạng thái, hệ số tiêu thụ được tính toán bằng phương pháp đo lường và được gán vào các trạng thái làm cơ sở ước lượng. Khi so sánh với kết quả đo lường bằng thiết bị vật lý, phương pháp ước lượng cho thấy độ chính xác cao, độ lệch so với phương pháp đo lường bằng thiết bị vật lý ở mức chấp.
(i) Lỗi vòng lặp (Loop bugs): Mã nguồn lặp lại nhiều lần những đoạn chương trình có kích hoạt các phần cứng hoạt động ở trạng thái tiêu thụ nhiều năng lượng làm cho thiết bị tiêu hao năng lượng quá ngưỡng cho phép. (iii) Lỗi đánh thức (Wakelock bugs): Một số mã nguồn kích hoạt các phan cứng hoạt động tiêu thụ năng lượng lớn và không tiến hành dừng (hoặc gặp lỗi trong quá trình dừng) hoạt động của phần cứng dẫn tới tiêu hao năng. Sai lệch so với đặc tả: Nếu trong đặc tả phần mềm có những yêu cầu phi chức năng về thời gian sử dụng tối thiểu phải đạt được trên thiết bị thì đó có thể là căn cứ để người kiểm thử xác định lỗi năng lượng.
Các nghiên cứu [63, 96, 53] sử dụng ILP để sinh ra các bộ kiểm thử con của bộ kiểm thử ban đầu, sau đó dựa vào các công thức tính toán về độ phủ, mức tiêu thụ năng lượng hoặc hàm mục tiêu để ra quyết định lựa chọn bộ kiểm thử tối ưu trong các bộ kiểm thử con để tìm phương án tối. Rừ ràng, nếu chỉ tính tổng mức năng lượng cho một ca kiểm thử bằng cách tính tổng năng lượng của tất cả các cậu lệnh nó phủ qua, kết quả ước lượng sẽ không chính xác trong trường hợp câu lệnh đó không thực thi được.
Luận ấn tiếp tục đưa ra công thức để tính toán hệ số phủ năng lượng của mỗi ca kiểm thử t; trong bộ kiểm thử 7 làm thước đo tính hiệu quả trong việc phát hiện lỗi của ¢;. Việc giảm hệ số € có thể làm tăng số nút tiêu thụ năng lượng đủ lớn dẫn đến tăng số lượng ca kiểm thử trong bộ kiểm thử tối ưu 7”, làm giảm hiệu quả của việc tối ưu bộ kiểm thử. Hệ số phủ năng lượng được tính bằng tổng chi phi năng lượng thực thi ca kiểm thử tị qua các nút có trọng số năng lượng đủ lớn chia cho tổng hệ số năng lượng của tất cả các nút có trọng.
Để kiểm tra tính hiệu quả của phương pháp đã đề xuất, luận án tiến hành kiểm tra khả năng phát hiện lỗi của bộ kiểm thử tối ưu 77 so với bộ kiểm thử ban đầu 7. Sau đó thực thi các ca kiểm thử trong 7 và 7" đối với cả hai phiên bản phần mềm và xem xét khả năng phát hiện lỗi của mỗi ca kiểm thử, ghi nhận khả năng phát.
Tiếp theo, luận án định nghĩa và đưa ra công thức tính toán hệ số phủ năng. Dựa trên hệ số phủ năng lượng eCover, luận án đề xuất một thuật toán tham lam để lựa chọn các ca kiểm thử có hệ số phủ lớn. Phần cuối cùng trong chương này, luận án tiến hành thực nghiệm để kiểm tra.
Mặc dù đã có những kết quả nhất định nhưng phương pháp đã đề xuất vẫn còn một số hạn chế. Kết quả nghiên cứu của chương nay đã được công bố tại hội nghị Nafosted.
Nếu muốn tru tiên hoàn toàn cho năng lượng, người xây dựng phần mềm có thể thiết lập hệ số œ = 0, ngược lại nếu muốn ưu tiên hoàn toàn về mặt thời gian thực thi có thể thiết lap beta = 0. Tuy nhiên trong thực tế n thường rất lớn trong khi thời gian để ra quyết định giảm tải (lựa chọn trường. hợp thực thi tối ưu) có hạn, do đó các thuật toán Heuristic thông thường sẽ tỏ. Trong quá trình đánh giá các trường hợp thực thi trong tập hợp 4, thuật toán sẽ lựa chọn trường hợp thực thi tối ưu nhất bằng cách tính toán giá trị hàm mục tiêu theo công thức: f(a) =œx*+ + 8**~g và so sánh nó với giá trị nhỏ nhất của hàm mục tiêu minf.
Trong mỗi trường hợp, thực nghiệm tiến hành lặp lại 30 lần trên thiết bị bị đi động thật, đồng thời đo lường thời gian thực thi và mức tiêu thụ năng lượng cho mỗi lần thực thi. Tiếp theo, ta cài đặt các thuật toán ra quyết định xử lý theo ba trường hợp đã trình bày ở trên và biên dịch phần mềm ban đầu thành ba phiên ban phần mềm khác nhau.
Bằng cách áp dụng mô hình ước lượng mức độ tiêu thụ năng lượng đã đề xuất, luận án đưa ra công thức tính toán giá trị của các. Việc kết hợp giữa tính toán mức năng lượng dựa trên mô hình cùng với giới hạn thời gian ra quyết định bằng cách sử dụng thuật toán di truyền cho thấy tính khả thi nếu áp dụng phương pháp này vào thực tiễn. Đối với người sử dụng phần mềm, hệ số a va 8 phan ánh cho sự kì vọng của người sử dụng đối với thời gian xử lý và độ tiêu hao năng lượng của thiết bị di động.
Trong thực tế, sự kì vọng về thời gian thực thi và sự lo lắng về mức độ tiêu hao năng lượng của người dùng là khác nhau, dẫn tới sự chấp nhận các. Cần phải có những nghiên cứu theo hướng máy học để đánh giá các hệ số này và có thể tùy chỉnh tự động đối với mỗi trường hợp khác.