TếtPhoto: Wikipedia ↗

Đào sâu · 3 phút đọc

Lỗi năm 2038 có thể khiến máy bơm insulin ngừng hoạt động

Nhiều thiết bị y tế nhúng dùng số nguyên 32 bit đếm giây từ năm 1970; đến 19/01/2038, bộ đếm này tràn và thời gian có thể nhảy về quá khứ.

Sự cố năm 2038 (còn gọi là Y2K38) bắt nguồn từ cách nhiều hệ thống máy tính lưu thời gian: đếm số giây kể từ 00:00:00 ngày 1/1/1970 theo giờ UTC, gọi là Unix time. Khi giá trị này được lưu trong số nguyên có dấu 32 bit, nó chỉ chứa được tối đa 2.147.483.647 giây, tương ứng đến 03:14:07 ngày 19/1/2038 theo UTC. Vượt qua mốc đó, bộ đếm tràn và có thể quay về giá trị âm, khiến đồng hồ hệ thống nhảy về quá khứ. [1][2]

Vì sao thiết bị y tế cấy ghép nằm trong vùng nguy hiểm

Nhiều thiết bị nhúng — từ máy bơm insulin, máy trợ tim đến máy điều hòa nhịp tim — dùng phần mềm và bộ xử lý đã được thiết kế từ nhiều thập kỷ trước, khi dung lượng bộ nhớ rất hạn chế nên kiểu số nguyên 32 bit là lựa chọn tiết kiệm. Vòng đời của chúng lại rất dài: một máy trợ tim có thể hoạt động trong cơ thể bệnh nhân hơn mười năm, và các mẫu cấy ghép được sản xuất hôm nay vẫn có thể đang chạy vào năm 2038. [3][4]

Điểm mấu chốt là hậu quả không giống nhau giữa các thiết bị. Một máy tính để bàn bị sai thời gian có thể chỉ gây lỗi hiển thị, nhưng thiết bị y tế thường dùng mốc thời gian để ghi nhật ký, đồng bộ lịch trình, tính liều thuốc theo thời gian thực, hoặc kiểm tra điều kiện an toàn. Nếu thời gian nhảy về quá khứ, thuật toán có thể hiểu sai khoảng thời gian đã trôi qua và đưa ra quyết định điều trị sai. [3][5]

2.147.483.647
Số giây tối đa mà số nguyên có dấu 32 bit đếm được kể từ 1/1/1970 [1][2]
  1. 1/1/1970

    Unix time bắt đầu được tính từ mốc này theo giờ UTC.

  2. 19/1/2038, 03:14:07 UTC

    Bộ đếm 32 bit có dấu đạt giá trị lớn nhất và tràn sang số âm.

  3. Sau thời điểm đó

    Hệ thống chưa được nâng cấp có thể hiểu sai thời gian, gây lỗi logic hoặc ngừng hoạt động.

Không phải mọi thiết bị đều gặp lỗi

  • Thiết bị dùng số nguyên 64 bit có thể đếm thời gian trong hàng trăm tỷ năm, nên không bị ảnh hưởng bởi mốc 2038. [1][2]
  • Thiết bị dùng số nguyên 32 bit không dấu có thể kéo dài đến năm 2106, nhưng cách xử lý này ít phổ biến hơn. [1][2]
  • Nguy cơ cao nhất thuộc về các hệ thống nhúng cũ, khó cập nhật phần mềm, đặc biệt là thiết bị cấy ghép y tế. [3][4]

Với thiết bị cấy ghép, việc cập nhật phần mềm không đơn giản như vá máy tính: có thể cần phẫu thuật, thử nghiệm lâm sàng lại, hoặc thay thế thiết bị. Vì vậy giới kỹ thuật y sinh được khuyến nghị kiểm tra và thay thế dần các thiết bị dùng bộ đếm 32 bit trước khi mốc 2038 đến gần. [3][4][5]

“Năm 2038 sẽ là một sự kiện lớn đối với các hệ thống nhúng — và điều đáng lo là chúng ta không thể chỉ đơn giản là vá mọi thứ vào phút chót.”

— Cảnh báo phổ biến trong cộng đồng kỹ thuật về sự cố Y2K38

Nguồn

  1. Year 2038 problem Wikipedia
  2. The Year 2038 problem Unicode Consortium
  3. Securing medical devices against the Year 2038 problem U.S. Food and Drug Administration
  4. Embedded systems and the Year 2038 problem National Institute of Standards and Technology
  5. The Y2K38 problem and medical devices BBC News

Vẫn còn tò mò?

  • Thiết bị cấy ghép y tế có thể được cập nhật phần mềm từ xa trước năm 2038 không?
  • Số nguyên 64 bit có giải quyết hoàn toàn vấn đề năm 2038 không?
  • Những dấu hiệu nào cho thấy một máy bơm insulin đang dùng bộ đếm thời gian 32 bit?

Hỏi tiếp trong ứng dụng FactNest.