1. 윤년에 의한 문제 : 2100년 2월28일

UNIX는 협정 세계시(UTCC)인 1970년 1월1일 0시0분0초붙 경과한 초의 수를 카운드 하여 현재 날짜와 시간을 산출 하고있음..

 

4년에 한번 꼴로 찾아오는 유년이 8년에 한번 찾아오는때가 있는데..

현재 세계각국에서 사용하고 있는 그레고리력에서 유년의 조건은 두가지가 있음

- 4로나눠서 나머지가 0으로 떨어지면 윤년

- 100으로 나눠서 나머지가 0이면 0이지만, 400으로 나눠서 나머지가 0이 아닌해는 제외한다.

 

그러면 2100년 , 2200년, 2300년 3500년은 윤년이 아님.

4년에 한번 돌아오는 윤년도 대부분 문제가 있는데, 2100년 2월28일이나 3월1일은 전세계적으로 문제 발생 가능성이 많이 있음.

 

2. 2038년 문제

 

UNIX는 협정 세계시(UTCC)인 1970년 1월1일 0시0분0초붙 경과한 초의 수를 카운드 하여 경과 초수의 카운터 수치가 증가하면 언젠가 경과 초수를 저정할 영역의 자리수 부족하지 않을까?

 

UNIX상에서 경과초수의 카운터로 32비트 정수를 사용하는것이 많음.

비트열의 맨처음 비트가 처음으로  1일되는 2038년 1월 19일 오후 0시 14분 8초

경우 최상위 비트가 '1'로 됨. (마이너스 의미)

즉 해당시간이 되면 애플리케이션 동작에 지장을 가져올 가능성이 많음

64비트 경우 최상의 비트가 1이 되는것은 1,000억년 이후 가능

 

3.2036년 문제

windows등 일부 OS상에서 작동하는 애플리케이션중,

1900년 1월 1일 9시 0시 0초 부터 경과 초수를 채용하는 OS상에서 경과 초수 값을 32비트 영역에 저장하고 있는 애플리케이션은 문제 발상 가능성 있음

 

출처 :  시스템다운 원인 파악이 먼저다중

Posted by ^________________^
,