Nova Patents
AU2010350737A1

Opportunistic multitasking

Abstract

Services for a personal electronic device are provided through which a form of background processing or multitasking is supported. The disclosed services permit user applications to take advantage of background processing without significant negative consequences to a user's experience of the foreground process or the personal electronic device's power resources. To effect the disclosed multitasking, one or more of a number of operational restrictions may be enforced. A consequence of such restrictions may be that a process will not be able to do in the background state, what it may be able to do if it were in the foreground state. Implementation of the disclosed services may be substantially transparent to the executing user applications and, in some cases, may be performed without the user application's explicit cooperation

Term

Projected expiry 22 September 2030.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

59 claims: 14 independent, 45 dependent

  1. 1
    Claims 1. A multitasking method, comprising:identifying a first user application executing in foreground state;receiving user input directing that a second user application is to be placed into the foreground state;placing the first user application in background state in response to the received user input only if the first user application has identified itself as a user application that can execute in the background state;and placing the second user application into the foreground state.
  2. 11
    A program storage device, readable by a programmable control device, comprising instructions stored thereon for causing the programmable control device to perform a method in accordance with claim 1. WO 2011/126499 PCT/US2010/049816
  3. 12
    A personal electronic device, comprising:memory;computer program instructions, stored in the memory;and a programmable control device operatively coupled to the memory and configured to execute the computer program instructions to cause the programmable control device to identify a first user application executing in a foreground state;receive user input directing that a second user application is to be placed into the foreground state;place the first user application in a background state in response to the received user input only if the first user application has identified itself as a user application that can execute in the background state;and placing the second user application into the foreground state.
  4. 14
    A multitasking method for a personal electronic device, comprising:identifying a first user application executing an audio operation in a foreground state on a personal electronic device;receiving first user input from the personal electronic device identifying a second user application is to be placed into the foreground state;placing the first user application into a background state in response to the first received user input, wherein the first user application continues to perform the audio operation;placing the second user application into the foreground state;receiving second user input directing the first user application be paused;and placing the first user application into a non-executing state in response to the second received user input. WO 2011/126499 PCT/US2010/049816
  5. 19
    A program storage device, readable by a programmable control device, comprising instructions stored thereon for causing the programmable control device to perform a method in accordance with claim 14. WO 2011/126499 PCT/US2010/049816
  6. 20
    A personal electronic device, comprising:memory;computer program instructions stored in the memory;a programmable control device operatively coupled to the memory, said programmable control device configured to execute computer program instructions to receive first user input from a personal electronic device identifying a second user application is to be placed into the foreground state;place the first user application into a background state in response to the first received user input, wherein the first user application continues to perform the audio operation;place the second user application into the foreground state;receive second user input directing the first user application be paused;and place the first user application into a non-executing state in response to the second received user input.
  7. 22
    A multitasking method, comprising:receiving, on a personal electronic device, a message for a suspended network communication's application;identifying, on the personal electronic device, a specific network communication's application;moving the identified network communication's application into a background state;and providing the message to the identified network communication's application in the background. WO 2011/126499 PCT/US2010/049816
  8. 26
    A program storage device, readable by a programmable control device, comprising instructions stored thereon for causing the programmable control device to perform a method in accordance with claim 22.
  9. 27
    A personal electronic device, comprising:memory;a programmable control processor operatively coupled to the memory, said processor configured to execute instructions in the memory for causing the programmable control processor to receive, on a personal electronic device, a message for a suspended network communication's application;identify, on the personal electronic device, a specific network communication's application;move the identified network communication's application into a background state;and provide the message to the identified network communication's application in the background.
  10. 29
    A multitasking method, comprising:identifying a first user application executing in a foreground state;receiving user input directing that a second application is to be placed into the foreground state;terminating the first user application if said first user application has at least one lock on a shared system resource, else placing the first user application in a background state in response to the received user input only if the first user application has identified itself as a user application that can execute in the background state;and placing the second application into the foreground state.
  11. 36
    A program storage device, readable by a programmable control device, comprising instructions stored thereon for causing the programmable control device to perform a method in accordance with claim 29.
  12. 37
    A personal electronic device, comprising:memory;a programmable control device operatively coupled to the memory, said programmable control device configured to execute instructions, stored in the memory, to identify a first user application executing in a foreground state;receive user input directing that a second application is to be placed into the foreground state;terminate the first user application if said first user application has at least one lock on a shared system resource, else placing the first user application in a background state in response to the received user input only if the first user application has identified itself as a user application that can execute in the background state;and place the second application into the foreground state.
  13. 40
    A multitasking method, comprising:initiating a first user Voice Over Internet Protocol (VOIP) application at a first time;instantiating one or more communication sockets for the first user VOIP application;placing the first user VOIP application into a non-executing state at a second time;receiving a notification associated with the one or more communication sockets at a third time;placing the first user VOIP application into a background state in response to the received notification;and returning the first user VOIP application to the non-executing state after the first user VOIP application has responded to the notification, wherein, the first time precedes the second time and the second time precedes the third time.
  14. 44
    A personal hand-held electronic device, comprising:memory;a receiver operatively coupled to the memory;a transmitter operatively coupled to the memory;and a programmable control device operatively coupled to the memory and configured to execute instructions stored therein, said instructions for causing the programmable control device to initiate a first user Voice Over Internet Protocol (VOIP) application at a first time;instantiate one or more communication sockets for the first user VOIP application;place the first user VOIP application into a non-executing state at a second time;receive a notification associated with the one or more communication sockets at a third time;place the first user VOIP application into a background state in response to the received notification;and return the first user VOIP application to the non-executing state after the first user VOIP application has responded to the notification, wherein, the first time precedes the second time and the second time precedes the third time. WO 2011/126499 PCT/US2010/049816
  15. 45
    A hand-held digital device multitasking method, comprising:instantiating, at a first time, at least one Voice Over Internet Protocol (VOIP) socket for a first user application;placing, at a second time, the first user application into a suspended state;receiving, at a third time, a message for the first user application;placing, at a fourth time, the first user application into a background state;delivering, at a fifth time, the message to the first user application;receiving, at a sixth time, notification from the first user application that is has responded to the message;and placing, at a seventh time, the first user application into the suspended state.
  16. 49
    A method to schedule processing in a limited multitasking operating system, comprising:scheduling a first foreground process with a scheduling priority from a first band of priority levels;and scheduling a first background process with a scheduling priority from a second band of priority levels, wherein the priority levels in the first band and the second band overlap by one, but not all, priority levels. WO 2011/126499 PCT/US2010/049816
  17. 52
    A multitasking method, comprising:identifying a first user application executing in foreground state and receiving user input;identifying a second user application executing in the foreground state and not receiving user input;limiting the second foreground application's access to one or more specified system resources because the second foreground application is not receiving user input.
  18. 55
    A program storage device, readable by a programmable control device, comprising instructions stored thereon for causing the programmable control device to perform a method in accordance with claim 52. WO 2011/126499 PCT/US2010/049816
  19. 56
    A multitasking method, comprising:identifying a first user application executing in a foreground state;receiving user input directing that a second user application is to be placed into the foreground state;suspending only the first user application in response to the received user input;and placing the second user application into the foreground state.
  20. 59
    A program storage device, readable by a programmable control device, comprising instructions stored thereon for causing the programmable control device to perform a method in accordance with claim 56. WO 2011/126499 PCT/US2010/049816 1/6 PROCESSOR THREAD SCHEDULING STRUCTURE REAL-TIME BAND FOREGROUND BAND BACKGROUND BAND REAL-TIME-HIGH REAL-TIME-LOW FOREGROUND-HIGH PRIORITY ▲ BACKGROUND-HIGH FOREGROUND-LOW BACKGROUND-LOW FIG. 1 500 APP LAUNCHER MT SRV 510 515 OPERATING SYSTEM 520 FIG. 5 WO 2011/126499 PCT/US2010/049816 2/6 200 FIG. 2 WO 2011/126499 PCT/US2010/049816 3/6 300 FIG. 3 WO 2011/126499 PCT/US2010/049816 4/6 400 405 VOIP APP SUSPENDED ID HEARTBEAT INTERVAL 410 FIG. 4 WO 2011/126499 PCT/US2010/049816 5/6 500 FIG. 6 -7 ANTENNA RECEIVER 700 TRANSMITTER 705 MEMORY 710 INTERFACE 715 PROCESSOR 720 MEMORY 725 OPERATING SYSTEM INTERFACE 730 ί 610 \J FIG. 7 WO 2011/126499 PCT/US2010/049816 6/6 800 RADIO 605 810 LOCATION 610 DISPLAY(S) 830 MEMORY 820 I/O DEVICES 835 INPUT/ OUTPUT 825 PROCESSOR 815 805 HARDWARE 845 FIG. 8
Independent claims20