KR100293932B1 - 소프트웨어 코드인 이미지의 후처리 방법 - Google Patents

소프트웨어 코드인 이미지의 후처리 방법 Download PDF

Info

Publication number
KR100293932B1
KR100293932B1 KR1019970079042A KR19970079042A KR100293932B1 KR 100293932 B1 KR100293932 B1 KR 100293932B1 KR 1019970079042 A KR1019970079042 A KR 1019970079042A KR 19970079042 A KR19970079042 A KR 19970079042A KR 100293932 B1 KR100293932 B1 KR 100293932B1
Authority
KR
South Korea
Prior art keywords
information
memory map
size
user
storage area
Prior art date
Application number
KR1019970079042A
Other languages
English (en)
Other versions
KR19990058868A (ko
Inventor
박성용
Original Assignee
윤종용
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019970079042A priority Critical patent/KR100293932B1/ko
Publication of KR19990058868A publication Critical patent/KR19990058868A/ko
Application granted granted Critical
Publication of KR100293932B1 publication Critical patent/KR100293932B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/48Incremental compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/441Register allocation; Assignment of physical memory space to logical memory space

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 이미지 후처리 방법에 관한 것으로서, 소프트웨어 코드에 대응하는 메모리 맵(memory map) 정보 및 사용자가 저장하고자 하는 사용자 정보의 저장영역 크기를 추정하고, 상기 추정된 크기에 대응하는 정보 저장영역을 예약한 후 상기 소프트웨어 코드를 컴파일링 및 링킹하여 생성된 소프트웨어 이미지의 상기 예약된 정보 영역에 상기 메모리 맵 정보 및 상기 사용자 정보를 저장하는 이미지 후처리(Post Image Processing)를 수행하여 최종 프로그램으로 생성함을 특징으로 한다.

Description

소프트웨어 코드의 이미지 후처리 방법{A TECHNOLOGY FOR POST IMAGE PROCESSIG OF COMPILED S/W CODE}
본 발명은 이미지 후처리 방법에 관한 것으로서, 특히 컴파일링 및 링킹을 수행한 이미지에 사용자가 원하는 사용자 정보를 후처리하는 이미지 후처리 방법에 관한 것이다.
운영체제(operating system)란 컴퓨터 본체와 그 주변 장치를 효율적으로 동작시키기 위한 소프트웨어(software)이자 컴퓨터 프로그램의 시행을 제어하는 소프트웨어로 스케줄링(scheduling), 디버깅(debugging) 입출력 제어, 과금처리, 컴파일(compile), 기억분배, 데이터 관리 및 이에 관련한 여러 가지 서비스를 하는 것을 말한다.
미국특허 제 5,193,191 호에 개시되어 있는 것처럼 컴퓨터 이용 소프트웨어 개발 시스템은 메모리로부터 에디트(edit), 컴파일(compile), 링크(link)와 모든 시퀀스들의 수행(run)을 고속으로 실행하기 위한 프로그램을 필요로 한다. 컴퓨터의 실행방법에 있어서 소스 코드(source code)를 개발하는 에디트 - 컴파일 - 링크 사이클은, 컴퓨터에 의해 접근되는 소스 텍스트의 많은 모듈(module)을 생성하고, 각 모듈에 코드테이블을 생성시키기 위해 컴퓨터로부터 모듈을 컴파일링하고, 링크 테이블과 링크 리스트를 제공하고 그것에 의해 실행할 수 있는 목적 - 코드 이미지를 생성하기 위해 컴퓨터로부터 코드 테이블을 링킹하는 것으로 이루어진다.
통상적으로 소정의 기능을 수행하는 S/W 프로그램을 개발하는 데에는, S/W 이미지를 생성시 일반적인 상용 컴파일러가 지원하는 목적 모듈 포맷(Object Module Format: 이하 OMF라 칭한다)을 결과로써 프로그램 개발을 종료하였으며, 그 결과물(예: x.EXE)에 대한 수정은 고려의 대상에서 제외되었다.
또한 프로그램 개발시에 부수되는 디버깅 작업은 그 상용 컴파일러에 맞게 디자인이 된 상용 디버거를 이용하여야만 하였다.
그러나 상용으로 제공되는 디버거를 이용한 S/W 디버깅 작업은 디버거와 개발 프로그램간의 정보 수집 및 전달 과정에서의 시간적 오버헤드가 필연적이기 때문에 실제 운영상황과 똑같은 디버깅이 불가능하다.
특히 여러 타스크간에 긴밀한 관계를 갖는 실시간 멀티 타스킹 프로그램에서는 디버거를 이용한 테스트와 실제 운영상황에서의 테스트 결과가 틀려질 수도 있게 된다.
종래에는 이러한 차이에도 불구하고 실제 운영상황에서 S/W적인 오류가 발생시에는 프로그램상의 문제를 일으킨 해당 번지수만을 알 수가 있기 때문에 개발자는 번지수와 심볼의 비교, 디버거를 이용한 상황재현 등의 어려움과 시간소요를 당연하게 겪어왔다.
미국특허 제 5,012,409 호에는 멀티타스킹 운영 환경에서의 운영체제에 대해서 개시되어 있다. 방정식(equation) 리스트, 구성(configuration) 리스트, 함수 라이브러리, 입출력 장치, 많고 적은 타스크 성분에 의한 사용자에 의해 창조된 많고 적은 타스크 정의(definition)와 프로그램 가능한 타이머 인터럽트를 가지고 초기치를 맞춘 인터럽트 핸들러(interrupt handler)를 포함하는 실시간 멀티타스킹 운영체제에서 사용하기 위한 우선순위 열들의 배열을 포함하는 타스크 스케쥴러 시스템은 우선순위에 따라 타스크를 스테쥴링하기 위한 수단과 프로그램 가능한 타이머 인터럽트에 반응하는 타스크를 생성하기 위한 수단으로 이루어진다.
따라서, 본 발명의 목적은 컴파일링 및 링킹 수행후 생성된 이미지에 사용자가 원하는 사용자 정보를 상기 이미지의 예약된 정보 저장 영역에 저장하여 후처리를 수행하는 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명은; 소프트웨어 코드의 이미지 처리 방법에 있어서, 상기 소프트웨어 코드에 대응하는 메모리 맵(memory map) 정보 및 사용자가 저장하고자 하는 사용자 정보의 저장영역 크기를 추정하는 단계와, 상기 추정된 크기에 대응하는 정보 저장영역을 예약하는 단계와, 상기 정보 저장영역을 예약한 후, 상기 소프트웨어 코드를 컴파일링 및 링킹하는 단계와, 상기 컴파일링 및 링킹에 의해 생성된 소프트웨어 이미지의 상기 예약된 정보 영역에 상기 메모리 맵 정보 및 상기 사용자 정보를 저장하는 이미지 후처리(Post Image Processing)를 수행하는 단계와, 상기 이미지 후처리된 프로그램을 최종 프로그램으로 생성하는 단계를 포함하는 것을 특징으로 한다.
도 1은 본 발명의 일 실시예에 따른 이미지 후처리 공정 과정을 도시한 순서도
도 2는 본 발명의 일 실시예에 따른 이미지 후처리된 소프트웨어 프로그램 생성 과정을 도시한 순서도
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 1 은 본 발명의 일 실시예에 따른 이미지 후처리 공정 과정을 도시한 순서도이다.
먼저, 상기 도 1에 도시되어 있는 바와 같이 우선 제어부(도시하지 않음)는 소프트웨어 이미지 파일, 해당 메모리 맵(MAP) 정보 및 이미지 후처리 과정중에 입력하기를 원하는 사용자 정보 등과 같은 정보들을 입력받는다.(s10단계) 여기서, 상기 메모리 맵 정보는 공용함수의 심볼 이름과 해당 번지수, 대역변수의 심볼 이름과 해당 번지수와 같은 정보들을 의미하며, 상기 사용자 정보에 저장되는 정보에는 제한이 없다.
그러면, 상기 제어부는 상기 입력된 소프트웨어 이미지 파일을 검색하여 상기 메모리 맵 정보 및 사용자 정보를 저장하기 위해 예약된 정보 저장 영역의 크기를 분석한다(s20 단계). 여기서, 상기 정보 저장 영역의 크기는 상기 메모리 맵 정보 및 사용자 정보를 저장하기 위해 필요로 하는 저장 영역의 크기를 추정하고, 이렇게 추정된 크기를 가지고 정보 저장 영역을 상기 이미지 파일상에 예약한 것이다. 그리고 나서 상기 제어부는 상기 실제 저장할 메모리 맵 정보 및 사용자 정보의 크기, 즉 필요로 되는 정보량을 계산한다(s30 단계). 상기 제어부는 상기 계산된 메모리 맵 정보 및 사용자 정보의 크기와 상기 예약된 정보 저장 영역의 크기를 비교하여(s40 단계) 상기 비교 결과 상기 메모리 맵 정보 및 사용자 정보의 크기가 상기 예약된 정보 저장 영역의 크기를 초과하지 않았을 경우, 즉 상기 필요로 되는 정보량에 상기 예약된 정보 저장 영역의 크기가 적당할 경우 상기 메모리 맵 정보 및 사용자 정보를 상기 예약된 정보 저장 영역에 저장하고(s50단계) 상기 저장된 각 정보의 위치 및 크기를 레코드(record)에 등록(s60단계)하는 이미지 후처리를 수행한다. 상기 이미지 후처리 후 상기 제어부는 이렇게 이미지 후처리 수행된 소프트웨어 이미지를 최종 소프트웨어 이미지로 생성하고 종료한다(s70단계)
한편, 상기 메모리 맵 정보 및 사용자 정보의 크기가 상기 예약한 정보 저장 영역의 크기를 초과할 경우 상기 제어부는 상기 계산된 메모리 맵 정보 및 사용자 정보의 크기를 출력하여, 사용자로 하여금 상기 메모리 맵 정보 및 사용자 정보 크기에 적정한 정보 저장 영역을 다시 예약하도록 제어하고(s80 단계) 종료한다.
도 2 는 본 발명의 일 실시예에 따른 이미지 후처리된 소프트웨어 프로그램 생성 과정을 도시한 순서도이다.
먼저, 제어부는 소프트웨어 프로그램 코딩시 메모리 맵 정보 및 사용자 정보를 저장하기 위한 정보 저장 영역의 크기를 추정하여 예약한다(s100 단계). 이렇게 정보 저장 영역을 예약한 후 상기 제어부는 상기 소프트웨어 프로그램을 컴파일링 및 링킹한다(s110단계). 상기 제어부는 상기 컴파일링 및 링킹이 수행된 이미지 및 상기 저장하고자 하는 메모리 맵 정보 및 사용자 정보를 입력받고(s120단계) 상기 입력받은 메모리 맵 정보 및 사용자 정보를 가지고서 상기 컴파일링 및 링킹이 수행된 이미지에 대한 이미지 후처리 공정을 수행한다(s130단계). 여기서, 상기 이미지 후처리 공정은 상기 도 1에서 설명한 바와 같다. 이렇게 이미지 후처리 공정을 수행한후 상기 제어부는 상기 이미지 후처리 공정이 정상적으로 수행되었는지 검사한다(s140단계). 여기서, 상기 이미지 후처리 공정이 정상적으로 수행되었음을 검사하는 것은 상기 메모리 맵 정보 및 사용자 정보를 저장하는 이미지 후처리 공정서 상기 메모리 맵 정보 및 사용자 정보를 저장하는 예약된 정보 저장 영역의 크기가 상기 저장될 메모리 맵 정보 및 사용자 정보 크기보다 작아 이미지 후처리가 실패하는 경우에 대비하기 위함이다. 상기 검사 결과 상기 이미지 후처리 공정이 정상적으로 수행되었을 경우 상기 제어부는 상기 이미지 후처리된 프로그램을 최종 소프트웨어 프로그램으로 생성하고(s150단계) 종료한다.
한편, 상기 검사 결과 상기 이미지 후처리 공정이 정상적으로 수행되지 않았을 경우 상기 제어부는 상기 이미지 후처리 공정상에서 이미 이미지 후처리 공정 실패로 인해 출력된 메모리 맵 정보 및 사용자 정보 크기를 근거로 하여 상기 소프트웨어 프로그램에 다시 정보 저장 영역을 예약하여 코딩한다(s160 단계). 그리고 나서 상기 제어부는 이렇게 다시 정보 저장 영역이 예약된 코딩 프로그램을 컴파일링 및 링킹하고(s170단계) 상기 컴파일링 및 링킹이 수행된 이미지 및 상기 저장하고자 하는 메모리 맵 정보 및 사용자 정보를 입력받는다(s180단계). 그러면 상기 제어부는 상기 입력받은 메모리 맵 정보 및 사용자 정보를 가지고서 상기 컴파일링 및 링킹이 수행된 이미지에 대한 이미지 후처리 공정을 수행하여(s190단계) 상기 이미지 후처리된 프로그램을 최종 소프트웨어 프로그램으로 생성하고 종료한다(s150단계).
이렇게, 상기 이미지 후처리 과정에서 해당 소프트웨어 이미지에 관련되는 공용함수(Public Function)의 심볼 이름과 해당 번지수를 저장하면 소프트웨어의 오류발생시에 심볼 이름에 의한 디버깅이 가능하게 되는 것이고, 해당 소프트웨어 이미지에 관련한 대역변수(Global Variable)의 심볼 이름과 해당 번지수를 저장하면 소프트웨어의 오류발생시에 심볼 이름에 의한 디버깅이 가능하게 되어 검색이 필요한 변수의 경우 심볼 이름에서 번지수, 번지수에서 심볼 이름의 자유로운 변환 편의성을 제공하여 검색이 가능하게 된다. 그래서, 이렇게 이미지 후처리 공정에 따라 변수를 검색하는 것이 가능하게 되어 디버깅을 위한 별도의 디버거를 필요로 하지 않아 정보교환의 시간적 손실요소가 없는 소프트웨어 이미지안의 자체적인 정보를 이용한 오류 디버깅이 가능하여 실제 운영상황하에서의 심볼 이름에 의한 디버깅이 가능하게 한다.
또한, 해당 소프트웨어 이미지에 관련한 소프트웨어의 각 섹션의 위치와 크기를 저장하면 필요한 섹션의 개별적인 로딩 및 업그레이드 기능을 제공하며, 해당 S/W 이미지에 관련한 버전등 기타 사용자가 원하는 어떠한 사용자 정보라도 저장하여 이용할 수 있는 기능을 제공한다. 이러한 사용자 정보의 종류와 정보량은 프로그램의 특성에 맞게 조절이 가능하며, 각 정보는 그 위치 및 크기등이 따로 지정된 레코드에 등록되어 테이블 구동방식으로 운영되므로 빠른 검색과 수행을 하게 된다.
본 발명은 다양하게 변형될 수 있고, 여러 가지 형태를 취할 수 있지만, 상기 발명의 상세한 설명에서는 그에 따라 특별한 실시예에 대해서만 기술하였다. 하지만, 본 발명은 명세서에서 언급된 특별한 형태로 한정되는 것이 아닌 것으로 이해되어야 하며, 오히려 본 발명은 첨부된 청구범위에 의해 정의된, 본 발명의 정신과 범위 내에 있는 모든 변형물, 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
상술한 바와 같은 본 발명은 코딩 프로그램을 컴파일링 및 링킹 과정을 거쳐 실제 최종 프로그램으로 생성 과정에서 생성된 소프트웨어 이미지에 사용자가 저장하기를 원하는 메모리 맵 정보 및 사용자 정보를 추가적으로 특정 영역에 저장하는 이미지 후처리를 가능하게 한다는 이점을 가진다.
결국 사용자가 추가하기를 원하는 정보를 생성된 소프트웨어 이미지에 추가적으로 저장하여 최종 프로그램을 생성하므로 사용자가 디버깅 관련 정보들, 즉 관련 함수 및 심벌, 변수명과 같은 사용자 정보를 저장하여 별도의 디버거를 구비할 필요가 없고, 자체적으로 프로그램 디버깅을 수행하는 것이 가능하다는 이점을 가진다. 이렇게 사용자가 컴파일링 및 링킹에 따라 생성된 이미지에 원하는 사용자 정보를 추가적으로 저장하는 것이 가능하기 때문에 소프트웨어 프로그램의 기능적인 측면을 강화하게 되어 사용자 편의성을 증가시킨다는 이점을 가진다.

Claims (4)

  1. 소프트웨어 코드의 이미지 처리 방법에 있어서,
    상기 소프트웨어 코드에 대응하는 메모리 맵(memory map) 정보 및 사용자가 저장하고자 하는 사용자 정보의 저장영역 크기를 추정하는 단계와,
    상기 추정된 크기에 대응하는 정보 저장영역을 예약하는 단계와,
    상기 정보 저장영역을 예약한 후 상기 소프트웨어 코드를 컴파일링 및 링킹하는 단계와,
    상기 컴파일링 및 링킹에 의해 생성된 소프트웨어 이미지의 상기 예약된 정보 영역에 상기 메모리 맵 정보 및 상기 사용자 정보를 저장하는 이미지 후처리(Post Image Processing)를 수행하는 단계와,
    상기 이미지 후처리된 프로그램을 최종 프로그램으로 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 이미지 후처리를 수행하는 단계는,
    저장하고자 하는 상기 메모리 맵 정보 및 상기 사용자 정보의 크기가 상기 예약된 정보 저장 영역의 크기를 초과하는지 검사하는 단계와,
    상기 검사 결과 상기 메모리 맵 정보 및 상기 사용자 정보의 크기가 상기 예약된 정보 저장 영역의 크기를 초과하지 않을 경우 상기 예약된 정보 저장 영역에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 메모리 맵 정보 및 상기 사용자 정보의 크기가 상기 예약된 정보 저장 영역의 크기를 초과할 경우 상기 메모리 맵 정보 및 상기 사용자 정보의 크기를 출력하는 단계와,
    상기 출력된 크기에 따라 다시 정보 저장 영역을 예약하는 단계와,
    상기 정보 저장 영역을 다시 예약한 후 상기 컴파일링 및 링킹 단계로 복귀하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 메모리 맵 정보는 소프트웨어 코드에 사용된 공용함수(Public Function)의 심볼명과 해당 번지수, 전역 변수(Global Variable)의 심볼명과 해당 번지수를 포함하는 것을 특징으로 하는 방법.
KR1019970079042A 1997-12-30 1997-12-30 소프트웨어 코드인 이미지의 후처리 방법 KR100293932B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970079042A KR100293932B1 (ko) 1997-12-30 1997-12-30 소프트웨어 코드인 이미지의 후처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970079042A KR100293932B1 (ko) 1997-12-30 1997-12-30 소프트웨어 코드인 이미지의 후처리 방법

Publications (2)

Publication Number Publication Date
KR19990058868A KR19990058868A (ko) 1999-07-26
KR100293932B1 true KR100293932B1 (ko) 2001-08-07

Family

ID=37527425

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970079042A KR100293932B1 (ko) 1997-12-30 1997-12-30 소프트웨어 코드인 이미지의 후처리 방법

Country Status (1)

Country Link
KR (1) KR100293932B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539907A (en) * 1994-03-01 1996-07-23 Digital Equipment Corporation System for monitoring computer system performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539907A (en) * 1994-03-01 1996-07-23 Digital Equipment Corporation System for monitoring computer system performance

Also Published As

Publication number Publication date
KR19990058868A (ko) 1999-07-26

Similar Documents

Publication Publication Date Title
US6161216A (en) Source code debugging tool
US6072951A (en) Profile driven optimization of frequently executed paths with inlining of code fragment (one or more lines of code from a child procedure to a parent procedure)
US5557761A (en) System and method of generating object code using aggregate instruction movement
US6922827B2 (en) Iterative software development environment with prioritized build rules
US5960198A (en) Software profiler with runtime control to enable and disable instrumented executable
US6308323B1 (en) Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method
US6078744A (en) Method and apparatus for improving compiler performance during subsequent compilations of a source program
CA2061298C (en) Method for detecting critical failures during the building of complex computer programs from source code parts
US9672133B2 (en) Systems and methods for debugging applications using dual code generation
US5687375A (en) Debugging of High Performance Fortran programs with backup breakpoints
US20020013937A1 (en) Register economy heuristic for a cycle driven multiple issue instruction scheduler
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
EP3244306B1 (en) A computer-implemented method for allowing modification of a region of original code
JP2006092544A (ja) プリオペレーティングシステム環境におけるモジュールの動的リンク
US7290252B2 (en) Method and apparatus for building executable computer programs using compiled program libraries
US6360360B1 (en) Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
JPH0926884A (ja) バイナリ操作を必要とするタスク中に必要なフロー情報を使用可能とする方法および装置
US20080127118A1 (en) Method and system for dynamic patching of software
CA2240584C (en) Compile-time data dependency verification
KR100293932B1 (ko) 소프트웨어 코드인 이미지의 후처리 방법
KR20060035077A (ko) 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법
JP3840149B2 (ja) コンパイラ、演算処理システム及び演算処理方法
JP5360506B2 (ja) マルチコアにおけるプログラミングシステム、その方法及びそのプログラム
US20020073133A1 (en) Register allocation method and software development method for various execution environments and LSI for executing developed software
CN113286090B (zh) 摄像头多驱动动态配置方法、加载方法及相关装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070312

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee