KR101332815B1 - 휴대용 단말을 위한 재부팅 처리 장치 및 방법 - Google Patents

휴대용 단말을 위한 재부팅 처리 장치 및 방법 Download PDF

Info

Publication number
KR101332815B1
KR101332815B1 KR1020120021401A KR20120021401A KR101332815B1 KR 101332815 B1 KR101332815 B1 KR 101332815B1 KR 1020120021401 A KR1020120021401 A KR 1020120021401A KR 20120021401 A KR20120021401 A KR 20120021401A KR 101332815 B1 KR101332815 B1 KR 101332815B1
Authority
KR
South Korea
Prior art keywords
deadlock
portable terminal
driver
device driver
information
Prior art date
Application number
KR1020120021401A
Other languages
English (en)
Other versions
KR20130099701A (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 KR1020120021401A priority Critical patent/KR101332815B1/ko
Priority to US13/652,862 priority patent/US20130227356A1/en
Publication of KR20130099701A publication Critical patent/KR20130099701A/ko
Application granted granted Critical
Publication of KR101332815B1 publication Critical patent/KR101332815B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

휴대용 단말을 위한 재부팅 처리 장치 및 방법이 개시된다. 일 실시예에 따른 재부팅 처리 장치는 휴대용 단말이 비정상적으로 동작하는 교착 상태에 빠지도록 원인을 제공한 디바이스 드라이버를 검출하고, 검출된 디바이스 드라이버의 식별 정보가 포함된 교착 상태 정보를 생성하기 위한 드라이버 감시부와 재부팅 과정에서 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버는 비활성화하여 시스템이 부팅되도록 하기 위한 로그 비교부를 포함한다. 이 때, 로그 비교부는 시스템을 부팅할 때 식별 정보에 의하여 지시되지 않은 디바이스 드라이버는 활성화되도록 한다.

Description

휴대용 단말을 위한 재부팅 처리 장치 및 방법{Apparatus and method for handling the rebooting of mobile terminal}
본 발명은 휴대용 단말의 소프트웨어 구성에 관한 것으로, 보다 구체적으로 휴대용 단말에 문제가 발생했을 때 오퍼레이팅 시스템(Operating System, OS)을 리셋(reset)하는 재부팅 과정을 처리하기 위한 장치와 방법에 관한 것이다.
정보통신 기술의 발전에 따라 전자기기의 종류는 다양해지고 있다. 종류의 다양화는 고정형 전자기기는 물론 모바일 전자기기인 휴대용 단말에 더욱 두드러지게 나타나고 있다. 예를 들어, 휴대 전화(cellular phone), MP3 플레이어, 디지털 카메라, 휴대용 멀티미디어 플레이어(Portable Multimedia Player, PMP), 내비게이션(navigation), 휴대용 게임기, 전자 사전(electronic dictionary), 전자책 단말기(E-book reader), 디지털 멀티미디어 방송(Digital Multimedia Broadcasting, DMB) 수신기가 이미 대중화되었다. 그리고 최근에는 스마트 폰(smart phone)과 스마트 패드(smart pad)로 불리는 태블릿 컴퓨터(tablet computer)가 급속도로 인기를 얻고 있다.
스마트 폰이나 태블릿 컴퓨터와 같은 스마트 휴대용 단말은 모바일 오퍼레이팅 시스템(Operating System, OS)을 탑재하고 있다. 모바일 OS로는 안드로이드, 아이오에스(iOS), 윈도우 모바일 등이 있다. 최근 휴대용 단말의 하드웨어 성능이 급격히 향상되면서, 모바일 OS들은 멀티태스킹과 백그라운드 프로세싱을 지원할 수 있을 정도로 진화하고 있다. 이를 위하여, 휴대용 단말에는 다양한 하드웨어 장치, 디스플레이, 카메라, 근거리 통신 장치(예컨대, 블루투스), 고용량의 메모리, 센서, 유에스비(Universal Serial Bus, USB), 키패드, 무선랜, 오디오 등이 구비되어 있으며, 이를 지원하는 소프트웨어인 디바이스 드라이버(device driver)도 함께 설치되어 있다.
이와 같이, 휴대용 단말에 구비되고 설치되는 하드웨어의 수와 소프트웨어의 용량이 증가하고 또한 휴대용 단말을 이용하여 멀티태스킹이 시도됨에 따라서, 휴대용 단말에서 시스템 충돌이 일어나는 등의 문제로 인하여 OS가 교착 상태(예컨대, 커널 패닉(kernel panic), 데드록(deadlock), 또는 행(hang))에 빠지는 문제가 종종 발생하고 있다. 교착 상태는 휴대용 단말의 시스템을 부팅하는 도중에 정상적으로 부팅되지 않거나 또는 커널(kernel)이나 어플리케이션(application)이 동작 중에 휴대용 단말에 설치된 특정 디바이스나 드라이버 등에 문제가 발생하여 OS의 작동이 일시적으로 또는 장시간 중지되는 현상을 총칭한다. 교착 상태에 빠진 휴대용 단말을 다시 사용하기 위해서는, 시스템을 재부팅(rebooting)하는 과정이 일반적으로 필요하다.
OS가 교착 상태에 빠진 경우에, 종래의 재부팅 처리 방법에 의하면 먼저 특정 어드레스로 분기가 이루어진다. 이 특정 어드레스에서는 시스템에서 발생하는 모든 문제에 대한 처리가 행해진다. 즉, 분기된 특정 어드레스에서 시스템에서의 문제를 먼저 처리하고 콘솔(console) 장치에 중앙 처리 장치(Centeral Processing Unit, CPU)의 상태와 로그(log)를 보여 주는데, 이 로그는 OS 소프트웨어가 저장되어 있는 ROM(Read Only Memory)의 재기입(ReWrite, RW) 영역 등에 저장된다. 그리고 발생된 문제에 대한 처리가 완료되면, 시스템을 재부팅하는 과정이 진행된다.
이러한 종래의 재부팅 처리 방법에 의하면, ROM과 같은 저장 장치에는 생성된 로그 정보(예, 버그 리포트(bugreport))가 저장되지만, 재부팅 과정에 이 정보가 활용되지 못한다. 따라서 시스템이 재부팅되면, 시스템은 이전에 교착 상태에 빠졌었는지를 알지 못한다. 만일, 이전에 시스템을 교착 상태로 빠뜨린 원인이 제거되었다면 재부팅에 의하여 시스템은 정상 작동을 할 수 있지만, 원인이 제거되지 않으면 시스템은 정상 작동을 할 수 없을 뿐만 아니라 동일한 원인에 의하여 시스템이 다시 교착 상태에 빠질 가능성이 높다. 이 경우에, 휴대용 단말에 설치된 많은 장치 중에서 일부 장치에서만 문제가 발생했는데도 사용자는 휴대용 단말을 전혀 사용할 수 없다. 뿐만 아니라, 사용자는 휴대용 단말에 저장되어 있는 중요한 정보를 백업 받지 못할 수도 있다.
본 발명이 해결하려는 하나의 과제는 휴대용 단말이 교착 상태에 빠진 경우재부팅이 원활이 이루어 질 수 있는 휴대용 단말을 위한 재부팅 처리 장치와 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 하나의 과제는 휴대용 단말이 교착 상태에 빠지는 원인을 효과적으로 파악하고 또한 그 문제점을 신속하게 해결하도록 할 수 있는 휴대용 단말을 위한 재부팅 처리 장치와 방법을 제공하는 것이다.
상기한 과제를 달성하기 위한 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 장치는 휴대용 단말이 비정상적으로 동작하는 교착 상태의 원인이 되는 디바이스 드라이버를 파악하고, 상기 디바이스 드라이버의 식별 정보가 포함된 교착 상태 정보를 생성하기 위한 드라이버 감시부, 및 재부팅 과정에서 상기 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버를 비활성화하여 시스템이 부팅되도록 하기 위한 로그 비교부를 포함한다. 이 때, 로그 비교부는 상기 교착 상태 정보에 포함된 식별 정보에 의하여 지시되지 않은 다른 디바이스 드라이버는 활성화하여 시스템이 부팅되도록 할 수 있다.
상기한 과제를 달성하기 위한 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법은 휴대용 단말이 비정상적으로 동작하는 교착 상태의 원인이 되는 디바이스 드라이버를 파악하는 단계, 상기 디바이스 드라이버의 식별 정보가 포함된 교착 상태 정보를 생성하는 단계, 및 상기 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버를 비활성화하여 시스템을 부팅시키는 단계를 포함한다. 이 때, 상기 교착 상태 정보에 포함된 식별 정보에 의하여 지시되지 않은 다른 디바이스 드라이버는 활성화하여 시스템이 부팅되도록 할 수 있다.
본 발명에 의하면, 휴대용 단말에 문제가 발생하여 여러 번 리셋되거나 또는 부팅이 안될 수 있는 경우에도 그 원인을 분석하여 재부팅시에 반영함으로써 휴대용 단말이 부팅될 수 있도록 할 수 있다. 따라서 사용자는 서비스 센터에 가지 않고서도 휴대용 단말에 있는 중요한 데이터를 백업할 수 있으며, 또한 파악된 문제점을 제조사 서버 등으로 전송하여 개선책이 적절하게 이루어지도록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 장치의 구성을 보여 주는 블록도이다.
도 2는 디바이스 드라이버에서 상태 정보가 포함된 드라이버 신호를 드라이버 감시부로 전송하는 것을 도식적으로 보여 주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법의 일례를 보여 주는 흐름도이다.
도 4는 본 발명의 다른 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법의 일례를 보여 주는 흐름도이다.
도 5는 본 발명의 또 다른 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법의 일례를 보여 주는 흐름도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 장치의 구성을 보여 주는 블록도이다. 도 1을 참조하면, 재부팅 처리 장치(1)는 드라이버 감시부(driver observer, 10), 로그 분석부(20), 로그 추출부(30), 로그 저장부(40), 및 로그 비교부(50)를 포함한다. 그리고 재부팅 처리 장치(1)는 로그 전송부(60)를 더 포함할 수 있다. 도 1에 도시되어 있는 재부팅 처리 장치(1)의 각 구성 요소들은 단지 기능에 따라서 논리적으로 구분한 것으로서, 두 개 이상의 구성 요소들이 일체로 통합되어 하나의 모듈로 구현되거나 또는 각각 별개의 모듈로 구현될 수도 있다.
재부팅 처리 장치(1)는 휴대용 단말이 동작 중에 문제가 발생하여 비정상적으로 동작하는 교착 상태에 빠진 경우에, 휴대용 단말의 시스템이 재부팅되도록 하여 OS를 다시 정상적으로 동작할 수 있도록 하기 위한 장치이다. 본 실시예에서 휴대용 단말이 비정상적으로 동작하는 교착 상태가 되는 원인은 휴대용 단말에 설치되어 있는 디바이스 드라이버에 문제가 발생하여, 시스템이 데드록(deadlock) 상태, 행(hang) 상태, 커널 패닉(kernel panic) 상태 등이 되는 경우를 가리킨다. 재부팅 처리 장치(1)는 휴대용 단말이 정상적으로 동작하다가 문제가 발생하여 교착 상태가 된 경우에 재부팅하기 위한 과정을 처리하는 것은 물론 휴대용 단말이 부팅되는 과정에서 문제가 발생하여 정상적으로 부팅되지 않아서 교착 상태가 된 경우에 재부팅하기 위한 과정도 처리할 수 있다.
드라이버 감시부(10)는 휴대용 단말이 교착 상태에 빠지도록 원인을 제공한 모듈, 즉 디바이스 드라이버를 검출하여 교착 상태 정보를 로그 분석부(20)로 전달한다. '교착 상태 정보'는 휴대용 단말이 비정상적으로 동작하는 교착 상태가 된 경우에 그 원인을 가리키는 정보로서, 교착 상태의 원인이 된느 디바이스 드라이버를 지시하는 디바이스 드라이버 식별 정보를 적어도 포함한다. 보다 구체적으로, 휴대용 단말이 교착 상태에 빠지면, 드라이버 감시부(10)는 정상적으로 초기화되지 않거나 또는 정상적으로 동작하지 않는 모듈(예컨대, 디바이스 드라이버)이 무엇인지를 파악하고, 해당 모듈의 식별 정보(예컨대, 디바이스 드라이버의 이름)를 로그 분석부(20)로 전달할 수 있다. 이 때, 교착 상태 정보에는 해당 디바이스 드라이버가 문제를 일으킨 횟수를 포함하는 카운트(count) 정보를 더 포함할 수 있으며, 드라이버 감시부(10)는 디바이스 드라이버의 식별 정보에 추가하여 이 카운트(count) 정보도 로그 분석부(20)로 전달할 수 있다.
이를 위하여, 드라이버 감시부(10)는 시스템이 부팅되는 과정에서는 각 디바이스 드라이버가 정상적으로 초기화가 되는지를 체크하여 문제를 일으키는 디바이스 드라이버를 검출할 수 있다. 또한, 드라이버 감시부(10)는 시스템이 정상적으로 동작하는 동안에는 각 디바이스 드라이버로부터 상태 정보가 포함된 드라이버 신호(driver signal)를 수신하여 문제를 일으키는 디바이스 드라이버를 검출할 수 있다.
먼저, 휴대용 단말을 부팅하는 도중, 즉 휴대용 단말이 정상적으로 동작할 수 있도록 OS를 설정하는 도중에 디바이스 드라이버에 문제가 발생한 경우, 예컨대 커널 드라이버 초기화 도중에 커널 패닉이 발생한 경우에, 드라이버 감시부(10)가 문제를 일으킨 디바이스 드라이버 정보를 검출하는 과정에 관하여 설명한다. 이하의 예에서는 OS가 안드로이드인 경우를 예로 들어서 설명하는데, 이것은 단지 예시적인 것이며, 다른 종류의 OS에 대해서도 본 발명의 실시예는 동일하게 적용될 수 있다.
휴대용 단말의 시스템을 부팅시키면, 커널 이미지(kernel image)가 ROM에서 RAM(Random Access Memory)으로 로딩된 후에, 커널은 모든 디바이스 드라이버를 초기화하게 된다. 이를 위하여, 초기화 과정을 수행하는 함수인 kernel_init() 함수에서 하는 역할 중에서 do_one_initcall()이란 함수를 호출한다. do_one_initcall() 함수는 커널에서 올려야 할 모든 모듈을 초기화시키는 함수이다. 각각의 모듈의 초기화 과정은 kernel_init() 함수에서 소정의 순서에 따라서 반복적으로 do_one_initcall() 함수를 호출하여 진행된다. 만일, 휴대용 단말의 시스템이 부팅되다가 교착 상태에 빠지면, 드라이버 감시부(10)는 do_one_inicall() 함수가 정상적으로 호출되지 않는 시점 이전의 모듈(디바이스 드라이버)에 문제가 있는 것으로 파악할 수가 있다.
보다 구체적으로, 정상적으로 초기화가 진행되지 않은 모듈은 소정의 방법으로 표시될 수 있다. 정적으로 등록된 디바이스 드라이버의 경우 항상 고정적으로 등록되어 있다. 이것은 디바이스 드라이버의 초기화시에 진행 순서가 바뀌지 않는다는 것을 의미한다. 이러한 사실을 이용할 수 있도록, 디바이스 드라이버의 초기화 순서와 동일한 순서로 디바이스 드라이버가 리스트되어 있는 테이블(예컨대, 디바이스 드라이버 초기화 성공/실패 테이블)을 만들고, 이 테이블에는 디바이스 드라이버가 정상적으로 초기화가 되었는지를 지시하는 플래그(flag)가 리스트의 각 항목에 대하여 표시되도록 할 수 있다. 예를 들어, 디바이스 드라이버에 대한 초기화가 정상적으로 수행되면 플래그의 값을 양수값으로 설정되도록 하고, 디바이스 드라이버에 대한 초기화가 정상적으로 수행되지 않으면 플래그의 값을 0 또는 음수값으로 설정되도록 할 수 있다. 드라이버 감시부(10)는 이와 같이 작성된 테이블을 참조하여, 부팅 과정에서 초기화가 정상적으로 수행된 디바이스 드라이버와 정상적으로 초기화가 되지 않은 디바이스 드라이버를 파악할 수 있다.
다음으로, 휴대용 단말이 정상적으로 동작하는 도중, 즉 OS의 동작 중에 디바이스 드라이버에 문제가 발생한 경우에, 드라이버 감시부(10)가 문제를 일으킨 디바이스 드라이버 정보를 파악하는 과정에 관하여 도 2를 참조하여 설명한다. 도 2는 휴대용 단말에 설치되어 있는 디바이스 드라이버에서 상태 정보가 포함된 드라이버 신호(driver signal)을 주기적으로 드라이버 감시부(10)로 전송하는 것을 도식적으로 보여 주는 도면이다. 이하의 예에서도 OS가 안드로이드인 경우를 예로 들어서 설명하는데, 이것은 단지 예시적인 것이며, 다른 종류의 OS에 대해서도 본 발명의 실시예는 동일하게 적용될 수 있다.
도 2를 참조하면, 휴대용 단말의 커널(kernel) 단에 설치되어 정상적으로 동작하는 모든 드라이버, 예컨대 LCD 드라이버, 터치스크린 드라이버, 센서 드라이버 등은 드라이버 신호를 드라이버 감시부(10)로 전송한다. 여기서, 드라이버 신호는 해당 디바이스 드라이버가 정상적으로 동작하고 있는지를 가리키는 신호일 수 있다. 이를 위하여, 각 디바이스 드라이버에는 드라이버 신호 관리부(driver signal management)가 설치되어 있을 수 있으며, 각 디바이스 드라이버의 드라이버 신호 관리부는 순차적으로 드라이버 신호를 드라이버 감시부(10)로 전송한다. 따라서 드라이버 감시부(10)는 특정 디바이스 드라이버로부터 드라이버 신호가 수신되지 않거나 또는 정상적으로 동작하고 있지 않다는 것을 지시하는 드라이버 신호를 수신하면, 해당 디바이스 드라이버에 문제가 발생했다는 것을 알 수 있다.
이것은 휴대용 단말에 정상적으로 설치되어 있는 모든 드라이버는 드라이버 신호를 생성하여 보낸다는 것을 이용하는 것이다. 드라이버 감시부(10)가 하는 역할은 정상적으로 설치되어 있는 모든 드라이버의 신호에 대해 처리를 하고 관장하는 것이다. 이를 위하여, 드라이버 감시부(10)는 휴대용 단말에 설치되어 있는 모든 드라이버의 이름(예컨대, 전술한 바와 같이, 모든 드라이버 이름이 항목으로 기재되어 있는 테이블)을 가지고 있다. 그리고 모든 드라이버는 드라이버 신호를 드라이버 감시부(10)에게 주기적으로 보낸다.
드라이버 신호의 전송을 위하여 각 드라이버에는 드라이버 신호 관리(driver signal management)부가 설치되어 있을 수 있다. 어플리케이션으로부터 요청을 받아 커널의 디바이스 드라이버에 정상적으로 진입을 하여 동작을 하면, 해당 디바이스 드라이버의 모든 함수들은 드라이버 신호 관리부에게 문제가 없다고 보고를 한다. 그리고 드라이버 신호 관리부는 해당 드라이버에는 문제가 없다는 것을 지시하는 드라이버 신호를 드라이버 감시부(10)로 전송하고, 드라이버 신호를 수신한 드라이버 감시부(10)는 해당 디바이스 드라이버에 대해서는 정상적으로 동작하고 있다는 것을 지시하는 플래그로 표시되도록 할 수 있다.
반면, 어플리케이션으로부터 요청을 받아 커널의 디바이스 드라이버에 진입을 했지만 문제가 발생한 경우에는 다음과 같이 동작할 수 있다. 우선, 디바이스 드라이버의 수행을 위한 소정의 함수는 해당 함수에 진입했다는 신호를 드라이버 신호 관리부에게 전달을 하고 해당 함수를 수행한다. 그리고 함수를 수행하다가 교착 상태에 빠지게 되면, 즉 함수를 수행하다가 데드록이나 행(deadlock & hang)이 발생을 하면, 디바이스 드라이버에서는 더 이상 함수가 수행되지 않는다. 이 때, 드라이버 신호 관리부는 함수가 끝나기를 기다리고 있다가 소정의 시간이 지나도 함수가 정상적으로 수행되어 종료되지 않거나 또는 소정의 시간 내에 해당 함수를 종료했다는 신호를 전달받지 못하면, 해당 디바이스 드라이버에 문제가 있다는 드라이버 신호를 드라이버 감시부(10)로 전송한다. 그리고 드라이버 신호를 수신한 드라이버 감시부(10)는 해당 드라이버에 대해서는 정상적으로 동작하고 있지 않다는 것을 지시하는 플래그로 표시되도록 한다.
계속해서 도 1을 참조하면, 로그 분석부(20)는 시스템에 문제가 발생했을 때 생성되는 시스템 로그(system log)를 분석하여 드라이버 감시부(10)로부터 수신된 교착 상태 정보를 시스템 로그에 남긴다. 예를 들어, 로그 분석부(20)는 드라이버 감시부(10)로부터 수신되는 교착 상태 정보가 포함된 테이블을 분석하여 어떤 디바이스 드라이버에서 문제가 발생했는지를 지시하는 드라이버 식별 정보(예컨대, lcd_ortus 등과 같은 디바이스 드라이버 이름)를 파악하고 이를 시스템 로그에 남길 수 있다. 그리고 로그 분석부(20)는 해당 디바이스 드라이버가 몇 번 문제를 일으켰는지를 지시하는 카운트 정보도 시스템 로그에 남길 수 있다.
로그 추출부(30)는 로그 분석부(20)가 남긴 교착 상태 정보, 예컨대 드라이버 식별 정보를 시스템 로그에서 추출하는 역할을 한다. 로그 추출부(30)는 교착 상태 정보에 카운트 정보가 포함되어 있는 경우에는 시스템 로그에서 카운트 정보도 추출할 수 있는데, 이것은 임의적인 것이다. 만일, 로그 분석부(20)가 시스템 로그의 특정 위치에 드라이버 식별 정보를 남겨 놓았다면, 로그 추출부(30)는 해당 시스템 로그 파일을 오픈(open)하여 스트링(string)을 가져올 수 있다.
로그 저장부(40)는 로그 추출부(30)에서 추출된 교착 상태 정보, 예컨대 드라이버 식별 정보를 저장하는 역할을 한다. 교착 상태 정보에 카운트 정보가 포함되어 있는 경우에는, 로그 저장부(40)는 카운트 정보도 저장할 수 있다. 그리고 로그 추출부(30)로부터 추출된 교착 상태 정보는 시스템 부팅 파일이 저장되어 있는 ROM의 특정 영역(RW 영역)에 저장될 수 있다. 이것은 휴대용 단말의 시스템이 부팅될 때 교착 상태 정보도 다른 부팅 정보와 함께 활용될 수 있도록 하기 위한 것이다. 휴대용 단말의 시스템이 부팅되면, RAM의 공유 메모리(shared memory)가 먼저 초기화되며, ROM의 재기입(RW) 영역에 저장되어 있는 부팅 정보들이 공유 메모리로 로딩되는데, 본 발명의 실시예에 의하면 부팅 시에 교착 상태 정보도 함께 공유 메모리로 로딩될 수 있다.
로그 비교부(50)는 ROM의 특정 영역에 저장되어 있는 교착 상태 정보, 예컨대 드라이버 식별 정보를 이용하여, 재부팅시에 초기화가 수행되는 디바이스 드라이버와 비교하며, 또한 비교 결과에 따라서 해당되는 디바이스 드라이버를 제거한 상태(즉, 비활성화한 상태)에서 재부팅이 이루어지도록 한다. ROM의 특정 영역에 카운트 정보가 저장되어 있는 경우에, 로그 비교부(50)는 이 카운트 정보를 활용하여 재부팅 과정을 제어할 수도 있다. 보다 구체적으로, 일 실시예에 의하면, 로그 비교부(50)는 교착 상태 정보에 포함되어 있는 드라이버 식별 정보와 일치하는 디바이스 드라이버를 항상 제거한 상태(즉, 해당 디바이스 드라이버는 초기화를 수행하지 않아서 비활성 상태로 남게 함)에서 재부팅을 하도록 할 수 있다. 또는, 다른 실시예에 의하면, 로그 비교부(50)는 드라이버 식별 정보와 일치하고 또한 카운트 정보가 소정의 기준치 이상인 경우에, 해당 디바이스 드라이버를 제거한 상태에서 재부팅이 되도록 할 수도 있다. 이하, 이에 관하여 보다 구체적으로 설명한다.
시스템을 재부팅하면, 커널이 부팅되면서 어느 시점에 디바이스 드라이버를 초기화하게 된다. 안도로이드 OS인 경우에, module_init에 의해 등록된 함수들은 do_initcalls 함수가 수행하면서 초기화가 이루어질 수 있다. 모든 커널의 디바이스 드라이버는 자기만의 고유한 이름을 가지고 있다. 정적으로 디바이스 드라이버를 등록하는 시스템은 드라이버가 초기화되기 전에 먼저 디바이스를 등록한 후(안드로이드 OS의 경우에, sysFS 파일 시스템에 등록된다), sysFS은 드라이버가 등록될 때 디바이스 이름과 드라이버 이름을 비교한다. 만일, 디바이스 이름과 드라이버 이름이 같다면 드라이버에 등록된 특정 함수(드라이버의 프로브 함수)가 실행하게 되고 디바이스 드라이버의 초기화가 이루어진다. 반대로, 디바이스 이름과 드라이버 이름이 매칭되지 않으면, 특정 함수가 수행되지 않고 디바이스 드라이버도 초기화되지 않는다.
이와 같이, 시스템이 재부팅되면 커널이 로딩되고 디바이스 드라이버가 등록되면, 로그 비교부(50)는 먼저 교착 상태 정보가 저장되어 있는지 확인한다. 만약, 교착 상태 정보가 저장되어 있지 않거나 또는 저장되어 있더라도 그 횟수(카운트 정보)가 소정의 기준치 미만인 경우에는, 기존의 방법에 따라서 모든 드라이버에 대하여 초기화를 진행하는 정상적인 부팅 시퀀스로 시스템을 부팅한다. 반면, 교착 상태 정보가 저장되어 있는 경우(또는, 교착 상태 정보가 저장되어 있고 해당 디바이스 드라이버의 카운트 정보가 소정의 기준치 이상인 경우)에는, 로그 비교부(50)는 교착 상태 정보에 포함되어 있는 디바이스 드라이버에 대해서는 초기화가 이루어지지 않도록 한다.
예를 들어, 커널단에서 디바이스 드라이버의 초기화 도중에 문제가 발생하여 휴대용 단말의 시스템이 재부팅되는 경우, ROM의 특정 영역에 저장되어 있는 교착 상태 정보가 다른 부팅 정보와 함께 RAM의 공유 메모리로 로딩될 수 있다. 휴대용 단말의 시스템이 재부팅되면, 부팅에 필요한 정보들은 공유 메모리에 로딩한 상태이며, 디바이스 드라이버의 초기화를 수행하기 전에 미리 공유 메모리에 접근하여 문제가 있는 디바이스 드라이버에 대한 정보를 가져올 수 있다. 그리고 가져온 정보와 순차적으로 초기화를 수행하는 디바이스 드라이버를 비교하여, 만일 교착 상태 정보에 포함되어 있는 디바이스 드라이버의 명칭과 일치하면 해당 디바이스 드라이버에 대해서는 초기화를 수행하지 않는다.
계속해서 도 1을 참조하면, 로그 전송부(60)는 로그 저장부(40)에 저장되어 있는 교착 상태 정보 및/또는 이를 포함하는 시스템 로그를 제조사가 운영하는 서버에 전송하는 역할을 한다. 로그 전송부(60)는 임의적인 구성 요소이다. 휴대용 단말의 시스템이 정상적으로 부팅된 다음, 사용자는 이동통신 네트워크나 무선랜를 통하여 서버에 접속할 수 있으며, 해당 문제점을 휴대용 단말의 제조 회사 서버로 보낼 수 있다. 이에 의하면, 제조사 서버는 문제점을 파악한 다음, 이러한 문제점이 해결된 소프트웨어나 패치 파일을 휴대용 단말로 전송해서, 휴대용 단말에서 발생한 문제점이 해결되도록 할 수 있다. 만일, 제조사 서버가 문제점을 분석한 결과, 문제가 하드웨어적인 문제일 경우에는, 사용자에게 가까운 서비스 센터(CS)로 가서 문제를 해결하도록 정보를 제공할 수도 있다.
이러한 본 발명의 실시예에 의하면, 특정 디바이스 드라이버의 문제로 시스템이 교착 상태에 빠진 경우에는, 해당 디바이스 드라이버는 초기화시키지 않고, 즉 활성화시키지 않은 상태에서 시스템이 재부팅되도록 한다. 이 때, 문제가 발생한 디바이스 드라이버는 항상 제거하거나 또는 문제가 여러 번 발생한 경우(카운트 정보가 소정의 기준치 이상인 경우)에만 해당 디바이스 드라이버를 제거한 상태로 시스템이 재부팅되도록 할 수 있다. 이에 의하면, 휴대용 단말에 어떤 문제가 발생하거나 또는 동일한 문제가 여러 번 발생하여 여러 번 리셋되거나 부팅이 안된 경우에는 그 원인을 분석하여 정상 동작하지 않는 디바이스 드라이버나 관련 기능을 실행시키지 않은 상태에서 휴대용 단말이 부팅되도록 할 수 있다. 따라서 비록 문제가 발생한 디바이스 드라이버를 고치지 않더라도, 사용자는 휴대용 단말의 시스템을 부팅하여 이에 저장된 중요한 정보를 백업할 수 있다. 그리고 사용자는 해당 문제점을 제조사 서버에 전송함으로써, 제조사 측에서 휴대용 단말의 문제점을 효율적으로 신속하게 해결하도록 할 수 있다.
실시예에 따라서는, 로그 전송부(60)에 의하여 제조사 서버로 전송되는 정보는, 휴대용 단말의 디스플레이를 통해 표시가 될 수도 있다. 이것은 휴대용 단말의 부팅 과정 도중에 또는 휴대용 단말이 정상적으로 동작하는 도중에 어떤 디바이스 드라이버에서 문제가 발생했는지를 사용자에게 알려주기 위한 것이다. 이에 의하면, 사용자가 스스로 문제가 되는 디바이스 드라이버를 제거하거나 또는 문제가 되는 디바이스 드라이버의 설정을 변경할 수 있도록 정보를 제공함으로써, 휴대용 단말의 문제를 해결하여 정상적으로 동작할 수 있도록 하기 위한 것이다.
도 3은 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법의 일례를 보여 주는 흐름도이다. 본 실시예는 휴대용 단말의 시스템을 부팅할 때, 특정 디바이스 드라이버가 정상적으로 초기화가 이루어지지 않고 문제가 발생하여 교착 상태에 빠진 경우이다. 그리고 본 실시예에서는 재부팅시에 특정 디바이스 드라이버에서 문제가 발생한 횟수는 고려하지 않는데, 여기에만 한정되는 것은 아니다. 이하에서는 도 1 및 도 2를 참조하여 재부팅 처리 장치에 관하여 설명한 사항과의 불필요한 중복 설명을 피하기 위하여, 재부팅 처리 방법에 관하여 간략히 설명하기로 한다. 따라서, 여기에서 상세히 설명되지 않은 사항은 도 1 및 도 2를 참조하여 전술한 내용이 동일하게 적용될 수 있다.
도 3을 참조하면, 통상적인 절차에 따라서 휴대용 단말의 시스템에 대한 부팅을 시작한다(S101). 전술한 바와 같이, 휴대용 단말의 시스템 부팅 절차는 ROM의 특정 영역(예컨대, 재기입(RW) 영역)에 저장되어 있는 부팅 정보를 RAM의 공유 메모리에 로딩하는 과정을 포함한다. 그리고 부팅 중에 문제가 발생하는지를 판단한다(S102). 만일, 부팅 중에 문제가 발생하지 않으면, OS가 정상으로 설정되어 작동하므로(S106), 재부팅 과정을 수행할 필요가 없다.
반면, 부팅 중에 문제가 발생한 것으로 판단되면, 교착 상태 정보를 ROM의 재기입(RW) 영역에 저장한다(S103). 교착 상태 정보는 도 1 및 도 2를 참조하여 설명한 바와 같이, 드라이버 감시부(10, 도 1 참조)에 의하여 생성될 수 있는데, 여기에는 적어도 문제가 발생한 디바이스 드라이버의 명칭이 포함된다. 그리고 교착 상태 정보에는 문제가 발생한 횟수(카운트 정보)도 포함될 수 있는데, 본 실시예에서는 재부팅 여부를 판단함에 있어서 카운트 정보는 이용되지 않는다. 드라이버 감시부(10)에 의하여 생성된 정보는 로그 저장부(40, 도 1 참조)에 의하여, ROM의 재기입(RW) 영역에 저장될 수 있다.
계속해서, 휴대용 단말의 시스템 부팅이 제대로 되지 않았기 때문에, 휴대용 단말의 시스템에 대한 재부팅을 수행한다(S104). 휴대용 단말의 시스템에 대한 재부팅 과정은 예컨대, 휴대용 단말 내에 설치되어 있는 리셋 핸들러(reset handler)에 의하여 수행될 수 있다. 여기서, 리셋 핸들러는 휴대용 단말이 OS가 정상적으로 설정되지 않거나 또는 정상적으로 동작하지 않는 경우 또는 사용자의 임의의 의사에 의하여, 휴대용 단말의 전원을 오프시켰다가 다시 온시켜서 휴대용 단말의 OS가 다시 정상적으로 설정될 수 있도록 구동시키는 장치를 가리킨다. 휴대용 단말의 시스템을 재부팅을 할 경우에, 단계 S103에서 저장된 교착 상태 정보도 다른 부팅 정보와 함께 RAM의 공유 메모리로 로딩될 수 있으며, 로그 비교부(50, 도 1 참조)는 재부팅시에 교착 상태 정보에 포함되어 있는 디바이스 드라이버는 제거한 상태에서 부팅이 이루어지도록 한다. 예를 들어, 로그 비교부(50, 도 1 참조)는 교착 상태 정보에 포함되어 있는 디바이스 드라이버의 명칭과 동일한 디바이스 드라이버는 초기화가 진행되지 않도록 함으로써, 해당 드라이버를 제거한 상태에서 부팅이 이루어지도록 할 수 있다.
계속해서 재부팅 과정에서 문제가 발생했는지를 판단한다(S105). 단계 S105는 단계 S102와 동일한 방법으로 수행될 수 있다. 판단 결과, 재부팅 과정에서도 문제가 발생하면 단계 S103 이하의 과정이 반복되며, 재부팅 과정에 문제가 발생하지 않으면, OS가 정상으로 설정되어 동작하게 된다. 다만, 후자의 경우에, 교착 상태 정보에 포함되어 있는 디바이스 드라이버는 초기화되지 않으며, 그 결과 비활성 상태가 된다.
도 4는 본 발명의 일 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법의 다른 예를 보여 주는 흐름도이다. 본 실시예는 휴대용 단말이 정상적으로 동작을 하다가 특정 디바이스 드라이버에서 발생한 문제로 인하여 시스템이 교착 상태에 빠진 경우로서, 재부팅시에는 특정 디바이스 드라이버에서 문제가 발생한 횟수도 함께 고려하는 경우이다. 다만, 본 실시예에 여기에만 한정되는 것은 아니며, 도 3을 참조하여 설명한 것과 같이, 문제가 발생한 횟수를 고려하지 않는 경우에도 적용될 수 있다. 이하에서도 도 1 및 도 2를 참조하여 재부팅 처리 장치에 관하여 설명한 사항과의 불필요한 중복 설명을 피하기 위하여, 재부팅 처리 방법에 관하여 간략히 설명하기로 한다. 따라서, 여기에서 상세히 설명되지 않은 사항은 도 1 및 도 2를 참조하여 전술한 내용이 동일하게 적용될 수 있다.
도 4를 참조하면, 통상적인 절차에 따라서 휴대용 단말의 OS는 정상적인 작동을 하고 있다(S201). 그리고 정상적인 작동 중에 문제가 발생하는지를 판단한다(S202). 문제가 발생했는지 여부는, 예컨대 드라이버 감시부(10, 도 1 참조)가 각 디바이스 드라이버로부터 주기적으로 수신되는 드라이버 신호를 체크하여 판단할 수도 있다. 만일, 문제가 발생하지 않으면, OS가 정상으로 설정되어 작동하므로(S201), 재부팅 과정을 수행할 필요가 없다.
반면, 작동 중에 문제가 발생한 것으로 판단되면, 교착 상태 정보를 ROM의 재기입(RW) 영역에 저장한다(S203). 교착 상태 정보는 도 1 및 도 2를 참조하여 설명한 바와 같이, 드라이버 감시부(10, 도 1 참조)에 의하여 생성될 수 있는데, 여기에는 적어도 문제가 발생한 디바이스 드라이버 명칭과 함께 문제가 발생한 횟수를 가리키는 카운트 정보도 포함된다. 전술한 바와 같이, 드라이버 감시부(10)에 의하여 생성된 정보는 로그 저장부(40, 도 1 참조)에 의하여, ROM의 재기입(RW) 영역에 저장될 수 있다.
계속해서, 문제 발생 횟수가 소정의 기준치 이상인지를 판단한다(S204). 만일, 특정 디바이스 드라이버의 문제 발생 횟수가 기준치 이하이면 종전과 동일한 방식으로 휴대용 단말의 시스템을 재부팅한다(S206). 즉, 재부팅 과정에서 문제를 생기게 한 디바이스 드라이버를 제거하지 않고, 모든 디바이스 드라이버에 대하여 초기화 과정을 수행하여, 정상적으로 작동이 가능한지를 판단한다. 반면, 특정 디바이스 드라이버의 문제 발생 횟수가 기준치 이상이면, 문제를 일으킨 디바이스 드라이버는 제거한 상태에서 재부팅을 한다(S205). 즉, 재부팅을 할 경우에, 단계 S203에서 저장된 교착 상태 정보도 다른 부팅 정보와 함께 RAM의 공유 메모리로 로딩될 수 있으며, 로그 비교부(50, 도 1 참조)는 재부팅시에 교착 상태 정보에 포함되어 있는 디바이스 드라이버는 제거한 상태에서 부팅이 이루어지도록 한다.
계속해서 재부팅 과정에서 문제가 발생했는지를 판단한다(S207). 단계 S207는 단계 S202와 동일한 방법으로 수행될 수 있다. 판단 결과, 재부팅 과정에서도 문제가 발생하면 단계 S203 이하의 과정이 반복되며, 재부팅 과정에 문제가 발생하지 않으면, OS가 정상으로 설정되어 동작하게 된다(S208). 다만, 후자의 경우에, 교착 상태 정보에 포함되어 있는 디바이스 드라이버는 초기화되지 않으며, 그 결과 비활성 상태가 된다.
도 5는 본 발명의 또 다른 실시예에 따른 휴대용 단말을 위한 재부팅 처리 방법의 일례를 보여 주는 흐름도이다. 도 5의 실시예는 도 3과 마찬가지로 휴대용 단말의 시스템을 부팅할 때 특정 디바이스 드라이버가 정상적으로 초기화가 이루어지지 않고 문제가 발생하여 교착 상태에 빠진 경우로서, 특정 디바이스 드라이버에서 문제가 발생한 횟수는 고려하지 않는다. 다만, 도 5의 실시예는 문제가 되는 디바이스 드라이버의 문제점을 해결하여 휴대용 단말의 시스템을 재부팅하는 과정을 포함한다는 점에서, 도 3에 도시된 실시예와 차이가 있다. 이하에서는 도 3과의 중복 설명을 피하기 위하여, 재부팅 처리 방법 중에서 도 3과 중복되는 과정에 관해서는 간략히 설명하기로 한다. 따라서, 여기에서 상세히 설명되지 않은 사항은 도 3을 참조하여 전술한 내용이 동일하게 적용될 수 있다.
도 5를 참조하면, 통상적인 절차에 따라서 휴대용 단말의 시스템에 대한 부팅을 시작한다(S301). 그리고 부팅 중에 문제가 발생하는지를 판단한다(S302). 만일, 부팅 중에 문제가 발생하지 않으면, OS가 정상으로 설정되어 작동하므로(S303), 재부팅 과정을 수행할 필요가 없다. 반면, 부팅 중에 문제가 발생한 것으로 판단되면, 교착 상태 정보를 ROM의 재기입(RW) 영역에 저장한다(S304). 계속해서, 휴대용 단말의 시스템 부팅이 제대로 되지 않았기 때문에, 휴대용 단말의 시스템에 대한 재부팅을 수행한다(S305). 휴대용 단말의 시스템을 재부팅을 할 경우에, 단계 S304에서 저장된 교착 상태 정보도 다른 부팅 정보와 함께 RAM의 공유 메모리로 로딩될 수 있으며, 단계 S305에서는 해당 드라이버를 제거한 상태에서 재부팅이 이루어진다.
그리고 재부팅 과정에서 문제가 발생했는지를 판단한다(S306). 판단 결과, 재부팅 과정에서도 문제가 발생하면 단계 S304 이하의 과정이 반복된다. 판단 결과 재부팅 과정에 문제가 발생하지 않으면, OS가 정상으로 설정되어 동작하게 된다(S307). 다만, 단계 S307에서 OS가 정상으로 설정되어 동작하더라도 단계 S304에서의 교착 상태 정보에 포함되어 있는 디바이스 드라이버는 초기화되지 않으며, 그 결과 해당 디바이스 드라이버는 비활성 상태가 된다.
계속해서, 교착 상태 정보를 제조사의 서버나 서비스 서버로 전송한다(S308). 본 실시예에서 교착 상태 정보를 전송하는 방법에는 특별한 제한이 없는데, 사용자가 이동통신 네트워크를 이용하거나 또는 무선랜 등의 네트워크를 이용하여, 해당 제조사의 서버에 접속하여 교착 상태 정보를 전송할 수 있다. 교착 상태 정보에는 적어도 문제를 일으킨 디바이스 드라이버의 식별 정보가 포함될 수 있다.
그리고 단계 S308에서 전송한 교착 상태 정보에 대한 응답으로, 문제가 되는 모듈, 즉 디바이스 드라이버의 업데이트 파일을 서버로부터 수신하여 해당 모듈에 대한 업데이트를 수행한다(S309). 여기서, 업데이트 파일은 문제가 되는 디바이스 드라이버의 문제점을 해결한 것으로서, 본 실시예에서 업데이트 파일의 종류에는 특별한 제한이 없다. 예를 들어, 업데이트 파일은 기존의 드라이버 파일에 대한 패치 파일이거나 또는 기존의 드라이버 파일을 대체하는 새로운 드라이버 파일일 수도 있다. 그리고 단계 S309에서의 업데이트 과정은 휴대용 단말에서의 통상적인 모듈 업데이트 절차에 따라서 수행될 수 있다. 본 실시예에 의하면, 비록 문제가 있는 모듈이 존재하는 경우에도 이 모듈만을 제거하고 휴대용 단말의 OS가 정상적으로 설정되어 동작할 수 있기 때문에(S305 내지 S307), 단계 S309에서의 업데이트가 정상적으로 이루어질 수 있다.
계속해서 단계 S309의 업데이트가 완료되면, 휴대용 단말의 시스템에 대한 재부팅을 실행한다(S310). 본 단계의 재부팅은 단계 S305에서의 재부팅과 마찬가지로 리셋 핸들러에 의하여 수행될 수 있다. 다만, 본 단계의 재부팅은 단계 S309에서 업데이트시킨 모듈도 시스템에 포함시켜서 업데이트를 수행한다는 점에서, 문제가 되는 모듈을 시스템에서 제거한 상태에서 업데이트를 수행하는 단계 S305와 차이가 있다. 단계 S309에서 시스템이 재부팅되면, 재부팅 과정 중에 문제가 발생했는지를 판단하며(S311), 판단 결과, 재부팅 과정에서도 문제가 발생하면 단계 S304 이하의 과정이 반복된다. 반면, 판단 결과, 재부팅 과정에 문제가 발생하지 않으면, OS가 정상으로 설정되어 동작하게 된다(S312).
종래 기술에 의하면, 휴대용 단말에 문제점이 발생하여 계속해서 리셋이 될 경우에, 휴대용 단말은 정상 동작하지 않는 문제점이 있으며 휴대용 단말을 동작시키기 위해서 사용자는 무조건 서비스 센터에 갈 수 밖에 없었다. 하지만, 본 발명에 의하면, 휴대용 단말에 문제가 발생하여 여러 번 리셋되거나 또는 부팅이 안될 수 있는 경우에도 그 원인을 분석하여 휴대용 단말이 부팅될 수 있도록 한다. 따라서 사용자는 서비스 센터에 가지 않고서도 휴대용 단말에 있는 중요한 데이터를 백업할 수 있으며, 또한 파악된 문제점을 제조사 서버 등으로 전송하여 개선책이 적절하게 이루어지는데 도움이 될 수 있다.
이상의 설명은 본 발명의 실시예에 불과할 뿐, 이 실시예에 의하여 본 발명의 기술 사상이 한정되는 것으로 해석되어서는 안된다. 본 발명의 기술 사상은 특허청구범위에 기재된 발명에 의해서만 특정되어야 한다. 따라서 본 발명의 기술 사상을 벗어나지 않는 범위에서 전술한 실시예는 다양한 형태로 변형되어 구현될 수 있다는 것은 당업자에게 자명하다.
1 : 재부팅 처리 장치
10 : 드라이버 감시부
20 : 로그 분석부
30 : 로그 추출부
40 : 로그 저장부
50 : 로그 비교부
60 : 로그 전송부

Claims (22)

  1. 휴대용 단말이 비정상적으로 동작하는 교착 상태의 원인이 되는 디바이스 드라이버를 검출하고, 상기 검출된 디바이스 드라이버의 식별 정보가 포함된 교착 상태 정보를 생성하기 위한 드라이버 감시부; 및
    재부팅 과정에서, 상기 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버를 비활성화하여 시스템이 부팅되도록 하기 위한 로그 비교부를 포함하는 휴대용 단말을 위한 재부팅 처리 장치.
  2. 제1항에 있어서,
    상기 로그 비교부는 상기 식별 정보에 의하여 지시되지 않은 다른 디바이스 드라이버는 활성화하여 상기 시스템이 부팅되도록 하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  3. 제1항에 있어서,
    상기 드라이버 감시부는 상기 휴대용 단말이 부팅되는 동안에 설치된 모든 디바이스 드라이버가 정상적으로 초기화가 수행되는지를 체크하여 상기 교착 상태의 원인이 되는 디바이스 드라이버를 검출하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  4. 제3항에 있어서,
    상기 드라이버 감시부는 상기 모든 디바이스 드라이버를 순차적으로 초기화하기 위한 함수가 정상적으로 호출되지 않는 시점 이전의 디바이스 드라이버가 상기 교착 상태의 원인이 되는 디바이스 드라이버로 판단하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  5. 제1항에 있어서,
    상기 드라이버 감시부는 상기 휴대용 단말이 정상 동작하는 동안에 설치된 모든 디바이스 드라이버로부터 드라이버 신호를 수신하여 상기 교착 상태의 원인이 되는 디바이스 드라이버를 검출하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  6. 제5항에 있어서,
    상기 드라이버 감시부는 상기 드라이버 신호가 정상적으로 수신되지 않는 디바이스 드라이버를 상기 교착 상태의 원인이 되는 디바이스 드라이버로 판단하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  7. 제3항 또는 제5항에 있어서,
    상기 드라이버 감시부는 상기 모든 디바이스 드라이버 각각이 정상적으로 초기화되거나 작동되는지를 지시하는 플래그가 포함된 리스트를 생성하며,
    상기 로그 비교부는 상기 리스트의 플래그에 기초하여 활성화시킬 디바이스 드라이버와 비활성화시킬 디바이스 드라이버를 구분하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  8. 제1항에 있어서,
    상기 휴대용 단말이 교착 상태에 빠졌을 때 생성되는 시스템 로그를 분석하여 상기 드라이버 감시부로부터 수신된 상기 교착 상태 정보를 상기 시스템 로그에 포함시키기 위한 로그 분석부;
    상기 로그 분석부로부터 수신된 시스템 로그에서 상기 교착 상태 정보를 추출하기 위한 로그 추출부; 및
    상기 로그 추출부에서 추출된 상기 교착 상태 정보를 저장하기 위한 로그 저장부를 더 포함하고,
    상기 로그 비교부는 상기 로그 저장부에 저장되어 있는 교착 상태 정보를 이용하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  9. 제8항에 있어서,
    상기 로그 추출부에서 추출된 상기 교착 상태 정보를 서버로 전송하기 위한 로그 전송부를 더 포함하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  10. 제1항에 있어서,
    상기 교착 상태 정보는 상기 디바이스 드라이버가 원인이 된 횟수를 가리키는 카운트 정보를 더 포함하고,
    상기 로그 비교부는 상기 카운트 정보가 기준치 이상인 경우에만 상기 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버를 비활성화하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 장치.
  11. 휴대용 단말이 비정상적으로 동작하는 교착 상태의 원인이 되는 디바이스 드라이버를 검출하는 단계;
    상기 검출된 디바이스 드라이버의 식별 정보가 포함된 교착 상태 정보를 생성하는 단계; 및
    상기 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버를 비활성화하여 시스템을 부팅시키는 단계를 포함하는 휴대용 단말을 위한 재부팅 처리 방법.
  12. 제11항에 있어서,
    상기 부팅 단계에서는 상기 식별 정보에 의하여 지시되지 않은 다른 디바이스 드라이버는 활성화하여 상기 시스템이 부팅되도록 하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  13. 제11항에 있어서,
    상기 검출 단계에서는 상기 휴대용 단말이 부팅되는 동안에 설치된 모든 디바이스 드라이버가 정상적으로 초기화가 수행되는지를 체크하여 상기 교착 상태의 원인이 되는 디바이스 드라이버를 검출하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  14. 제13항에 있어서,
    상기 검출 단계에서는 상기 모든 디바이스 드라이버를 순차적으로 초기화하기 위한 함수가 정상적으로 호출되지 않는 시점 이전의 디바이스 드라이버가 상기 교착 상태의 원인이 되는 디바이스 드라이버로 판단하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  15. 제11항에 있어서,
    상기 검출 단계에서는 상기 휴대용 단말이 정상 동작하는 동안에 설치된 모든 디바이스 드라이버로부터 드라이버 신호를 수신하여 상기 교착 상태의 원인이 되는 디바이스 드라이버를 검출하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  16. 제15항에 있어서,
    상기 검출 단계에서는 상기 드라이버 신호가 정상적으로 수신되지 않는 디바이스 드라이버를 상기 교착 상태의 원인이 되는 디바이스 드라이버로 판단하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  17. 제13항 또는 제15항에 있어서,
    상기 교착 상태 정보의 생성 단계에서는 상기 모든 디바이스 드라이버 각각이 정상적으로 초기화되거나 작동되는지를 지시하는 플래그가 포함된 리스트를 생성하며,
    상기 부팅 단계에서는 상기 리스트의 플래그에 기초하여 활성화시킬 디바이스 드라이버와 비활성화시킬 디바이스 드라이버를 구분하여 부팅을 수행하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  18. 제11항에 있어서, 상기 교착 상태 정보의 생성 단계 이후에
    상기 휴대용 단말이 교착 상태에 빠졌을 때 생성되는 시스템 로그를 분석하여 상기 드라이버 감시부로부터 수신된 상기 교착 상태 정보를 상기 시스템 로그에 포함시키는 단계;
    상기 시스템 로그에서 상기 교착 상태 정보를 추출하는 단계; 및
    상기 추출된 교착 상태 정보를 저장하는 단계를 더 포함하고,
    상기 부팅 단계에서는 상기 저장된 교착 상태 정보를 이용하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  19. 제18항에 있어서,
    상기 저장된 교착 상태 정보를 서버로 전송하는 단계를 더 포함하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  20. 제19항에 있어서,
    상기 서버로부터 상기 교착 상태 정보에 대한 응답으로 비활성화된 디바이스 드라이버에 대한 업데이트 파일을 수신하여 업데이트를 수행하는 단계; 및
    업데이트가 완료되면 업데이트된 파일을 활성화하여 시스템을 재부팅하는 단계를 더 포함하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  21. 제11항에 있어서,
    상기 교착 상태 정보는 상기 디바이스 드라이버가 원인이 된 횟수를 가리키는 카운트 정보를 더 포함하고,
    상기 부팅 단계에서는 상기 카운트 정보가 기준치 이상인 경우에만 상기 교착 상태 정보에 포함된 식별 정보가 지시하는 디바이스 드라이버를 비활성화하는 것을 특징으로 하는 휴대용 단말을 위한 재부팅 처리 방법.
  22. 제1항의 재부팅 처리 장치를 구비하는 휴대용 단말.
KR1020120021401A 2012-02-29 2012-02-29 휴대용 단말을 위한 재부팅 처리 장치 및 방법 KR101332815B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120021401A KR101332815B1 (ko) 2012-02-29 2012-02-29 휴대용 단말을 위한 재부팅 처리 장치 및 방법
US13/652,862 US20130227356A1 (en) 2012-02-29 2012-10-16 Apparatus and method for handling rebooting of mobile terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120021401A KR101332815B1 (ko) 2012-02-29 2012-02-29 휴대용 단말을 위한 재부팅 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130099701A KR20130099701A (ko) 2013-09-06
KR101332815B1 true KR101332815B1 (ko) 2013-11-27

Family

ID=49004643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120021401A KR101332815B1 (ko) 2012-02-29 2012-02-29 휴대용 단말을 위한 재부팅 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20130227356A1 (ko)
KR (1) KR101332815B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101369430B1 (ko) * 2012-09-06 2014-03-06 주식회사 팬택 행 현상 관리 장치 및 방법
US9405605B1 (en) * 2013-01-21 2016-08-02 Amazon Technologies, Inc. Correction of dependency issues in network-based service remedial workflows
US9183092B1 (en) * 2013-01-21 2015-11-10 Amazon Technologies, Inc. Avoidance of dependency issues in network-based service startup workflows
CN105094875A (zh) * 2014-05-19 2015-11-25 中兴通讯股份有限公司 一种软件升级方法及装置
WO2016160086A1 (en) * 2015-03-30 2016-10-06 Thomson Licensing Apparatus and method for controlling the initialization and updating of a device
US9734015B2 (en) * 2015-06-23 2017-08-15 Dell Products, L.P. Pre-boot self-healing and adaptive fault isolation
US20170019499A1 (en) * 2015-07-17 2017-01-19 Sugarcrm Inc. Adaptive component based application
US10452459B2 (en) 2016-12-09 2019-10-22 Microsoft Technology Licensing, Llc Device driver telemetry
US10467082B2 (en) * 2016-12-09 2019-11-05 Microsoft Technology Licensing, Llc Device driver verification
CN107609114B (zh) * 2017-09-13 2021-05-28 Oppo广东移动通信有限公司 日志信息上报方法、装置及存储介质、adsp和终端
CN107807861B (zh) * 2017-10-31 2021-05-21 努比亚技术有限公司 冻屏解决方法、移动终端及计算机可读存储介质
CN108040159B (zh) * 2017-11-30 2021-01-29 江苏觅丰电商科技有限公司 基于硬件驱动的重启定位方法、移动终端及可读存储介质
CN108108257B (zh) * 2017-12-28 2022-03-18 努比亚技术有限公司 基于mdss的重启定位方法、移动终端及可读存储介质
CN108268335B (zh) * 2018-01-31 2022-04-19 努比亚技术有限公司 基于系统服务的重启定位方法、移动终端及存储介质
JP7062500B2 (ja) * 2018-04-17 2022-05-06 Dynabook株式会社 電子機器、接続方法及びプログラム
US11288124B2 (en) * 2019-03-30 2022-03-29 Intel Corporation Methods and apparatus for in-field mitigation of firmware failures
US11244055B1 (en) * 2021-01-25 2022-02-08 Dell Products L.P. Management controller to bios root of trust bypass implant detection and remediation
US11599436B2 (en) * 2021-03-02 2023-03-07 Dell Products L.P. Systems and methods for repairing corruption to BIOS boot critical memory variables
CN118647979A (zh) * 2022-03-17 2024-09-13 美光科技公司 用于引导程序的错误信息存储

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060081011A (ko) * 2005-01-06 2006-07-12 주식회사 팬택 부분 리셋 기능을 가지는 무선통신 단말기 및 그 방법
KR20060117664A (ko) * 2005-05-13 2006-11-17 주식회사 팬택 이동 통신 단말기의 부팅 방법 및 그 장치
KR20070070562A (ko) * 2005-12-29 2007-07-04 주식회사 팬택 이동통신 단말기의 오류 보고 시스템 및 오류관리서버
KR20080090071A (ko) * 2007-04-04 2008-10-08 삼성전자주식회사 오류 발생 시 시스템을 복원하는 방법 및 휴대단말기

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085337A (en) * 1998-09-21 2000-07-04 Infineon Technologies North America Corp. Method and system for reliably indicating test results during a self-check operation
US6665818B1 (en) * 2000-04-27 2003-12-16 Hewlett-Packard Development Company, L.P. Apparatus and method for detecting, diagnosing, and handling deadlock errors
EP1345124A1 (en) * 2002-03-14 2003-09-17 Hewlett-Packard Company Managing boot errors
US7111202B2 (en) * 2002-06-28 2006-09-19 Hewlett-Packard Development Company, L.P. Autonomous boot failure detection and recovery
US7266727B2 (en) * 2004-03-18 2007-09-04 International Business Machines Corporation Computer boot operation utilizing targeted boot diagnostics
US7627785B1 (en) * 2004-07-12 2009-12-01 Sun Microsystems, Inc. Capturing machine state of unstable Java program
CN100507866C (zh) * 2005-03-18 2009-07-01 富士通株式会社 使用服务处理器的cpu退缩系统和cpu退缩方法
US7555677B1 (en) * 2005-04-22 2009-06-30 Sun Microsystems, Inc. System and method for diagnostic test innovation
JP2012058879A (ja) * 2010-09-07 2012-03-22 Toshiba Corp オペレーティングシステム起動管理装置
US8713378B2 (en) * 2011-07-07 2014-04-29 Microsoft Corporation Health monitoring of applications in a guest partition

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060081011A (ko) * 2005-01-06 2006-07-12 주식회사 팬택 부분 리셋 기능을 가지는 무선통신 단말기 및 그 방법
KR20060117664A (ko) * 2005-05-13 2006-11-17 주식회사 팬택 이동 통신 단말기의 부팅 방법 및 그 장치
KR20070070562A (ko) * 2005-12-29 2007-07-04 주식회사 팬택 이동통신 단말기의 오류 보고 시스템 및 오류관리서버
KR20080090071A (ko) * 2007-04-04 2008-10-08 삼성전자주식회사 오류 발생 시 시스템을 복원하는 방법 및 휴대단말기

Also Published As

Publication number Publication date
US20130227356A1 (en) 2013-08-29
KR20130099701A (ko) 2013-09-06

Similar Documents

Publication Publication Date Title
KR101332815B1 (ko) 휴대용 단말을 위한 재부팅 처리 장치 및 방법
US10019253B2 (en) Systems and methods of updating hot-pluggable devices
CN110472413B (zh) 基于jenkins的设备管理方法、装置、存储介质及电子设备
US9563439B2 (en) Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US10372460B2 (en) System and method for baseboard management controller assisted dynamic early host video on systems with a security co-processor
US20130212430A1 (en) Electronic device with firmware recovery function and method for recovering firmware
WO2022127590A1 (zh) 静电释放检测方法及装置
US20170235945A1 (en) Malicious code analysis device and method based on external device connected via usb cable
CN109426527B (zh) 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法
CN112269584A (zh) 一种PCIe Switch固件更新方法、装置、电子设备及介质
US9965292B2 (en) Method of bluetooth pairing with UEFI firmware and computer system thereof
CN116339838A (zh) 服务器启动方法、装置、电子设备及存储介质
US20160103688A1 (en) Method of Starting Computing System
US8949588B1 (en) Mobile telephone as bootstrap device
CN110515671A (zh) 初始化方法、初始化装置、终端设备及可读存储介质
KR100621095B1 (ko) 주변 장치 초기화를 위한 부팅 시스템 및 부팅 방법
CN107861827B (zh) 卡屏检测方法、移动终端及计算机可读存储介质
CN105278942B (zh) 组件管理方法及装置
CN107451067B (zh) 下载测试的处理方法及相关产品
WO2020113469A1 (zh) 开机检测方法、开机检测装置及移动终端
CN112231704B (zh) 可信网络环境保护方法、装置和计算机可读存储介质
EP3182320B1 (en) Technique for inspecting a host computer
CN107274589B (zh) 一种金融自助终端硬件设备的访问方法、系统及终端设备
CN110109707B (zh) 终端启动方法、装置及终端
US20220113979A1 (en) Storing post codes in electronic tags

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 6