[레포트 - 운영체제] 운영체제(Operating System) 종류 별 시간 개념
류명운
·2015. 5. 4. 06:06
[레포트 - 운영체제] 운영체제(Operating System) 종류 별 시간 개념
운영체제(Operating System) 종류 별 시간 개념-명우니닷컴.hwp
윈도우OS 와 리눅스OS의 1초 개념
1. 시간의 단위
우리가 현실세계에서 사용하는 1초를 컴퓨터상에서는 더 작은 단위로 밀리 초(millisecond), 마이크로 초(microsecond), 나노 초(nanosecond)로 표현이 가능하다. 이에 대한 값은 다음과 같다.
- millisecond: 1/103 (천분의 1초)
- microsecond: 1/106 (백만분의 1초)
- nanosecond: 1/109 (십억분의 1초)
2. OS에 따른 시간 정보 표현 방식
앞서 살펴본 시간들을 표현하기 위해서 각 운영체제나 응용프로그램 별로 상이한 방식을 사용한다. 여기서는 가장 널리 알려진 DOS Date/Time, Unix Date/Time, Windows 64-Bit Time Stamp, 그리고 추가적으로 모바일 환경에서 사용하는 시간정보 표현 방식에 대해서 살펴본다.
#1. 1 DOS Date/Time (도스 시간)
MS-DOS에서 사용한 시간 형식으로 현지 시간(Local Time)을 저장한다. 날짜와 시간에 각각 2바이트 씩 할당되어 총 4바이트로 표현되는 시간이다. 표현 범위는 다음과 같다.
- 시작 시간 : 1980년 01월 01년 00:00:00 (00 : 21 : 00 : 00)
- 종료 시간 : 2107년 12월 31일 23:59:58 (FF : 9F : BF : 7D)
시간 형식 구조는 다음과 같다. 각 날짜 및 시간 표현 범위에 맞게 정해진 비트를 할당해 두었다. 특이한 점은 초는 2초 단위로 표현한다는 점이다.
- Y : 1980년을 기점으로 한 년도
- M : 1 – 12
- D : 1 – 31
- h : 0 – 23
- m : 0 – 59
- s : 0 – 29 (2초 단위로 기록)
#1. 2 Unix Date/Time (유닉스 시간)
유닉스 시간은 전통적으로 유닉스 기반 운영체제에서 사용하던 시간 방식으로 1970년 01월 01일 0시를 기준(UTC)으로 1초씩 증가해온 시간이다. 유닉스 시간 역시 4바이트로 시간을 표현하기 때문에 시간 표현 범위에 제한이 있다. (2^32 = 4,294,967,296)
- 시작 시간 : 1970년 01월 01일 00:00:00 (UTC)
- 종료 시간 : 2038년 01월 19일 03:14:07 (UTC)
보통 프로그래밍시 유닉스 시간을 표현하기 위해서 4바이트의 time_t 자료형을 사용한다. 앞선 제약을 벗어나기 위해 최근 64비트 아키텍쳐에서는 time64_t를 사용하고 있다. 유닉스 타임으로 1234567890의 시간이 2009년 2월 13일 금요일 23시 31분 30초였다. 13일로 금요일로 당시 한때 이슈가 되었다. 더욱이 UTC+9인 국내 시간으로는 2009년 2월 14일 08시 31분 30초로 발렌타인 데이였다. 이 당시 인터넷 커뮤니티에서 이 날을 기념하려는 노력도 있었다.
#1. 3 Windows 64-Bit Time Stamp (윈도우 시간)
윈도우에서는 시간 표현 형식의 제약을 없애기 위해 8바이트(64비트)의 시간 표현 형식을 사용한다. 2^64 = 18,446,744,073,709,500,000 으로 매우 큰 숫자이다. 따라서, 1601년 01월 01일 0시 (UTC)를 기준으로 100 나노초씩 증가하는 하도록 표현한다. 8바이트 중 날짜와 시간에 각각 4바이트씩 할당해 사용한다.
- 시작 시간 : 1601년 01월 01일 00:00:00.0000000 (00000000 : 00000000)
- 종료 시간 : 30828년 09월 14일 02:48:05.4775807 (7FFFFFFF : FFFFFFFF)
100 나노초의 증가값을 사용함에도 불구하고 오지 않을 것만 같은 시간까지 표현이 가능하다. 윈도우 프로그래밍 시에 윈도우 시간을 표현하기 위해서는 FILETIME 구조체를 사용한다. FILETIME 시간을 time_t 시간으로 변경하기 위해서는 다음과 같은 공식을 사용할 수 있다.
- time_t = (FILETIME – 0x19DB1DED53E8000) / 10000000
윈도우 시간의 특징은 시간 값의 최상위 비트(MSB)가 할당 01h 값을 가진다는 점이다. 따라서, 파일 포맷 분석시 쉽게 시간정보를 파악할 수 있다. 다음은 휴지통에 지워진 파일에서 윈도우 시간을 확인한 것이다.
#1. 4 Mobile Date/Time (모바일 시간)
모바일 시간은 각 장치나 통신사 별로 서로 다른 형식을 사용한다. 그리고 각 통신사에서 나온 제품이라고 하더라도 모델에 따라 다른 방식을 사용하기도 한다. 다음 표는 그 중 대표적인 형식만 살펴본 것이다.
형식 저장 값 (16진수) 시간 표현 - "1896년 01월 06일 오전 12시 00분" 기준
- 10 진수 08 02 24 15 46 02 2008년 02월 24일 15시 46분 02초
- 16 진수 D8 07 01 13 13 15 33 (0x07D8 = 2008) 2008년 01월 19일 19시 21분 51초
- 16 진수(리틀엔디안) 07 03 02 0C 33 36 (0x07 = 2007) 2007년 03월 02일 12시 51분 54초
- 16 진수(빅엔디안) 07 D9 08 05 09 15 06 (0x07D9 = 2009) 2009년 08월 05일 09시 21분 06초
- ASCII 32303036 2E 3034 2E 3035 20 3135 3A 3031 2006년 04월 05일 15시 01분
- 3036 2E 3034 2E 3035 20 3135 3A 3031 2006년 04월 05일 15시 01분
- Qualcomm Time Stamp 0x054BEC34
- (1980년 01월 06일 오전 12시 00분 00초 기준) 2008년 02월 24일 15시 08분 53초
- 0x383936343630313139 (896460119초, ASCII) 2008년 06월 02일 16시 41분 59초
- Anycall Time Stamp 0x93E18003
이상으로 OS 각 종류 별로 시간에 대한 개념을 살펴보았다.
'삶의 늪에 들어 가기 전 > 정리중(미정리)' 카테고리의 다른 글
[한국성서대학교/한국성서대 묵상지]10주차 묵상지 (1) | 2015.05.06 |
---|---|
[한국성서대학교/한국성서대 묵상지] 9주차 묵상지 (3) | 2015.05.04 |
[네트워크 프로그래밍1]동기화와 비동기화 소켓 사용시 장단점에 대해서(펌) (0) | 2015.05.03 |
[소프트웨어공학]상태 다이어그램(state diagram) 그리기 (0) | 2015.05.02 |
[발표자료 - 네트워크 프로그래밍Ⅰ] 자바에서 사용하는 스레드(Thread)에 대해 (2) | 2015.04.30 |