KR100280569B1 - 프로세서를이용한메모리관리방법 - Google Patents

프로세서를이용한메모리관리방법 Download PDF

Info

Publication number
KR100280569B1
KR100280569B1 KR1019970076538A KR19970076538A KR100280569B1 KR 100280569 B1 KR100280569 B1 KR 100280569B1 KR 1019970076538 A KR1019970076538 A KR 1019970076538A KR 19970076538 A KR19970076538 A KR 19970076538A KR 100280569 B1 KR100280569 B1 KR 100280569B1
Authority
KR
South Korea
Prior art keywords
user
task
data
memory
processor
Prior art date
Application number
KR1019970076538A
Other languages
English (en)
Other versions
KR19990056540A (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 KR1019970076538A priority Critical patent/KR100280569B1/ko
Publication of KR19990056540A publication Critical patent/KR19990056540A/ko
Application granted granted Critical
Publication of KR100280569B1 publication Critical patent/KR100280569B1/ko

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

본 발명은 메모리 관리 장치가 제공되지 않는 모토롤라 68360 프로세서의 소프트웨어적인 메모리 관리를 구현하는 방법에 관한 것이다.
본 발명은 프로세서를 이용한 메모리 관리 방법에 있어서, 상기 프로세서의 메모리 실행 영역을 프로그램 코드 영역과 데이터 영역으로 구분하여 메모리 맵을 정하는 제 1 단계와, 상기 메모리 맵을 정한 후 사용자 타스크 실행이 감지되면 상기 실행된 사용자 타스크의 텍스트 데이터를 상기 데이터 영역에 저장하는 제 2 단계와, 상기 데이터 영역에 저장된 사용자 타스크의 텍스트 데이터를 이용하여 상기 사용자 타스크를 스케줄링 순서에 의하여 실행을 시키는 제3단계로 이루어진다.

Description

프로세서를 이용한 메모리 관리 방법{A MEMORY MANAGEMENT METHOD USING PROCESSOR}
본 발명은 프로세서를 이용한 메모리 관리 방법에 관한 것으로서, 특히 기본적으로 메모리 관리 장치(Memory Management Unit)가 없어 메모리의 보호(Protection) 기능이 존재하지 않는 모토롤라 68360 프로세서(MC68360)에서 제공하는 기본 주소 레지스터(Base Address Register)와 선택 주소 레지스터(Option Address Register)를 이용하여, 각 사용자 블록(User Block)간의 코드 영역에 메모리 보호를 걸어 쓸모 없는(Invalid) 데이터의 중복 기록(Overwrite)을 사전에 방지할 수 있게 되므로 시스템의 안정성을 확보하고 기존의 시스템에서는 전혀 불가능했던 온 라인(On-line)상의 에러를 즉각적으로 수정할 수 있는 방법에 관한 것이다.
일반적으로, 모토롤라 68360 프로세서에서는 메모리 관리 장치가 존재하지 않아 비정상적인 데이터(Abnormal Data)의 처리시나 소프트웨어의 논리적인 에러(Logical error) 발생시 다른 사용자 블록의 코드나 데이터를 중복 기록을 할 수도 있었다. 그러므로 이러한 문제를 야기한 블록만 비정상적인 상태로 가지 않고 자신의 영역을 침해당한 블록까지도 데이터의 비정상으로 인하여 비정상적으로 처리되거나 그 프로세서 전체가 비정상적으로 빠지게 된다. 즉, 메모리에 대한 보호가 제공되지 않아 그러한 상황이 발생하여도 온 라인 중에 조치를 취하거나 그러한 동작(Action)을 막을 수 없었다. 단지 문제가 발생하고 나서야 그 에러에 대한 정보를 추적하고, 그 당시 메모리의 다루지 않은 데이터(Raw Data)를 수집하여 에러가 난 부분을 추적하여 디버깅(Debugging)을 한 다음 조치를 취할 수 있었다.
종래에는 모토롤라 68360 프로세서를 사용함에 있어 제일 큰 문제점이 바로 메모리 관리가 되지 않는다는 것이었다. 또한 감독(Supervise)이나 사용자 블록의 소프트웨어에서는 물리적인 메모리(Physical memory)를 사용하며, 이로 인하여 쓸모 없는 데이터의 발생이 한 순간의 타스크 정지(Task termination)로 끝나지 않고 연속적으로 쓸모 없는 데이터를 야기시키게 된다.
이러한 쓸모 없는 데이터는 다른 비정상적인 데이터를 만들고, 혹은 그 프로세서 보드 자체를 비정상적이게 이끌고 나갈 수 있다.
이러한 상황은 단순하게 사용자에게 서비스를 못하는 문제뿐만이 아니라 여러 사용자에게 동시에 사용정지(Service Out)될 수도 있는 상황이 발생하여 시스템의 안정성 및 신뢰성에 문제가 될 수가 있다.
즉 보호되어져야 하는 메모리 영역임에도 불구하고 잘못된 데이터를 지닐 수 있다. 그럼에도 불구하고 그러한 상황을 사건이 발생하고 비정상적인 경우(Abnormal case)로 빠져야만 검출(detect)할 수 있다는 중요한 단점이 있다.
또한 상황이 이미 종료된 다음 추적을 해야 하기에 디버깅 및 온 라인중의 시스템의 안정성 및 운용에 상당한 지장을 준다는 문제점이 발생한다.
그리고 종래기술에서는 모토롤라 68360 프로세서가 메모리 관리 장치가 존재하지 않는 관계로 메모리 보호 없이 프로세서를 실행(Running)시켰었다. 즉 소프트웨어가 메모리를 판독/기록(Read/Write)하기 위해서는 절대 물리적 메모리 주소를 사용하였으며, 이에 메모리 보호 기능까지 없으므로 하드웨어적이든 소프트웨어적이든 쓸모 없는 데이터가 발생하면 이 데이터는 다른 비정상적인 데이터를 발생시킬 수도 있었고, 아니면 코드 영역까지도 침범하여 전체 기능에 예측 불가능한 상황까지도 야기시킬 수 있었던 것이다. 그러므로 쓸모 없는 데이터의 비정상적인 메모리로의 기록을 막을 수 없었던 것이다.
이로 인하여 시스템 전반적인 비정상 데이터의 흐름을 유발시키며 이는 단순한 메모리 보호 기능의 부재로 야기되는 문제로는 너무 위험한 상황이 발생하게 되는 것이다.
따라서, 본 발명의 목적은 시스템 메모리 실행 영역을 분할하여 타스크 실행에 필요한 데이터를 보호하는 메모리 관리 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명은; 프로세서를 이용한 메모리 관리 방법에 있어서, 상기 프로세서의 메모리 실행 영역을 프로그램 코드 영역과 데이터 영역으로 구분하여 메모리 맵을 정하는 제 1 단계와, 상기 메모리 맵을 정한 후 사용자 타스크 실행이 감지되면 상기 실행된 사용자 타스크의 텍스트 데이터를 상기 데이터 영역에 저장하는 제 2 단계와, 상기 데이터 영역에 저장된 사용자 타스크의 텍스트 데이터를 이용하여 상기 사용자 타스크를 스케줄링 순서에 의하여 실행을 시키는 제3단계로 이루어짐을 특징으로 한다.
도 1 은 본 발명의 실시예에 따른 메모리 맵을 도시한 도면
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하, 첨부한 도 1 을 참조하여 본 발명의 동작원리에 대하여 상세히 설명하면 다음과 같다.
먼저, 본 발명의 실시예에서는 프로세서 상에서 프로세서의 메모리 실행 영역을 프로그램 코드 영역과 데이터 영역으로 구분하여 메모리 맵을 정하고, 상기 메모리 맵을 정한 후 사용자 타스크 실행이 감지되면 상기 실행된 사용자 타스크의 텍스트 데이터를 상기 데이터 영역에 저장하며, 상기 데이터 영역에 저장된 사용자 타스크의 텍스트 데이터를 이용하여 상기 사용자 타스크를 스케줄링 순서에 의하여 실행시킴을 특징으로 한다.
도 1은 본 발명의 실시예에 따른 메모리 맵(Memory Map)을 도시한 도면으로서, 사용자 타스크, 예를 들어 사용자 타스크 1에 대한 사용자 타스크 제어 블록 데이터는 다음과 같다.
보호영역은 시작 주소가 0x10000, 크기가 0x10000, 그리고 코드 범위가 0x4ffff이다. 이것을 이용하면 메모리 보호를 해야 하는 영역은 0x10000에서 0x4ffff로 크기는 0x3ffff이며, 이 데이터를 이용하여 기본 주소 레지스터와 선택 주소 레지스터를 세팅한다.
기록 가능한 영역은 시작 주소가 0x50000이고 크기가 0x10000으로 이 데이터를 이용하여 기본 주소와 선택 주소를 세팅한다.
그후 타스크 1을 실행한다.
타스크 실행중 시스템과의 통신을 위하여 트랩(Trap)전에 기본 주소 레지스터와 선택 주소 레지스터를 시스템 영역에 맞게 세팅한다.
본 발명의 동작과정은 다음과 같다.
시스템상의 코드 영역과 데이터의 영역을 나누어 메모리 맵을 정한다.
사용자 블록의 실행후 타스크 제어 블록에 각 사용자가 할당(assign)될 때, 그 사용자 블록의 텍스트(Text) 영역을 저장(Save)한다.
사용자가 원하는 조건에 의하여 타스크 제어 블록이 실행이 되도록 스케줄링한다.
스케줄링에 의하여 사용자 타스크는 자신의 주소만을 기록을 허가(Write Enable)시키도록 모토롤라 68360 프로세서의 기본 주소 레지스터와 선택 주소 레지스터를 송수신기 제어 보드(Transceiver Control Board: TCB)에 저장된 값으로 세팅을 하게 된다.
그 값을 갖고 사용자 타스크는 실행을 하게 된다.
실행중 시스템 호(system call)를 이용하여 운영체계(Operating System: O/S) 영역으로 통신을 해야하는 경우, 이에 대한 인터페이스 루틴(interface routine)에서 모드를 시스템 모드로 바꾸어 주고 들어가도록 한다.
시스템 영역에서 사용자 모드로 복귀(return)할 때에도 상기 스케줄링에 의하여 사용자 타스크는 자신의 주소만을 기록을 허가시키도록 모토롤라 68360 프로세서의 기본 주소 레지스터와 선택 주소 레지스터를 송수신기 제어 보드에 저장된 값으로 세팅을 하는 방법으로 세팅하고 돌아간다.
이때 실행 타스크의 코드 영역과 데이터 영역의 정의(define)는 시스템 초기 설계시나 소프트웨어의 컴파일(compile)시 이에 대한 메모리 배치(lay out)를 정확하게 설계함으로써 최적치를 얻을 수 있다.
상기와 같이 동작하는 본 발명은, 시스템 모드의 실행과 사용자 모드의 실행을 구분하여 각 메모리 영역에 대한 보호를 설정하여 경우에 따른 특별한 메모리 맵에 대하여 메모리 관리의 기능을 구현할 수 있으며, 이를 이용하여 데이터가 비정상적인 영역에 쓰여지는 것을 방지함은 물론, 온 라인 중 그러한 상황의 발생시 그 순간에 바로 상황을 알 수 있어 즉각적인 조치를 할 수 있으며, 차후에는 이 때의 데이터를 이용하여 개발자가 완성된 프로그램에 더욱 다가갈 수 있는 자료로 쓰이게 된다. 즉 비정상적인 데이터의 발생을 그 블록 또는 타스크에만 국한시키고 그 무효한 데이터의 확산을 방지하여 모토롤라 68360프로세서를 사용하는 시스템의 안정성을 높이는 효과를 가져온다.

Claims (8)

  1. 프로세서를 이용한 메모리 관리 방법에 있어서,
    상기 프로세서의 메모리 실행 영역을 프로그램 코드 영역과 데이터 영역으로 구분하여 메모리 맵을 정하는 제 1 단계와,
    상기 메모리 맵을 정한 후 사용자 타스크 실행이 감지되면 상기 실행된 사용자 타스크의 텍스트 데이터를 상기 데이터 영역에 저장하는 제 2 단계와,
    상기 데이터 영역에 저장된 사용자 타스크의 텍스트 데이터를 이용하여 상기 사용자 타스크를 스케줄링 순서에 의하여 실행을 시키는 제3단계로 이루어짐을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 제 1 단계는 오프 라인중에 보호할 메모리 영역을 세팅하는 것임을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 제 2 단계는 상기 제1단계에서 정해진 메모리 맵상에서 온 라인중에 수행됨을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 상기 제 3 단계에서 타스크를 스케줄링 순서에 의하여 실행시 사용자 모드에서 실행함을 특징으로 하는 방법.
  5. 제 4 항에 있어서, 상기 사용자 모드로 실행을 시키면 사용 가능한 사용자 영역밖의 데이터를 기록하거나 액세스시 데이터 중복 기록을 방지함을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 사용자 타스크의 텍스트 데이터가 저장된 데이터 영역에는 상기 사용자 타스크 자신의 주소에 해당하는 데이터만을 기록하는 것이 허가됨을 특징으로 하는 방법.
  7. 모토롤라 68360 프로세서를 이용한 메모리 관리 방법은,
    시스템상의 프로그램 코드 영역과 데이터의 영역을 나누어 메모리 맵을 정하는 과정;
    사용자 블록의 실행후 타스크 제어 블록에 각 사용자가 할당될 때, 그 사용자 블록의 텍스트 영역을 저장하는 과정;
    사용자가 원하는 조건에 의하여 타스크 제어 블록이 실행이 되도록 스케줄링하는 과정;
    상기 스케줄링에 의하여 사용자 타스크는 자신의 주소만을 기록을 허가시키도록 모토롤라 68360 프로세서의 기본 주소 레지스터와 선택 주소 레지스터를 송수신기 제어 보드에 저장된 값으로 세팅을 하는 과정;
    그 값을 갖고 사용자 타스크가 실행하는 과정;
    실행중 시스템 호를 이용하여 운영체계 영역으로 통신을 해야하는 경우, 이에 대한 인터페이스 루틴에서 모드를 시스템 모드로 바꾸어 주고 들어가는 과정;
    시스템 영역에서 사용자 모드로 복귀할 때에도 상기 스케줄링에 의하여 사용자 타스크는 자신의 주소만을 기록을 허가시키도록 상기 모토롤라 68360 프로세서의 기본 주소 레지스터와 선택 주소 레지스터를 송수신기 제어 보드에 저장된 값으로 세팅을 하는 과정으로 세팅하고 돌아가는 과정을 포함하는, 프로세서를 이용한 메모리 관리 방법.
  8. 제 7 항에 있어서, 상기 실행 타스크의 코드 영역과 데이터 영역의 정의는 시스템 초기 설계시나 소프트웨어의 컴파일시 이에 대한 메모리 배치를 정확하게 설계함으로써 최적치를 얻을 수 있는, 프로세서를 이용한 메모리 관리 방법.
KR1019970076538A 1997-12-29 1997-12-29 프로세서를이용한메모리관리방법 KR100280569B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970076538A KR100280569B1 (ko) 1997-12-29 1997-12-29 프로세서를이용한메모리관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970076538A KR100280569B1 (ko) 1997-12-29 1997-12-29 프로세서를이용한메모리관리방법

Publications (2)

Publication Number Publication Date
KR19990056540A KR19990056540A (ko) 1999-07-15
KR100280569B1 true KR100280569B1 (ko) 2001-02-01

Family

ID=66171621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970076538A KR100280569B1 (ko) 1997-12-29 1997-12-29 프로세서를이용한메모리관리방법

Country Status (1)

Country Link
KR (1) KR100280569B1 (ko)

Also Published As

Publication number Publication date
KR19990056540A (ko) 1999-07-15

Similar Documents

Publication Publication Date Title
US7000225B2 (en) Method for inserting global breakpoints
US7185320B2 (en) System and method for processing breakpoint events in a child process generated by a parent process
US5768496A (en) Method and apparatus for obtaining a durable fault log for a microprocessor
US7111307B1 (en) Method and system for monitoring and verifying software drivers using system resources including memory allocation and access
US7313734B2 (en) Method and system for instruction tracing with enhanced interrupt avoidance
US7797580B2 (en) Determining that a routine has stalled
US6728949B1 (en) Method and system for periodic trace sampling using a mask to qualify trace data
JP2749528B2 (ja) エラー解析用のトレーサシステム
US7415699B2 (en) Method and apparatus for controlling execution of a child process generated by a modified parent process
US8024798B2 (en) Method and apparatus for protecting against buffer overrun attacks
CN113987507A (zh) 堆内存漏洞检测方法、装置、存储介质及电子设备
US7657792B2 (en) Identifying race conditions involving asynchronous memory updates
US8484620B2 (en) Implementing performance impact reduction of watched variables
EP0452243A2 (en) Method of tracing for application program operation
US6898555B2 (en) Method for indicating the integrity of use-information of a computer program
KR100280569B1 (ko) 프로세서를이용한메모리관리방법
US6785883B1 (en) Software system for tracing data
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
US8042176B2 (en) Computer readable medium on which is stored a program for preventing the unauthorized use of program data
US20010049794A1 (en) Write protection software for programmable chip
JP2002055851A (ja) コンピュータシステムにおける不正なメモリアクセスを検出する監視方法及びそのプログラム並びにその記録媒体
Maebe et al. Instrumenting JVMs at the machine code level
JP2661562B2 (ja) プログラム評価装置
JP3309792B2 (ja) スタックポインタトレース装置、スタックポインタトレース方法及び記録媒体
KR20010056714A (ko) 버퍼 오버플로우 결함 검출 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081008

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee