KR101824013B1 - 운영 체제 업데이트 - Google Patents

운영 체제 업데이트 Download PDF

Info

Publication number
KR101824013B1
KR101824013B1 KR1020167017934A KR20167017934A KR101824013B1 KR 101824013 B1 KR101824013 B1 KR 101824013B1 KR 1020167017934 A KR1020167017934 A KR 1020167017934A KR 20167017934 A KR20167017934 A KR 20167017934A KR 101824013 B1 KR101824013 B1 KR 101824013B1
Authority
KR
South Korea
Prior art keywords
computing device
operating system
copy
computer
processors
Prior art date
Application number
KR1020167017934A
Other languages
English (en)
Other versions
KR20160095066A (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 구글 엘엘씨
Publication of KR20160095066A publication Critical patent/KR20160095066A/ko
Application granted granted Critical
Publication of KR101824013B1 publication Critical patent/KR101824013B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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
    • 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
    • G06F9/4406Loading 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)
  • Retry When Errors Occur (AREA)

Abstract

컴퓨팅 디바이스의 운영 체제를 업데이트하기 위한 시스템들 및 방법들이 제공된다. 하나 이상의 양상들에서, 컴퓨팅 디바이스의 운영 체제에 대한 업데이트는 컴퓨팅 디바이스에서 수신되는 반면에, 운영 체제의 제 1 사본은 컴퓨팅 디바이스에서 실행되고 있다. 컴퓨팅 디바이스의 제 2 사본은 수신된 업데이트에 적어도 부분적으로 기초하여 업데이트되고, 컴퓨팅 디바이스의 리부트-이전 상태는 저장된다. 컴퓨팅 디바이스는 리부팅된다. 컴퓨팅 디바이스를 리부팅한 이후에, 컴퓨팅 디바이스의 저장된 리부트-이전 상태에 적어도 부분적으로 기초하여 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스가 제공된다. 하나 이상의 구현들에서는, 컴퓨팅 디바이스를 리부팅한 이후에, 운영 체제의 제 1 사본이 수신된 업데이트에 적어도 부분적으로 기초하여 업데이트될 수 있다.

Description

운영 체제 업데이트{UPDATING AN OPERATING SYSTEM}
[0001] 본 기술은 일반적으로 컴퓨팅 디바이스의 운영 체제를 업데이트하는 것에 관한 것이다.
[0002] 운영 체제의 제조자는 운영 체제를 구현하는 컴퓨터들에 네트워크를 통해서 전달되는 운영 체제에 대한 업데이트를 제공할 수 있다. 일부 경우들에서는, 사용자가 컴퓨터를 다시 시작할 필요가 있을 수 있거나, 컴퓨터가 업데이트가 설치되도록 자동적으로 다시 시작될 수 있다.
[0003] 일부 양상들에서, 개시된 청구대상은 운영 체제를 업데이트하기 위한 컴퓨터-구현 방법에 관한 것이다. 방법은, 제 1 시간에, 컴퓨팅 디바이스에서 컴퓨팅 디바이스의 운영 체제에 대한 업데이트를 수신하는 단계를 포함한다. 방법은, 제 2 시간에 컴퓨팅 디바이스의 리부트-이전(pre-reboot) 상태를 저장하는 단계를 포함하고, 리부트-이전 상태는 컴퓨팅 디바이스의 특정 사용자로서 컴퓨팅 디바이스에 로그인(logging)하기 위한 로그인 정보를 포함하며, 컴퓨팅 디바이스의 특정 사용자는 제 2 시간에 컴퓨팅 디바이스로 로그인된다. 방법은 컴퓨팅 디바이스를 리부팅하는 단계를 포함하고, 컴퓨팅 디바이스의 리부팅 이전에 또는 리부팅 동안에, 컴퓨팅 디바이스의 운영 체제는 수신된 업데이트에 따라 업데이트된다. 방법은 컴퓨팅 디바이스를 리부팅한 이후, 컴퓨팅 디바이스의 저장된 리부트-이전 상태에 따라 업데이트된 운영 체제에 대한 사용자 액세스를 제공하는 단계를 포함한다.
[0004] 일부 양상들에서, 개시된 청구대상은 실행가능 명령들이 인코딩되는 비-일시적 컴퓨터-판독가능 매체에 관한 것이다. 명령들은 컴퓨터의 운영 체제에 대한 업데이트를 수신하기 위한 코드를 포함한다. 명령들은 컴퓨터의 리부트-이전 상태를 저장하기 위한 코드를 포함하고, 리부트-이전 상태는 컴퓨터의 특정 사용자로서 컴퓨터에 로그인하기 위한 로그인 정보를 포함한다. 명령들은 컴퓨터를 리부팅하기 위한 코드를 포함하고, 컴퓨터의 리부팅 이전에 또는 그 동안에, 컴퓨터의 운영 체제는 수신된 업데이트에 따라 업데이트된다. 명령들은 컴퓨터를 리부팅한 이후에는 컴퓨터의 저장된 리부트-이전 상태에 따라 업데이트된 운영 체제에 대한 사용자 액세스를 제공하기 위한 코드를 포함한다.
[0005] 일부 양상들에서, 개시된 청구대상은 컴퓨팅 디바이스에 관한 것이다. 컴퓨팅 디바이스는 하나 이상의 프로세서들 및 메모리를 포함한다. 메모리는 명령들을 포함한다. 명령들은, 운영 체제의 제 1 사본이 컴퓨팅 디바이스에서 실행되고 있는 동안, 컴퓨팅 디바이스에서 컴퓨팅 디바이스의 운영 체제에 대한 업데이트를 수신하기 위한 코드를 포함한다. 명령들은 컴퓨팅 디바이스의 리부트-이전 상태를 저장하기 위한 코드를 포함하고, 리부트-이전 상태는 컴퓨팅 디바이스의 특정 사용자로서 컴퓨팅 디바이스로 로그인하기 위한 로그인 정보를 포함한다. 명령들은 컴퓨팅 디바이스를 리부팅하기 위한 코드를 포함한다. 컴퓨팅 디바이스의 리부팅 이전에 또는 그 동안에는, 컴퓨팅 디바이스의 운영 체제의 제 2 사본이 수신된 업데이트에 따라 업데이트된다. 컴퓨팅 디바이스의 리부팅 이후에는, 컴퓨팅 디바이스의 운영 체제의 제 2 사본이 컴퓨팅 디바이스에서 실행되고 있다. 명령들은 컴퓨팅 디바이스를 리부팅한 이후에 컴퓨팅 디바이스의 저장된 리부트-이전 상태에 따라 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하기 위한 코드를 포함한다. 명령들은 수신된 업데이트에 따라 컴퓨팅 디바이스의 운영 체제의 제 1 사본을 업데이트하기 위한 코드를 포함한다.
[0006] 본 기술의 다른 구성들이 아래의 상세한 설명으로부터 쉽게 자명해질 것이고, 여기서 본 기술의 다양한 구성들은 예시로서 도시되고 설명된다는 것이 이해된다. 인지될 바와 같이, 본 기술은 다른 및 상이한 구성들이 가능할 수 있고, 그것의 몇몇 세부사항들이 다양한 다른 관점들에서 수정될 수 있으며, 이들 모두는 본 기술의 범위로부터 벗어나지 않는다. 따라서, 도면들 및 상세한 설명은 본래 예시적인 것으로 간주되어야 하지 제한적인 것으로 간주되지 않아야 한다.
[0007] 본 기술의 특징들은 첨부된 청구항들에서 기술된다. 그러나, 설명을 위해, 개시되는 청구대상의 몇몇 양상들이 아래의 도면들에서 기술된다.
[0008] 도 1a는 컴퓨팅 디바이스의 운영 체제를 업데이트하기 위한 예시적인 네트워크 시스템을 예시한다.
[0009] 도 1b는 운영 체제를 업데이트할 수 있는 예시적인 컴퓨팅 디바이스를 예시한다.
[0010] 도 2는 컴퓨팅 디바이스의 운영 체제를 업데이트할 수 있는 예시적인 프로세스를 예시한다.
[0011] 도 3은 본 기술의 일부 구현들이 구현되는 예시적인 전자 시스템을 개념적으로 예시한다.
[0012] 아래에 기술되는 상세한 설명은 본 기술의 다양한 구성들에 대한 설명으로서 의도되며, 본 기술이 실시될 수 있는 유일한 구성들을 나타내도록 의도되지 않는다. 첨부된 도면들은 본원에 통합되며, 상세한 설명의 일부를 구성한다. 상세한 설명은 본 기술에 대한 완전한 이해를 제공하기 위한 목적으로 특정 세부사항들을 포함한다. 그러나, 본 기술이 본원에 기술되는 특정 세부사항들로 제한되지 않으며 이러한 특정 세부사항들이 없이도 실시될 수 있다는 것이 명확하고 자명할 것이다. 일부 경우들에서, 특정 구조들 및 컴포넌트들은 본 기술의 개념들이 불명료해지는 것을 막기 위해서 블록도 형태로 도시된다.
[0013] 위에서 기술된 바와 같이, 운영 체제의 제조자는 그 운영 체제를 구현하는 컴퓨터들에 네트워크를 통해 전달되는 그 운영 체제에 대한 업데이트를 제공한다. 일부 경우들에서, 사용자는 컴퓨터를 다시 시작할 필요가 있을 수 있거나, 컴퓨터는 업데이트가 설치되도록 자동적으로 다시 시작될 수 있다. 컴퓨터의 다시 시작은 사용자가 작업하고 있는 윈도우를 닫거나 사용자에 의해 생성된 데이터를 저장할 필요가 있을 수 있을 때 사용자 친화적인 경험이 아닐 수 있다. 사용자는 윈도우들을 다시 시작하여 다시 열기 이전에 어떤 윈도우가 열려 있었는지를 기억해 내는데 시간을 보낼 수 있다. 또한, 사용자는 컴퓨터의 다시 시작 동안에 컴퓨터에 액세스하기 위한 그의 로그인 정보(예를 들어, 패스워드 또는 사용자 이름과 패스워드 조합)를 다시 입력할 필요가 있을 수 있다. 위의 설명이 예시하는 바와 같이, 운영 체제를 업데이트하기 위한 새로운 접근법이 바람직할 수 있다.
[0014] 본 기술은 컴퓨팅 디바이스의 운영 체제를 업데이트하기 위한 기술들을 제공한다. 컴퓨팅 디바이스는, 제 1 시간에, 네트워크를 통해 컴퓨팅 디바이스의 운영 체제에 대한 업데이트를 수신한다. 컴퓨팅 디바이스는, 제 2 시간에, 컴퓨팅 디바이스의 리부트-이전 상태를 저장한다. 제 2 시간은 제 1 시간과 동시적으로 발생하거나 제 1 시간 바로 직후에(예를 들어, 어떤 의도적인 지연도 없음, 컴퓨팅 디바이스의 프로세싱 속도에 따라 예를 들어 0.1초, 0.5초, 1초, 또는 2초) 발생할 수 있다. 대안적으로, 제 2 시간은 제 1 시간 이후 의도적인 지연에 또는 미리 결정된 시간 지속기간(예를 들어, 1초, 1분, 1시간 등)에 발생할 수 있다. 예를 들어, 제 2 시간은 컴퓨팅 디바이스가 슬립 모드에 있을 때 발생할 수 있고, 제 1 시간은 컴퓨팅 디바이스가 어웨이크 모드에 있을 때 발생할 수 있다. 리부트-이전 상태는 컴퓨팅 디바이스의 특정 사용자로서 컴퓨팅 디바이스에 로그인기 위한 로그인 정보(예를 들어, 패스워드)를 포함하는데, 컴퓨팅 디바이스의 특정 사용자는 제 2 시간에 컴퓨팅 디바이스에 로그인된다. 리부트-이전 상태는 컴퓨팅 디바이스에서 열린 윈도우들의 세트, 윈도우들의 세트 내에서 열린 탭들(tabs)의 세트, 윈도우들의 세트 내의 정보, 및 윈도우들의 세트 내의 현재 활성 윈도우를 또한 식별할 수 있다. 예를 들어, 리부트-이전 상태는 문헌 프로세서 애플리케이션, 웹 브라우저 및 오디오 플레이어 애플리케이션이 컴퓨팅 디바이스에서 열리는 것을 나타내는 데이터를 식별할 수 있다. 문헌 프로세서 애플리케이션은 활성이고, 문헌 "Letter-to-Sam"의 3 페이지를 디스플레이하고 있다. 웹 브라우저는 웹페이지들의 탭들 "example.com/abc" 및 "example.com/def"를 디스플레이하고 있다. 오디오 플레이어 애플리케이션은 오디오 파일 "physics-101-lecture"의 포지션 1:02에서 일시중단된다. 리부트-이전 상태는 로그인 정보를 비롯해 리부트-이전 상태에서 정보에 대한 비허가된 액세스를 막기 위해서 암호화된 위치에 저장될 수 있다.
[0015] 리부트-이전 상태를 저장한 이후에, 컴퓨팅 디바이스는 스스로 리부팅된다. 리부팅 이전에 또는 그 동안에, 컴퓨팅 디바이스의 운영 체제, 또는 컴퓨팅 디바이스의 운영 체제의 적어도 하나의 사본이 수신된 업데이트에 따라 업데이트된다. 리부팅 이후에, 컴퓨팅 디바이스는 컴퓨팅 디바이스의 저장된 리부트-이전 상태에 따라 그 업데이트된 운영 체제에 대한 사용자 액세스를 제공한다. 컴퓨팅 디바이스는 사용자가 로그인 정보를 다시 입력할 필요가 없이 리부트-이전 상태에서의 로그인 정보에 따라 컴퓨팅 디바이스에 로그인할 수 있다. 컴퓨팅 디바이스는, 업데이트된 운영 체제 내에서, 윈도우들의 세트, 탭들의 세트, 윈도우들의 세트 내의 정보, 및 리부트-이전 상태의 현재 활성 윈도우를 재-인스턴스화(re-instantiate)할 수 있다.
[0016] 유리하게, 본원에 설명된 일부 구현들의 결과로, 컴퓨팅 디바이스의 리부팅 이후에, 컴퓨팅 디바이스는 리부팅 이전의 컴퓨팅 디바이스의 상태로 돌아간다. 그 결과로, 사용자의 작업은 분실되지 않고, 사용자는 일부 경우들에서 파일들을 미리 저장하고 어떤 윈도우들 및 탭들이 리부트 이전에 열려 있었는지를 기억할 수 있다. 또한, 리부팅 및 운영 체제 업데이트 프로세스 동안에 사용자는 그의 로그인 정보를 다시 입력할 필요가 없기 때문에, 컴퓨팅 디바이스의 리부팅 동안 사용자 시간 및 노력이 줄어든다.
[0017] 도 1a는 컴퓨팅 디바이스의 운영 체제를 업데이트하기 위한 예시적인 네트워크 시스템(100A)을 예시한다. 도시된 바와 같이, 네트워크 시스템은 네트워크(130A)에 연결된 컴퓨팅 디바이스(110A) 및 서버(120A)를 포함한다. 컴퓨팅 디바이스(110A) 및 서버(120A)는 네트워크(130A)를 통해 서로 통신할 수 있다. 네트워크(130A)는 임의의 네트워크(들), 예를 들어 인터넷, 인트라넷, 셀룰러 네트워크, 로컬 영역 네트워크, 광역 네트워크, 유선 네트워크, 무선 네트워크, VPN(virtual private network) 등을 포함할 수 있다. 컴퓨팅 디바이스(110A)는 임의의 컴퓨팅 디바이스, 예를 들어 랩톱 컴퓨터, 데스크톱 컴퓨터, 테블릿 컴퓨터, 모바일 폰, PDA(personal digital assistant), 전자 뮤직 플레이어, 스마트 시계, 하나 이상의 프로세서들 및 메모리와 결합된 텔레비전 등 일 수 있다. 컴퓨팅 디바이스(110A)는 본원에 설명된 기술들을 사용하여 업데이트될 수 있는 운영 체제를 포함할 수 있다. 서버(120A)는 컴퓨팅 디바이스(110A)의 운영 체제의 개발자의 서버일 수 있고, 운영 체제를 구현하는 컴퓨터(들)(예를 들어, 컴퓨팅 디바이스(110A))의 운영 체제(들)에 대한 업데이트들을 네트워크(130A)를 통해 송신할 수 있다.
[0018] 도 1b는 운영 체제를 업데이트하도록 구성된 예시적인 컴퓨팅 디바이스(100B)를 예시한다. 컴퓨팅 디바이스(100B)는 도 1a의 컴퓨팅 디바이스(110A)에 대응할 수 있으며, 랩톱 컴퓨터, 데스크톱 컴퓨터, 테블릿 컴퓨터, 모바일 폰, PDA(personal digital assistant), 전자 뮤직 플레이어, 스마트 시계, 하나 이상의 프로세서들 및 메모리와 결합된 텔레비전 등 일 수 있다.
[0019] 도시된 바와 같이, 컴퓨팅 디바이스(100B)는 프로세싱 유닛(102B), 네트워크 인터페이스(104B), 및 메모리(106B)를 포함한다. 프로세싱 유닛(102B)은 하나 이상의 프로세서들을 포함한다. 프로세싱 유닛(102B)은 CPU(central processing unit), GPU(graphics processing unit) 또는 임의의 다른 프로세싱 유닛을 포함할 수 있다. 프로세싱 유닛(102B)은 컴퓨터-판독가능 매체, 예를 들어 메모리(106B)에 저장되는 컴퓨터 명령들을 실행한다. 네트워크 인터페이스(104B)는 컴퓨팅 디바이스(100B)로 하여금 네트워크, 예를 들어 도 1a의 네트워크(130A)에서 데이터를 송신 및 수신하도록 허용한다. 메모리(106B)는 데이터 및/또는 명령들을 저장한다. 메모리(106B)는 캐시(cache) 유닛, 저장 유닛, 내부 메모리 유닛, 또는 외부 메모리 유닛 중 하나 또는 그 초과일 수 있다. 예시된 바와 같이, 메모리(106B)는 운영 체제 사본들(110B 및 112B), 수신된 업데이트(114B) 및 자동 업데이트 모듈(116B)을 저장하는 비-사용자 수정가능 메모리 구역(108B)을 포함한다. 메모리(106B)는 또한 저장된 리부트-이전 상태(118B) 및 애플리케이션들(120B.1-n)을 저장한다.
[0020] 비-사용자 수정가능 메모리 구역(108B)은 운영 체제 사본들(110B 및 112B), 수신된 업데이트(114B) 및 자동 업데이트 모듈(116B)을 비롯해서 데이터 또는 명령들을 저장하는데, 이들은 컴퓨팅 디바이스(100B)의 사용자에 의해서 수정가능하지 않다. 비-사용자 수정가능 메모리 구역(108B)의 데이터 또는 명령들은 예를 들어 네트워크 인터페이스(104B)를 사용하여 네트워크를 통해 수신되는 업데이트(예를 들어, 수신되는 업데이트(114B))를 통해 수정가능할 수 있다.
[0021] 운영 체제 사본들(110B 및 112B)은 컴퓨팅 디바이스(100B)에 의해 구현되고 있는 운영 체제의 사본들이다. 운영 체제가 컴퓨팅 디바이스(100B)에서 실행되고 있을 때는 항상, 운영 체제의 하나의 사본이 활성이고 실행되며, 다른 사본은 비활성이고 실행되지 않는다. 비록 컴퓨팅 디바이스(100B)가 운영 체제(110B 및 112B)의 두 개의 사본들을 저장하는 것으로 예시되지만, 컴퓨팅 디바이스(100B)는 (컴퓨팅 디바이스(100B)가 실행되고 있을 때 항상 실행되는) 운영 체제의 하나의 사본 또는 운영 체제의 두 개 초과의 사본들을 저장할 수 있다. 컴퓨팅 디바이스는 애플리케이션(들), 예를 들어 실행되고 있는 운영 체제 사본(110B 또는 112B) 내의 애플리케이션들(120B.1-n) 중 하나 또는 그 초과를 실행할 수 있다.
[0022] 수신된 업데이트(114B)는 네트워크 인터페이스(104B)를 사용하여 네트워크를 통해 수신되는, 컴퓨팅 디바이스(100B)의 운영 체제에 대한 업데이트이다. 수신된 업데이트(114B)는 운영 체제의 제조자에 의해, 컴퓨팅 디바이스(100B)의 제조자에 의해, 컴퓨팅 디바이스(100B)와 연관된 엔터프라이즈에 의해, 기타 등등에 의해 제공될 수 있다. 수신된 업데이트(114B)를 구현하기 위해, 컴퓨팅 디바이스(100B)에서 실행되는 운영 체제 사본(110B 또는 112B)은 수신된 업데이트(114B)에 따라 수정될 수 있다.
[0023] 자동 업데이트 모듈(116B)은, 실행될 때, 프로세싱 유닛(102B)으로 하여금 네트워크 인터페이스(104B)를 통해 제 1 시간에 운영 체제에 대한 업데이트(114B)를 수신하게 한다. 제 1 시간에, 운영 체제 사본(110B)이 컴퓨팅 디바이스(100B)에서 실행되고, 운영 체제 사본(112B)은 실행되지 않는다. 그에 따라서, 운영 체제 사본(112B)은 제 1 시간에 업데이트될 수 있는데, 그 운영 체제 사본(112B)이 운영 체제 사본(110B)의 기능을 방해하지 않으면서 업데이트될 수 있기 때문이다.
[0024] 자동 업데이트 모듈(116B)은, 실행될 때, 프로세싱 유닛(102B)으로 하여금 제 2 시간에 컴퓨팅 디바이스(100B)의 리부트-이전 상태(118B)를 저장하게 한다. 저장된 리부트-이전 상태(118B)는 컴퓨팅 디바이스의 특정 사용자로서 컴퓨팅 디바이스에 로그인하기 위한 로그인 정보를 포함하고, 그 특정 사용자는 제 2 시간에 컴퓨팅 디바이스에 로그인된다. 저장된 리부트-이전 상태(118B)는 또한 컴퓨팅 디바이스(100B)에 열려 있는 애플리케이션들(120B.1-n)의 표시들, 그 애플리케이션들에 열린 탭들, 그 애플리케이션들 내에 저장된 데이터(예를 들어, 브라우저 애플리케이션의 입력 박스들에 타이핑된 데이터 또는 문헌 프로세서 애플리케이션에 타이핑되는 데이터) 및 활성 애플리케이션을 포함할 수 있다. 제 2 시간은 제 1 시간과 동시에 발생하거나 제 1 시간 직후에 발생할 수 있다. 대안적으로, 제 2 시간은 제 1 시간 이후 의도적인 지연에 또는 미리 결정된 시간 지속기간(예를 들어, 1초, 1분, 1시간 등)에, 예를 들어 컴퓨팅 디바이스(100B)가 슬립 모드에 있을 때 발생할 수 있다.
[0025] 자동 업데이트 모듈(116B)은, 실행될 때, 프로세싱 유닛(102B)으로 하여금 컴퓨팅 디바이스(100B)를 리부팅하게 한다. 리부팅 동안에 또는 그 이후에, 프로세싱 유닛(102B)은 운영 체제 사본(112B)이 운영 체제 사본(110B)보다 나중에 업데이트되었다고 결정한다. 그에 따라서, 운영 체제 사본(112B)이 운영 체제 사본(110B)보다 나중에 업데이트되었다는 결정에 기초하여, 프로세싱 유닛(102B)은 운영 체제 사본(112B)에 매칭하도록 운영 체제 사본(110B)을 업데이트한다. 프로세싱 유닛(102B)이 운영 체제 사본(112B)을 운영 체제 사본(110B)에 복사할 수 있거나, 프로세싱 유닛(102B)이 수신된 업데이트(114B)를 운영 체제 사본(110B)에 적용할 수 있다. 리부팅 이후에는, 운영 체제 사본(112B)이 실행되고, 운영 체제 사본(110B)은 실행되지 않음으로써, 프로세싱 유닛(102B)은 운영 체제 사본(110B)에 기록할 수 있다.
[0026] 컴퓨팅 디바이스(100B)를 리부팅한 이후에, 프로세싱 유닛(102B)은 저장된 리부트-이전 상태(118B)에 따라 컴퓨팅 디바이스(100B)에서 실행되고 있는 업데이트된 운영 체제 사본(112B)에 대한 사용자 액세스를 제공하고, 그럼으로써 사용자는 그의 작업에 대한 어떤 중단도 없이 또는 최소한의 중단으로 컴퓨팅 디바이스(100B)에서 계속 작업을 할 수 있다. 예를 들어, 사용자가 로그인 정보를 다시 입력할 필요가 없이, 사용자는 저장된 리부트-이전 상태(118B)의 로그인 정보에 따라 컴퓨팅 디바이스(100B)에 로그인될 수 있다. 일부 경우들에서는, 본원에 설명된 기술의 결과로, 애플리케이션들(120B.1-n)의 열린 윈도우들, 열린 윈도우들 내의 열린 탭들, 및 현재 활성 윈도우는 운영 체제에 대한 업데이트가 설치되는 동안에 유지될 수 있다.
[0027] 애플리케이션들(120B.1-n)은 컴퓨팅 디바이스(100B)에서 실행하는 임의의 애플리케이션들을 포함할 수 있다. 예를 들어, 애플리케이션들(120B.1-n)은 웹 브라우저 애플리케이션, 이메일 애플리케이션, 문헌 프로세서 애플리케이션, 스프레드시트(spreadsheet) 애플리케이션, 슬라이드쇼(slideshow) 애플리케이션, 비디오 콜링(calling) 애플리케이션 등 중 하나 또는 그 초과를 포함할 수 있다.
[0028] 일부 예들에 따르면, 메모리(106B)는 디스크 및 RAM(random access memory)을 포함한다. 저장된 리부트-이전 상태(118B)는 디스크 상에 암호화되어 저장될 수 있고, 저장된 리부트-이전 상태(118B)는, RAM에 전력이 계속 제공되고 디스크 상의 암호화된 데이터가 제거되지 않는 한, 업데이트된 운영 체제 사본(112B)에 대한 리부트 이후에 이용가능하게 될 수 있다. 일부 예들에서, 저장된 리부트-이전 상태(118B)는 그 저장된 리부트-이전 상태(118B)의 정보가 비허가된 사람에 의해서는 액세스되지 않게 보장하기 위해서 컴퓨팅 디바이스의 사용자에게 액세스가능하지 않거나 그에 의해 수정가능하지 않을 수 있다. 게다가, 컴퓨팅 디바이스(100B)는 그 컴퓨팅 디바이스(100B)를 사용하도록 허가받은 사용자(들)의 하나 이상의 사용자 계정들을 포함할 수 있다. 각각의 사용자 계정은 고유의 암호화된 데이터와 연관될 수 있는데, 그 고유의 암호화된 데이터는 다른 사용자 계정들을 통해서는 액세스가능하지 않을 수 있다. 컴퓨팅 디바이스(100B)가 자동 업데이트 모듈(116B)의 동작을 통해 리부팅될 때, 사용자는 그의 계정에 다시 서명할 수 있고, 이는 저장된 리부트-이전 상태(118B)의 데이터에 대한 액세스를 제공한다. 사용자는 컴퓨팅 디바이스(100B)에서, 다시 인증(예를 들어, 그의 사용자 이름 또는 패스워드를 다시 입력)할 필요 없이 그리고 저장된 리부트-이전 상태(118B)를 비롯해서 저장된 암호화된 데이터의 어떤 다른 보안 특성들도 변경하지 않고, 그의 계정에 다시 서명할 수 있다.
[0029] 도 2는 컴퓨팅 디바이스의 운영 체제를 업데이트할 수 있는 예시적인 프로세스(200)를 예시한다.
[0030] 프로세스(200)는 단계(210)에서 시작하고, 단계(210)에서는 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(100B))가 제 1 시간에 그 컴퓨팅 디바이스의 운영 체제에 대한 업데이트(예를 들어, 수신된 업데이트(114B))를 수신한다. 운영 체제에 대한 업데이트는 네트워크 인터페이스(예를 들어, 네트워크 인터페이스(104B))를 통해서 네트워크를 통해 수신될 수 있다. 제 1 시간에, 운영 체제의 제 1 사본(예를 들어, 운영 체제 사본(110B))이 컴퓨팅 디바이스에서 실행되고, 운영 체제의 제 2 사본(예를 들어, 운영 체제 사본(112B))은 컴퓨팅 디바이스에서 실행되지 않는다.
[0031] 단계(220)에서, 컴퓨팅 디바이스는 제 2 시간에 그 컴퓨팅 디바이스의 리부트-이전 상태(예를 들어, 저장된 리부트-이전 상태(118B))를 저장한다. 리부트-이전 상태는 컴퓨팅 디바이스의 특정 사용자로서 그 컴퓨팅 디바이스에 로그인하기 위한 로그인 정보를 포함한다. 컴퓨팅 디바이스의 특정 사용자는 제 2 시간에 그 컴퓨팅 디바이스에 로그인된다. 리부트-이전 상태는 컴퓨팅 디바이스에서 열린 윈도우들의 세트, 윈도우들의 세트 내에서 열린 탭들의 세트, 윈도우들의 세트 내의 정보, 및 윈도우들의 세트 내의 현재 활성 윈도우를 또한 식별할 수 있다. 제 2 시간은 제 1 시간과 동시에 일어날 수 있거나, 또는 제 1 시간 이후에 어떤 의도적인 지연도 없이 실시간으로 발생할 수 있다. 대안적으로, 제 1 시간과 제 2 시간 사이에는 의도적인 지연 또는 미리 결정된 시간 지속기간(예를 들어, 1초, 1분, 1시간 등)이 존재할 수 있다. 예를 들어, 제 1 시간은 컴퓨팅 디바이스가 네트워크에 연결되고 운영 체제 업데이트가 네트워크를 통해 컴퓨팅 디바이스에 송신될 때 발생할 수 있다. 제 2 시간은 컴퓨팅 디바이스가 슬립 모드에 있거나 유휴 상태일 때 발생할 수 있다.
[0032] 단계(230)에서, 컴퓨팅 디바이스는 스스로 리부팅한다. 컴퓨팅 디바이스의 이전에 또는 그 동안에, 운영 체제의 제 2 사본이 수신된 업데이트에 따라 업데이트된다. 예를 들어, 수신된 업데이트는 운영 체제의 제 2 사본에 적용될 수 있다. 컴퓨팅 디바이스의 리부팅 이후에는, 컴퓨팅 디바이스의 운영 체제의 제 2 사본이 그 컴퓨팅 디바이스에서 실행되고, 운영 체제의 제 1 사본은 그 컴퓨팅 디바이스에서 실행되지 않는다.
[0033] 단계(240)에서, 컴퓨팅 디바이스는 그 컴퓨팅 디바이스를 리부팅한 이후에 그 컴퓨팅 디바이스의 저장된 리부트-이전 상태에 따라 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공한다. 그 결과, 컴퓨팅 디바이스가 리부팅된 이후에, 사용자는 저장된 리부트-이전 상태로부터 그 컴퓨팅 디바이스에서 계속 작업할 수 있고, 그 컴퓨팅 디바이스에서의 사용자의 작업은 중단되지 않을 수 있거나 최소로 중단될 수 있다. 예를 들어, 컴퓨팅 디바이스는 사용자가 로그인 정보를 다시 입력할 필요가 없이 리부트-이전 상태의 로그인 정보에 따라 그 컴퓨팅 디바이스에 로그인할 수 있다. 컴퓨팅 디바이스는 또한 사용자로 하여금 재-인스턴스화된 윈도우들 및 탭들에서 계속 작업하게 허용하기 위해서 리부트-이전 상태에 저장된 윈도우들 및 탭들을 재-인스턴스화할 수 있다.
[0034] 단계(250)에서, 컴퓨팅 디바이스는 수신된 업데이트에 따라 그 컴퓨팅 디바이스의 운영 체제의 제 1 사본을 업데이트한다. 예를 들어, 수신된 업데이트는 운영 체제의 제 1 사본에 적용될 수 있다. 대안적으로, 리부팅 이전에 또는 그 동안에 이미 업데이트된 운영 체제의 제 2 사본은 운영 체제의 제 1 사본에 복사될 수 있다. 단계(250) 이후에, 프로세스(200)는 종료한다.
[0035] 도 3은 본 기술의 일부 구현들이 구현되는 전자 시스템(300)을 개념적으로 예시한다. 예를 들어, 컴퓨팅 디바이스(100B)는 전자 시스템(300)의 어레인지먼트를 사용하여 구현될 수 있다. 전자 시스템(300)은 컴퓨터(예를 들어, 모바일 폰, PDA), 또는 임의의 다른 종류의 전자 디바이스일 수 있다. 그러한 전자 시스템은 다양한 타입들의 컴퓨터 판독가능 매체들 및 다양한 다른 타입들의 컴퓨터 판독가능 매체들을 위한 인터페이스들을 포함한다. 전자 시스템(300)은 버스(305), 프로세싱 유닛(들)(310), 시스템 메모리(315), 판독-전용 메모리(320), 영구 저장 디바이스(325), 입력 디바이스 인터페이스(330), 출력 디바이스 인터페이스(335), 및 네트워크 인터페이스(340)를 포함한다.
[0036] 버스(305)는 전자 시스템(300)의 수많은 내부 디바이스들을 통신가능하게 연결하는 모든 시스템, 주변기기 및 칩셋 버스들을 총괄적으로 나타낸다. 이를테면, 버스(305)는 프로세싱 유닛(들)(310)을 판독-전용 메모리(320), 시스템 메모리(315) 및 영구 저장 디바이스(325)와 통신가능하게 연결한다.
[0037] 다양한 메모리 유닛들로부터, 프로세싱 유닛(들)(310)은 본 기술의 프로세스들을 실행하기 위해서 실행할 명령들 및 프로세싱할 데이터를 리트리빙한다. 프로세싱 유닛(들)은 상이한 구현들에서는 단일 프로세서 또는 다중-코어 프로세서일 수 있다.
[0038] 판독-전용 메모리(ROM)(320)는 프로세싱 유닛(들)(310) 및 전자 시스템의 다른 모듈들에 의해 요구되는 정적 데이터 및 명령들을 저장한다. 영구 저장 디바이스(325)는 다른 한편으로는 판독-및-기록 메모리 디바이스이다. 이 디바이스는 전자 시스템(300)이 오프될 때도 명령들 및 데이터를 저장하는 비-휘발성 메모리 유닛이다. 본 기술의 일부 구현들은 대용량 저장 디바이스(예를 들어, 자기 또는 광학 디스크 및 그것의 대응하는 디스크 드라이브)를 영구 저장 디바이스(325)로서 사용한다.
[0039] 다른 구현들은 제거가능 저장 디바이스(예를 들어, 플로피 디스크, 플래시 드라이브, 및 그것의 대응하는 디스크 드라이브)를 영구 저장 디바이스(325)로서 사용한다. 영구 저장 디바이스(325)와 마찬가지로, 시스템 메모리(315)는 판독-및-기록 메모리 디바이스이다. 그러나, 저장 디바이스(325)와는 달리, 시스템 메모리(315)는 랜덤 액세스 메모리와 같은 휘발성 판독-및-기록 메모리이다. 시스템 메모리(315)는 프로세서가 실행 시간에 필요로 하는 명령들 및 데이터의 일부를 저장한다. 일부 구현들에서, 본 기술의 프로세스들은 시스템 메모리(315), 영구 저장 디바이스(325) 또는 판독-전용 메모리(320)에 저장된다. 예를 들어, 다양한 메모리 유닛들은 일부 구현들에 따라 운영 체제 소프트웨어를 업데이트하기 위한 명령들을 포함한다. 이러한 다양한 메모리 유닛들로부터, 프로세싱 유닛(들)(310)은 일부 구현들의 프로세스들을 실행하기 위해서 실행할 명령들 및 프로세싱할 데이터를 리트리빙한다.
[0040] 버스(305)는 또한 입력 및 출력 디바이스 인터페이스들(330 및 335)에 연결한다. 입력 디바이스 인터페이스(330)는 사용자가 정보를 통신하고 전자 시스템에 대한 커맨드들을 선택하게 할 수 있다. 입력 디바이스 인터페이스(330)와 사용되는 입력 디바이스들은 예를 들어 문자숫자식 키보드들 및 포인팅 디바이스들("커서 제어 디바이스들"로도 불림)을 포함한다. 출력 디바이스 인터페이스들(335)은 예를 들어 전자 시스템(300)에 의해 생성되는 이미지들의 디스플레이를 가능하게 한다. 출력 디바이스 인터페이스(335)와 사용되는 출력 디바이스들은 예를 들어 프린터들 및 디스플레이 디바이스들, 예를 들어 CRT(cathode ray tubes) 또는 LCD(liquid crystal displays)를 포함한다. 일부 구현들은 디바이스들, 예를 들어 입력 및 출력 디바이스들 양쪽 모두로서 기능하는 터치 스크린을 포함한다.
[0041] 마지막으로, 도 3에 도시된 바와 같이, 버스(305)는 또한 네트워크 인터페이스(340)를 통해 전자 시스템(300)을 네트워크(미도시)에 결합한다. 이러한 방식으로, 전자 시스템(300)은 컴퓨터들의 네트워크(예를 들어, LAN(local area network), WAN(wide area network), 또는 인트라넷), 또는 네트워크들의 네트워크, 예를 들어 인터넷의 일부일 수 있다. 전자 시스템(300)의 임의의 또는 모든 컴포넌트들은 본 기술과 연계하여 사용될 수 있다.
[0042] 위에서 설명된 특징들 및 애플리케이션들은 컴퓨터 판독가능 저장 매체(컴퓨터 판독가능 매체로도 지칭됨) 상에 레코딩되는 명령들의 세트로서 특정되는 소프트웨어 프로세스들로서 구현될 수 있다. 이러한 명령들이 하나 이상의 프로세싱 유닛(들)(예를 들어, 하나 이상의 프로세서들, 프로세서들의 코어들, 또는 다른 프로세싱 유닛들)에 의해 실행될 때, 그들은 프로세싱 유닛(들)으로 하여금 명령들에 표시된 동작들을 수행하게 한다. 컴퓨터 판독가능 매체들의 예들은 CD-ROM들, 플래시 드라이브들, RAM 칩들, 하드 드라이브들, EPROM들 등을 포함하지만 이들로 제한되지는 않는다. 컴퓨터 판독가능 매체들은 무선으로 또는 유선 연결들을 통해 전달하는 캐리어 파들 및 전자 신호들을 포함하지 않는다.
[0043] 본 상세한 설명에서, "소프트웨어"란 용어는 판독-전용 메모리에 상주하는 펌웨어, 또는 프로세서에 의한 프로세싱을 위해 메모리로 판독될 수 있는 자기 저장부 또는 플래시 저장부, 예를 들어 고체-상태 드라이브에 저장된 애플리케이션들을 포함하도록 의도된다. 또한, 일부 구현들에서, 별개의 소프트웨어 기술들을 유지하면서 다수의 소프트웨어 기술들이 더 큰 프로그램의 서브-부분들로서 구현될 수 있다. 일부 구현들에서, 다수의 소프트웨어 기술들은 또한 별도의 프로그램들로 구현될 수 있다. 마지막으로, 여기서 설명된 소프트웨어 기술을 함께 구현하는 별도의 프로그램들의 임의의 조합은 본 기술의 범위 내에 있다. 일부 구현들에서, 소프트웨어 프로그램은, 하나 이상의 전자 시스템들에서 동작하도록 설치될 때, 소프트웨어 프로그램들의 동작들을 실행하고 수행하는 하나 이상의 특정 기계 구현들을 정의한다.
[0044] 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 공지됨)은 컴파일링되거나 해석되는 언어들, 선언형(declarative) 또는 절차형(procedural) 언어들을 비롯한 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 그것은 독립형 프로그램이나 또는 모듈, 컴포넌트, 서브루틴, 오브젝트 또는 컴퓨팅 환경에서 사용하기 위해 적합한 다른 유닛을 비롯한 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 그럴 필요는 없을 수 있다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문헌에 저장되는 하나 이상의 스크립트들)을 보유하는 파일의 부분에, 해당 프로그램에 전용화된 단일 파일에, 또는 다수의 통합형 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치되거나 다수의 사이트들에 걸쳐 분산되어 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들에서 실행되거나 또는 하나의 컴퓨터에서 실행되도록 전개될 수 있다.
[0045] 위에서 설명된 기능들은 디지털 전자 회로에서, 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 기술들은 하나 이상의 컴퓨터 프로그램 물건들을 사용하여 구현될 수 있다. 프로그램가능 프로세서들 및 컴퓨터들은 모바일 디바이스들에 포함되거나 또는 모바일 디바이스들로서 패키징될 수 있다. 프로세스들 및 로직 흐름들은 하나 이상의 프로그램가능 프로세서들에 의해서 및 하나 이상의 프로그램가능 로직 회로에 의해서 수행될 수 있다. 범용의 및 특수 용도의 컴퓨팅 디바이스들 및 저장 디바이스들이 통신 네트워크들을 통해 상호연결될 수 있다.
[0046] 일부 구현들은 전자 컴포넌트들, 예를 들어 기계-판독가능 또는 컴퓨터-판독가능 매체(대안적으로는 컴퓨터-판독가능 저장 매체들, 기계-판독가능 매체들 또는 기계-판독가능 저장 매체들로 지칭됨)에 컴퓨터 프로그램 명령들을 저장하는 메모리, 저장부 및 마이크로프로세서들을 포함한다. 그러한 컴퓨터-판독가능 매체들의 일부 예들은 RAM, ROM, CD-ROM(read-only compact discs), CD-R(recordable compact discs), CD-RW(rewritable compact discs), 판독-전용 디지털 다기능 디스크들(예를 들어, DVD-ROM, 듀얼-층 DVD-ROM), 다양한 레코딩가능/재기록가능 DVD들(예컨대, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예를 들어, SD 카드들, 미니-SD 카드들, 마이크로-SD 카드들 등), 자기 또는 고체 상태 하드 드라이브들, 판독-전용 및 레코딩가능 Blu-Ray
Figure 112016064670453-pct00001
디스크들, 울트라-밀도 광학 디스크들, 임의의 다른 광학 또는 자기 매체들, 및 플로피 디스크들을 포함한다. 컴퓨터-판독가능 매체들은, 적어도 하나의 프로세싱 유닛에 의해 실행가능하고 다양한 동작들을 수행하기 위한 명령들의 세트를 포함하는 컴퓨터 프로그램을 저장할 수 있다. 컴퓨터 프로그램들 또는 컴퓨터 코드의 예들은 예컨대 컴파일러에 의해 생성되는 기계 코드, 및 해석기를 사용하여 컴퓨터, 전자 컴포넌트 또는 마이크로프로세서에 의해 실행되는 더 고 레벨의 코드를 포함하는 파일들을 포함한다.
[0047] 비록 위의 논의는 소프트웨어를 실행하는 마이크로프로세서 또는 다중-코더 프로세서들을 주로 지칭하지만, 일부 구현들은 하나 이상의 집적 회로들, 예를 들어 ASIC들(application specific integrated circuits) 또는 FPGA들(field programmable gate arrays)에 의해 수행된다. 일부 구현들에서, 그러한 집적 회로들은 그 회로 자체에 저장되는 명령들을 실행한다.
[0048] 본 출원의 이러한 상세한 설명 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터", "서버", "프로세서" 및 "메모리"란 용어들 모두는 전자 또는 다른 기술적 디바이스들을 지칭한다. 이러한 용어들은 사람들 또는 사람들의 그룹들은 배제한다. 상세한 설명을 위해서, 디스플레이 또는 디스플레잉이란 용어들은 전자 디바이스에서의 디스플레잉을 의미한다. 본 출원의 이러한 상세한 설명 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터 판독가능 매체" 및 "컴퓨터 판독가능 매체들"이란 용어들은 컴퓨터에 의해 판독가능한 형태로 정보를 저장하는 유형의(tangible) 물리적 오브젝트들로 완전히 제약된다. 이러한 용어들은 임의의 무선 신호들, 유선 다운로드 신호들 및 임의의 다른 단명(ephemeral) 신호들은 배제한다.
[0049] 사용자와의 상호작용을 제공하기 위해, 이러한 상세한 설명에 설명된 청구대상의 구현들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼를 갖는 컴퓨터에서 구현될 수 있다. 마찬가지로 사용자와의 상호작용을 제공하기 위해 다른 종류들의 디바이스들이 사용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감지 피드백, 예를 들어 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 청각적, 음성, 또는 촉각적 입력을 비롯한 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문헌들을 전송하고 그로부터 문헌들을 수신함으로써, 예를 들어 사용자의 클라이언트 디바이스 상의 웹 브라우저로부터 수신되는 요청들에 대한 응답으로 그 웹 브라우저에 웹 페이지들을 송신함으로써 사용자와 상호작용할 수 있다.
[0050] 이러한 상세한 설명에 설명된 청구대상은 컴퓨팅 시스템에서 구현될 수 있는데, 그 컴퓨팅 시스템은, 예를 들어 데이터 서버로서 백 엔드(back end) 컴포넌트를 포함하거나, 예를 들어 애플리케이션 서버로서 미들웨어(mfiddleware) 컴포넌트를 포함하거나, 또는 프론트 엔드(front end) 컴포넌트, 예를 들어, 이러한 상세한 설명에 설명된 청구대항의 구현과 사용자가 상호작용할 수 있게 하는 웹 브라우저 또는 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터를 포함하거나, 또는 이러한 백 엔드, 미들웨어 또는 프론트 엔드 컴포넌트들 중 하나 이상의 임의의 조합을 포함한다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들어, 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예들은 "LAN(local area network)", "WAN(wide area network)", 인터-네트워크(예를 들어, 인터넷), 및 피어-투-피어 네트워크들(예를 들어, 에드혹 피어-투-피어 네트워크들)을 포함한다.
[0051] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있으며, 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 개별 컴퓨터들에서 실행하고 서로 간에 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들을 통해 발생한다. 개시된 청구대상의 일부 양상들에서, 서버는 클라이언트 디바이스에 데이터(예를 들어, HTML 페이지)를 송신한다(예를 들어, 클라이언트 디바이스와 상호작용하는 사용자에게 데이터를 디스플레이하고 그로부터 사용자 입력을 수신하기 위해). 클라이언트 디바이스에서 생성되는 데이터(예를 들어, 사용자 상호작용의 결과)는 클라이언트 디바이스로부터 서버에 수신될 수 있다.
[0052] 개시된 프로세스들에서 단계들의 임의의 특정 순서 또는 계층은 예시적인 접근법의 예시라는 것이 이해된다. 설계 선호도들에 기초하여, 프로세스들에서의 단계들의 특정 순서 또는 계층이 재배열될 수 있다는 것 또는 모든 예시된 단계들이 수행될 수 있다는 것이 이해된다. 단계들 중 일부는 동시적으로 수행될 수 있다. 예를 들어, 특정 환경들에서는, 다중작업 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 위에서 예시된 다양한 시스템 컴포넌트들의 분리는 그러한 분리를 필요로 하는 것으로 이해되지 않아야 하고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 물건에 함께 통합되거나 또는 다수의 소프트웨어 물건들로 패키징될 수 있다는 것이 이해되어야 한다.
[0053] 이러한 양상들의 다양한 수정들이 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들이 다른 양상들에 적용될 수 있다. 따라서, 청구항들은 본원에 제시된 양상들로 제한되도록 의도되지 않고, 청구항들 문언에 부합하는 최대 범위로 제공될 것이고, 단수 형태로 엘리먼트에 대한 참조는 특별히 그렇게 설명되지 않는 한은 "하나 및 단지 하나"를 의미하도록 의도되지 않고 오히려 "하나 또는 그 초과"를 의미하도록 의도된다. 특별히 달리 설명되지 않는 한, "일부"라는 용어는 하나 또는 그 초과를 지칭한다. 남성의 대명사(예를 들어, 그의)는 여성 및 중성 성별(예를 들어, 그녀의 및 그것의)을 포함하고, 그 반대의 경우도 가능하다. 제목들(headings) 및 부제들(subheadings)은, 만약 있다면, 단지 편의상 사용되지 본 기술을 제한하지는 않는다.
[0054] 문구, 예를 들어 "양상"은, 그 양상이 본 기술에 본질적이라는 것 또는 그 양상이 본 기술의 모든 구성들에 적용된다는 것을 의미하지는 않는다. 양상에 관한 개시내용은 모든 구성들, 또는 하나 이상의 구성들에 적용될 수 있다. 문구, 예를 들어 양상은 하나 이상의 양상들을 지칭할 수 있고, 그 반대의 경우도 가능하다. 문구, 예를 들어 "구성"은, 그러한 구성이 본 기술에 본질적이라는 것 또는 그러한 구성이 본 기술의 모든 구성들에 적용된다는 것을 의미하지는 않는다. 구성에 관한 개시내용은 모든 구성들, 또는 하나 이상의 구성들에 적용될 수 있다. 문구, 예를 들어 "구성"은 하나 이상의 구성들을 지칭할 수 있고, 그 반대의 경우도 가능하다.

Claims (20)

  1. 제 1 시간에, 컴퓨팅 디바이스에서 상기 컴퓨팅 디바이스의 운영 체제(operating system)에 대한 업데이트를 수신하는 단계 ― 상기 제 1 시간에, 상기 운영 체제의 제 1 사본이 상기 컴퓨팅 디바이스의 하나 이상의 프로세서들에서 실행되고 있음 ―;
    제 2 시간에, 상기 운영 체제의 제 1 사본이 상기 하나 이상의 프로세서들에서 실행되고 있는 동안, 상기 컴퓨팅 디바이스의 리부트-이전(pre-reboot) 상태를 저장하는 단계;
    상기 컴퓨팅 디바이스를 리부팅하는 단계 ― 상기 컴퓨팅 디바이스의 리부팅 이전에 또는 상기 리부팅 동안에, 상기 수신된 업데이트에 적어도 부분적으로 기초하여 상기 컴퓨팅 디바이스의 운영 체제의 제 2 사본이 상기 하나 이상의 프로세서들에 의해 업데이트됨 ―; 및
    상기 컴퓨팅 디바이스를 리부팅한 이후, 상기 운영 체제의 제 1 사본이 상기 하나 이상의 프로세서들에서 실행되고 있는 동안 저장된 상기 컴퓨팅 디바이스의 리부트-이전 상태에 적어도 부분적으로 기초하여 상기 컴퓨팅 디바이스의 하나 이상의 프로세서들에서 실행되는 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하는 단계
    를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 리부트-이전 상태는 상기 컴퓨팅 디바이스의 특정 사용자로서 상기 컴퓨팅 디바이스에 로그인하기 위한 로그인 정보를 포함하며,
    상기 컴퓨팅 디바이스의 상기 특정 사용자는 상기 제 2 시간에 상기 컴퓨팅 디바이스에 로그인되어 있는,
    방법.
  3. 제 2 항에 있어서,
    상기 운영 체제의 제 1 사본이 상기 하나 이상의 프로세서들에서 실행되고 있는 동안 저장된 상기 컴퓨팅 디바이스의 리부트-이전 상태에 적어도 부분적으로 기초하여 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하는 단계는, 사용자가 상기 로그인 정보를 다시 입력할 필요가 없이 상기 리부트-이전 상태의 상기 로그인 정보에 적어도 부분적으로 기초하여 상기 컴퓨팅 디바이스에 로그인하는 단계를 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 제 2 시간은 상기 제 1 시간과 동시에 또는 상기 제 1 시간 이후의 미리 설정된 시간 기간 내에 발생하는,
    방법.
  5. 제 1 항에 있어서,
    상기 제 2 시간은 상기 컴퓨팅 디바이스가 슬립(sleep) 모드에 있을 때 발생하고,
    상기 제 2 시간은 미리 결정된 시간 지속기간만큼 상기 제 1 시간에 후속하는,
    방법.
  6. 제 1 항에 있어서,
    상기 운영 체제의 제 1 사본 및 2 사본은 상기 운영 체제에 대한 업데이트와 별개인,
    방법.
  7. 제 6 항에 있어서,
    상기 컴퓨팅 디바이스의 리부팅 이후, 상기 운영 체제의 제 2 사본이 상기 컴퓨팅 디바이스의 하나 이상의 프로세서들에서 실행되고, 상기 운영 체제의 제 1 사본은 상기 컴퓨팅 디바이스의 하나 이상의 프로세서들에서 실행되지 않는,
    방법.
  8. 제 7 항에 있어서,
    상기 컴퓨팅 디바이스를 리부팅한 이후, 상기 운영 체제의 제 2 사본을 실행하고 있는 상기 하나 이상의 프로세서들에 의해, 상기 수신된 업데이트에 적어도 부분적으로 기초하여 상기 운영 체제의 제 1 사본을 업데이트하는 단계를 더 포함하는,
    방법.
  9. 제 1 항에 있어서,
    상기 리부트-이전 상태는 상기 컴퓨팅 디바이스의 디스크에 암호화되어 저장되고,
    상기 컴퓨팅 디바이스의 RAM(random access memory)은 상기 컴퓨팅 디바이스의 리부팅 동안에 계속 전력을 공급받는,
    방법.
  10. 제 1 항에 있어서,
    상기 리부트-이전 상태는 상기 컴퓨팅 디바이스에서 열린 윈도우들의 세트, 상기 윈도우들의 세트 내에 열린 탭들의 세트, 상기 윈도우들의 세트 내의 정보, 및 상기 윈도우들의 세트 내의 현재 활성 윈도우를 식별하고,
    상기 운영 체제의 제 1 사본이 상기 하나 이상의 프로세서들에서 실행되고 있는 동안 저장된 상기 컴퓨팅 디바이스의 리부트-이전 상태에 적어도 부분적으로 기초하여 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하는 단계는, 상기 윈도우들의 세트, 상기 탭들의 세트, 상기 윈도우들의 세트 내의 정보, 및 상기 리부트-이전 상태의 현재 활성 윈도우를 상기 운영 체제의 업데이트된 제 2 사본 내에서 재-인스터턴스화(re-instantiate)하는 단계를 포함하는,
    방법.
  11. 명령들을 포함하는 비-일시적 컴퓨터-판독가능 저장 매체로서,
    상기 명령들은, 컴퓨터의 하나 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨터의 하나 이상의 프로세서들로 하여금 방법을 구현하게 하고,
    상기 방법은,
    제 1 시간에, 운영 체제의 제 1 사본이 상기 컴퓨터의 하나 이상의 프로세서들에서 실행되고 있는 동안에, 상기 컴퓨터의 운영 체제에 대한 업데이트를 수신하는 단계;
    상기 컴퓨터의 하나 이상의 프로세서들에 의해, 수신된 업데이트에 적어도 부분적으로 기초하여 상기 운영 체제의 제 2 사본을 업데이트하는 단계;
    제 2 시간에, 상기 컴퓨터의 리부트-이전 상태를 저장하는 단계;
    상기 컴퓨터를 리부팅하는 단계 ― 상기 컴퓨터를 리부팅한 이후, 상기 운영 체제의 제 2 사본이 상기 컴퓨터의 하나 이상의 프로세서들에서 실행됨 ―; 및
    상기 컴퓨터를 리부팅한 이후에 상기 컴퓨터의 저장된 리부트-이전 상태에 적어도 부분적으로 기초하여 상기 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하는 단계
    를 포함하고,
    상기 운영 체제의 제 1 사본은 상기 운영 체제의 제 2 사본을 업데이트한 이후에 지워지지 않은채 유지되는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  12. 제 11 항에 있어서,
    상기 리부트-이전 상태는 상기 컴퓨터의 특정 사용자로서 상기 컴퓨터에 로그인하기 위한 로그인 정보를 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  13. 제 12 항에 있어서,
    상기 컴퓨터의 저장된 리부트-이전 상태에 적어도 부분적으로 기초하여 상기 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하는 단계는, 사용자가 상기 로그인 정보를 다시 입력할 필요가 없이 상기 리부트-이전 상태의 상기 로그인 정보에 적어도 부분적으로 기초하여 상기 컴퓨터에 로그인하는 단계를 포함하고,
    상기 리부트-이전 상태가 저장되는 시간에 상기 컴퓨터의 특정 사용자가 상기 컴퓨터에 로그인되어 있는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  14. 제 11 항에 있어서,
    상기 제 2 시간은 상기 제 1 시간과 동시에 또는 상기 제 1 시간 이후의 미리 설정된 시간 기간 내에 발생하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  15. 제 11 항에 있어서,
    상기 제 2 시간은 상기 컴퓨터가 슬립 모드에 있을 때 발생하고,
    상기 제 2 시간은 미리 결정된 시간 지속기간만큼 상기 제 1 시간에 후속하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  16. 제 11 항에 있어서,
    상기 운영 체제의 제 1 사본 및 상기 운영 체제의 2 사본은 상기 운영 체제에 대한 업데이트와 별개인,
    비-일시적 컴퓨터-판독가능 저장 매체.
  17. 제 16 항에 있어서,
    상기 방법은 상기 운영 체제의 제 2 사본을 실행하고 있는 상기 하나 이상의 프로세서들에 의해서 그리고 상기 컴퓨터를 리부팅한 이후에, 상기 수신된 업데이트에 적어도 부분적으로 기초하여 상기 운영 체제의 제 1 사본을 업데이트하는 단계를 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  18. 컴퓨팅 디바이스로서,
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들에 의해서 실행될 때 상기 하나 이상의 프로세서들로 하여금 방법을 구현하게 하는 명령들을 포함하는 메모리를 포함하고,
    상기 방법은,
    운영 체제의 제 1 사본이 상기 컴퓨팅 디바이스의 하나 이상의 프로세서들에서 실행되고 있는 동안에, 상기 컴퓨팅 디바이스에서 상기 컴퓨팅 디바이스의 운영 체제에 대한 업데이트를 수신하는 단계;
    상기 컴퓨팅 디바이스의 리부트-이전 상태를 저장하는 단계;
    상기 컴퓨팅 디바이스를 리부팅하는 단계 ― 상기 컴퓨팅 디바이스의 리부팅 이전에 또는 리부팅 동안에, 상기 수신된 업데이트에 적어도 부분적으로 기초하여 상기 컴퓨팅 디바이스의 운영 체제의 제 2 사본이 상기 하나 이상의 프로세서들에 의해 업데이트되고, 상기 컴퓨팅 디바이스의 리부팅 이후에, 상기 컴퓨팅 디바이스의 운영 체제의 제 2 사본이 상기 컴퓨팅 디바이스의 하나 이상의 프로세서들에서 실행됨 ―;
    상기 컴퓨팅 디바이스를 리부팅한 이후에 상기 컴퓨팅 디바이스의 저장된 리부트-이전 상태에 적어도 부분적으로 기초하여 상기 하나 이상의 프로세서들에서 실행되고 있는 상기 운영 체제의 업데이트된 제 2 사본에 대한 사용자 액세스를 제공하는 단계; 및
    상기 하나 이상의 프로세서들에 의해, 상기 컴퓨팅 디바이스를 리부팅한 이후에, 상기 운영 체제의 제 2 사본이 하나 이상의 프로세서들에서 실행되고 있는 동안, 상기 수신된 업데이트에 적어도 부분적으로 기초하여 상기 컴퓨팅 디바이스의 운영 체제의 제 1 사본을 업데이트하는 단계
    를 포함하는,
    컴퓨팅 디바이스.
  19. 제 18 항에 있어서,
    상기 메모리는 상기 운영 체제의 제 1 사본 및 상기 운영 체제의 제 2 사본을 저장하는 비-사용자 수정가능 메모리 구역을 더 포함하고,
    상기 운영 체제의 제 1 사본 및 상기 운영 체제의 제 2 사본은 상기 운영 체제에 대한 업데이트와 별개인,
    컴퓨팅 디바이스.
  20. 제 1 항에 있어서,
    상기 운영 체제의 제 1 사본은 상기 운영 체제의 제 2 사본을 업데이트한 이후에 지워지지 않은채 유지되는,
    방법.
KR1020167017934A 2013-12-05 2014-12-05 운영 체제 업데이트 KR101824013B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/098,451 US8990793B1 (en) 2013-12-05 2013-12-05 Updating an operating system
US14/098,451 2013-12-05
PCT/US2014/068780 WO2015085167A1 (en) 2013-12-05 2014-12-05 Updating an operating system

Publications (2)

Publication Number Publication Date
KR20160095066A KR20160095066A (ko) 2016-08-10
KR101824013B1 true KR101824013B1 (ko) 2018-01-31

Family

ID=52683501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167017934A KR101824013B1 (ko) 2013-12-05 2014-12-05 운영 체제 업데이트

Country Status (8)

Country Link
US (2) US8990793B1 (ko)
EP (1) EP3077905A4 (ko)
JP (1) JP6178515B2 (ko)
KR (1) KR101824013B1 (ko)
CN (1) CN105793817B (ko)
AU (1) AU2014360323B2 (ko)
CA (1) CA2929621C (ko)
WO (1) WO2015085167A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298931B (zh) * 2014-09-29 2018-04-10 深圳酷派技术有限公司 信息处理方法和信息处理装置
US10187362B1 (en) * 2015-06-22 2019-01-22 Amazon Technologies, Inc. Secure streamlined provisioning of remote access terminals
US10102008B2 (en) * 2015-09-02 2018-10-16 Dell Products L.P. Managed boot process system
US10936296B2 (en) * 2019-05-07 2021-03-02 Microsoft Technology Licensing, Llc Automated application updates during operating system upgrades
KR20210004288A (ko) * 2019-07-04 2021-01-13 삼성전자주식회사 전자장치 및 그 제어방법
CN111367963B (zh) * 2020-02-28 2023-07-25 北京百度网讯科技有限公司 一种确定来源渠道的方法、装置、设备和计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005310074A (ja) * 2004-04-16 2005-11-04 Eitokui Sui Kagi Kofun Yugenkoshi 二つのオペレーションシステムを具えアップデートデータの自動ダウンロードを行なうコンピュータシステム及びその方法
US20080320466A1 (en) * 2007-06-20 2008-12-25 Dias Eric W B Automatic software installation and cleanup

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3457032B2 (ja) * 1993-09-30 2003-10-14 富士通株式会社 オペレーティングシステム更新装置
US6944854B2 (en) * 2000-11-30 2005-09-13 International Business Machines Corporation Method and apparatus for updating new versions of firmware in the background
US6963981B1 (en) * 2001-01-29 2005-11-08 Akamai Technologies, Inc. Method and apparatus for remote installation of an operating system over a network connection
US20040187104A1 (en) * 2003-03-18 2004-09-23 Shantanu Sardesai Operating system deployment methods and systems
CN100580627C (zh) * 2003-09-24 2010-01-13 T1科技有限公司 启动计算机系统的方法和设备
US20060271923A1 (en) * 2005-05-25 2006-11-30 International Business Machines Corporation Methods and apparatus for categorizing computer system states for use in identifying individual computer systems to receive state-dependent maintenance
US20070180206A1 (en) * 2006-01-18 2007-08-02 Craft Julie L Method of updating a duplicate copy of an operating system on the same disk
JP2007213494A (ja) * 2006-02-13 2007-08-23 Ntt Docomo Inc 更新起動装置及び更新起動制御方法
US8170540B2 (en) * 2006-09-07 2012-05-01 Qualcomm Incorporated System and methods for remotely upgrading software applications
JP5167936B2 (ja) * 2008-05-08 2013-03-21 日本電気株式会社 情報処理装置
US8171276B2 (en) * 2008-06-10 2012-05-01 International Business Machines Corporation Minimal startup mode for performing multiple-reboot configuration
US8429639B2 (en) 2009-02-10 2013-04-23 Microsoft Corporation Image-based software update
US20120110562A1 (en) * 2010-10-27 2012-05-03 David Heinrich Synchronized firmware update
DE102011102425A1 (de) * 2011-05-24 2012-11-29 Heidelberger Druckmaschinen Ag Simultanes Softwareupdate
KR20130024667A (ko) * 2011-08-31 2013-03-08 삼성전자주식회사 소프트웨어를 자동으로 설치하는 방법 및 장치
US20140059534A1 (en) * 2012-08-22 2014-02-27 General Electric Company Method and system for software management
US9218178B2 (en) * 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US9195575B2 (en) * 2013-05-17 2015-11-24 Coherent Logix, Incorporated Dynamic reconfiguration of applications on a multi-processor embedded system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005310074A (ja) * 2004-04-16 2005-11-04 Eitokui Sui Kagi Kofun Yugenkoshi 二つのオペレーションシステムを具えアップデートデータの自動ダウンロードを行なうコンピュータシステム及びその方法
US20080320466A1 (en) * 2007-06-20 2008-12-25 Dias Eric W B Automatic software installation and cleanup

Also Published As

Publication number Publication date
CN105793817A (zh) 2016-07-20
US9524159B2 (en) 2016-12-20
US8990793B1 (en) 2015-03-24
CN105793817B (zh) 2019-07-26
JP2016539426A (ja) 2016-12-15
CA2929621A1 (en) 2015-06-11
WO2015085167A1 (en) 2015-06-11
JP6178515B2 (ja) 2017-08-09
AU2014360323A1 (en) 2016-05-19
EP3077905A4 (en) 2017-06-28
EP3077905A1 (en) 2016-10-12
CA2929621C (en) 2018-07-10
AU2014360323B2 (en) 2020-05-21
KR20160095066A (ko) 2016-08-10
US20150169315A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
KR101824013B1 (ko) 운영 체제 업데이트
US10276131B2 (en) Systems and methods for remote mouse pointer management
US9722873B2 (en) Zero-downtime, reversible, client-driven service migration
US9799380B2 (en) Managing open tabs of an application
CN104704468B (zh) Web应用程序的跨系统安装
KR101998313B1 (ko) 디바이스들 간의 애플리케이션 상태 전달
US20150207800A1 (en) Systems and methods for enabling access to a web application
CN107787482B (zh) 用于管理非活动窗口的方法、介质和系统
US10534817B2 (en) Sharing a process in a web client
US20150154077A1 (en) Automated application update checks based on unexpected errors and crashes
EP3186719A1 (en) Resuming session states
US11099840B2 (en) Adaptation of a web application for use by a mobile device
US9015456B1 (en) Indicator for developer mode
US20140032218A1 (en) Dynamic adjustment of text input system components
US10326780B1 (en) Auto-sizing an untrusted view
US20160077899A1 (en) Handling of inputs in a multi-process application
US9003313B1 (en) System and method for modifying a user interface
US11586452B2 (en) Predicting and creating a session on a user's computing device
US20140176451A1 (en) Method for adaptive scan rate for an electronic device
US10678646B2 (en) Self-recovering application
US11816607B2 (en) Apparatuses, computer-implemented methods, and computer program products for managing a feature emphasis interface element in association with a card-based collaborative workflow management system

Legal Events

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