KR100625167B1 - 임베디드 운영체계의 부팅방법 - Google Patents

임베디드 운영체계의 부팅방법 Download PDF

Info

Publication number
KR100625167B1
KR100625167B1 KR1020050009711A KR20050009711A KR100625167B1 KR 100625167 B1 KR100625167 B1 KR 100625167B1 KR 1020050009711 A KR1020050009711 A KR 1020050009711A KR 20050009711 A KR20050009711 A KR 20050009711A KR 100625167 B1 KR100625167 B1 KR 100625167B1
Authority
KR
South Korea
Prior art keywords
kernel
boot
ram
operating system
file system
Prior art date
Application number
KR1020050009711A
Other languages
English (en)
Other versions
KR20060088755A (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 KR1020050009711A priority Critical patent/KR100625167B1/ko
Publication of KR20060088755A publication Critical patent/KR20060088755A/ko
Application granted granted Critical
Publication of KR100625167B1 publication Critical patent/KR100625167B1/ko

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01FADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
    • E01F9/00Arrangement of road signs or traffic signals; Arrangements for enforcing caution
    • E01F9/50Road surface markings; Kerbs or road edgings, specially adapted for alerting road users
    • E01F9/576Traffic lines
    • E01F9/588Lane delineators for physically separating traffic lanes and discouraging but not preventing crossing
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01FADDITIONAL WORK, SUCH AS EQUIPPING ROADS OR THE CONSTRUCTION OF PLATFORMS, HELICOPTER LANDING STAGES, SIGNS, SNOW FENCES, OR THE LIKE
    • E01F9/00Arrangement of road signs or traffic signals; Arrangements for enforcing caution
    • E01F9/50Road surface markings; Kerbs or road edgings, specially adapted for alerting road users
    • E01F9/576Traffic lines
    • E01F9/582Traffic lines illuminated

Landscapes

  • Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 홈 네트워크를 위한 가정용 전자제품의 임베디드 운영체계에 대한 부팅 속도를 향상시키는 기술에 관한 것이다.
이 같은 본 발명은, 부트로더에서 실행 코드의 복사가 이루어지는 시점부터 커널코드까지 모두 RAM 영역으로 동시에 복사가 이루어진 상태에서 부팅이 구현되도록 함으로써, 커널 이미지의 검사부분과 복사는 물론 압축해제 동작의 스킵(skip)을 통해 시스템의 부팅 시간을 단축시켜 사용자에게 홈 네트워크를 위한 가정용 가전제품의 사용상 편의성을 향상시키는 임베디드 운영체계의 부팅 방법을 제공한다.
임베디드 운영체계, 부트로더, 커널, RAM, 파일시스템

Description

임베디드 운영체계의 부팅방법{Booting method of the embedded operating system}
도 1은 종래 가정용 임베디드 운영체계의 부팅 흐름도.
도 2는 본 발명의 일 실시예로 부팅 속도를 개선한 가정용 임베디드 운영체계의 부팅 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
10; 비휘발성 메모리 20; RAM
본 발명은 홈 네트워크를 위한 가정용 전자제품의 임베디드 운영체계(Embedded Operating System)에 대한 부팅 속도를 향상시키기 위한 기술에 관한 것으로, 보다 상세하게는 비휘발성 메모리(nonvolatile memory)에 저장된 부트로더(bootloader)의 실행 코드 복사가 이루어지는 시점부터 커널(kernel)의 실행코드도 함께 램(RAM)에 복사시켜 커널 이미지의 검사부분과 복사는 물론 압축해제(non-compress) 동작의 스킵(skip)이 가능하도록 하여 홈 네트워크를 위한 가정용 전자 제품의 임베디드 운영체계에 대한 부팅시간을 단축시킬 수 있도록 하는 임베디드 운영체계의 부팅 방법에 관한 것이다.
주지된 바와같이, 홈 네트워크를 위한 가전제품은 일반 가전제품에 홈 네트워크 기능을 추가하여 구현하는 것으로, 이는 미들웨어(middleware) 및 임베디드 운영체계가 적용되며 그 부팅은 일반적인 PC의 부팅방법과는 다르다.
이때, 상기 임베디드 운영체계의 부팅방법은 도시하지 않았지만 시스템의 핵심인 중앙처리장치(CPU)와, 도 1에서와 같이 기본적인 부팅에 필요한 실행코드와 파일시스템이 탑재된 비휘발성 메모리(10)는 물론, 파일시스템의 인스트럭션이 실행되면서 운영체계 및 응용프로그램의 작업 공간으로 사용되는 임시 메모리인 RAM(20)의 유기적인 연결로부터 구현된다.
즉, 상기 비휘발성 메모리(10)에 저장된 부트로더의 실행코드 부분에서 중앙처리장치를 초기화하고, 상기의 초기화가 끝나면 비휘발성 메모리(10)에 저장된 커널의 실행코드를 읽어 들이면서 부팅을 시작하였으며, 상기 부팅이라는 것은 사용자에게 쉘(shell)의 형태를 제공하기까지를 말하며, 이때가 되면 커널의 아이들 태스크(idle task)가 생성되고, 이 아이들 태스크의 점유율이 최고가 되어 사용자의 명령 및 조작을 기다리게 되는 것이다.
이를 보다 구체적으로 살펴보면, 비휘발성 메모리(10)에 저장된 부트로더에서 커널 이미지를 복사한 후, 상기의 이미지를 검사하고, 그 검사한 이미지의 압축을 푼 후에 비압축된 이미지를 RAM(20)상의 실행번지로 복사하여 커널 부팅을 시도하였다.
그리고, 상기 커널 부팅의 마지막 부분에서 비휘발성 메모리(10)에 저장된 파일시스템(file system)을 커널이 요구하고, 이때 압축된 램디스크(ramdisk) 형태의 파일시스템이 압축해제되면서 RAM(20) 영역으로 올라감으로써 홈 네트워크를 위한 가정용 가전제품의 사용이 가능하게 되는 것이다.
즉, 종래의 임베디드 운영체계는,
[1] 부트로더 실행
[2] 중앙처리장치의 초기화 후 부트로더의 나머지 실행영역을 RAM으로 복사
[3] 부트로더의 나머지 부분 실행-보드 초기화 & 부팅 변수(arguments) 입력
[4] 커널 이미지를 RAM영역으로 복사
[5] 커널 이미지 복사
[6] 커널 이미지 압축해제
[7] 부팅 변수를 저장하고 커널 엔트리 포인트로 점프
[8] 커널 코드 실행
[9] 파일 시스템을 RAM영역으로 복사
[10] 파일 시스템 검사
[11] 파일 시스템 압축해제
[12] 마운트 파일 시스템
[13] 파일 시스템을 통한 사용자 애플리케이션 실행
의 수순으로 그 부팅이 이루어지도록 하였다.
이때, 상기의 [1]∼[13] 과정은 전체 코드가 올라가는데 있어서 각 이미지마 다 검사 및 압축을 통한 저용량 사이즈를 구현하는데에는 별다른 지장이 없지만, 전체적인 부팅 과정으로 보았을 경우에는 부팅에 소요되는 시간이 많이 걸리는 단점이 있다.
이에따라, 운영체계없이 펌웨어(Firmware) 형태의 코드가 동작하기 때문에 부팅이 매우 짧아 전원을 인가한 후 수 초 이내에 사용이 가능한 형태로 전이가 이루어지는 일반 가전제품의 사용방법에 익숙한 사용자들에게 상기와 같이 임베디드 운영체계의 적용으로 제품에 대한 부팅 시간이 길어질 경우, 사용자들은 시스템의 고장 또는 이상동작을 의심하는 경우가 발생될 수 있으며, 부팅 시간의 지연은 자연히 사용시간의 지연으로 연결되는 등 그 사용상의 불편함이 따를 수 밖에 없었다.
즉, 홈 네트워크의 주 기능 사용시간보다 짧은 부팅 시간을 가져야 하고, 사용자가 가전제품의 이상으로 보지 않을 시간내에 부팅되어야 하며, 기능면에서 풍부한 애플리케이션(application) 및 미들웨어가 지원되는 조건의 임베디드 운영체계를 사용하는 것이 제품 개발에 유연하게 대처할 수 있다.
그러나, 상기와 같은 풍부한 애플리케이션과 미들웨어가 지원되기 위해서는 어댑테이션 레이어(adaptation layer)를 복잡하게 구성할 수 밖에 없었으며, 이는 곧 운영체계의 크기가 커지면서 부팅 시간이 자연적으로 길어지는 문제를 수반할 수 밖에 없었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 안출된 것으 로서 본 발명은, 비휘발성 메모리에 저장된 부트로더의 실행 코드 복사가 이루어지는 시점부터 커널의 실행코드도 함께 RAM에 복사함으로써, 커널 이미지의 검사부분과 복사는 물론 압축해제 동작의 스킵(skip)을 통해 홈 네트워크를 위한 가정용 임베디드 운영체계의 부팅시간을 단축시켜 홈 네트워크를 위한 가정용 가전제품에 대한 사용상의 편의성을 향상시킬 수 있도록 하는 임베디드 운영체계의 부팅 방법을 제공하려는데 그 목적이 있다.
상기 목적 달성을 위한 본 발명 임베디드 운영체계의 부팅 방법은,
부트로더에서 중앙처리장치를 초기화 후 비휘발성 메모리에 저장된 부트로더와 압축되지 않은 커널의 실행코드를 RAM으로 복사하는 단계;
상기 부트로더 자신이 사용할 하드웨어를 초기화 후 부팅변수를 커널로 입력하여 커널 이미지에 대한 검증 및 압축해제의 동작을 스킵하여 RAM에 복사된 커널의 실행코드를 실행시키는 코드실행단계;
상기 커널의 실행코드 실행으로부터 파일시스템을 RAM영역으로 복사한 후 파일시스템을 검사하고 사용자의 애플리케이션 실행이 이루어지도록 파일시스템을 압축 해제하는 애플리케이션 실행단계; 로 진행함을 특징으로 한다.
다른 일면에 따라, 상기 코드실행단계에는,
부트로더의 이미지를 커널을 포함한 이미지로 만들고, 커널의 동작과 부트로더의 동작 중에 같은 동작을 포함하는 루틴을 삭제하는 단계; 를 더 포함함을 특징으로 한다.
또 다른 일면에 따라, 상기 애플레케이션 실행단계에는,
파일시스템의 일부 기능을 커널에서 구현하도록 RAM으로 복사된 파일시스템의 압축 해제를 스킵하는 단계; 를 더 포함함을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 설명하면 다음과 같다.
도 2는 본 발명의 일 실시예로 임베디드 운영체계의 부팅 방법에 대한 흐름도로, 이는 비휘발성 메모리(10), 중앙처리장치(도면에는 도시하지 않음), RAM(20)의 유기적인 연결관계로부터 이루어진다.
즉, 도 2를 참조하면, 임베디드 운영체계의 부팅은 비휘발성 메모리(10), 중앙처리장치, RAM(20)의 유기적인 연결에 의해 복사단계, 코드실행단계, 애플리케이션 실행단계로 진행된다.
상기 복사단계는, 부트로더의 실행으로 중앙처리장치를 초기화하고, 다음으로 비휘발성 메모리(10)에 저장된 상기 부트로더와 압축되지 않은 커널의 실행코드를 RAM(20)으로 복사하는 수순으로 진행된다.
상기 코드실행단계는, 상기 부트로더 자신이 사용할 하드웨어(예; 보드)를 초기화한 후 사용자에 의해 입력되는 부팅변수를 커널로 입력하고, 다음으로 상기 커널의 압축 이미지를 RAM(20)으로 복사하여 검증한 후 그 검증된 압축된 커널 이미지의 압축을 해제하면서 부팅변수를 저장하고 커널 엔트리 포인트로 점프하는 동작을 스킵 즉, 건너뛰는 동작을 수행한 후 RAM(20)에 복사된 커널의 실행코드를 실행시키는 수순으로 진행된다.
이때, 상기 코드실행단계에는 임베디드 운영체계의 부팅 속도가 향상될 수 있도록 부트로더의 이미지를 커널의 이미지를 포함하는 이미지로 만들고, 상기 커널의 동작과 부트로더의 동작 중에 같은 동작을 포함하는 루틴을 삭제하도록 하였다.
상기 애플리케이션 실행단계는, 커널의 실행코드 실행으로부터 비휘발성 메모리(10)에 저장된 파일시스템을 RAM(20)으로 복사한 후 파일시스템을 검사하여 그 파일시스템의 압축을 해제하는 것으로, 상기의 압축 해제로부터 사용자의 애플리케이션 실행이 이루어지는 것이다.
여기서, 상기의 파일시스템에 대한 압축 해제는 파일시스템의 일부 기능을 커널에서 구현하여 임베디드 운영체계의 부팅 속도가 향상되도록 RAM(20)으로 복사된 파일시스템의 압축해제를 스킵하여도 무방하며, 반드시 이러한 것에 한정하는 것은 아니다.
이를 첨부된 도 2를 참조하여 보다 구체적으로 살펴보면 다음과 같다.
가정용 가전제품의 홈 네트워크를 위해 임베디드 운영체계를 부팅하고자 가정용 전자제품으로 전원을 인가하면, 부트로더(10)의 실행이 이루어지면서 중앙처리장치를 초기화시킨다.
이때, 상기 중앙처리장치의 초기화가 이루어짐과 동시에, 비휘발성 메모리에 저장된 부트로더는 물론 압축되지 않은 커널의 실행코드를 RAM(20)으로 복사한다.
즉, 상기 부트로더는 자신의 코드 사이즈와 커널의 코드 사이즈를 알고 있으므로, 상기 부트로더는 자기 자신의 실행코드가 RAM(20)으로 복사되는 시점에서 압 축되지 않은 커널의 실행코드도 함께 상기의 RAM(20)으로 복사시키게 되는 것이다.
이후, 상기 부트로더는 자신이 사용할 하드웨어(예; 보드)를 초기화한 후 사용자에 의해 부팅변수가 입력될 때 그 부팅변수를 커널로 입력한다.
그러면, 상기 커널의 압축 이미지를 RAM(20)으로 복사하여 검증하는 단계, 상기 검증된 커널 이미지의 압축을 해제하는 단계, 부팅변수를 저장하는 단계, 커널의 엔트리 포인트로 점프하는 단계의 동작이 스킵됨과 동시에, 상기 RAM(30)에 복사된 커널의 실행코드가 바로 실행된다.
즉, 상기 부트로더는 부팅변수가 입력됨과 동시에 빠른 속도의 부팅이 이루어지도록 쉘(shell)을 뛰워 부팅 시간을 기다리는 루틴을 제거하는 것으로, 이는 부트로더의 이미지를 커널의 이미지를 포함하는 이미지로 만들고, 상기 커널의 동작과 부트로더의 동작 중에 같은 동작을 포함하는 루틴을 삭제하는 것을 의미한다.
이에따라, 상기 부트로더는 쉘로 뛰는 시점에서 바로 커널의 엔트리 부분을 호출하게 되며, 이는 상기 부트로더가 이미 커널의 엔트리 부분을 알고 있으므로 해당 커널의 엔트리 주소로 점프하는 것만으로 가능한 것이다.
따라서, 상기와 같이 부트로더가 RAM(20)에 실행코드가 복사된 커널을 호출하는 경우, 상기 커널의 실행코드가 바로 실행되면서 빠른 속도의 부팅이 이루어지고, 이와동시에 비휘발성 메모리(10)에 저장된 파일시스템은 RAM(20)으로 복사된다.
그러면, 상기 RAM(20)에 복사된 파일시스템을 검사하면서 압축 해제가 이루어짐으로써, 사용자의 애플리케이션 즉, 홈 네트워크를 위한 가정용 가전제품은 그 동작이 신속하게 이루어질 수 있게 되는 것이다.
이때, 상기의 파일시스템에 대한 압축 해제는 파일시스템의 일부 기능을 커널에서 구현할 경우, RAM(20)으로 복사된 파일시스템의 압축해제를 스킵할 수 있도록 하였으며, 이 경우 임베디드 운영체계의 부팅 속도는 보다 더 향상될 수 있는 것이다.
이상에서 설명한 바와같이 본 발명은 비휘발성 메모리에 저장된 부트 로더의 실행 코드 복사가 이루어지는 시점부터 커널의 실행코드도 함께 RAM에 복사하는 임베디드 운영체계의 부팅 방법을 통해, 커널 이미지의 검사부분과 복사는 물론 압축해제 동작의 스킵을 통해 시스템의 부팅 시간을 단축시켜 홈 네트워크를 위한 가정용 가전제품의 사용상 편의성을 향상시킴은 물론, 풍부한 애플리케이션 및 미들웨어가 지원되는 조건의 임베디드 운영체계의 사용으로 임베디드 운영체계가 탑재된 가정용 가전제품의 개발 기간을 단축하고, 아울러 가정용 임베디드 운영체계에서 구현하기 어려웠던 미들웨어 및 애플리케이션 사용이 용이하게 이루어지도록 함은 물론, 미들웨어 및 애플리케이션의 구매 비용을 대폭 절감시키는 효과를 제공한다.
본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와같은 변경은 청구범위 기재의 범위내에 있게 된다.

Claims (3)

  1. 부트로더에서 중앙처리장치를 초기화 후 비휘발성 메모리에 저장된 부트로더와 압축되지 않은 커널의 실행코드를 RAM으로 복사하는 단계;
    상기 부트로더 자신이 사용할 하드웨어를 초기화 후 부팅변수를 커널로 입력하여 커널 이미지에 대한 검증 및 압축해제의 동작을 스킵하여 RAM에 복사된 커널의 실행코드를 실행하도록, 상기 부트로더의 이미지를 커널을 포함한 이미지로 만들고, 커널 동작과 부트로더의 동작 중에 같은 동작을 포함하는 루틴을 삭제하는 코드실행단계; 및,
    상기 커널의 실행코드 실행으로부터 파일시스템을 RAM영역으로 복사한 후 파일시스템을 검사하되, 상기 파일시스템의 일부 기능을 커널에서 구현하도록 RAM으로 복사된 파일시스템의 압축 해제를 스킵하면서 사용자의 애플리케이션 실행을 위한 파일시스템 압축을 해제시키는 애플리케이션 실행단계; 로 진행함을 특징으로 하는 임베디드 운영체계의 부팅 방법.
  2. 삭제
  3. 삭제
KR1020050009711A 2005-02-02 2005-02-02 임베디드 운영체계의 부팅방법 KR100625167B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050009711A KR100625167B1 (ko) 2005-02-02 2005-02-02 임베디드 운영체계의 부팅방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050009711A KR100625167B1 (ko) 2005-02-02 2005-02-02 임베디드 운영체계의 부팅방법

Publications (2)

Publication Number Publication Date
KR20060088755A KR20060088755A (ko) 2006-08-07
KR100625167B1 true KR100625167B1 (ko) 2006-09-20

Family

ID=37177088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050009711A KR100625167B1 (ko) 2005-02-02 2005-02-02 임베디드 운영체계의 부팅방법

Country Status (1)

Country Link
KR (1) KR100625167B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996144B2 (en) 2013-08-08 2018-06-12 Samsung Electronics Co., Ltd. System on chip for reducing wake-up time, method of operating same, and computer system including same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758984B1 (ko) * 2005-08-17 2007-09-17 삼성전자주식회사 미들웨어를 구비한 임베디드 시스템의 부팅방법
KR101396831B1 (ko) 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
CN114911533A (zh) * 2022-05-19 2022-08-16 长沙金维信息技术有限公司 基于NorFlash接口的芯片启动方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996144B2 (en) 2013-08-08 2018-06-12 Samsung Electronics Co., Ltd. System on chip for reducing wake-up time, method of operating same, and computer system including same
US10642339B2 (en) 2013-08-08 2020-05-05 Samsung Electronics Co., Ltd. System on chip for reducing wake-up time, method of operating same, and computer system including same
US11372472B2 (en) 2013-08-08 2022-06-28 Samsung Electronics Co., Ltd. System on chip for reducing wake-up time, method of operating same, and computer system including same
US11635800B2 (en) 2013-08-08 2023-04-25 Samsung Electronics Co., Ltd. System on chip for reducing wake-up time, method of operating same, and computer system including same

Also Published As

Publication number Publication date
KR20060088755A (ko) 2006-08-07

Similar Documents

Publication Publication Date Title
US8972969B2 (en) Out of band services updates
US8701104B2 (en) System and method for user agent code patch management
JP4294084B2 (ja) ソフトウェアアプリケーションを実行する方法及び記録媒体
WO2009083785A1 (en) System, method, apparatus, mobile terminal and computer program product for providing secure mixed-language components to a system dynamically
JP2008535117A (ja) ソフトウェア保護
CN104375849A (zh) 加载内核的方法及装置
JP2005202963A (ja) Javaプログラムの処理速度を向上させるシステム及びその方法
CN113885967B (zh) 一种小程序的启动方法、装置、设备及介质
KR100725386B1 (ko) 가상 머신 어플리케이션을 실행하는 방법 및 그 방법을이용한 디지털 방송 수신기
CN111443939A (zh) 一种软件开发工具包的配置方法、装置和存储介质
KR100625167B1 (ko) 임베디드 운영체계의 부팅방법
US20100146254A1 (en) Method for binarizing initial script on operating system and operating method of binary script
JPH10228380A (ja) 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム
JP2020504882A (ja) アプリケーションを圧縮するための方法及び装置
US7721000B2 (en) Method of compressing and decompressing executable file in mobile communication terminal
CN105740012A (zh) 一种更新电脑的bios程序的方法
CN111338708A (zh) 基于安卓插件的应用程序处理方法、客户端及***
CN111475210A (zh) 一种内存无盘引导启动pxe的方法及***
KR100775431B1 (ko) 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법
CN111399926A (zh) 下载启动程序的方法和装置
Rothman et al. Harnessing the UEFI Shell: Moving the platform beyond DOS
WO2017128589A1 (zh) 可运行文件生成方法、art虚拟机运行方法和装置
Shizukuishi et al. An efficient tinification of the linux kernel for minimizing resource consumption
CN116382796B (zh) 一种h5小程序运行器的插件管理方法、装置及电子设备
CN107844309B (zh) 一种***数据处理方法及装置

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: 20090902

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee