Download - Y2K38 Problem.ppt
The Y2K38 Problem
B.RajeshCSE Final Year
Area Of Focus
Name Overview The Y2K38 Bug Problem Definition Importance of Time Time and Date Calculation Consequences Solution
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
Name
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 un-
signed 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 CalculationDate & time time_t representation1-Jan-1970, 012:00:00 AM GMT
Date & time time_t representation1-Jan-1970, 012:00:00 AM GMT
1-Jan-1970, 112:00:01 AM GMT
Time and Date Calculation
Time and Date CalculationDate & time time_t representation1-Jan-1970, 012:00:00 AM GMT
1-Jan-1970, 112:00:01 AM GMT
1-Jan-1970, 6012:01:00 AM GMT
Time and Date CalculationDate & time time_t representation1-Jan-1970, 012:00:00 AM GMT
1-Jan-1970, 112:00:01 AM GMT
1-Jan-1970, 6012:01:00 AM GMT
19-Jan-2038, 2 147 483 64103:14:01 AM GMT
Time and Date CalculationDate & time time_t representation1-Jan-1970, 012:00:00 AM GMT
1-Jan-1970, 112:00:01 AM GMT
1-Jan-1970, 6012:01:00 AM GMT
19-Jan-2038, 2 147 483 64103:14:01 AM GMT
19-Jan-2038, 2 147 483 642 03:14:02 AM GMT
Time and Date CalculationDate & time time_t representation1-Jan-1970, 012:00:00 AM GMT
1-Jan-1970, 112:00:01 AM GMT
1-Jan-1970, 6012:01:00 AM GMT
19-Jan-2038, 2 147 483 64103:14:01 AM GMT
19-Jan-2038, 2 147 483 642 03:14:02 AM GMT
19-Jan-2038, 2 147 483 643 03:14:03 AM GMT
Time and Date CalculationDate & time time_t representation
19-Jan-2038, 2 147 483 644 03:14:04 AM GMT 19-Jan-2038, 2 147 483 645 03:14:05 AM GMT 19-Jan-2038, 2 147 483 646 03:14:07AM GMT 19-Jan-2038, 2 147 483 647 03:14:07 AM GMT
1-Jan-1901 -2 147 483 647 03:14:08 AM 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
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 2038-compliant 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 to4 294 967 295
Conclusion and Suggestion
Most operating systems designed to run on 64-bit hardware already use signed 64-bit time_t
integers, effectivelyeliminating 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 YouFor Your
Cooperation