Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 23

The Y2K38

Problem

B.Rajesh CSE Final Year

Area Of Focus

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

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.

Problem Definition

The root cause of this problem is exceeding the signed time_t (2 147 483 647) range to unsigned time_t(-2 147 483 647)number.

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 time_t representation 0

Time and Date Calculation


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

1-Jan-1970, 12:00:01 AM GMT

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 time_t representation 0

60

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 19-Jan-2038, 03:14:01 AM GMT time_t representation 0

60

2 147 483 641

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 19-Jan-2038, 03:14:01 AM GMT time_t representation 0

60

2 147 483 641

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

2 147 483 642

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 19-Jan-2038, 03:14:01 AM GMT time_t representation 0

60

2 147 483 641

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


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

2 147 483 642

2 147 483 643

Time and Date Calculation


Date & time 19-Jan-2038, 03:14:04 AM GMT 19-Jan-2038, 03:14:05 AM GMT 19-Jan-2038, 03:14:07AM GMT 19-Jan-2038, 03:14:07 AM GMT 1-Jan-1901 03:14:08 AM GMT time_t representation 2 147 483 644

2 147 483 645

2 147 483 646

2 147 483 647 -2 147 483 647

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 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.

Consequences
Many data structures in use today have 32-bit time representations embedded into their structure. File systems (many files systems use only 32 bits to represent times in inode) COBOL systems from the 1970s, 1980s and 1990s that have not been replaced by 2038compliant systems

Solution
There is no universal solution for the Year 2038 problem. Any change to the definition of the time_t data type would result in code compatibility problems in any application in which date and time representations are dependent on the nature of the signed 32-bit time_t integer.

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

Conclusion and Suggestion


Most operating systems designed to run on 64bit hardware already use signed 64-bit time_t integers, effectively eliminating the Year 2038 problem in any software that has been developed to use the extended format

References

1.http://en.wikipedia.org/wiki/Year_2038_problem

2.www.y2k38.com
3.www.gnu.org

Thank You
For Your Cooperation

You might also like