KR20040102826A - 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법 - Google Patents

실시간 운영체제에서 소프트웨어적인 메모리 보호 방법 Download PDF

Info

Publication number
KR20040102826A
KR20040102826A KR1020030034432A KR20030034432A KR20040102826A KR 20040102826 A KR20040102826 A KR 20040102826A KR 1020030034432 A KR1020030034432 A KR 1020030034432A KR 20030034432 A KR20030034432 A KR 20030034432A KR 20040102826 A KR20040102826 A KR 20040102826A
Authority
KR
South Korea
Prior art keywords
memory
list
area
pages
allocated
Prior art date
Application number
KR1020030034432A
Other languages
English (en)
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 KR1020030034432A priority Critical patent/KR20040102826A/ko
Publication of KR20040102826A publication Critical patent/KR20040102826A/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60QARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
    • B60Q1/00Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor
    • B60Q1/26Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic
    • B60Q1/50Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating other intentions or conditions, e.g. request for waiting or overtaking
    • B60Q1/503Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating other intentions or conditions, e.g. request for waiting or overtaking using luminous text or symbol displays in or on the vehicle, e.g. static text
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60QARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
    • B60Q1/00Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor
    • B60Q1/26Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic
    • B60Q1/32Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating vehicle sides, e.g. clearance lights

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 실시간 운영체제(RTOS, Real Time Operating System)에서의 소프트웨어 메모리 보호(Software Memory Protection) 기능의 구현 방법에 관한 것으로서, 이러한 본 발명은 페이징(paging) 기법을 응용한 메모리에 대한 보호 기능을 소프트웨어적인 기능으로 추가함으로써 중요한 데이터에 대한 보호를 받을 수 있도록 하고, 또한 상기한 기능을 통해 메모리 보호 영역에 등록된 데이터들은 그 해당 페이지 블록(Page Block)에 대한 라이트(write) 권한을 부여받기 전까지는 리드(read)만 가능하도록 함으로써, 공유자원에 대한 왜곡 현상을 현저히 줄일 수 있으며, 이를 통해 시스템의 안정화에 기여할 수 있도록 한 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법에 관한 것이다.

Description

실시간 운영체제에서 소프트웨어적인 메모리 보호 방법{Method for protect of software memory in real time operating system}
본 발명은 실시간 운영체제(RTOS, Real Time Operating System)에서의 소프트웨어 메모리 보호(Software Memory Protection) 기능의 구현 방법에 관한 것으로, 보다 상세하게는 페이징(paging) 기법을 응용한 메모리에 대한 보호 기능을 소프트웨어적인 기능으로 추가함으로써 중요한 데이터에 대한 보호를 받을 수 있도록 하고, 또한 상기한 기능을 통해 메모리 보호 영역에 등록된 데이터들은 그 해당 페이지 블록(Page Block)에 대한 라이트(write) 권한을 부여받기 전까지는 리드(read)만 가능하도록 함으로써, 공유자원에 대한 왜곡 현상을 현저히 줄일 수 있으며, 이를 통해 시스템의 안정화에 기여할 수 있도록 한 실시간 운영체제에서소프트웨어적인 메모리 보호 방법에 관한 것이다.
일반적으로, 실시간 운영체제(RTOS, Real Time Operating System)(VxWorks)에서는 메모리 보호에 대한 기능이 미비하다. 따라서, 메모리 보호를 위한 기능을 추가하고자 할 경우 비싼 임의 패키지(optional package)를 구매하거나, 더 상위의 버전(version)으로 업그레이드를 해야 한다. 그러나, 이는 개발에 있어서 상당한 제약이 따르며, 많은 시간이 낭비되는 문제점이 있었다.
또한, 상용 실시간 운영체제에 메모리에 대한 보호 기능이 없으므로 인해 슈퍼바이저(supervisor) 모드에서 동작하는 모든 소프트웨어들은 어느 특정 영역에 대한 데이터가 왜곡되는 경우가 빈번하게 발생되며, 이로 인하여 소프트웨어들은 서로 상대방의 영역을 침범하지 않도록 주의해야 했고, 에러 발생시 디버깅에 있어 상당한 시간이 소요되는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래 기술의 제반 문제점을 해결하기 위해서 제안된 것으로서,
본 발명의 목적은 페이징(paging) 기법을 응용한 메모리에 대한 보호 기능을 소프트웨어적인 기능으로 추가함으로써 중요한 데이터에 대한 보호를 받을 수 있도록 하고, 또한 상기한 기능을 통해 메모리 보호 영역에 등록된 데이터들은 그 해당 페이지 블록(Page Block)에 대한 라이트(write) 권한을 부여받기 전까지는 리드(read)만 가능하도록 함으로써, 공유자원에 대한 왜곡 현상을 현저히 줄일 수있으며, 이를 통해 시스템의 안정화에 기여할 수 있도록 한 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명은,
메모리 상에서 소프트웨어 페이징으로 관리해야 할 영역을 설정하고, 할당된 영역은 동일한 크기의 페이지(page)로 분할한 후, 분할된 페이지에 대한 포인터(pointer)로 맵 테이블(map_table)을 세팅(setting)하고, 각 페이지에 대한 메모리 맵 리스트 구조(memory_map_list structure)를 구성하고, 이 후 해당하는 모든 페이지에 대한 비트맵(bitmap)을 초기화하는 제1 과정과,
프리 리스트(free list)를 검색하여 요구하는 크기(size)에 적합한 프리(free) 블럭을 할당하고, 운영체제는 상기 할당된 메모리를 프리 리스트에서 얻어와 어드레스를 리턴하여 관리를 요하는 데이터에 대한 보호 메모리 영역을 할당하는 제2 과정과,
상기 할당했던 보호 메모리 영역을 해제하고, 인접한 페이지에 대한 비트맵을 조사하여 합칠 수 있는 것은 합쳐서 더 큰 프리 블럭을 형성하여 리스트에 매다는 제3 과정과,
라이트(write)를 하기 전에 desc가 p_init()에 생성된 메모리 영역에 포함되는지를 체크하고, 맵 테이블을 통해 현재 쓰고자하는 타스크(Task)가 등록되어 있는지를 체크하여 권한을 가지지 않은 타스크가 라이트를 하려고 하면 블럭과 같은 크기의 블럭을 프리 리스트에서 얻어와 라이트 하는 제4 과정과,
상기 해당하는 페이지에 대한 라이트 권한이 획득되면 맵 테이블에 리스트로등록하는 제5 과정으로 구성됨을 그 방법적 구성상의 특징으로 한다.
도 1은 본 발명에 의한 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법을 설명하기 위한 구조도를 나타낸 도면이다.
이하, 상기와 같은 기술적 사상에 따른 본 발명의 「실시간 운영체제에서 소프트웨어적인 메모리 보호 방법」의 바람직한 실시 예를 첨부된 도면에 의거 상세히 설명하면 다음과 같다.
도 1은 본 발명에 의한 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법을 설명하기 위한 구조도를 나타낸 도면이다.
이에 도시된 바와 같이, 메모리 상에서 소프트웨어 페이징으로 관리해야 할 영역을 설정하고, 할당된 영역은 동일한 크기의 페이지(page)로 분할한 후, 분할된 페이지에 대한 포인터(pointer)로 맵 테이블(map_table)을 세팅(setting)하고, 각 페이지에 대한 메모리 맵 리스트 구조(memory_map_list structure)를 구성하고, 이 후 해당하는 모든 페이지에 대한 비트맵(bitmap)을 초기화하는 제1 과정과;
프리 리스트(free list)를 검색하여 요구하는 크기(size)에 적합한 프리(free) 블럭을 할당하고, 운영체제는 상기 할당된 메모리를 프리 리스트에서 얻어와 어드레스를 리턴하여 관리를 요하는 데이터에 대한 보호 메모리 영역을 할당하는 제2 과정과;
상기 할당했던 보호 메모리 영역을 해제하고, 인접한 페이지에 대한 비트맵을 조사하여 합칠 수 있는 것은 합쳐서 더 큰 프리 블럭을 형성하여 리스트에 매다는 제3 과정과;
라이트(write)를 하기 전에 desc가 p_init()에 생성된 메모리 영역에 포함되는지를 체크하고, 맵 테이블을 통해 현재 쓰고자하는 타스크(Task)가 등록되어 있는지를 체크하여 권한을 가지지 않은 타스크가 라이트를 하려고 하면 블럭과 같은 크기의 블럭을 프리 리스트에서 얻어와 라이트 하는 제4 과정과;
상기 해당하는 페이지에 대한 라이트 권한이 획득되면 맵 테이블에 리스트로 등록하는 제5 과정을 포함하여 이루어진 것을 특징으로 하는 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법.
상기한 구성을 좀 더 상세하게 살펴보면 다음과 같다.
먼저 p_init(size)는,
메모리 상에서 소프트웨어 페이징으로 관리해야 할 영역을 설정한다. 할당된 영역은 동일한 크기의 페이지(page)로 분할된다. 분할된 페이지에 대한 포인터(pointer) 등으로 맵 테이블(map_table)을 세팅(setting)하고, 각 페이지에 대한 메모리 맵 리스트 구조(memory_map_list structure)를 구성한다.
여기서, 상기 구조 안에는 각 페이지에 대한 시작 어드레스(start address)가 있다.
Struct page {
Struct page list ;
Int index ; /* 각 page에 대한 index */
...
int *pointer ; /*해당 page에 대한 address */
} memory_map_list
그런 다음, 해당하는 모든 페이지에 대한 비트맵(bitmap)을 초기화한다.
다음으로, p_alloc(size)는,
관리를 요하는 데이터에 대한 보호 메모리 영역을 할당하는 것으로서, 먼저 프리 리스트(free list)를 검색하여 요구하는 사이즈(size)에 적합한 프리 블럭(Free Block)을 할당하고, 운영체제(OS)는 할당된 메모리를 프리 리스트에서 얻어와 어드레스를 리턴한다.
다음으로, p_free(page_num)는,
할당했던 보호 메모리 영역 해제하는 것으로서, 먼저 할당했던 영역을 해제하고, 이때 인접한 페이지에 대한 비트맵을 조사하여 합칠 수 있는 것은 합쳐서 더 큰 프리 블럭을 형성하여 리스트에 매단다.
예를 들면, 첨부한 도면 도 1에서 만약 page[1]이 프리가 되면 page[0]과 합쳐져 2페이지 짜리 블럭을 free_block[ ]에 매달 것이다. 이때 해당하는 비트맵도 세팅한다.
다음으로, p_memcpy(src, desc, size)는,
메모리에 라이트(write)할 경우에 사용하는 것으로서, 라이트를 하기 전에 desc가 p_init()에 생성된 메모리 영역에 포함되는지를 체크한다. 맵 테이블을 통해 현재 쓰고자하는 타스크(Task)가 등록되어 있는지를 체크하고, 만약 권한을 가지지 않은 타스크가 라이트를 하려고 하면 블럭과 같은 크기의 블럭을 프리 리스트에서 얻어와 복사본에 라이트 한다.
다음으로, p_task_demend(page pointer)는,
해당하는 페이지에 대한 라이트 권한을 얻어오는 것으로서, 권한을 얻어지면 상기 맵 테이블에 리스트로 등록된다.
상술한 바와 같이 본 발명의 상세한 설명에서는 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법에 대한 구체적인 실시 예에 대하여 설명하도록 하지만, 본 발명은 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며, 후술되는 특허청구범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상술한 본 발명 "실시간 운영체제에서 소프트웨어적인 메모리 보호 방법"에 따르면,
페이징(paging) 기법을 응용한 메모리에 대한 보호 기능을 소프트웨어적인 기능으로 추가함으로써 중요한 데이터에 대한 보호를 받을 수 있도록 하고, 또한 상기한 기능을 통해 메모리 보호 영역에 등록된 데이터들은 그 해당 페이지 블록(Page Block)에 대한 라이트(write) 권한을 부여받기 전까지는 리드(read)만 가능하도록 함으로써, 공유자원에 대한 왜곡 현상을 현저히 줄일 수 있으며, 이를 통해 시스템의 안정화에 기여할 수 있는 이점을 가진다.
또한, 상기한 기능을 통해 시스템 개발실 어플리케이션(Application) 개발,디바이스 드라이버(Device Driver) 개발과 운영 체제(OS) 상에서 중요한 데이터에 대하여 적용 가능하며, 소프트웨어적인 페이징 기법을 도입하여 중요한 데이터에 대해서만큼은 운영체제(OS)가 보호를 보장해 줄 수 있는 이점을 가진다.

Claims (1)

  1. 실시간 운영체제(RTOS, Real Time Operating System)에 있어서,
    메모리 상에서 소프트웨어 페이징으로 관리해야 할 영역을 설정하고, 할당된 영역은 동일한 크기의 페이지로 분할한 후, 분할된 페이지에 대한 포인터로 맵 테이블(map_table)을 세팅하고, 각 페이지에 대한 메모리 맵 리스트 구조를 구성하고, 이 후 해당하는 모든 페이지에 대한 비트맵을 초기화하는 제1 과정과;
    프리 리스트(free list)를 검색하여 요구하는 크기(size)에 적합한 프리(free) 블럭을 할당하고, 운영체제는 상기 할당된 메모리를 프리 리스트에서 얻어와 어드레스를 리턴하여 관리를 요하는 데이터에 대한 보호 메모리 영역을 할당하는 제2 과정과;
    상기 할당했던 보호 메모리 영역을 해제하고, 인접한 페이지에 대한 비트맵을 조사하여 합칠 수 있는 것은 합쳐서 더 큰 프리 블럭을 형성하여 리스트에 매다는 제3 과정과;
    라이트(write)를 하기 전에 desc가 p_init()에 생성된 메모리 영역에 포함되는지를 체크하고, 맵 테이블을 통해 현재 쓰고자하는 타스크(Task)가 등록되어 있는지를 체크하여 권한을 가지지 않은 타스크가 라이트를 하려고 하면 블럭과 같은 크기의 블럭을 프리 리스트에서 얻어와 라이트 하는 제4 과정과;
    상기 해당하는 페이지에 대한 라이트 권한이 획득되면 맵 테이블에 리스트로 등록하는 제5 과정을 포함하여 이루어진 것을 특징으로 하는 실시간 운영체제에서소프트웨어적인 메모리 보호 방법.
KR1020030034432A 2003-05-29 2003-05-29 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법 KR20040102826A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030034432A KR20040102826A (ko) 2003-05-29 2003-05-29 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030034432A KR20040102826A (ko) 2003-05-29 2003-05-29 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법

Publications (1)

Publication Number Publication Date
KR20040102826A true KR20040102826A (ko) 2004-12-08

Family

ID=37379031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030034432A KR20040102826A (ko) 2003-05-29 2003-05-29 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법

Country Status (1)

Country Link
KR (1) KR20040102826A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755701B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 내장형 시스템을 위한 요구 페이징 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100755701B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 내장형 시스템을 위한 요구 페이징 장치 및 방법
US7617381B2 (en) 2005-12-27 2009-11-10 Kim Hyo-Jun Demand paging apparatus and method for embedded system

Similar Documents

Publication Publication Date Title
EP2997477B1 (en) Page table data management
RU2602793C2 (ru) Способ модификации разрешений на доступ к памяти в защищенной процессорной среде
EP2172844A1 (en) Memory protection method, information processing apparatus, program, and computer-readable storage medium
CN114327777B (zh) 确定全局页目录的方法、装置、电子设备及存储介质
JPH0156419B2 (ko)
CN109753347B (zh) 一种实现驱动的***及方法
KR102044075B1 (ko) 메모리 오류 감지 방법
EP0892955B1 (en) Method and apparatus for protecting data using lock values in a computer system
US7783849B2 (en) Using trusted user space pages as kernel data pages
KR20130111171A (ko) 정보 처리 장치, 정보 처리 장치 제어 방법 및 정보 처리 장치 제어 프로그램을 기록한 컴퓨터 판독가능한 기록 매체
KR20040102826A (ko) 실시간 운영체제에서 소프트웨어적인 메모리 보호 방법
JPH10289158A (ja) タスク管理装置
US9286483B2 (en) Protecting visible data during computerized process usage
KR20130131025A (ko) 실시간 다중 프로세스 수행 환경에서의 메모리 보호 방법
Elphinstone et al. Supporting persistent object systems in a single address space
CN114218129A (zh) 一种Flash数据访问方法及相关设备
CN111694602A (zh) 跨分区的数据处理方法及装置
CN105844151B (zh) 一种文件存储保护实现方法和***
CN112256460B (en) Inter-process communication method, inter-process communication device, electronic equipment and computer readable storage medium
CN117692416B (zh) 网络报文处理方法、装置、计算机设备和存储介质
CN112631720B (zh) 内存控制方法、介质及设备
JP2828252B2 (ja) ファイルアクセス制御方式
CN117827501A (zh) 一种内存越界防护方法以及装置
JPH01201751A (ja) メモリー保護装置
KR20070030041A (ko) 페이징 기법을 이용한 이동통신 단말기의 메모리 관리 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination