VnReview
Hà Nội

Sự cố "thiên niên kỷ" Y2K chuẩn bị lặp lại

Vào năm 2038, nhiều máy tính và điện thoại di động có thể sẽ gặp lỗi tương tự như sự cố nổi tiếng Y2K khi máy tính nhận biết sai thời gian và quay trở về mốc năm 1900. Tuy nhiên các chuyên gia máy tính cũng nhận định rằng sự cố này sẽ không trầm trọng như Y2K bởi giới công nghệ còn 24 năm nữa để giải quyết sự cố này.

Sự cố Y2K (hay còn gọi là sự cố năm 2000) xảy ra vào những năm cuối của thập kỷ 90 khi các chuyên gia máy tính tình cờ phát hiện ra rằng đến năm 2000 bộ đếm thời gian trên máy tính sẽ ghi nhận đó là năm 1900. Đó là vì trước đó người ta chỉ lập trình hai chữ số đại diện cho ngày/tháng/năm. Vì vậy ngày mùng 1 tháng Giêng năm 2000 (1/1/00) cũng sẽ được biểu thị giống với mùng 1 tháng Giêng năm 1900.

Trước thời điểm năm 2000 đã có nhiều dự đoán về những "thảm họa" do sự cố Y2K gây ra, chẳng hạn như tàu hỏa đi trệch đường ray, máy bay bị rơi do hệ thống máy tính bị nhiễu loạn. Thậm chí còn người còn dự đoán rằng số liệu nhiễu loạn sẽ gây nên tình trạng khan hiếm thực phẩm và các tên lửa hạt nhân sẽ tự khởi động. Nhưng may mắn thay, các chuyên gia trên khắp thế giới đã kịp sửa chữa các hệ thống máy tính nên đã không có thảm họa đáng kể nào xảy ra khi thế giới bước vào năm 2000.

Nhưng 24 năm nữa con người lại phải khắc phục một rắc rối tương tự, tạm gọi là sự cố 2038. Sự cố này ảnh hưởng đến các phần mềm sử dụng hệ số nguyên 32 bit để lưu trữ thông tin. Vào năm 1970, một nhóm kỹ sư phát triển hệ điều hành máy tính UNIX đầu tiên đã quyết định biểu thị thời gian ở dạng số nguyên 32 bit, và bắt đầu tính thời gian từ mùng 1 tháng Giêng năm 1970. Việc mã hóa thời gian trên hệ thống UNIX sau đó đã được triển khai rộng rãi tới tất cả các hệ thống phần mềm và phần cứng cần đo đếm thời gian.

Tuy nhiên, hệ số nguyên 32 bit chỉ biểu thị tối đa đến con số 2.147.483.647. Đến ngày 19/1/2038 thì 2.147.483.647 giây sẽ trôi qua tính từ 1/1/1970. Lúc đó, tất cả các hệ thống máy tính 32 bit sẽ khởi động trở lại mốc năm 1970.

Để hiểu về con số 2.147.483.647, chúng ta hãy hình dung: số lớn nhất có thể biểu thị bằng 1 chữ số là 9. Số lớn nhất có thể biểu thị bằng 2 chữ số là 99. Chúng ta đang biểu thị các con số trên hệ thập phân (10), vì thế 2 chữ số có thể biểu thị tất cả các con số từ 1 cho tới (10x10) -1, tức là 99. Và 3 chữ số có thể biểu thị từ 1 đến (10x10x10) -1 bằng 999.

Hệ nhị phân mà máy tính sử dụng cũng có cách biểu thị giống như vậy, nhưng thay vì dựa trên 10 con số thì nó dựa trên 2 con số (gốc 2), tức là 0 và 1. Vì thế, với một hệ nhị phân 32 bit gốc 2, số lớn nhất nó có thể biểu thị được là (2x2x2...x tới 31 lần số 2) -1 bằng 2.147.483.647.

Theo giáo sư Jonathan Smith thuộc khoa Điện toán và Thông tin Khoa học – Đại học Pennsylvania, thì đây là một rắc rối có thật. "Phần lớn các hệ thống dựa trên nền tảng UNIX sử dụng đồng hồ 32 bit bắt đầu tính thời gian từ 1/1/1970. Vì vậy, 68 năm sau tức là năm 2038 thì bộ nhớ thời gian sẽ tràn. Lúc đó đồng hồ có thể dừng hoạt động, các ứng dụng thời gian biểu, lịch hẹn có thể không hoạt động. Các giao dịch thanh toán có thể hoạt động không chính xác".

Tuy nhiên, việc khắc phục sự cố này về mặt kỹ thuật không phải quá khó khăn. Chúng ta chỉ cần chuyển các hệ thống phần mềm và phần cứng lên nền tảng cao hơn, chẳng hạn như 64 bit thì sẽ kéo dài được thời gian kết thúc. Trong vài năm qua, nhiều máy tính cá nhân đã chuyển sang nền tảng 64 bit. Nhiều công ty phần mềm cũng đã chuyển đổi vì đặc thù công việc. Chẳng hạn như các ngân hàng cần làm việc với các hợp đồng cho vay thế chấp có thời hạn hơn 30 năm.

Trên thực tế, hệ thống 64 bit không chỉ giúp chúng ta khắc phục sự cố 2038 mà thời gian tối đa nó có thể lưu trữ lên đến 292 tỷ năm - một con số quá ấn tượng để chúng ta yên tâm. Hơn nữa, các chuyên gia máy tính còn có 24 năm để khắc phục sự cố tiềm tàng này.

Đăng Khoa

Theo Business Insider

Chủ đề khác