728x90


단편화는 기억장치(RAM, HDD 등등)의 빈 공간 또는 자료가 여러 개의 조각으로 나뉘는 현상을 말한다.

단편화 현상은 기억장치의 사용 가능한 공간을 줄이거나, 읽기와 쓰기의 수행 속도를 늦추는 문제점을 일으킨다.


메모리 단편화는 시스템에서 사용할 수 있는 메모리를 할당 받을 수 없거나 원치않는 메모리 낭비가 발생하는 현상이다.

메모리 할당자(allocator)가 해당 메모리를 할당 할 수 있는 상태로 만들 수 없을 때 생겨나며, 

이들이 불연속적인 작은 부분에 따로 흩어져 있기 때문에 메모리 단편화 문제가 발생한다.


내부 단편화는 할당을 요청한 크기에 비해서 실제 할당된 메모리의 크기가 커서, 해당 메모리 공간 내에서 사용하지 않는 부분이 있을 때 발생한다.

예) 패딩비트

struct
{

    char a;         // 1 padding byte after a

    short b;

    char c[5];      // 3 padding bytes after c

    double d;

    char e[2];      // 2 padding bytes added at the end

};



외부 단편화는 할당 가능한 메모리 크기의 Heap에 비해 실제 할당 가능한 개별 메모리 공간의 크기가 매우 작은 상태를 의미한다.


출처 : http://leehayun123.tistory.com/20

728x90
728x90

추측항법(Dead-reckoning)이라고 함은 GPS와 같은 로봇의 위치인식 센서에서 로봇의 위치가 들어오지 않을 때 바퀴의 이동량만으로 로봇의 위치를 추측하는 방법을 말합니다. 로봇의 미끄러짐이 없고 바퀴의 크기와 회전각 등을 정확히 알고 있다고 하면 추측항법 만으로도 정확한 로봇의 위치를 계산할 수 있겠지만, 로봇 모델링의 오차와 주변에서 발생하는 각종 에러 요소에 의해 추측 항법으로 계산한 위치에는 에러가 누적됩니다. 이를 보정하기 위해 DGPS, North Star, U-SAT와 같은 각종 위치인식 센서를 사용하여 칼만필터로 정합하는 과정을 거치게 됩니다.


여기서는 추측항법을 위한 바퀴의 이동량을 적분하는 3가지 방법에 대하여 소개합니다. 자세한 내용은 참조 문서를 참조하시기 바랍니다.

 

Odometric_Localization.pdf


출처 : http://blog.daum.net/pg365/112

728x90
728x90

ECEF(Earth-Centered Earth-Fixed) 또는 지구중심고정좌표계는 지구의 중력 중심을 원점으로 하는 좌표계로, GPS에서 사용되는 좌표체계이다. 








728x90
728x90

국제 횡(橫)메르카토르도법으로서 지구 전체를 원통으로 감싸는 형태의 좌표계로서 적도를 횡축, 자오선을 종축으로 한다. 지리좌표체계는 각 지점의 위치를 경,위도로 나타내는 데 비하여 UTM좌표계는 구역(zone)의 고유번호와 가상적인 준거점으로부터 북과 동으로 각각 떨어진 거리(m)를 나타내는 좌표체계를 말한다. 이것은 1948년 8월 미 육군성(DMA: 현재 NIMA)이 군사적인 목적으로 지도를 제작하면서 고안한 좌표체계이다. 


지리좌표체계가 극지방으로 갈수록 사변형의 모양이 감소되는 데 비하여 UTM(Universal Transeverse Mercator) 좌표는 직사각형 모양 그대로 유지하면서 면적, 거리, 방향, 위치 등을 표현하는 데 편리하다. 

원통에 지구가 접하는 부분을 경도 6도의 폭으로 60개 구역으로 나누어 횡축에 등각투영한다. 

다음은 북위 84도와 남위 80도 사이의 지역을 나누되 각 구역을 0.5도씩 중첩시킴으로써 각 구역의 경계 가까이 있는 지역들이 쉽게 접합되도록 하였다. 

또 좌우로는 180도를 기준으로 서쪽에서 동쪽으로 1~60까지 고유번호를 부여한다. 이때 적도의 남쪽이나 중앙자오선의 서쪽에 위치한 점들에는 '-'값을 부여해야 하는데 이러한 불편을 없애기 위하여 각 구역 내의 모든 점이 '+'값을 가지도록 기준선에 가수를 부여한다. 

이때 동향 가수는 중앙자오선에 500,000m, 북향 가수는 북반구에 0m,남반구에 1,000,000m를 부여한다.


지리좌표계는 경위도의 도, 분, 초로 표현하는 60진법을 사용하여 거리의 환산이 어려운 데 비하여, 이 좌표계는 10진법을 사용하여 거리의 환산을 간편하게 할 수 있다. 또한 좌표상에서 산출한 각이 참값에 근사하고, 거리의 수정량이 방향에 관계없이 동일하다. 이러한 이유로 측량계산, 현지답사는 물론 군사적으로 이용이 대단히 편리한 장점을 갖고 있다. 또한 UTM 좌표계는 서경 177도를 기준으로 동쪽으로 매 6도씩 이동하면서 중앙자오선을 정하고, 그 중앙자오선과 적도의 교점을 원점으로 정하여 가우스-크뤼거투영법을 적용한다.


우리나라에서는 해방 후부터 1974년까지 미군에 의존할 수밖에 없는 상황이었기 때문에 일제가 제작한 1/50,000 지형도를 UTM 투영법으로 수정하여 사용해왔다. 


이 좌표계로 친다면 우리 나라는 (52, S)에 위치 한다.





728x90
728x90

우리가 알고 있는 위도(latitude), 경도(longitude)를 이용한 좌표계가 바로 LLA좌표계로써,

예를 들어 위도, 경도가 (37.541, 126.986)이라고 한다면,

 

x = r sinθ cosφ

y = r sinθ sinφ

z = r cosθ

여기서 r은 반지름.

 

이렇게 계산한다면 대충 서울 정도가 나오게 된다.

LLA 좌표는 UTM과 ECEF 좌표 모두 변환이 가능하다.



728x90
728x90

간단하게 말하면 중단이 불가능한 연산을 의미한다. 문제는 이를 얼마나 이해하는 것인데 자신이 작성한 코드가 원자적 연산이 아닐 수도 있다는 사실을 알아야 한다. 


01: public class Example {
02:      int lastId;
03:      public void resetId() {
04:           lastId=0;
05:      }
06:      public int getNextId() {
07:           ++lastId;
08:      }

4번째 줄은 단순히 0을 lastId에 할당하므로 원자적 연산이다. 그러나 lastId 타입을 long으로 바꾸면 원자적 연산이 아닐 수 있다. 64비트 명령을 지원하기 위해서 JVM은 long을 32비트 명령어 두개로 처리한다. 7번째 줄 역시 원자적 연산이 아니다. ISA를 다 이해할 필요는 없지만 위의 내용 정도는 알아 두는 것이 정신 건강에 좋다.


728x90

+ Recent posts