Sunteți pe pagina 1din 17

The Y2K38 Problem

Area Of Focus

Name Overview History The Y2K38 Bug Problem Definition Importance of Time Time and Date Calculation Role of Time Consequences Solution Myths

Name
Abbreviation for the Y2K38 is adopted from Y2K Acronym accredited by Massachusetts programmer David Eddy Y = year, k = kilo or 1000 (2k = 2000) Also known as the Unix millennium bug or Y2K38 bug

Overview
January 19, 2038 will be a serious problem for many platforms, because these systems will "run out of time". Erroneous values satellites falling out of orbit, massive power outages, hospital life support system failures, phone system interruptions, bank problems, etc.

History
Computer Dates and Time
Calendars Time Zones EAM Unix Epoch Leap Seconds

The Y2K Bug


Hit at the stroke of midnight on December 31, 1999 Most programs could only handle 20th-century dates When dates turned to 00, computer would default to 1900
Produce erroneous results Affected dates and times on and after January 1, 2000

Contd..

The Y2K Bug


Inaccuracy of date and time functions
Persons age calculated by difference between two dates within the same century Y2Ks calculated difference of 1 Jan 2000 and 31 Dec 1999 = 100 years Caused incorrect date-related processing

Failure of computer systems


Software, firmware, hardware, embedded systems->domino effect

Problem Definition
Problem arises due to Standard time library

Programs not allocating enough bits to internal time


modern 32-bit computer stores a "signed integer" data type, such as time_t, in 32 bits Highest number these 31 data bits can store works out to exactly 2 147 483 647. time_t value, 2 147 483 647, represents January 19, 2038, at 7 seconds past 3:14 AM Greenwich Mean Time

Importance of Time
Major aspect of the physical world over which we have no control independent variable in most computer applications real time applications

Time and Date Calculation


Date & time 1-Jan-1970, 12:00:00 AM GMT 1-Jan-1970, 12:00:01 AM GMT 1-Jan-1970, 12:01:00 AM GMT 1-Jan-1970, 01:00:00 AM GMT time_t representation 0

60

3 600

2-Jan-1970, 12:00:00 AM GMT


19-Jan-2038, 03:14:07 AM GMT

86 400

2 147 483 647

Role Of Time
2's complement 32-bit signed integer, such as a time_t, set to its maximum value of 2 147 483 647 and then incremented by 1, will become -2 147 483 648. "-" sign at the beginning of this large number. A time_t value of -2 147 483 648 would represent December 13, 1901 at 8:45:52 PM GMT.

Consequences
Greatest danger with the Year 2038 Problem is its invisibility Scheduling software, billing programs, personal reminder calendars, and other such pieces of code that set dates in the near future will fail as soon as one of their target dates exceeds 19-Jan-2038, assuming a time_t is used to store them.
Contd..

Consequences
Embedded functions present a serious maintenance problem for all rollover issues like the year 2038 problem Programmers around the world embrace C because it gives maximum control and efficiency to the programmer. The 2038 problem is more likely to result in air traffic control disasters, life-support systems failure, and power grid meltdown than the Y2K problem.

Solution
Adopt the 64-bit computers In a 64-bit program, a time_t could represent any date and time in the future out to 292 000 000 000 A.D., which is about 20 times the currently estimated age of the universe. Unsigned in 32-bit software
an unsigned 32-bit integer can

go all the way up to 4 294 967 295

Myths
Will there be a Y2K38 bug? Fixing Y2K bug will solve Y2K38 bug
user interface database where only the last two digits are stored rare instances

Thank You
For Your Cooperation

S-ar putea să vă placă și