잡담

....

tomato13 2006. 10. 14. 22:13

exception handling이란 예외적인 상황이 발생하였을 경우 이에 대한 처리 구문을 명시하는 것일 듯 하다. 테스팅이란 bug(defect)가 존재함을 보여서 이에 대한 결함(fault)을 제거하는 작업일 것이다. 그 외 소프트웨어의 예상치 못한 동작을 억제하는 작업은 어떠한 것이 있을까....

 

embedded software의 경우에 defect의 유형은 'unexpected behavior'와 system crash(down)일 듯 하다. 그러나 경우에 따라서는 crash상황은 '오동작(unexpected behavior)'보다 더 bad한 case일 수 있다. (이에 대한 설명을 생략한다.) 따라서 crash상황을 50%감소시킬 수 있는 방안을 생각해 보았다. 그 범위 또한 memory heap에 대한 access(read/write)로 한정하였다. 방법은 기존의 memory manager를 사용하되 기능을 추가한다. 내용인즉, heap에서 할당되지 않은 영역에 접근하였을 경우 가장 근접한 할당 영역을 사용하는 것이다. 이 경우 잘못된 데이터를 read하고 write하게 되겠지만 데이터의 type이 access하고자 하는 type일 가능성에 있어서 50% 이상일 것으로 판단한다. (자세한 설명을 생략한다.) 때문에 data처리에 따른 오류가 발생하지는 않을 것으로 판단하며 때문에 crash가능성도 줄어들 것으로 기대한다.