KR20210004288A - 전자장치 및 그 제어방법 - Google Patents
전자장치 및 그 제어방법 Download PDFInfo
- Publication number
- KR20210004288A KR20210004288A KR1020190080497A KR20190080497A KR20210004288A KR 20210004288 A KR20210004288 A KR 20210004288A KR 1020190080497 A KR1020190080497 A KR 1020190080497A KR 20190080497 A KR20190080497 A KR 20190080497A KR 20210004288 A KR20210004288 A KR 20210004288A
- Authority
- KR
- South Korea
- Prior art keywords
- operating system
- data
- electronic device
- memory
- storage
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 100
- 230000008569 process Effects 0.000 claims description 37
- 238000005192 partition Methods 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000013508 migration Methods 0.000 description 36
- 230000005012 migration Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 239000004973 liquid crystal related substance Substances 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
전자장치는, 스토리지에 저장된 제1운영체제를 메모리에 로딩시켜 부팅하고, 제1운영체제가 실행되는 동안에 획득한 데이터를 상기 스토리지에 저장하며; 획득한 제2운영체제 및 스토리지에 저장된 데이터를 메모리에 로딩시키며; 메모리에 로딩된 제2운영체제 및 데이터 사이의 동작 호환성을 식별하며; 동작 호환성이 정상인 것으로 식별되는 것에 기초하여 제2운영체제를 메모리에 로딩시켜 부팅하며; 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여 제1운영체제를 메모리에 로딩시켜 부팅하는 프로세서를 포함한다.
Description
본 발명은 운영체제에 의해 구동되는 전자장치 및 그 제어방법에 관한 것으로서, 상세하게는 기 인스톨된 운영체제를 다른 운영체제로 대체하거나 또는 버전업된 운영체제로 업그레이드할 수 있게 마련된 전자장치 및 그 제어방법에 관한 것이다.
소정의 정보를 특정 프로세스에 따라서 연산 및 처리하기 위해, 연산을 위한 CPU, 칩셋, 메모리 등의 전자부품들을 기본적으로 포함하는 전자장치는, 처리 대상이 되는 정보 또는 사용 용도가 무엇인지에 따라서 다양한 종류로 구분될 수 있다. 예를 들면, 전자장치에는 범용의 정보를 처리하는 PC나 서버 등의 정보처리장치, 영상데이터를 처리하는 영상처리장치, 오디오를 처리하는 오디오장치, 가정 내 잡무를 수행하는 생활가전 등이 있다. 영상처리장치는 처리된 영상데이터를 자체 구비한 디스플레이 패널(display panel) 상에 영상으로 표시하는 디스플레이장치로 구현될 수 있다.
하드웨어의 측면에서 전자장치는, CPU, 컨트롤러 또는 프로세서의 연산에 의해 동작한다. 또한, 소프트웨어의 측면에서 전자장치는, 운영체제 등의 플랫폼, 또는 그 위에서 실행되는 미드웨어나 어플리케이션에 의해 수행된다. 즉, 전자장치가 정상적으로 동작하기 위해서는, 기본적으로 전자장치에 적절한 운영체제가 인스톨되어야 한다. 전자장치의 부팅 시에 부트로더(boot-loader) 또는 부트 스크립트(boot script)에 따라서 운영체제가 호출되어 실행되고, 운영체제 상에서 다양한 앱 또는 기능이 구현된다.
전자장치는 새로운 기능의 추가 또는 기존 기능의 발전을 위해 하드웨어 또는 소프트웨어 측면에서의 업그레이드 수단이 적용된다. 다양한 업그레이드 수단 중 하나로는, 운영체제를 업그레이드, 업데이트 또는 대체하는 방법이 있다. 전자장치는 접속된 외부장치로부터 새로운 운영체제를 수신하거나, 또는 네트워크를 통해 서버로부터 새로운 운영체제를 수신할 수 있다. 전자장치는 다음 번 부팅 때에 이 새로운 운영체제로 부팅한다.
그런데, 전자장치의 동작을 실현함에 있어서, 전자장치가 필요로 하는 것은 운영체제만이 아니다. 예를 들면, 전자장치는 이전의 운영체제를 사용했던 기간 동안에 참조된 다양한 종류의 참조데이터를 누적하여 저장한다. 운영체제가 이 참조데이터를 참조함으로써, 전자장치는 사용자의 성향 또는 사용환경이 반영된 동작, 기능을 수행할 수 있다. 따라서, 전자장치에서 운영체제의 업그레이드가 수행된 이후에도, 이전의 운영체제에서 참조된 참조데이터는 계속 사용되는 것이 사용의 연속성을 유지하는 측면에서 바람직하다.
그러나, 소프트웨어의 버전업 또는 대체는 종종 호환성 측면에서 문제를 야기할 수 있다. 이전의 운영체제에서 참조된 참조데이터는 이전의 운영체제와 호환성이 보장되지만, 반드시 새로운 운영체제와 호환성이 보장된다고 단정될 수 없다. 전자장치가 새로운 운영체제로 대체된 이후의 최초 부팅 시에, 새로운 운영체제가 이전의 참조데이터를 참조하게 된다. 그런데, 만일 새로운 운영체제 및 이전의 참조데이터 사이에 호환성이 맞지 않는 경우에는, 전자장치가 동작하지 못하게 된다. 또한, 운영체제의 업그레이드가 진행되는 동안에 전자장치의 전원이 끊기는 등의 예측되지 못한 상황이 발생하였을 때에도, 운영체제의 업그레이드가 정상적으로 종료되지 못함으로써 전자장치가 동작하지 못하게 될 수 있다.
따라서, 운영체제의 업그레이드 시에, 새로운 운영체제 및 이전의 참조데이터 사이의 호환성 문제 또는 기타 다양한 에러에 대처할 수 있는 방법이 전자장치에 요구될 수 있다.
본 발명의 실시예에 따른 전자장치는, 메모리와, 제1운영체제를 저장하는 스토리지와, 상기 스토리지에 저장된 제1운영체제를 상기 메모리에 로딩시켜 부팅하고, 상기 제1운영체제가 실행되는 동안에 획득한 데이터를 상기 스토리지에 저장하며, 획득한 제2운영체제 및 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시키며, 상기 메모리에 로딩된 상기 제2운영체제 및 상기 데이터 사이의 동작 호환성을 식별하며, 상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅하며, 상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여 상기 제1운영체제를 상기 메모리에 로딩시켜 부팅하는 프로세서를 포함한다.
또한, 상기 프로세서는, 상기 스토리지에 저장된 데이터를 상기 제2운영체제에 대응하는 데이터의 형식에 맞게 변환하여 상기 메모리에 로딩할 수 있다.
또한, 상기 프로세서는, 상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여, 상기 스토리지에 저장된 데이터가 대체되도록 상기 변환된 데이터를 상기 스토리지에 저장할 수 있다.
또한, 상기 프로세서는, 상기 메모리에서 상기 변환된 데이터를 생성하여 상기 스토리지에 저장하는 동안에, 상기 전자장치에서 실행중인 소정의 프로세스에 대해 상기 변환된 데이터를 격리시킬 수 있다.
또한, 상기 프로세서는, 상기 제2운영체제에 대응하는 데이터를 상기 메모리에 로딩하고, 상기 제2운영체제에 대응하는 데이터의 항목 별 값을 상기 스토리지에 저장된 데이터의 값으로 조정할 수 있다.
또한, 상기 프로세서는, 상기 제2운영체제를 획득하는 것에 응답하여 상기 제2운영체제를 상기 스토리지에 저장하고, 상기 제2운영체제에 의해 부팅하여 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시킬 수 있다.
또한, 상기 프로세서는, 상기 메모리에서 상기 제2운영체제가 로딩된 저장영역에 상기 데이터가 오버레이되도록 상기 데이터를 상기 메모리에 로딩시킬 수 있다.
또한, 상기 프로세서는, 상기 제1운영체제 및 상기 제2운영체제를 상기 스토리지에서 서로 분리된 파티션들에 각기 저장할 수 있다.
또한, 상기 프로세서는, 상기 데이터를 상기 스토리지에서 상기 제1운영체제 및 상기 제2운영체제가 저장된 파티션들과 분리된 파티션에 저장할 수 있다.
또한, 상기 프로세서는, 상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여, 상기 제2운영체제에 제공되는 디폴트 데이터를 사용하도록 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅시킬 수 있다.
또한, 본 발명의 실시예에 따른 전자장치의 제어방법은, 스토리지에 저장된 제1운영체제를 메모리에 로딩시켜 부팅하고, 상기 제1운영체제가 실행되는 동안에 획득한 데이터를 상기 스토리지에 저장하는 단계와, 획득한 제2운영체제 및 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시키는 단계와, 상기 메모리에 로딩된 상기 제2운영체제 및 상기 데이터 사이의 동작 호환성을 식별하는 단계와, 상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅하는 단계와, 상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여 상기 제1운영체제를 상기 메모리에 로딩시켜 부팅하는 단계를 포함한다.
도 1은 전자장치가 운영체제를 획득하는 방법을 나타내는 예시도이다.
도 2는 전자장치의 구성 블록도이다.
도 3은 전자장치의 제어방법의 과정을 나타내는 플로우차트이다.
도 4는 전자장치에서 각 시구간 별로 수행되는 프로세스를 개략적으로 나타내는 예시도이다.
도 5는 전자장치가 제2운영체제의 팩키지 데이터를 획득하였을 때의 저장 방식을 나타내는 구성 블록도이다.
도 6은 전자장치가 제1참조데이터의 데이터 마이그레이션을 수행하는 경우를 나타내는 구성 블록도이다.
도 7은 전자장치가 제2운영체제 및 제3참조데이터 사이의 동작 호환성을 점검하는 경우를 나타내는 구성 블록도이다.
도 8은 전자장치가 제3참조데이터를 스토리지에 저장한 이후에 재부팅한 상태를 나타내는 구성 블록도이다.
도 9는 전자장치가 업그레이드를 위한 제2운영체제 및 이전에 사용했던 제1참조데이터 사이의 동작 호환성을 점검하는 과정을 나타내는 플로우차트이다.
도 10은 전자장치가 수행하는 데이터 마이그레이션의 방법을 나타내는 예시도이다.
도 11은 전자장치가 운영체제의 일부 데이터 코드를 업그레이드하기 위한 데이터를 수신한 경우의 구성 블록도이다.
도 12는 전자장치가 제1참조데이터의 데이터 마이그레이션을 수행하는 경우를 나타내는 구성 블록도이다.
도 13은 전자장치가 제2RO 데이터 및 제3참조데이터 사이의 동작 호환성을 점검하는 경우를 나타내는 구성 블록도이다.
도 14는 전자장치가 제3참조데이터를 스토리지에 저장한 이후에 재부팅한 상태를 나타내는 구성 블록도이다.
도 15는 전자장치에 적용 가능한 오버레이 파일시스템에 관한 원리를 나타내는 예시도이다.
도 16은 전자장치가 제2운영체제 및 제2참조데이터를 오버레이시켜 마운팅한 상태에서 데이터 마이그레이션을 수행하는 모습을 나타내는 구성 블록도이다.
도 2는 전자장치의 구성 블록도이다.
도 3은 전자장치의 제어방법의 과정을 나타내는 플로우차트이다.
도 4는 전자장치에서 각 시구간 별로 수행되는 프로세스를 개략적으로 나타내는 예시도이다.
도 5는 전자장치가 제2운영체제의 팩키지 데이터를 획득하였을 때의 저장 방식을 나타내는 구성 블록도이다.
도 6은 전자장치가 제1참조데이터의 데이터 마이그레이션을 수행하는 경우를 나타내는 구성 블록도이다.
도 7은 전자장치가 제2운영체제 및 제3참조데이터 사이의 동작 호환성을 점검하는 경우를 나타내는 구성 블록도이다.
도 8은 전자장치가 제3참조데이터를 스토리지에 저장한 이후에 재부팅한 상태를 나타내는 구성 블록도이다.
도 9는 전자장치가 업그레이드를 위한 제2운영체제 및 이전에 사용했던 제1참조데이터 사이의 동작 호환성을 점검하는 과정을 나타내는 플로우차트이다.
도 10은 전자장치가 수행하는 데이터 마이그레이션의 방법을 나타내는 예시도이다.
도 11은 전자장치가 운영체제의 일부 데이터 코드를 업그레이드하기 위한 데이터를 수신한 경우의 구성 블록도이다.
도 12는 전자장치가 제1참조데이터의 데이터 마이그레이션을 수행하는 경우를 나타내는 구성 블록도이다.
도 13은 전자장치가 제2RO 데이터 및 제3참조데이터 사이의 동작 호환성을 점검하는 경우를 나타내는 구성 블록도이다.
도 14는 전자장치가 제3참조데이터를 스토리지에 저장한 이후에 재부팅한 상태를 나타내는 구성 블록도이다.
도 15는 전자장치에 적용 가능한 오버레이 파일시스템에 관한 원리를 나타내는 예시도이다.
도 16은 전자장치가 제2운영체제 및 제2참조데이터를 오버레이시켜 마운팅한 상태에서 데이터 마이그레이션을 수행하는 모습을 나타내는 구성 블록도이다.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 각 도면을 참조하여 설명하는 실시예들은 특별한 언급이 없는 한 상호 배타적인 구성이 아니며, 하나의 장치 내에서 복수 개의 실시예가 선택적으로 조합되어 구현될 수 있다. 이러한 복수의 실시예의 조합은 본 발명의 기술분야에서 숙련된 기술자가 본 발명의 사상을 구현함에 있어서 임의로 선택되어 적용될 수 있다.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.
또한, 본 명세서에서의 복수의 구성요소 중 "적어도 하나(at least one)"라는 표현이 나오는 경우에, 본 표현은 복수의 구성요소 전체 뿐만 아니라, 복수의 구성요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.
도 1은 전자장치가 운영체제를 획득하는 방법을 나타내는 예시도이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 전자장치(110)는 TV 등의 디스플레이장치로 구현된다. 다만, 전자장치(110)가 디스플레이장치로 구현되는 경우는 한 가지 예시일 뿐이며, 전자장치(110)는 기본적으로 운영체제에 의해 동작하는 제반 기기로 구현이 가능하다. 예를 들면, 전자장치(110)는 모니터, 태블릿, 휴대용 멀티미디어 기기, 전자액자, TV 등의 디스플레이장치이거나, 셋탑박스, 블루레이 재생기기 등의 디스플레이 패널을 구비하지 않은 영상처리장치이거나, 세탁기, 냉장고, 의류관리기, 에어컨 등의 생활가전일 수 있다. 또한, 전자장치(110)는 한 장소에 고정적으로 설치하고 사용하는 기기이거나, 스마트폰, 웨어러블 디바이스와 같은 모바일기기일 수 있다.
전자장치(110)는 하드웨어 및 소프트웨어의 연계에 의해 동작한다. 예를 들면, 전자장치(110)는 프로세서가 플랫폼 코드의 실행에 따라서 연산을 수행함으로써 동작한다. 전자장치(110)에 사용되는 플랫폼 코드는 예를 들면 운영체제, 특히 커널(kernel)을 포함한다.
전자장치(110)의 운영체제는 최적화, 새 기능의 추가, 기존 기능의 발전, 새로운 규격의 대응 등 다양한 필요에 따라서 업그레이드될 수 있다. 업그레이드 또는 업데이트 방식은, 이미 설치된 구 운영체제가 새 운영체제로 전체적으로 대체되는 경우가 있고, 구 운영체제의 전체 데이터 코드 중에서 일부만이 대체되는 경우가 있다. 두 가지 경우 모두 본 발명의 사상이 적용될 수 있다.
전자장치(110)는 업그레이드를 위한 새 운영체제를 다양한 경로를 통해 획득할 수 있다. 예를 들면, 전자장치(110)는 외부 포트에 접속된 메모리장치(130)로부터 새 운영체제의 팩키지 데이터를 획득할 수 있다. 또는, 전자장치(110)는 네트워크를 통해 서버(120)로부터 새 운영체제의 팩키지 데이터를 획득할 수 있다.
운영체제의 팩키지 데이터는, 운영체제의 데이터 코드들을 전자장치의 프로세서가 처리 가능한 기 설정된 포맷으로 인코딩, 압축 또는 팩키징화된 데이터이며, 운영체제의 데이터 이미지라고도 지칭된다. 본 포맷은 다양한 데이터 압축화 기술이 적용될 수 있다. 통상적으로 운영체제의 팩키지 데이터는 전자장치(110)의 비휘발성 저장매체에 저장된다.
운영체제는 팩키징 데이터로부터 디코딩된 상태 또는 팩키징화가 풀린 상태에서 실행된다. 전자장치(110)가 부팅될 때, 비휘발성 저장매체에 저장된 운영체제의 팩키지 데이터로부터 실행에 필요한 데이터 코드가 추출되어(즉, 팩키징 데이터의 팩키징화가 풀린 이후에 필요한 데이터 코드가 추출되어) 휘발성 메모리에 로딩된다. 이와 같이 운영체제를 실행 가능하도록 운영체제의 필요한 데이터 코드가 휘발성 메모리에 로딩되는 과정을, 운영체제가 마운팅된다고 표현한다. 또는, 운영체제가 사용 가능한 상태로 마련되는 것을 운영체제가 마운팅된다고 볼 수도 있다. 프로세서가 마운팅된 운영체제의 데이터 코드를 실행함으로써 전자장치의 운영체제가 실행되고, 전자장치가 동작한다.
운영체제는 실행되는 동안에 다양한 종류의 참조데이터를 참조한다. 여기서, 참조데이터라는 명칭은 단지 운영체제에 의해 참조 또는 사용되는 데이터라는 뜻에서 편의상 붙여진 용어에 불과하며, 명칭 자체가 데이터의 속성을 한정하는 것은 아니다. 참조데이터는 예를 들면, 전자장치(110)의 여러 장치 기능의 설정에 관한 설정정보, 사용자의 계정에 관한 계정정보, 사용자에 의한 전자장치(110)의 사용 이력에 관한 장치이력정보, 사용자가 시청한 컨텐트 또는 실행시킨 어플리케이션의 사용 이력에 관한 컨텐트이력정보 등이 있다. 이와 같이, 참조데이터는 사용자가 전자장치(110)를 사용하는 동안에 사용 패턴을 반영하는, 사용자에게 최적화된 전자장치(110)의 사용 정보를 포함한다. 운영체제는 이러한 참조데이터를 참조함으로써, 사용자에게 최적화된 전자장치(110)의 동작 또는 기능을 제공할 수 있다.
참조데이터는 전자장치(110)의 사용 중에 변경될 수 있는 가변 허용 데이터이다. 반면에, 운영체제는 업그레이드와 같은 특정한 상황을 제외한, 통상적인 사용 중에 변경되지 않는 가변 제한 데이터이다. 이러한 관점에서, 편의상 운영체제는 RO(Read-Only) 데이터, 참조데이터는 RW(Read-Write) 데이터로 지칭될 수 있다.
전자장치(110)에 제공되는 새 운영체제의 팩키지 데이터는, 새 RO 데이터(즉, 새 운영체제) 및 새 RW 데이터(즉, 새 참조데이터)를 포함한다. 새 RO 데이터 및 새 RW 데이터는 개발 단계에서, 상호 연계 시 정상적인 동작이 보장된, 즉 호환성이 보장된 데이터이다. 만일, 전자장치(110)가 구 RO 데이터(즉, 구 운영체제)를 새 RO 데이터로 대체하고, 구 RW 데이터 대신 새 RW 데이터를 사용하게 되면, 이전 전자장치(110)에 반영된 사용자의 설정이 반영되지 않는다.
본 실시예에 따른 전자장치(110)는 운영체제의 업그레이드 이후 새 RO 데이터가 구 RW 데이터를 참조할 수 있도록 함으로써, 사용의 연속성을 보장한다. 이 때, 전자장치(110)는 새 RO 데이터 및 구 RW 데이터의 호환성 보장을 위한 프로세스를 수행하는 바, 이에 관한 자세한 설명은 후술한다.
이하, 전자장치(110)를 이루는 하드웨어에 관해 설명한다.
도 2는 전자장치의 구성 블록도이다.
도 2에 도시된 바와 같이, 전자장치(210)는 통신부(211)와, 신호입출력부(212)와, 디스플레이부(213)와, 사용자입력부(214)와, 스토리지(storage)(215)와, 메모리(memory)(216)와, 프로세서(processor)(217)를 포함한다. 본 실시예서는 전자장치(210)가 디스플레이장치인 경우에 관해 설명하지만, 전자장치(210)은 다양한 종류의 전자장치로 구현될 수 있으므로, 본 실시예가 전자장치(210)의 구성을 한정하는 것은 아니다.
통신부(211)는 다양한 종류의 유선 및 무선 통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 양방향 통신회로이다. 예를 들면, 통신부(211)는 와이파이 방식에 따라서 AP와 무선통신을 수행하는 무선통신모듈이나, 라우터 또는 게이트웨이에 유선 접속된 랜카드로 구현될 수 있다. 예를 들면, 통신부(211)는 네트워크 상의 서버(220)와 통신함으로써, 서버(220)와의 사이에 데이터 패킷을 송수신할 수 있다.
신호입출력부(212)는 셋탑박스 또는 광학미디어 재생장치와 같은 외부장치와 일대일 또는 일대다 방식으로 유선 접속됨으로써, 해당 외부장치에 대해 데이터를 수신하거나 또는 데이터를 출력한다. 신호입출력부(212)는 예를 들면, HDMI 포트, DisplayPort, USB 포트 등과 같이, 기 설정된 전송규격에 따른 커넥터 또는 포트 등을 포함한다.
디스플레이부(213)는 화면 상에 영상을 표시할 수 있는 디스플레이 패널을 포함한다. 디스플레이 패널은 액정 방식과 같은 수광 구조 또는 OLED 방식과 같은 자발광 구조로 마련된다. 디스플레이부(213)는 디스플레이 패널의 구조에 따라서 부가적인 구성을 추가로 포함할 수 있는데, 예를 들면 디스플레이 패널이 액정 방식이라면, 디스플레이부(213)는 액정 디스플레이 패널과, 광을 공급하는 백라이트유닛과, 액정 디스플레이 패널의 액정을 구동시키는 패널구동기판을 포함한다.
사용자입력부(214)는 사용자의 입력을 수행하기 위해 사용자가 조작할 수 있도록 마련된 다양한 종류의 입력 인터페이스 관련 회로를 포함한다. 사용자입력부(214)는 전자장치(210)의 종류에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 전자장치(210)의 기계적 또는 전자적 버튼부, 전자장치(210)와 분리된 리모트 컨트롤러, 터치패드, 디스플레이부(213)에 설치된 터치스크린 등이 있다.
스토리지(215)는 프로세서(217)에 의해 억세스되며, 프로세서(217)의 제어에 따라서 데이터의 독취, 기록, 삭제 등의 동작이 수행된다. 스토리지(215)의 데이터 보존 속성은 비휘발성이며, 전원의 제공 유무와 무관하게 데이터를 저장할 수 있다. 스토리지(215)는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) 등을 포함한다. 스토리지(215)는 기본적으로 전자장치(210)의 동작을 위한 운영체제를 저장하며, 추가적으로 본 운영체제가 실행되는 동안에 해당 운영체제에 의해 참조되는 참조데이터를 저장한다.
메모리(216)는 스토리지(215)에 저장된 데이터 중에서 프로세서(217)에 의해 실행되기 위한 데이터가 로딩된다. 메모리(216)의 데이터 보존 속성은 휘발성이며, 전원이 제공되는 동안에는 데이터를 저장하지만 전원이 차단되면 데이터를 보존할 수 없다. 메모리(216)는 램(RAM; Random Access Memory), 버퍼(buffer) 등을 포함한다.
전자장치(210)가 소정 동작 또는 기능을 구현하기 위해서는, 먼저 해당 동작에 대응하는 데이터가 스토리지(215)로부터 메모리(216)로 로딩되며, 차후 프로세서(217)가 메모리(216)에 로딩된 데이터를 처리하는 순서로 진행된다. 예를 들어 부팅 시에, 부팅로더에 의해 스토리지(215)에 저장된 운영체제의 데이터 코드가 메모리(216)에 로딩되고, 프로세서(217)가 메모리(216)에 로딩된 운영체제의 데이터 코드를 실행한다. 이로써, 운영체제에 의해 전자장치(210)가 구동된다.
이와 같이, 본 실시예에서는 스토리지(215)가 비휘발성 기억매체이고, 메모리(216)가 휘발성 기억매체인 것으로 지칭한다.
프로세서(217)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 프로세서(170)는 전자장치(210)가 디스플레이장치로 구현되는 경우에 디멀티플렉서, 디코더, 스케일러, 오디오 DSP, 앰프 등의 다양한 프로세스에 대응하는 모듈들을 포함한다. 여기서, 이러한 모듈들 중 일부 또는 전체가 SOC로 구현될 수 있다. 예를 들면, 디멀티플렉서, 디코더, 스케일러 등 영상처리와 관련된 모듈이 영상처리 SOC로 구현되고, 오디오 DSP는 SOC와 별도의 칩셋으로 구현되는 것이 가능하다.
프로세서(217)는 스토리지(215)에 소정의 운영체제 및 해당 운영체제에 의해 참조된 참조데이터가 저장되어 있는 동안, 통신부(211) 또는 신호입출력부(212)를 통해 새로운 운영체제가 수신되면, 전자장치(210)의 기 저장된 운영체제를 새로운 운영체제로 업그레이드할 수 있다. 이 때, 프로세서(217)는 새로운 운영체제 및 기 저장된 참조데이터 사이의 동작 호환성을 식별하는 동작을 실행하는 바, 이하 이러한 실시예에 관해 설명한다.
도 3은 전자장치의 제어방법의 과정을 나타내는 플로우차트이다.
도 3에 도시된 바와 같이, 전자장치가 수행하는 이하 동작은 전자장치의 프로세서에 의해 실행된다.
310 단계에서 전자장치는 부팅 지시에 따라서 스토리지에 저장된 제1운영체제를 메모리에 로딩시켜 부팅한다.
320 단계에서 전자장치는 제1운영체제에 의해 구동하는 동안 제1운영체제에 의해 획득하거나 또는 참조되는 참조데이터를 스토리지에 저장한다.
330 단계에서 전자장치는 제1운영체제에 의해 구동하는 동안 제1운영체제의 업그레이드를 위한 제2운영체제를 획득한다.
340 단계에서 전자장치는 획득한 제2운영체제를 스토리지에 저장하고 재부팅한다.
350 단계에서 전자장치는 스토리지에 저장된 제2운영체제 및 참조데이터를 메모리에 로딩시킨다. 여기서 지칭하는 참조데이터는, 제1운영체제에 의해 획득된 참조데이터를 의미한다.
360 단계에서 전자장치는 메모리에 로딩된 제2운영체제 및 참조데이터 사이 동작 호환성이 정상적인지 여부를 식별한다.
메모리에 로딩된 제2운영체제 및 참조데이터 사이 동작 호환성이 정상적인 것으로 식별되면, 370 단계에서 전자장치는 제2운영체제를 차기 부팅 시 사용할 운영체제로 설정하고 재부팅한다. 재부팅 시, 전자장치는 제1운영체제가 아닌 제2운영체제로 부팅을 수행한다.
반면에, 메모리에 로딩된 제2운영체제 및 참조데이터 사이의 동작 호환성이 정상적이지 않은 것으로 식별되면, 380 단계에서 전자장치는 제2운영체제로의 업그레이드를 수행하지 않고, 제1운영체제를 전자장치의 운영체제로 유지한다.
이와 같이, 전자장치는 운영체제의 업그레이드를 수행하는 동안에 제2운영체제 및 참조데이터 사이의 동작 호환성이 맞지 않는다고 식별되면, 제1운영체제에 의한 동작이 수행되도록 설정을 복귀시키는 롤백(roll-back) 과정을 수행한다. 또는, 운영체제의 업그레이드 과정 중에 전자장치에 대한 전원이 차단되는 상황이 발생할 수도 있다. 이 경우에 스토리지에는 제1운영체제가 그대로 유지되고 있는 상태이므로, 전자장치는 다음 번 부팅 시에 제1운영체제를 사용함으로써, 운영체제의 롤백이 수행되고 정상적으로 동작하도록 보장한다.
이로써, 전자장치는 업그레이드 이전의 제1운영체제에서 참조하던 참조데이터와 업그레이드 이후의 제2운영체제 사이의 동작 호환성을 미리 체크함으로써, 동작 호환성이 맞지 않을 경우에 전자장치가 구동하지 못하는 상황을 피할 수 있다.
만일 관련 기술의 전자장치라면, 제2운영체제로 업그레이드된 이후의 다음 번 부팅 과정에서 제2운영체제가 제1운영체제에서 참조했던 참조데이터를 처음으로 참조하게 된다. 제2운영체제 및 참조데이터 사이의 동작 호환성이 맞는다면 부팅은 정상적으로 수행될 것이다. 그러나, 만일 제2운영체제 및 참조데이터 사이의 동작 호환성이 맞지 않는다면, 부팅은 수행되지 못하고, 전자장치는 정상적으로 동작하지 못할 수 있다. 이 경우에 통상적인 사용자는 고장의 원인을 파악하기 곤란하며, 고장을 해결하는 것 또한 곤란하다.
이에 비해, 본 실시예에 따른 전자장치는 제2운영체제를 획득하면, 제1운영체제가 저장되는 동안에 제2운영체제 및 참조데이터를 함께 메모리에 로딩하고 동작 호환성을 점검하는 프로세스를 실행함으로써, 운영체제의 업그레이드 때문에 발생할 수 있는 호환성 문제로 전자장치가 동작하지 못하는 상황을 피할 수 있다.
이하, 전자장치에서 제1운영체제로부터 제2운영체제로 운영체제가 변경될 때 수행되는 프로세스에 관해 보다 구체적으로 설명한다.
도 4는 전자장치에서 각 시구간 별로 수행되는 프로세스를 개략적으로 나타내는 예시도이다.
도 4에 도시된 바와 같이, 전자장치에서 운영체제의 업그레이드 프로세스가 수행될 때, 전체적인 시구간은 T1, T2, T3의 세 개로 나눌 수 있다. 즉, 전자장치의 1차 재부팅에 따라서 T1로부터 T2로 이행되며, 2차 재부팅에 따라서 T2로부터 T3로 이행된다. 여기서, 재부팅이라는 용어는 설명의 편의상 정의된 것에 불과하다는 것을 밝힌다.
시구간 T1에서, 전자장치는 기 저장된 제1운영체제로 부팅되어 동작한다. 전자장치는 제1운영체제에 의해 획득 및 참조되는, 즉 제1운영체제에 대응하는 참조데이터를 스토리지에 저장한다. 전자장치는 업그레이드를 위한 제2운영체제를 획득하면, 제2운영체제를 스토리지에서 제1운영체제와 별도의 영역에 저장한다.
전자장치는 운영체제의 업그레이드가 가능하다는 메시지를 표시함으로써 사용자에게 현재 상태를 알린다. 전자장치는 자동 업그레이드가 사전에 설정되어 있는 경우에는 사용자에게 업그레이드 수행의 승인을 요청하지 않을 수 있다. 또는, 전자장치는 상기한 메시지와 함께, 업그레이드 수행의 승인을 요청하는 UI를 추가로 표시할 수도 있다.
전자장치는 사전 설정 또는 사용자 입력에 따라서 업그레이드 수행이 승인되면, 다음 번 부팅 시 업그레이드에 필요한 동작을 수행하도록 지시하는 플래그 정보를 저장한다. 이후, 전자장치는 운영체제의 업그레이드 진행을 위해 1차로 재부팅한다.
1차 재부팅 시 프로세서가 상기한 플래그 정보를 읽음으로써 업그레이드 프로세스가 개시된다.
시구간 T2에서, 전자장치는 스토리지에 저장된 제2운영체제를 메모리에 로딩하여 부팅한다. 또한, 전자장치는 스토리지에 저장된 제1운영체제에 대응하는 참조데이터를 메모리에 로딩한다. 이 때, 전자장치는 참조데이터를 그대로 메모리에 로딩하는 것이 아닌, 제2운영체제에 대응하도록 변환시켜 로딩한다. 참조데이터의 변환에 관한 자세한 설명은 후술한다.
전자장치는 메모리에 로딩된 제2운영체제와, 참조데이터 간의 동작 호환성 판단으로서, 제2운영체제에 의해 참조데이터가 정상적으로 사용될 수 있는지 여부를 점검한다. 구체적인 점검 방법은 다양한 종류의 알고리즘이 적용될 수 있다. 한 가지 예를 들면 전자장치는 참조데이터의 속성에 대응하는 제2운영체제의 데이터 코드를 실행시켜, 해당 참조데이터를 정상적으로 처리 가능한지 여부에 기초하여 점검을 수행할 수도 있다.
점검 결과가 정상적이면, 전자장치는 차후 제2운영체제에 의한 부팅이 수행되도록 부팅 설정을 조정한다. 제2운영체제에 의한 정상 동작이 보장되었으므로, 전자장치는 스토리지에 저장된 제1운영체제를 삭제하고 2차 재부팅을 수행한다. 시구간 T2에서 수행되는 프로세스의 진행 상황에 따라서, 전자장치는 진행 상황을 나타내는 UI를 표시할 수도 있다.
시구간 T3에서, 전자장치는 스토리지에 저장된 제2운영체제에 의한 부팅을 수행한다. 이로써, 제2운영체제에 의한 운영체제의 업그레이드가 완료된다.
한편, 점검 결과가 비정상적이면, 제2운영체제로는 이전에 사용되는 참조데이터를 계속 사용할 수 없다는 것을 의미한다. 이에, 전자장치는 제1운영체제에 의한 부팅이 유지되도록 설정한다. 또는, 설계 방식에 따라서는 전자장치는 이전에 사용되는 참조데이터 대신에 제2운영체제와 함께 제공되는 새로운 참조데이터를 저장하고, 제2운영체제가 새로운 참조데이터를 사용하도록 설정할 수도 있다. 이 경우에는 이전에 사용되는 참조데이터가 삭제되므로 사용의 연속성은 보장되지 않지만, 전자장치의 정상적인 동작은 보장된다.
이하, 참조데이터의 변환 프로세스에 관해 보다 구체적으로 설명한다.
도 5는 전자장치가 제2운영체제의 팩키지 데이터를 획득하였을 때의 저장 방식을 나타내는 구성 블록도이다.
도 5에 도시된 바와 같이, 전자장치(500)는 메모리(510)와, 스토리지(520)와, 프로세서(530)를 포함한다. 스토리지(520)에는 제1운영체제(541)와, 제1운영체제(541)에 의해 참조되는 제1참조데이터(542)가 저장된다. 프로세서(530)는 스토리지(520)에 저장된 제1운영체제(541)를 메모리(510)에 로딩시켜 실행함으로써, 제1운영체제(541)에 의해 전자장치(500)가 동작하도록 한다. 제1운영체제(541)는 다양한 이벤트에 응답하여, 해당 이벤트에 관련된 제1참조데이터(542)에 기초한 동작을 실행시킨다.
프로세서(530)는 제1운영체제(541)에 의해 구동하는 동안에 외부로부터 운영체제의 업그레이드를 위한 팩키지 데이터(550)를 수신하면, 수신된 팩키지 데이터(550)를 스토리지(520)에 저장한다. 본 팩키지 데이터(550)는 제2운영체제(551)와, 제2운영체제(551)에 의해 참조되는 제2참조데이터(552)를 포함한다. 제2참조데이터(552)는 개발자가 팩키지 데이터(550)를 개발 및 작성할 때에, 제2운영체제(551)가 정상적으로 참조할 수 있도록 제2운영체제(551)와의 사이에 동작 호환성이 보장된 데이터이다. 즉, 제2참조데이터(552)는 제2운영체제(551)가 사용하도록 함께 제공되는, 아직 사용에 의해 변경되지 않은 최초의 값을 포함하는 디폴트(default) 데이터이다.
여기서, 프로세서(530)는 제1운영체제(541) 및 제2운영체제(551)를 스토리지(520) 내의 분리된 파티션(partition)에 각기 저장한다. 또한, 프로세서(530)는 제1참조데이터(542)를 스토리지(520) 내에서 제1운영체제(541) 및 제2운영체제(551)가 각기 저장된 파티션들과 분리된, 별도의 파티션에 저장한다.
운영체제의 업그레이드는 전자장치(500)의 부팅이 제1운영체제(541)에 의해서가 아닌 제2운영체제(551)에 의해 수행되도록 하는 방법을 포함한다. 즉, 전자장치(500)의 부팅 설정이 제1운영체제(541)로부터 제2운영체제(551)로 변경됨으로써 운영체제의 업그레이드가 수행된다. 그런데, 운영체제의 업그레이드 이후에 앞서 설명한 사용의 연속성을 만족시키기 위해서는, 제2운영체제(551)가 이전 제1운영체제(541)에 의해 사용되던 제1참조데이터(542)를 사용할 수 있어야 한다.
프로세서(530)는 팩키지 데이터(550)를 스토리지(520)에 저장하고, 운영체제의 업그레이드 실행을 지시하는 플래그 정보를 다음 번 부팅 시에 참조하도록 저장한다. 프로세서(530)는 재부팅을 실행한다.
도 6은 전자장치가 제1참조데이터의 데이터 마이그레이션을 수행하는 경우를 나타내는 구성 블록도이다.
도 6에 도시된 바와 같이, 프로세서(530)는 재부팅이 되면 앞서 설명한 플래그 정보에 따라서 제2운영체제(551)를 스토리지(520)로부터 메모리(510)에 로딩한다. 제1운영체제(541), 제2운영체제(551), 제1참조데이터(542), 제2참조데이터(552)는 통상적으로 프로세서(530)에 의해 직접적으로 처리되기 곤란한 데이터 상태(예를 들면 인코딩, 압축 등의 파일 상태)로 스토리지(520)에 저장된다. 따라서, 제1운영체제(541), 제2운영체제(551), 제1참조데이터(542), 제2참조데이터(552)는 프로세서(530)에 의해 처리되기 위해 먼저 스토리지(520)로부터 메모리(510)에 로딩된다. 데이터가 처리 가능하도록 메모리(510)에 로딩되는 동작을, 해당 데이터가 마운팅된다고 편의상 지칭된다.
프로세서(530)는 제1참조데이터(542)를 제2운영체제(551)에 대응하도록 변환시키는 프로세스를 수행한다. 본 프로세스는 여러 가지 방법이 가능한데, 일례로 프로세서(530)는 다음과 같은 방법에 따라서 제1참조데이터(542)를 변환시킬 수 있다.
프로세서(530)는 최초 제2운영체제(551)와 동작 호환성이 보장되도록 마련된 제2참조데이터(552)를 스토리지(520)로부터 메모리(510)에 로딩한다. 프로세서(530)는 메모리(510)에 로딩된 제2참조데이터(552)에 대해 스토리지(520)에 저장된 제1참조데이터(542)를 상호 대응하도록 이동시키는 데이터 마이그레이션(data migration)을 수행한다. 데이터 마이그레이션은 본 실시예에서 설명하는 동작을 지칭하기 위해 편의상 적용된 용어이며, 용어 자체가 그 의미를 한정하는 것은 아니다. 이 때, 프로세서(530)는 제1참조데이터(542)를 스토리지(520)로부터 메모리(510)에 로딩한 이후, 메모리(510)로 로딩된 제1참조데이터(542)의 데이터 마이그레이션을 수행한다.
제1참조데이터(542)는 제1운영체제(541)와 동작 호환성이 맞는 데이터이므로, 제1운영체제(541)와는 다른 제2운영체제(551)에 의해 인식되기 곤란할 수 있다. 따라서, 프로세서(530)는 제2운영체제(551)가 인식할 수 있는 데이터 형식을 가진 제2참조데이터(552)를 메모리(510)에 로딩하고, 제1참조데이터(542)를 제2참조데이터(552)의 데이터 형식에 맞춰서 메모리(510)에 로딩된 제2참조데이터(552)에 업데이트시킨다. 이러한 동작을 편의상 데이터 마이그레이션이라고 지칭한다. 데이터 마이그레이션의 결과, 제1참조데이터(542)에 기초하여 메모리(510) 상에 로딩된 제2참조데이터(552)의 적어도 일부가 수정됨으로써 제3참조데이터(도 7의 553 참조)가 생성된다. 즉, 제3참조데이터는 제2참조데이터(552)의 데이터 형식에 맞도록 변환된 제1참조데이터(542)의 컨텐트를 포함한다. 데이터 마이그레이션에 관한 보다 구체적인 예시에 관해서는 후술한다.
데이터 마이그레이션이 정상적으로 수행되지 못한다면(즉, 동작 호환성이 정상적이지 않으면), 프로세서(530)는 다음과 같은 몇 가지 동작 중 어느 하나를 수행할 수 있다. 예를 들면, 프로세서(530)는 제2운영체제(551)로의 업그레이드를 철회하고 제1운영체제(541)로 롤백한다. 또는, 프로세서(530)는 제3참조데이터(553)가 아닌, 제2운영체제(551)가 제2참조데이터(552)를 참조하도록 할 수도 있다. 또는, 프로세서(530)는 제1참조데이터(542)의 데이터 마이그레이션 중에서 에러가 발생하는 데이터에 한해서는 제2참조데이터(552)의 값을 사용함으로써 제3참조데이터(553)를 생성할 수도 있다.
도 7은 전자장치가 제2운영체제 및 제3참조데이터 사이의 동작 호환성을 점검하는 경우를 나타내는 구성 블록도이다.
도 7에 도시된 바와 같이, 제1참조데이터(542)의 데이터 마이그레이션에 의해 메모리(510) 상에 제3참조데이터(553)가 생성된다. 프로세서(530)는 메모리(510)에 로딩된 제2운영체제(551) 및 제3참조데이터(553) 사이의 동작 호환성이 정상적인지, 즉 제2운영체제(551)가 정상적으로 제3참조데이터(553)를 사용할 수 있는지 여부를 점검한다.
예를 들면, 프로세서(530)는 제2운영체제(551)를 실행시켜 제3참조데이터(553)를 정상적으로 참조할 수 있는지 시뮬레이팅을 수행할 수 있다.
만일 동작 호환성이 정상적이라는 점검 결과가 나오면, 프로세서(530)는 부팅에 사용되는 운영체제의 설정을 제1운영체제(541)로부터 제2운영체제(551)로 변경한다. 또한, 프로세서(530)는 스토리지(520)에 제3참조데이터(553)를 저장하고, 제1운영체제(541), 제1참조데이터(542)를 삭제한다. 여기서, 프로세서(530)는 스토리지(520)에서 제2운영체제(551)가 저장된 파티션과 분리된, 별도의 파티션에 제3참조데이터(553)를 저장한다. 여기서, 제2참조데이터(552)는 스토리지(520)에서 삭제될 수도 있고, 제2참조데이터(552)가 제2운영체제(551) 내에 포함된 경우에는 삭제되지 않고 유지될 수도 있다.
프로세서(530)는 재부팅을 수행하며, 이후 다음 도 8에 도시된 바와 같이 동작한다.
반면, 동작 호환성이 정상적이지 않다는 점검 결과가 나오면, 프로세서(530)는 제1운영체제(541)에 의해 부팅이 수행되도록 설정을 원래대로 유지하고, 제1참조데이터(542)가 제1운영체제(541)에 의해 참조되도록 스토리지(520)에 계속 저장한다. 제2운영체제(551) 및 제2참조데이터(552)는 다음 번 재부팅 시 삭제될 수 있다. 또는, 프로세서(530)는 다음 번 재부팅 이후에 제2운영체제(551) 및 제2참조데이터(552)를 삭제할 것인지 사용자에게 지시를 요청하는 UI를 표시하고, UI를 통한 지시에 따라서 제2운영체제(551) 및 제2참조데이터(552)를 선택적으로 삭제할 수도 있다.
도 8은 전자장치가 제3참조데이터를 스토리지에 저장한 이후에 재부팅한 상태를 나타내는 구성 블록도이다.
도 8에 도시된 바와 같이, 프로세서(530)는 이전 단계인 운영체제 업그레이드 과정에서 제2운영체제(551)와 동작 호환성이 보장된 제3참조데이터(553)를 스토리지(520)에 저장하면, 제2운영체제(551)를 다음 번 부팅 시부터 사용되도록 설정을 변경하고 재부팅을 수행한다.
재부팅에 따라서, 프로세서(530)는 제2운영체제(551)를 스토리지(520)로부터 메모리(510)에 로딩하고, 제2운영체제(551)를 실행시킨다. 스토리지(520)에는 제2운영체제(551) 및 제3참조데이터(553)가 저장되며, 제2운영체제(551)는 필요 시 제3참조데이터(553)를 호출하여 참조함으로써, 운영체제의 업그레이드 이후에도 사용의 연속성을 보장할 수 있다.
이상 설명한 바와 같은 운영체제의 업그레이드 시에 제2운영체제 및 제1참조데이터 사이의 동작 호환성을 점검하는 방법에 관해 정리하면 다음과 같다.
도 9는 전자장치가 업그레이드를 위한 제2운영체제 및 이전에 사용했던 제1참조데이터 사이의 동작 호환성을 점검하는 과정을 나타내는 플로우차트이다.
도 9에 도시된 바와 같이, 하기 동작들은 전자장치의 프로세서에 의해 수행된다. 초기상태에서 전자장치는 제1운영체제와, 제1운영체제에 의해 참조되는 제1참조데이터를 스토리지에 저장하며, 업그레이드를 위해 제2운영체제와, 제2운영체제에 의해 참조되는 제2참조데이터를 새로 획득한다.
910 단계에서 전자장치는 획득한 제2운영체제를 메모리에 로딩하여 부팅한다.
920 단계에서 전자장치는 메모리에 제2참조데이터를 로딩한다.
930 단계에서 전자장치는 메모리에 로딩된 제2참조데이터의 데이터 형식에 맞도록 제1참조데이터를 변환하여 제3참조데이터를 생성한다.
940 단계에서 전자장치는 제2운영체제 및 제3참조데이터 사이의 동작 호환성이 정상적인지 여부를 식별한다.
제2운영체제 및 제3참조데이터 사이의 동작 호환성이 정상적인 것으로 식별되면, 950 단계에서 전자장치는 제3참조데이터를 스토리지에 저장한다.
960 단계에서 전자장치는 제1참조데이터를 삭제하고, 제2운영체제로 재부팅한다. 재부팅 이후, 제2운영체제는 제3참조데이터를 참조하여 동작한다. 제1운영체제 및 제2참조데이터는 설정에 따라서 삭제될 수도 있고, 유지될 수도 있다.
반면에, 제2운영체제 및 제3참조데이터 사이의 동작 호환성이 정상적이지 않은 것으로 식별되면, 970 단계에서 전자장치는 제1운영체제에 의한 부팅 설정을 유지하고, 제1운영체제로 재부팅한다. 재부팅 이후, 전자장치에서는 제1운영체제에 의해 제1참조데이터를 참조하여 동작한다.
이로써, 전자장치는 제1참조데이터를 계속 사용할 수 있는 환경을 제공할 수 있다.
만일 운영체제의 업그레이드 과정 중에 어떠한 오류가 발생하면, 전자장치는 운영체제의 업그레이드를 수행하지 않고, 원래의 제1운영체제로 부팅되도록 설정을 조정한다.
이하, 데이터 마이그레이션의 한 예시에 관해 설명한다.
도 10은 전자장치가 수행하는 데이터 마이그레이션의 방법을 나타내는 예시도이다.
도 10에 도시된 바와 같이, 전자장치는 제1참조데이터(1010) 및 제2참조데이터(1020)에 기초하여 제3참조데이터(1030)를 생성한다. 구체적으로는, 메모리에 로딩된 제2참조데이터(1020)에 제1참조데이터(1010)에 의한 데이터 마이그레이션을 통해, 제3참조데이터(1030)가 생성된다.
제1참조데이터(1010) 및 제2참조데이터(1020)가 동일한 규격에 따르는 경우에, 제1참조데이터(1010) 및 제2참조데이터(1020)는 각기 해당 규격에 따른 버전 넘버를 가진다. 규격에서는 호환이 가능한 버전의 범위를 지정할 수 있다. 이에 따라서, 전자장치는 제1참조데이터(1010)의 버전 및 제2참조데이터(1020)의 버전이 상호 호환이 가능한지 여부를 식별한다. 전자장치는 두 버전의 상호 호환이 가능하다고 식별되면 데이터 마이그레이션을 수행하며, 두 버전의 상호 호환이 가능하지 않다고 식별되면 데이터 마이그레이션을 수행하지 않는다.
한편, 제2운영체제가 제2참조데이터(1020)와 동작 호환성이 보장되는 것은, 제2참조데이터(1020)의 데이터 형식을 제2운영체제가 인식할 수 있다는 것으로 볼 수 있다. 반면에 제2운영체제가 제1참조데이터(1010)와 동작 호환성이 보장되지 않는다는 것은, 제1참조데이터(1010)의 데이터 형식을 제2운영체제가 정상적으로 인식하기 곤란하다는 것으로 볼 수 있다.
따라서, 제3참조데이터(1030)는 제1참조데이터(1010)를 제2운영체제가 정상적으로 인식할 수 있도록 제2참조데이터(1020)의 데이터 형식에 맞추어 변환시키는 방법에 의해 생성된다. 데이터 마이그레이션은 이러한 방법 중 한 가지이다.
예를 들면, 각 참조데이터(1010, 1220, 1230)는 복수의 항목과, 각 항목에 대응하는 값을 포함한다. 예를 들면, 제1참조데이터(1010)는 [f(A1)=111, f(B1)=222, f(C1)=333]의 데이터를 포함한다. 이는 제1참조데이터(1010)에서 항목 A1의 값이 111, 항목 B1의 값이 222, 항목 C1의 값이 333이라는 것을 나타낸다. 동일한 표현 방식에 따라서, 제2참조데이터(1020)는 [f(A2)=100, f(B2)=200, f(C2)=300, f(D2)=400, f(E2)=500]으로 나타낼 수 있다.
제1참조데이터(1010)를 제2참조데이터(1020)로 데이터 마이그레이션을 수행함에 있어서, 전자장치는 제1참조데이터(1010)의 항목에 대응하는 제2참조데이터(1020)의 항목을 식별한다. 전자장치는 참조데이터(1010, 1220, 1230)의 규격에 기반하여 이러한 식별 동작을 수행할 수 있다. 제1참조데이터(1010)가 구버전이고 제2참조데이터(1020)가 신버전이라고 할 때, 통상적으로 규격에서는 버전업에 따른 데이터 형식의 변경사항을 지정한다.
예를 들어 제1참조데이터(1010)의 항목 A1, B1, C1에 각기 대응하는 제2참조데이터(1020)의 항목이 A2, B2, C2라고 식별되면, 전자장치는 이러한 식별 결과에 기초하여 데이터 마이그레이션을 수행한다. 전자장치는 제1참조데이터(1010)의 항목 A1, B1, C1 각각의 값을 가지고, 제2참조데이터(1020)에서의 대응 항목 A2, B2, C2의 각각의 값을 업데이트한다. 즉, 제2참조데이터(1020)에서 항목 A2의 값은 100에서 111로, 항목 B2의 값은 200에서 222로, 항목 C2의 값은 300에서 333으로 각기 대체된다.
데이터 마이그레이션에 의해, 제2참조데이터(1020)의 복수의 항목 중에서 제1참조데이터(1010)의 각 항목에 대응하는 항목의 값이 제1참조데이터(1010)의 값으로 대체된다. 그 결과 생성된 제3참조데이터(1030)는, 제2참조데이터(1020)의 데이터 형식에 맞게 변환된 제1참조데이터(1010)를 포함한다.
예를 들면, 제3참조데이터(1030)는 [f(A2)=111, f(B2)=222, f(C2)=333, f(D2)=400, f(E2)=500]으로 나타난다. 제3참조데이터(1030)의 항목들 중에서 A2, B2, C2는 제1참조데이터(1010)의 값으로 대체된다. 한편, 제3참조데이터(1030)의 항목들 중에서, D2, E2와 같이 제1참조데이터(1010) 및 제2참조데이터(1020)에 상호 대응하는 항목이 없는 경우가 있을 수 있다. 이 경우에는 제2참조데이터(1020)의 값이 그대로 유지된다.
이상 설명한 예시는 데이터 마이그레이션의 한 가지 방법에 불과하며, 설계 방식에 따라서 다양한 방법이 데이터 마이그레이션에 적용될 수 있다.
한편, 앞선 실시예에서는 운영체제의 업그레이드 시 종래의 제1운영체제를 새 제2운영체제로 대체하는 경우에 관해 설명하였다. 그러나, 운영체제의 업그레이드는 운영체제의 전체 데이터 코드를 대체하는 것 뿐만 아니라, 운영체제의 일부 데이터 코드만을 바꾸는 방법도 가능하다. 이하, 이러한 경우의 실시예에 관해 설명한다.
도 11은 전자장치가 운영체제의 일부 데이터 코드를 업그레이드하기 위한 데이터를 수신한 경우의 구성 블록도이다.
도 11에 도시된 바와 같이, 전자장치(1100)는 메모리(1110)와, 스토리지(1120)와, 프로세서(1130)를 포함한다. 초기상태에서 전자장치(1100)는 운영체제(1140)를 스토리지(1120)로부터 메모리(1110)에 로딩시켜 실행한다. 운영체제(1140)에 의해 전자장치(1100)가 구동되는 동안, 프로세서(1130)는 운영체제(1140)의 업그레이드를 위한 팩키지 데이터(1150)를 수신하여 스토리지(1120)에 저장한다.
여기서, 팩키지 데이터(1150)는 제2RO 데이터(1152) 및 제2참조데이터(1153)를 포함한다. 제1참조데이터(1143) 및 제2참조데이터(1153)는 앞선 실시예와 실질적으로 유사하므로, 자세한 설명을 생략한다. 제2RO 데이터(1152)는 운영체제(1140)의 데이터 코드 전체를 대체하기 위한 데이터가 아닌, 운영체제(1140)의 일부 데이터 코드를 대체하기 위한 업그레이드 데이터이다. 운영체제(1140)의 전체 데이터 코드 중에서, 업그레이드에 의해서도 변경되지 않는 데이터 코드는 공통 RO 데이터(1141)로 지칭되고, 제2RO 데이터(1152)에 의해 변경 또는 대체되는 데이터 코드는 제1RO 데이터(1142)로 지칭된다. 즉, 운영체제(1140)에서 공통 RO 데이터(1141) 및 제1RO 데이터(1142)의 구분은, 단지 운영체제(1140)의 업그레이드 시에 변경되지 않는가 아니면 변경되는가에 관한 차이에 따른다.
프로세서(1130)는 운영체제(1140)의 업그레이드를 위해, 업그레이드를 지시하는 플래그 정보를 저장하고 재부팅을 수행한다. 이하 본 실시예에서 수행되는 운영체제(1140)의 업그레이드와 관련하여, 앞선 실시예에서와 실질적으로 동일한 구성 및 동작에 관해서는 설명을 생략할 수 있음을 밝힌다.
도 12는 전자장치가 제1참조데이터의 데이터 마이그레이션을 수행하는 경우를 나타내는 구성 블록도이다.
도 12에 도시된 바와 같이, 프로세서(1130)는 재부팅이 되면 앞서 설명한 플래그 정보에 따라서 공통 RO 데이터(1141) 및 제2RO 데이터(1152)를 스토리지(1120)로부터 메모리(1110)에 로딩한다. 공통 RO 데이터(1141) 및 제2RO 데이터(1152)의 조합에 의해 업그레이드된 운영체제가 구현된다.
프로세서(1130)는 제2RO 데이터(1152)와 동작 호환성이 보장되도록 마련된 제2참조데이터(1153)를 스토리지(1120)로부터 메모리(1110)에 로딩한다. 프로세서(1130)는 메모리(1110)에 로딩된 제2참조데이터(1153)에 대해 스토리지(1120)에 저장된 제1참조데이터(1143)를 상호 대응하도록 이동시키는 데이터 마이그레이션을 수행한다.
데이터 마이그레이션의 결과, 제1참조데이터(1143)가 메모리(1110) 상에 로딩된 제2참조데이터(1153)에 대응하게 변환됨으로써 제3참조데이터가 생성된다. 데이터 마이그레이션에 관해서는 앞서 설명한 바 있으므로, 추가적인 설명은 생략한다.
도 13은 전자장치가 제2RO 데이터 및 제3참조데이터 사이의 동작 호환성을 점검하는 경우를 나타내는 구성 블록도이다.
도 13에 도시된 바와 같이, 프로세서(1130)는 메모리(1110)에 로딩된 운영체제 중에서 업그레이드된 제2RO 데이터(1152) 및 제3참조데이터(1154) 사이의 동작 호환성이 정상적인지, 즉 업그레이드된 운영체제가 정상적으로 제3참조데이터(1154)를 사용할 수 있는지 여부를 점검한다.
만일 동작 호환성이 정상적이라는 점검 결과가 나오면, 프로세서(1130)는 부팅에 사용되는 운영체제의 설정을, 현재 공통 RO 데이터(1141) 및 제1RO 데이터(1142)의 조합으로부터, 공통 RO 데이터(1141) 및 제2RO 데이터(1152)의 조합으로 변경한다. 또한, 프로세서(1130)는 메모리(1110)에 로딩되어 있는 제3참조데이터(1154)를 스토리지(1120)에 저장한다. 이로써, 스토리지(1120)에는 제2RO 데이터(1152)와 동작 호환성이 보장된 제3참조데이터(1154)가 저장된다.
또한, 프로세서(1130)는 스토리지(1120)에서 제1RO 데이터(1142), 제1참조데이터(1143)를 삭제한다. 제2참조데이터(1153)는 설정에 따라서 삭제될 수도 있고 삭제되지 않을 수도 있다. 프로세서(1130)는 재부팅을 수행하며, 이후 다음 도 14에 도시된 바와 같이 동작한다.
도 14는 전자장치가 제3참조데이터를 스토리지에 저장한 이후에 재부팅한 상태를 나타내는 구성 블록도이다.
도 14에 도시된 바와 같이, 프로세서(1130)는 이전 단계인 운영체제 업그레이드 과정에서 제2RO 데이터(1152)와 동작 호환성이 보장된 제3참조데이터(1154)를 스토리지(1120)에 저장하고, 공통 RO 데이터(1141) 및 제2RO 데이터(1152)에 의해 부팅이 수행되도록 설정을 변경하고 재부팅을 수행한다.
재부팅에 따라서, 프로세서(1130)는 공통 RO 데이터(1141) 및 제2RO 데이터(1152)를 스토리지(1120)로부터 메모리(1110)에 로딩하고, 운영체제를 실행시킨다. 스토리지(1120)에는 공통 RO 데이터(1141), 제2RO 데이터(1152) 및 제3참조데이터(1154)가 저장된다. 운영체제는 필요 시 제3참조데이터(1154)를 호출하여 참조함으로써, 운영체제의 업그레이드 이후에도 사용의 연속성을 보장할 수 있다.
한편, 앞선 실시예들에서 설명한 바와 같이, 전자장치는 데이터 마이그레이션 이후에 메모리 상에 생성된 제3참조데이터를 스토리지에 저장하고, 재부팅을 수행한다. 제3참조데이터를 스토리지에 저장하는 동안, 전자장치는 제3참조데이터에 대한 타 프로세스로부터의 억세스를 차단한다. 예를 들면, 운영체제 상에서는 다양한 어플리케이션이 실행되고, 각 어플리케이션에 의한 프로세스가 수행될 수 있다. 만일 메모리 상의 제3참조데이터를 타 프로세스로부터 격리시키지 않으면, 타 프로세스에 의해 메모리 상의 제3참조데이터의 변조가 발생할 수 있다. 이와 같이 변조된 제3참조데이터가 스토리지에 저장되면, 다음 번 부팅 시 운영체제가 제3참조데이터를 호출할 때 호환되지 않는 상황이 발생할 수도 있다.
이러한 점을 방지하기 위해, 전자장치는 메모리 상에 생성된 제3참조데이터를 스토리지에 저장하는 동안에 제3참조데이터를 타 프로세스로부터 격리시킨다.
한편, 프로세서는 앞선 실시예들에서 설명한 바와 같은 운영체제의 업그레이드를 수행하기 위해, 재부팅 시에 수행되는 세부적인 동작을 지시하는 부팅 스크립트(booting script)를 획득할 수 있다. 프로세서는 재부팅 시 부팅 스크립트를 읽고, 부팅 스크립트에 따라서 데이터를 메모리에 로딩하고, 필요한 동작을 수행한다. 전자장치는 운영체제의 업그레이드를 위한 팩키지 데이터와 함께 제공되는 부팅 스크립트를 획득하거나, 팩키지 데이터와 별도의 장치로부터 획득하는 등 다양한 경로를 통해 부팅 스크립트를 획득할 수 있다.
한편, 앞선 실시예에서는 프로세서가 제2운영체제 및 제2참조데이터를 메모리의 서로 상이한 영역에 개별적으로 로딩하는 것으로 설명하였다. 그러나, 제2운영체제 및 제2참조데이터를 메모리에 로딩할 때에, 오버레이 파일시스템과 같은 기술을 적용함으로써 메모리의 소요 공간을 절약하는 구성도 가능한 바, 이하 이러한 실시예에 관해 설명한다.
도 15는 전자장치에 적용 가능한 오버레이 파일시스템에 관한 원리를 나타내는 예시도이다.
도 15에 도시된 바와 같이, 제1데이터(1510) 및 제2데이터(1520)는 서로 상이한 컨텐트와, 파일 디렉토리 구조를 가진다. 본 실시예에 적용되는 오버레이 파일시스템의 예시로는 리눅스 커널 3.18 이후부터 제공되는 OverlayFS가 있다. 오버레이 파일시스템에서는 두 종류의 레이어를 제공하는데, 구조 상 하측의 레이어는 lowerdir로, 상측의 레이어인 upperdir로 지칭된다. 제1데이터(1510)가 lowerdir로 구현되고 제2데이터(1520)가 upperdir로 구현되면, 통합 view(1530)는 lowerdir의 제1데이터(1510) 및 upperdir의 제2데이터(1520)가 겹친 것처럼 인식된다.
이와 같은 오버레이 파일시스템이 가능하려면, 제1데이터(1510) 및 제2데이터(1520)는 상호 배타적인 컨텐트 또는 구조를 포함하지 않으며, 함께 실행될 경우에 정상적으로 동작하는 데이터이어야 한다.
프로세서는 오버레이 파일시스템에 따라서, 메모리의 동일한 저장영역 또는 주소에 제1데이터(1510) 및 제2데이터(1520)를 오버레이시켜 마운팅할 수 있다. 마운팅 결과, 통합 view(1530)는 제1데이터(1510) 및 제2데이터(1520) 각각의 컨텐트, 파일 구조가 모두 포함되게 보인다. 여기서, lowerdir인 제1데이터(1510)는 읽기 전용이며, upperdir의 제2데이터(1520)에는 쓰기도 허용된다.
이러한 원리에 기반하여, 전자장치는 데이터 마이그레이션을 수행할 수 있는 바, 이하 이러한 실시예에 관해 설명한다.
도 16은 전자장치가 제2운영체제 및 제2참조데이터를 오버레이시켜 마운팅한 상태에서 데이터 마이그레이션을 수행하는 모습을 나타내는 구성 블록도이다.
도 16에 도시된 바와 같이, 전자장치(1600)는 메모리(1610), 스토리지(1620), 프로세서(1630)를 포함한다. 스토리지(1620)는 제1운영체제(1641), 제1참조데이터(1642), 제2운영체제(1651), 제2참조데이터(1652)를 저장한다. 전자장치(1600)의 운영체제의 업그레이드 과정에 관해서는 앞선 실시예들과 실질적으로 동일하므로, 자세한 설명을 생략한다.
제1참조데이터(1642)의 데이터 마이그레이션을 수행하기 위해, 프로세서(1630)는 제2참조데이터(1652)를 스토리지(1620)로부터 메모리(1610)에 마운팅한다. 이 때, 프로세서(1630)는 앞선 실시예에서처럼 제2운영체제(1651)와 상이한 메모리(1610) 주소에 제2참조데이터(1652)를 마운팅할 수도 있다.
또는, 프로세서(1630)는 앞서 설명한 오버레이 파일시스템의 원리에 따라서, 제2참조데이터(1652)를 이미 메모리(1610) 상에 마운팅된 제2운영체제(1651)에 오버레이되도록 마운팅할 수 있다. 즉, OverlayFS 기반 마운팅의 경우에, 제2운영체제(1651)가 lowerdir이 되고, 제2참조데이터(1652)가 upperdir이 되도록 마운팅된다. 이 경우에, 본 실시예는 앞선 실시예에 비해 제2참조데이터(1652)의 용량만큼 메모리(1610)의 소요용량을 절약할 수 있다.
프로세서(1630)는 제2운영체제(1651)에 오버레이되도록 마운팅된 제2참조데이터(1652)에 대해, 제1참조데이터(1642)의 데이터 마이그레이션을 수행한다. 데이터 마이그레이션에 의해 정상적으로 제1참조데이터(1642)가 제2운영체제(1651)와 동작 호환성이 보장된 제3참조데이터로 변환되면, 프로세서(1630)는 제3참조데이터 및 제2운영체제(2051) 사이의 동작 호환성을 점검할 수 있다. 이와 관련된 동작 또한 앞선 실시예들과 실질적으로 동일하므로, 자세한 설명을 생략한다.
한편, 오버레이 파일시스템의 원리는 다양한 경우의 실시예에 적용될 수 있다. 예를 들면, 전자장치의 운영체제가 공통 RO 데이터 및 제1RO 데이터를 포함하고, 운영체제의 제1RO 데이터를 새로 제2RO 데이터로 대체함으로써, 운영체제가 업그레이드되는 경우가 고려될 수 있다. 이러한 경우에, 전자장치는 먼저 메모리에 공통 RO 데이터를 마운팅하고, 메모리에 마운팅된 공통 RO 데이터에 오버레이되도록 제2RO 데이터를 마운팅한다.
또한, 오버레이 파일시스템이 복수의 lowerdir을 허용하는 규격이라면, 전자장치는 공통 RO 데이터 및 제2RO 데이터가 오버레이된 상태에서, 그 위에 upperdir로서 제2참조데이터를 마운팅하고 제1참조데이터의 데이터 마이그레이션을 수행할 수도 있다.
이상 실시예들에서 설명한 바와 같은 장치의 동작은, 해당 장치에 탑재된 인공지능에 의해 수행될 수 있다. 인공지능은 기계 학습 알고리즘을 활용하여 다양한 제반 시스템에 적용될 수 있다. 인공지능 시스템은 인간 수준 내지는 인간 수준에 버금가는 지능을 구현하는 컴퓨터 시스템으로서, 기계, 장치 또는 시스템이 자율적으로 학습하고 판단하며, 사용 경험의 누적에 기반하여 인식률 및 판단 정확도가 향상되는 시스템이다. 인공지능 기술은 입력되는 데이터들의 특징을 스스로 분류하고 학습하는 알고리즘을 이용한 기계학습(deep-running) 기술 및 알고리즘을 활용하여, 인간의 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.
요소 기술들은, 예를 들면 인간의 언어와 문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론 및 예측 기술, 인간의 경험 정보를 지식 데이터로 처리하는 지식 표현 기술, 차량의 자율 주행이나 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 어느 하나를 포함한다.
여기서, 언어적인 이해는 인간의 언어 또는 문자를 인식하고 응용 처리하는 기술로서, 자연어의 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식 및 합성 등을 포함한다.
추론 예측은 정보를 판단하여 논리적으로 예측하는 기술로서, 지식 및 확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다.
지식 표현은 인간의 경험 정보를 지식 데이터로 자동화 처리하는 기술로서, 데이터의 생성 및 분류와 같은 지식 구축, 데이터의 활용과 같은 지식 관리 등을 포함한다.
본 발명의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, USB 메모리장치와 같은 비휘발성 저장 장치, 또는 예를 들어 RAM, ROM, 플래시메모리, 메모리 칩, 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다. 또는, 본 컴퓨터 프로그램 명령은 컴퓨터 프로그램 프로덕트에 의해 구현될 수도 있다.
210 : 전자장치
215 : 스토리지
216 : 메모리
217 : 프로세서
215 : 스토리지
216 : 메모리
217 : 프로세서
Claims (20)
- 전자장치에 있어서,
메모리와,
제1운영체제를 저장하는 스토리지와,
상기 스토리지에 저장된 제1운영체제를 상기 메모리에 로딩시켜 부팅하고, 상기 제1운영체제가 실행되는 동안에 획득한 데이터를 상기 스토리지에 저장하며,
획득한 제2운영체제 및 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시키며,
상기 메모리에 로딩된 상기 제2운영체제 및 상기 데이터 사이의 동작 호환성을 식별하며,
상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅하며,
상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여 상기 제1운영체제를 상기 메모리에 로딩시켜 부팅하는 프로세서를 포함하는 전자장치. - 제1항에 있어서,
상기 프로세서는, 상기 스토리지에 저장된 데이터를 상기 제2운영체제에 대응하는 데이터의 형식에 맞게 변환하여 상기 메모리에 로딩하는 전자장치. - 제2항에 있어서,
상기 프로세서는, 상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여, 상기 스토리지에 저장된 데이터가 대체되도록 상기 변환된 데이터를 상기 스토리지에 저장하는 전자장치. - 제3항에 있어서,
상기 프로세서는, 상기 메모리에서 상기 변환된 데이터를 생성하여 상기 스토리지에 저장하는 동안에, 상기 전자장치에서 실행중인 소정의 프로세스에 대해 상기 변환된 데이터를 격리시키는 전자장치. - 제2항에 있어서,
상기 프로세서는, 상기 제2운영체제에 대응하는 데이터를 상기 메모리에 로딩하고, 상기 제2운영체제에 대응하는 데이터의 항목 별 값을 상기 스토리지에 저장된 데이터의 값으로 조정하는 전자장치. - 제1항에 있어서,
상기 프로세서는, 상기 제2운영체제를 획득하는 것에 응답하여 상기 제2운영체제를 상기 스토리지에 저장하고, 상기 제2운영체제에 의해 부팅하여 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시키는 전자장치. - 제1항에 있어서,
상기 프로세서는, 상기 메모리에서 상기 제2운영체제가 로딩된 저장영역에 상기 데이터가 오버레이되도록 상기 데이터를 상기 메모리에 로딩시키는 전자장치. - 제1항에 있어서,
상기 프로세서는, 상기 제1운영체제 및 상기 제2운영체제를 상기 스토리지에서 서로 분리된 파티션들에 각기 저장하는 전자장치. - 제8항에 있어서,
상기 프로세서는, 상기 데이터를 상기 스토리지에서 상기 제1운영체제 및 상기 제2운영체제가 저장된 파티션들과 분리된 파티션에 저장하는 전자장치. - 제1항에 있어서,
상기 프로세서는, 상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여, 상기 제2운영체제에 제공되는 디폴트 데이터를 사용하도록 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅시키는 전자장치. - 전자장치의 제어방법에 있어서,
스토리지에 저장된 제1운영체제를 메모리에 로딩시켜 부팅하고, 상기 제1운영체제가 실행되는 동안에 획득한 데이터를 상기 스토리지에 저장하는 단계와,
획득한 제2운영체제 및 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시키는 단계와,
상기 메모리에 로딩된 상기 제2운영체제 및 상기 데이터 사이의 동작 호환성을 식별하는 단계와,
상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅하는 단계와,
상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여 상기 제1운영체제를 상기 메모리에 로딩시켜 부팅하는 단계를 포함하는 전자장치의 제어방법. - 제11항에 있어서,
상기 스토리지에 저장된 데이터를 상기 제2운영체제에 대응하는 데이터의 형식에 맞게 변환하여 상기 메모리에 로딩하는 전자장치의 제어방법. - 제12항에 있어서,
상기 동작 호환성이 정상인 것으로 식별되는 것에 기초하여, 상기 스토리지에 저장된 데이터가 대체되도록 상기 변환된 데이터를 상기 스토리지에 저장하는 전자장치의 제어방법. - 제13항에 있어서,
상기 메모리에서 상기 변환된 데이터를 생성하여 상기 스토리지에 저장하는 동안에, 상기 전자장치에서 실행중인 소정의 프로세스에 대해 상기 변환된 데이터를 격리시키는 전자장치의 제어방법. - 제12항에 있어서,
상기 제2운영체제에 대응하는 데이터를 상기 메모리에 로딩하고, 상기 제2운영체제에 대응하는 데이터의 항목 별 값을 상기 스토리지에 저장된 데이터의 값으로 조정하는 전자장치의 제어방법. - 제11항에 있어서,
상기 제2운영체제를 획득하는 것에 응답하여 상기 제2운영체제를 상기 스토리지에 저장하고, 상기 제2운영체제에 의해 부팅하여 상기 스토리지에 저장된 데이터를 상기 메모리에 로딩시키는 전자장치의 제어방법. - 제11항에 있어서,
상기 메모리에서 상기 제2운영체제가 로딩된 저장영역에 상기 데이터가 오버레이되도록 상기 데이터를 상기 메모리에 로딩시키는 전자장치의 제어방법. - 제11항에 있어서,
상기 제1운영체제 및 상기 제2운영체제를 상기 스토리지에서 서로 분리된 파티션들에 각기 저장하는 전자장치의 제어방법. - 제18항에 있어서,
상기 데이터를 상기 스토리지에서 상기 제1운영체제 및 상기 제2운영체제가 저장된 파티션들과 분리된 파티션에 저장하는 전자장치의 제어방법. - 제11항에 있어서,
상기 동작 호환성이 정상이 아닌 것으로 식별되는 것에 기초하여, 상기 제2운영체제에 제공되는 디폴트 데이터를 사용하도록 상기 제2운영체제를 상기 메모리에 로딩시켜 부팅시키는 전자장치의 제어방법.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190080497A KR20210004288A (ko) | 2019-07-04 | 2019-07-04 | 전자장치 및 그 제어방법 |
US16/916,583 US11526363B2 (en) | 2019-07-04 | 2020-06-30 | Electronic apparatus and control method thereof |
EP20834996.9A EP3980882A4 (en) | 2019-07-04 | 2020-07-03 | ELECTRONIC DEVICE AND CONTROL METHOD THEREOF |
PCT/KR2020/008721 WO2021002724A1 (en) | 2019-07-04 | 2020-07-03 | Electronic apparatus and control method thereof |
CN202080050349.XA CN114127685B (zh) | 2019-07-04 | 2020-07-03 | 电子设备及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190080497A KR20210004288A (ko) | 2019-07-04 | 2019-07-04 | 전자장치 및 그 제어방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210004288A true KR20210004288A (ko) | 2021-01-13 |
Family
ID=74066095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190080497A KR20210004288A (ko) | 2019-07-04 | 2019-07-04 | 전자장치 및 그 제어방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11526363B2 (ko) |
EP (1) | EP3980882A4 (ko) |
KR (1) | KR20210004288A (ko) |
CN (1) | CN114127685B (ko) |
WO (1) | WO2021002724A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11915015B2 (en) * | 2021-08-27 | 2024-02-27 | Dell Products, L.P. | Systems and methods for use of pre-boot resources by modern workspaces |
CN116048644B (zh) * | 2023-03-30 | 2023-06-16 | 中科方德软件有限公司 | 一种***迁移方法、装置和可读存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100850994B1 (ko) | 2001-09-10 | 2008-08-12 | 엘지전자 주식회사 | 디지털 텔레비전의 마이크로 컴퓨터 업그레이드 장치 |
US7430661B2 (en) * | 2004-09-09 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method of storing user data in a partition file or using a partition file containing user data |
TWI273453B (en) | 2004-12-10 | 2007-02-11 | Hon Hai Prec Ind Co Ltd | An system and method for automatically updating software |
US7490318B2 (en) | 2005-02-25 | 2009-02-10 | Inventec Corporation | Computer platform operating system compatibility management method and system |
US7818736B2 (en) | 2005-09-14 | 2010-10-19 | International Business Machines Corporation | Dynamic update mechanisms in operating systems |
KR20080023841A (ko) | 2006-09-12 | 2008-03-17 | 카시와야마 토요히테 | 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템 및방법 |
US8245226B2 (en) | 2009-01-13 | 2012-08-14 | Microsoft Corporation | Offline migration from prior operating system installation |
KR101123685B1 (ko) | 2009-07-02 | 2012-03-20 | (주)세븐코아 | 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템 |
US20140129686A1 (en) | 2012-11-08 | 2014-05-08 | Nvidia Corporation | Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices |
US8990793B1 (en) * | 2013-12-05 | 2015-03-24 | Google Inc. | Updating an operating system |
US9811375B2 (en) | 2014-04-30 | 2017-11-07 | Vmware, Inc. | Operating system migration while preserving applications, data, and settings |
US9430223B2 (en) | 2014-09-25 | 2016-08-30 | International Business Machines Corporation | Live operating system update mechanisms |
EP3208717A1 (en) | 2016-02-17 | 2017-08-23 | Gemalto Sa | Method for managing objects in a secure element |
US10437580B2 (en) | 2017-09-11 | 2019-10-08 | Apple Inc. | Software updating methods and systems |
-
2019
- 2019-07-04 KR KR1020190080497A patent/KR20210004288A/ko not_active Application Discontinuation
-
2020
- 2020-06-30 US US16/916,583 patent/US11526363B2/en active Active
- 2020-07-03 WO PCT/KR2020/008721 patent/WO2021002724A1/en unknown
- 2020-07-03 EP EP20834996.9A patent/EP3980882A4/en active Pending
- 2020-07-03 CN CN202080050349.XA patent/CN114127685B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114127685A (zh) | 2022-03-01 |
US20210004239A1 (en) | 2021-01-07 |
US11526363B2 (en) | 2022-12-13 |
EP3980882A4 (en) | 2022-05-11 |
CN114127685B (zh) | 2024-04-12 |
WO2021002724A1 (en) | 2021-01-07 |
EP3980882A1 (en) | 2022-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9772838B2 (en) | Firmware update discovery and distribution | |
CN107491329B (zh) | Docker镜像构建方法、设备、存储介质以及电子装置 | |
US9235404B2 (en) | Firmware update system | |
KR101959359B1 (ko) | 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 | |
US20140007067A1 (en) | RESOURCE DATa STRUCTURES FOR FIRMWARE UPDATES | |
US20090113408A1 (en) | System synchronization in cluster | |
KR20200090010A (ko) | 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체 | |
CN114127685B (zh) | 电子设备及其控制方法 | |
US10019345B2 (en) | Executing multi-version tests against a multi-version application | |
CN110941453A (zh) | 基板管理控制器bmc配置初始化的方法及装置 | |
CN111433747B (zh) | 用于加载操作***的虚拟存储器 | |
US9417861B2 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
US20200167183A1 (en) | Electronic apparatus and control method thereof | |
CN105593810A (zh) | 应用对应用启动窗口化 | |
US10394619B2 (en) | Signature-based service manager with dependency checking | |
CN114072765A (zh) | 用于基于容器的虚拟化***的方法 | |
CN111752623A (zh) | 显示配置方法、装置、电子设备及可读存储介质 | |
CN113656063A (zh) | 一种***版本更换方法、装置、设备及计算机可读介质 | |
CN114090172A (zh) | 跨***的小部件复用方法及装置 | |
CN111953803A (zh) | Bmc启动方法、设备、***及存储介质 | |
CN103106089B (zh) | 一种智能平台管理控制器的升级方法和*** | |
CN112328213B (zh) | 一种在线软件开发过程的隔离方法、设备及介质 | |
CN110098963B (zh) | 一种服务器运维管控方法及*** | |
US20240004673A1 (en) | Processing method and processing device | |
KR20110068302A (ko) | 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |