Sự cố máy tính năm 2000

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
Logo được thiết kế bởi Hội đồng của Tổng thống vào thời khắc chuyển năm 2000 trên trang Y2K.gov

Sự cố máy tính năm 2000 (còn được gọi là sự cố Y2K, lỗi thiên niên kỷ, hay đơn giản là Y2K) là sự cố máy tính diễn ra vào thời khắc đầu tiên bước sang năm 2000. Nguyên nhân là do các máy tính thế hệ cũ, các vi mạch đồng hồ điện tử cũ không thể nhận biết được sự khác biệt giữa các năm 20001900, bởi vì chúng được lập trình với 2 chữ số cuối cùng của năm nhằm tiết kiệm dung lượng lưu trữ khi mà giá cả sản xuất phần cứng máy tính trong giai đoạn đầu còn đắt đỏ. Khi những máy này cộng thêm một con số vào sau 99 (Ví dụ 1), BIOS sẽ đặt lại số đếm thành 00. Vấn đề này là do máy tính nhận dạng ngày 01/01/00 (ngày 1 tháng 1 năm 2000) như là ngày 1 tháng 1 năm 1900.

Trong việc thiết kế lập trình chương trình máy tính, hai chữ số của năm bị phát sinh lỗi khi chuyển từ x99 đến x00. Điều này đã gây ra một số mặt hạn chế liên quan đến hoạt động không chính xác của ngàythời gian sau ngày và giờ và sau ngày 1 tháng 1 năm 2000 gọi là ngày giới hạn hay với cái tên "chân trời sự kiện". Nếu như không được sửa chữa kịp thời thì hệ thống làm việc lâu dài sẽ bị phá vỡ khi "...97, 98, 99, 00..." tăng dần theo thứ tự trở nên không còn hợp lệ trong thứ tự năm ví dụ như năm 19100. Ở các công ty và các tổ chức trên toàn thế giới đã kiểm tra, sửa chữa, và nâng cấp hệ thống máy tính của họ.

Ngày nay, các máy tính đời mới đã khắc phục được sự cố Y2K.

Sự cố lập trình[sửa | sửa mã nguồn]

Việc sử dụng hai chữ số ngày tháng để lùi ngày tháng về trước trong máy tính.

Cần để duy trì bit[sửa | sửa mã nguồn]

Trong thập niên 1960, bộ nhớ máy tính rất khan hiếm và đắt tiền, và hầu hết các dữ liệu được thực hiện trên phiếu đục lỗ là dữ liệu văn bản trong 80 cột tài liệu hồ sơ. Các ngôn ngữ lập trình thời gian như COBOLRPG xử lý số liệu trong ASCII hoặc EBCDIC. Các nhà lập trình lúc trước họ sử dụng bit gọi là "đục lỗ vùng" để lưu một ký tự trừ cho dạng số âm, hoặc để nén hai chữ số thành một byte hình thức này gọi là mã thập-nhị phân, nhưng nếu không thì đã được xử lý số như dạng chữ thẳng (straight text). Sau một thời gian thì các phiếu đục lỗ chuyển đổi thành băng từ tính và sau đó là những tập tin đĩa, tiếp sau là đến cơ sở dữ liệu đơn giản như ISAM nhưng cấu trúc của các chương trình thường thay đổi rất ít. Phần mềm phổ biến như dBase tiếp tục thực hiện việc lưu trữ văn bản vào những thập niên 19801990.

Việc tiết kiệm hai chữ số cho mỗi trường ngày đã được chú ý đến vào thập niên 1960. Các nhà lập trình ở thời điểm đó đã không chú ý đến lập trình thời gian mà họ chỉ quan tâm đến giải quyết các vấn đề chương trình, phần cứng dẫn đến việc sai số ở hai chữ số của năm rất đáng kể.

Tất nhiên sẽ có trường hợp ngoại lệ. Người đầu tiên biết được sự cố này là nhà khoa học máy tính nổi tiếng Bob Bemer, người đã nhận ra vào năm 1958 khi làm việc trên phần mềm phả hệ. Ông đã trải qua hai mươi năm đèn sách để trở thành nhà lập trình viên IBM, chính phủ Mỹ và ISO đã tham gia vào nhưng kết quả đem lại không đáng là bao. Điều này đã thúc đẩy ngôn ngữ lập trình COBOL ra đời vào năm 1961 để xác định bốn chữ số của năm cho chính xác. Mặc dù sự cố này được thông báo trên các tạp chí từ năm 1970 trở đi nhưng phần lớn các lập trình viên mới công nhận sự cố lớn Y2K này trong giữa thập niên 1990, thậm chí kéo dài đến gần cuối thập niên này mới được giải quyết thoả đáng.

Các sự cố xảy ra[sửa | sửa mã nguồn]

Trước năm 2000

  • Vào ngày 28 tháng 12 năm 1999, 10.000 thẻ của ngân hàng HSBC được sản xuất bởi công ty Racal ngưng hoạt động các giao dịch nhận và rút tiền, do vậy các giao dịch phải chuyển sang giao dịch trên giấy.

Sau năm 2000 vào ngày 1 tháng 1 năm 2000 có một số trục trặc xảy ra ở các nước như sau:

  • Ishikawa, Nhật Bản, thiết bị theo dõi bức xạ không hoạt động vào nửa đêm, nhưng không gây rủi ro nào.
  • Onagawa, Nhật Bản, báo động ở nhà máy nguyên tử hai phút vào trước 24h đêm.
  • cảng Osaka Media, Nhật Bản, một thiết bị viễn thông bị lỗi vì xử lý dữ liệu, lỗi được sửa kịp thời và không gây nguy hại.
  • Australia, máy kiểm tra vé xe bus ngừng hoạt động.
  • Ở Pháp, dịch vụ dự báo thời tiết quốc gia, Meteo France, xuất hiện lỗi trên website với lý do lập trình, trang web hiển thị ngày 1 tháng 1, năm "19100".

Chú thích[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]