Ulllted States Patent (10) Patent N0.: US 8,555,282 B1
Ulllted States Patent (10) Patent N0.: US 8,555,282 B1
Ulllted States Patent (10) Patent N0.: US 8,555,282 B1
US 8,555,282 B1
Oct. 8, 2013
2
5,654,619 A
5,703,786 A
1%;
12/1997
lsivlitft a1~
e on
8/1997 Iwashita
Conkright
(75)
5,737,439 A
5,771,001 A 5,778,882 A
5,911,065 A * 5,955,667 A
5,955,871 A
9/l999 Nsyen
5,960,085 A
5,976,083 A
9/1999 de la Huerga
11/1999 Richardson et al.
6,013,007 A
(Continued)
FOREIGN PATENT DOCUMENTS
1 104143
0 833 537
5/2001
7/2002
(22) Filed:
(51)
(52)
(Continued)
OTHER PUBLICATIONS
Access and Terminals (AT); Multimedia Message Service (MMS)
for PSTN/ISDN; Multimedia Message Communication Between a
FiXedNetWorkMultimedia Message TerminalEquipment andaMul.
(58)
(Contlnued)
Primary Examiner * Emerson Puente
Assistant Examiner * Charles Swift
(56)
References Cited
U.S. PATENT DOCUMENTS
4,285,041 4,571,680 4,578,769 4,700,369
5,313,060 5,386,210 5,430,480 5,446,725
A A A A
A A A A
(74) Attorney, Agent, orFirm * Blakely, Sokoloff, Taylor & Zafman LLP; Judith A. SZepesi
4,776,323 A
10/1988 Spector
(57)
ABSTRACT
A method and apparatus to provide a scheduler comprising receiving motion information from a mobile device, deter
mining a current use characteristic for the mobile device based on the motion information, and scheduling a task based
on the current use characteristic.
5,446,775 A
5,454,114 A 5,485,402 A
5,506,987 A *
US 8,555,282 B1
Page 2
References Cited 7,220,220 B2 7,254,516 B2 7,280,096 B2 5/2007 Stubbs 61 a1. 8/2007 Case et a1. 10/2007 Marvit et al.
7,280,849 B1 7,297,088 B2
7,301,526 7,301,527 7,301,528 7,301,529 7,305,323 7,328,611 7,334,472 7,353,112 7,365,735 7,365,736 7,365,737 7,379,999 7,387,611 7,397,357 7,451,056 7,457,719 7,457,872 7,463,997 7,467,060 7,512,515 7,526,402
7,640,804 7,647,196 7,653,508 7,664,657 7,689,107 7,705,884 7,752,011 7,753,861
9/2000 10/2000 11/2000 6/2001 8/2001 3/2002 4/2002 5/2002 6/2002 8/2002 10/2002 11/2002 12/2002 12/2002 2/2003 2/2003 3/2003 3/2003 3/2003 7/2003 8/2003
9/2003 10/2003 12/2003 1/2004 2/2004 3/2004 5/2004 7/2004
Varley eta1~ Richardson etal. Ebeling et a1. Rechsteineret a1. Chowdhary Gregg etal, Sakurai et a1. Yang et a1. dela Huerga Kramer et a1. Imada Mault Ohlenbusch et a1. K9ujieta1~ Fyfe etal. Soehren et a1. Nilsen etal. Begin etal. Vock eta1~ Stivoric etal. Song
Endo Ogawa Ober OMalley Nishimoto et a1. Kubo et a1. Shirai Guptaet a1.
B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B1 B2 B2 B2 B1 B2 B2 B2 B2 B2
B2 B2 B1 B1 B2 B2 B2 B1
Marvit et a1. Marvit etal. Marvit et a1. Marvit etal, skvonsov etal. Kleesetal. seo et a1. Choi et a1. Reinhardt et a1. Marvit et a1. Marvit et a1. Zhou et a1. Inoue et 31, Krumm et a1. Flentov et a1. Kahn et 31, Aton et a1. Pasolini et a1. Kulach et a1. Vock et a1. Tanenhaus et a1.
Daumeretal. Kahn etal. Kahn etal. Letzt et a1. Enomoto
6,611,789 B1
6,628,898 6,634,992 6,665,802 6,672,991 6,685,480 6,700,499 6,731,958 6,766,176
8/2003 Darley
7,608,050 B2
10/2009 Shugg
6,771,250 B1
8/2004 Oh
7,765,553 B2
6,786,877 6,788,980 6,790,178 6,813,582 6,823,036 6,826,477 6,836,744 6,881,191 6,885,971 6,895,425 6,898,550 6,928,382 6,941,239 6,959,259 6,975,959 7,010,332 7,020,487 7,027,087 7,028,547 7,042,509 7,054,784 7,057,551 7,072,789 7,092,846 7,096,619
7,149,964 7,155,507 7,158,912 7,169,084 7,171,222 7,171,331 7,173,604 7,176,886 7,176,887 7,176,888 7,177,684 7,180,500 7,180,501 7,180,502 7,200,517 7,212,230 7,212,943
B2 B1
B1 B2 B1 B2 B1
7,774,156 B2 7,788,059 B1
7,857,772 7,881,902 7,892,080 7,987,070 8,187,182
2002/0006284 2002/0023654 2002/0027164 2002/0042830 2002/0044634 2002/0054214 2002/0089425 2002/0109600 2002/0118121 2002/0122543 2002/0138017
B2 B1 B1 B2 B2
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
B2
B2 B1 B1 B2 B2 B2 B2 B1 B2 B2 B2
4/2005 Oakleyetal.
2001/0047488 A1
B2 B2 B1 B2 B2 B2
B1 B2 B2 B2 B2 B2 B2 B2 B2 B2 B1 B2 B2 B2 B2 B2 B2
Onuki Flentov er a1. Vogt Vock et a1. Vock et a1. Jackson et a1,
Cottrille etal. Hirano et a1. Vock et a1. Tsuji Fostick Vock et a1. Marvit et a1. Marvit et a1. Marvit et a1. Marvit et a1. Kroll et a1. Marvit et a1. Marvit et a1. Marvit et a1. Darley et a1. Stavely Aoshima et
A1 A1 A1 A1 A1 A1
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
7,148,797 B2
12/2006 AlbeIT
2003/0033411 A1
3/2003 5/2003 5/2003 5/2003 6/2003 7/2003 7/2003 8/2003 8/2003 10/2003 11/2003 11/2003 12/2003 12/2003 1/2004 2/2004 3/2004
Milnes et a1. Kramer et a1. Walker et a1. Dacier et a1. Mantyjarvi et a1. Barrey etal. Wegerich etal. Zhou et a1. Robins et a1. Kirchhoffet a1. Mault et a1. Mault et a1. Hugh Brown et a1. Kotzin et a1. Randall et a1. Rosenfeld et a1.
US 8,555,282 B1
Page 3
2004/0044493 A1 2004/ 0047498 A1 3/2004 3/ 2004 4/2004 4/2004 4/2004 6/2004 6/2004 6/2004 6/ 2004 6/2004 6/2004 6/2004 6/2004 6/2004 6/2004 7/2004 7/2004 7/2004 7/2004 7/2004 7/2004 7/2004 7/2004 9/2004 9/2004 1 1/ 2004 11/2004 11/2004 12/ 2004 12/2004 12/2004 2/2005 2/2005 2/2005 3/2005 Coulthard Mulet-Parada et al. 2006/0063980 A1 2006/ 0064276 A1 3/2006 Hwang et al. 3/2006 Ren et al.
2004/0078219 A1 2004/0078220 A1
2004/0081441 2004/0106958 2004/0122294 2004/0122295 2004/ 0122296 2004/0122297 2004/0122333 2004/0122484 2004/0122485 2004/0122486 2004/0122487 2004/0125073 2004/0130628 2004/0135898 2004/0146048 2004/0148340 2004/0148341 2004/0148342 2004/0148351 2004/0176067 2004/0185821 2004/0219910 2004/0225467 2004/0236500 2004/ 0242202 2004/0247030 2004/0259494 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
Kaylor et al. Jackson Sato et al. Mathis et al. Hatlestad et al. Hatlestad et al. Hatlestad et al. Stahmann et al. Nissila Hatlestad et al. Stahmann et al. Stahmann et al. Hatlestad et al. Potter et al. Stavely Zador Cotte Cotte Cotte Cotte Cotte Lakhani et al. Yuasa Beckers Vock et al. Choi et al. Torvinen Wiethoff Mazar
Taha Soehren et al. Babu Porter
2006/0080551 2006/0090088 2006/0098097 2006/0100546 2006/0109113 2006/0136173 2006/ 0140422 2006/0149516 2006/0154642 2006/0161377 2006/0161459 2006/0167387 2006/0167647 2006/0167943 2006/0172706 2006/0174685 2006/0204214 2006/0206258 2006/0223547 2006/0249683 2006/0256082 2006/0257042 2006/0259268 2006/ 0284979 2006/0288781 2006/0289819 2007/ 0004451 2007/0005988 2007/0017136
2007/0037605 2007/0038364 2007/0040892 2007/0050157
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A9 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
A1 A1 A1 A1
4/2006 4/2006 5/2006 5/2006 5/2006 6/2006 6/2006 7/2006 7/2006 7/2006 7/2006 7/2006 7/2006 7/2006 8/2006 8/2006 9/2006 9/2006 10/2006 11/2006 11/2006 11/2006 11/2006 12/2006 12/2006 12/2006 1/2007 1/2007 1/2007
2/2007 2/2007 2/2007 3/2007
Mantyjarvi et al. Choi et al. Wach et al. Silk Reyes et al. Case, Jr. et al. Zurek et al. Bond et al. Scannell, Jr. Rakkola et al. Rosenfeld et al. Buchholz et al. Krumm et al. Rosenberg Grif?n et al. Skvortsov et al. Shah et al. Brooks Chin et al. Goldberg et al. Cho et al. Ofek et al. Vock et al. Clarkson Daumer et al. Parsons et al. Anderson Zhang et al. Mosher et al.
Logan et al. Lee et al. Aoki et al. Kahn et al.
2005/0015768 A1
2007/0024441 A1
A1 A1 A1 A1
2005/0048955 A1
2005/0078197 A1 2005/0079873 A1 2005/0101841 A9
3/2005 Ring
4/2005 Gonzales 4/2005 Caspi et al. 5/2005 Kaylor et al.
2007/0061105 A1
2007/0063850 A1 2007/0067094 A1 2007/0073482 A1
2005/0102167 A1
2005/0107944 A1 2005/0113649 A1 2005/0113650 A1
2005/0131736 A1
5/2005 Kapoor
5/2005 Hovestadt et al. 5/2005 Bergantino 5/2005 Pacione et al.
6/2005 Nelson et al.
2007/0075127 A1
2007/0075965 A1 2007/0082789 A1 2007/0104479 A1
2007/0106991 A1*
4/2007 Rosenberg
4/2007 Huppi et al. 4/2007 Nissila et al. 5/2007 Machida
5/2007 Yoo ............................. .. 718/103
A1 A1 A1 A1 A1 A1 A1
Kadar et al. Chan et al. Hastings et al. Kawahara et al. Greenspan et al. Sato et al. Cotte
A1 A1 A1 A1 A1 A1 A1
Rosenberg Chang et al. Banet et al. Pasolini et al. Rosenberg Doll et al. Rothkopf
2005/0183086 A1
2007/0161410 A1
2005/0202934 A1
2005/0203430 A1
2007/0165790 A1
2007/0169126 A1*
7/2007 Taori
7/2007 Todoroki et al. ............ .. 718/103
2005/0210300 2005/0212751 2005/0212752 2005/0212753 2005/0212760 2005/0216403 2005/0222801 2005/0232388 2005/0232404 2005/0234676 2005/0235058 2005/0238132 2005/0240375
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
9/2005 9/2005 9/2005 9/2005 9/2005 9/2005 10/2005 10/2005 10/2005 10/2005 10/2005 10/2005 10/2005
Song et al. Marvit et al. Marvit et al. Marvit et al. Marvit et al. Tarn et al. Wulff et al. Tsuji Gaskill Shibayama Rackus et al. Tsuji Sugai
2007/0176898 2007/0192483 2007/0208531 2007/0213126 2007/0239399 2007/0250261 2007/0259685 2007/0259716 2007/0259717 2007/0260418 2007/0260482 2007/0263995 2007/0281762
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
8/2007 8/2007 9/2007 9/2007 10/2007 10/2007 11/2007 11/2007 11/2007 11/2007 11/2007 11/2007 12/2007
Suh Rezvani et al. Darley et al. Deutsch et al. Sheynblat et al. Soehren Engblom et al. Mattice et al. Mattice et al. Ladetto et al. Nurmela et al. Park et al. Barros et al.
2005/0243178 A1
11/2005 McConica
2008/0005738 A1*
2005/0245988 A1
2005/0248718 A1 2005/0256414 A1
11/2005 Miesel
11/2005 Howell et al. 11/2005 Kettunen et al.
2008/0030586 A1
2008/0046888 A1* 2008/0052716 A1*
2005/0258938 A1 2005/0262237 A1
2008/0072014 A1 2008/0082994 A1
2005/0281289 A1
2006/0009243 A1
2008/0113689 A1
2008/0140338 A1*
5/2008 Bailey
6/2008 No et al. ..................... .. 702/141
2006/0017692 A1
2006/0020177 A1 2006/0029284 A1
2008/0153671 A1
2008/0165022 A1 2008/0168361 A1
US 8,555,282 B1
Page 4
2008/0171918 2008/0214358 2008/0231713 2008/0231714 2008/0232604 2008/0243432 2008/0303681 A1 A1 A1 A1 A1 A1 A1
7/ 2008 Teller et al.
tory
Use,
<http://ieeexplore.ieee.org/xpl/freeabsiall .j sp?tp:
Florea et a1. Estevez et al. Dufresne et a1. Kato et al. Herz et al.
Carro et al. .............. .. 455/456.3
Fecioru ....................... .. 718/103
&arnumber:1612917&isnumber:33861>, Apr. 3-5, 2006, 1 page. Jovanov, Emil, et al, A Wireless Body Area Network of Intelligent Motion Sensors for Computer Assisted Physical Rehabilitation, Journal of NeuroEngineering and Rehabilitation, Mar. 2005, 10
pages.
2008/0311929 A1*
2009/0017880 A1
2009/0031319 A1*
2009/0043531 2009/0047645 2009/0067826 2009/0088204 2009/0099668 2009/0124348 2009/0128448 2009/0174782 2009/0213002 2009/0215502 2009/0234614 2009/0274317 2009/0296951 2009/0319221 2010/0056872 2010/0057398
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
2/2009 2/ 2009 3/ 2009 4/2009 4/ 2009 5/2009 5/2009 7/2009 8/2009 9/2009 11/2009 12/2009 12/2009 3/2010
Kahn et al. Dibenedetto et al. Shinohara et a1. Culbert et a1. Lehman et al. Yoseloff et al. Riechel Kahn et al. Rani et a1. Kahn et al. Kahn et al. De Haan Kahn et al. Kahn et al.
Margaria, Rodolfo, Biomechanics and Energetics of Muscular Exercise, Chapter 3, Oxford: Clarendon Press 1976, pp. 105-125. Milenkovic, Milena, et al, An Accelerometer-Based Physical Reha
bilitation System, IEEE SouthEastern Symposium on System Theory, 2002, pp. 57-60. Mizell, David, Using Gravity to Estimate Accelerometer Orienta tion, Seventh IEEE International Symposium on Wearable Comput
ers, 2003, 2 pages.
Ormoneit, D, et al, Learning and Tracking of Cyclic Human Motion: Proceedings of NIPS 2000, Neural Information Processing Systems, 2000, Denver, CO, pp. 894-900.
Otto, Chris, et al, System Architecture of a Wireless Body Area Sensor Network for Ubiquitous Health Monitoring, Journal of Mobile Multimedia, vol. 1, No. 4, 2006, pp. 307-326. Park, Chulsung, et al, Eco: An Ultra-Compact Low-Power Wireless Sensor Node for Real-Time Motion Monitoring, IEEE Int. Symp. on Information Processing in Sensor Networks, 2005, pp. 398-403. Shen, Chien-Lung, et al, Wearable Band Using a Fabric-Based
Sensor for Exercise ECG Monitoring, IEEE Int. Symp. on Wearable
Ang, Wei Tech, et al, Zero Phase Filtering for Active Compensation
of Period Physiological Motion, Proc 1st IEEE / RAS-EMBS Inter
national Conference on Biomedical Robotics and Biomechatronics,
Navigation and Environmental Modeling with a Mobile Robot, IEEE, 1995, pp. 453-458. Weinberg, Harvey, MEMS Motion Sensors Boost Handset Reliabil
ity
Jun.
2006,
shttp://www.mwrf.com/Articles/Print.
Baca, Arnold, et al, Rapid Feedback Systems for Elite Sports Train ing, IEEE Pervasive Computing, Oct-Dec. 2006, pp. 70-76. Bakhru, Kesh, A Seamless Tracking Solution for Indoor and Out
door Position Location, IEEE 16th International Symposium on
Anderson, Ian, et al, Shakra: Tracking and Sharing Daily Activity Levels with Unaugmented Mobile Phones, Mobile Netw Appl, Aug.
3, 2007, pp. 185-199. Hemmes, Jeffrey, et al, Lessons Learned Building TeamTrak: An
Urban/Outdoor Mobile Testbed, 2007 IEEE Int. Conf. on Wireless
Analysis Logger Utilizing MEMS Accelerometers and Low Power Microcontroller, IEEE EMBS Special Topic Conference on Microtechnologies in Medicine and Biology, May 12-15, 2005, pp.
92-93.
Bourzac, Katherine Wearable Health Reports, Technology Review, Feb. 28, 2006, <http://www.techreview.com/printerifriendlyiar ticleiaspx?id+16431>, Mar. 22, 2007, 3 pages. Cheng, et al, Periodic Human Motion Description for Sports Video Databases, Proceedings of the Pattern Recognition, 2004, 8 pages. Dao, Ricardo, Inclination Sensing with Thermal Accelerometers, MEMSIC, May 2002, 3 pages.
Decrease Processor Power Consumption using a CoolRunner
tecture Laboratory, University of Michigan, Apr. 14, 2009, 25 pages. Lee, Seon-Woo, et al., Recognition of Walking Behaviors for Pedes trian Navigation, ATR Media Integration & Communications Research Laboratories, Kyoto, Japan, Sep. 5-7, 2001, pp. 1152-1155. Ricoh, Advanced digital technology changes creativity, <www. ricoh.com/ridc/gx/gx200/features2.html>, Accessed May 12, 2011,
4 pages.
CPLD, XILINX XAPP347 (v1.0), May 16, 2001, 9 pages. Fang, Lei, et al, Design of a Wireless Assisted Pedestrian Dead Reckoning SystemiThe NavMote Experience, IEEE Transactions
on Instrumentation and Measurement, vol. 54, No. 6, Dec. 2005, pp.
2342-2358.
2007, 4 pages.
sg/ABOUTMAE/DIVISIONS/RRCiBIOROBOTICS/Pages/rtim
age.aspx>, Mar. 23, 2009, 3 pages.
US 8,555,282 B1
Page 5
Wang, Shu, et a1, Location Based Services for Mobiles: Technolo
gies and Standards, LG Electronics MobileComm, IEEE ICC, 2008, Beijing, pp. 1-66 (part I of 3). Wang, Shu, et a1, Location Based Services for Mobiles: Technolo gies and Standards, LG Electronics MobileComm, IEEE ICC, 2008, Beijing, pp. 67-92 (part 2 of 3). Wang, Shu, et a1, Location Based Services for Mobiles: Technolo gies and Standards, LG Electronics MobileComm, IEEE ICC, 2008, Beijing, pp. 93-123 (part 3 of3).
Aug. 23-26, 2007, pp. 5271-5275. Zypad WL 1100 Wearable Computer, <WWW.eurotech.?/products/ manuals/Zypad%20WL%20ll00isf.pdf>, Jan. 16, 2008, 2 pgs.
* cited by examiner
US. Patent
0a. 8, 2013
Sheet 1 of6
US 8,555,282 B1
Server 1 30
Sensors
1 20
Network
140
lg/:32:
1 50
S
ensors
Scheduler
160
Mobi|e
Device
120
Integrated
Sensor 1 70
150
Fig. 1
US. Patent
Oct. 8, 2013
Sheet 2 0f 6
US 8,555,282 B1
Scheduler 160
Resii'srfe ID
210
Prioritizer
220
Ul
225
Future Task
Current Task
Application
Scheduler
260
Scheduler
250
Stop Logic
270
Motion Data
Motion Info
Active App.
Resource
Logic
230
Detector
240
Restrictor
280
Fig. 2
US. Patent
Oct. 8, 2013
Sheet 3 0f 6
US 8,555,282 B1
Log motion
data 310
Identify current
& future motion 315
Identify active
applications
320
there a con?ict?
a future task?
resources
330
available?
Identify con?icting
resource
350
Throttle lowest
priority app
365
Fig. 3
US. Patent
0a. 8, 2013
Sheet 4 of6
US 8,555,282 B1
Identify applications
410 Determine apps
needing real
time feedback 415
Any
such apps?
420
No Determine apps
with user
Set as highest
priority
422
interaction 425
Any
Set as next
such apps?
430
es
highest priority
432
No <
Determine
uninterruptible
apps 435
Any Set as next
such apps?
440
V
highest priority
442
( To Fig. 4B
Fig. 4A
US. Patent
0a. 8, 2013
Sheet 5 of6
US 8,555,282 B1
Determine apps
with periodic
reporting
445
Any
Set as next
such apps?
450
highest priority
452
Set remaining
apps as lowest
priority
455
Reprioritize within
resource con?icts category based on
between equals?
Provide priorities to
user and enable user
to change priorities
465
+
Save priority
settings
470
@
Fig. 48
US. Patent
0a. 8, 2013
Sheet 6 of6
US 8,555,282 B1
Resources Used
Game 1 Game 2
Phone
UI, storage bandwidth, RAM, non-volatile memory UI, storage bandwidth, RAM, network bandwidth
Network bandwidth
Download
Application
Ul, RAM
Fig. 5
US 8,555,282 B1
1
OPTIMIZING PREEMPTIVE OPERATING SYSTEM WITH MOTION SENSING FIELD OF THE INVENTION
2
loW latency in their execution in order to operate accurately. In particular, programs that receive and process the input from integrated or Wirelessly tethered sensors degrade rap idly in performance and accuracy as latency increases. Many of these sensor programs analyZe data in real time, sampling
a sensor from 1 to 300+HZ. In a preemptive operating system
The present invention relates to preemptive operating sys tems, and more particularly to scheduling in preemptive oper
ating systems.
BACKGROUND
transfer Will preempt the loWer priority task of real time data
analysis. If system bandWidth is limited, the loWer priority task may be halted entirely, signi?cantly degrading the pro
grams performance.
FIG. 1 is a netWork diagram illustrating a netWork in Which the present system may Work. The system includes a mobile device 110. The mobile device 110, in one embodiment,
receives data from one or more sensors 120, 170. The sensors
These preemptive operating systems have schedulers to pri oritiZe tasks. In prior implementations, these schedulers
based their decision on the priority of each application or
120, 170 may be coupled to the mobile device 110 via a Wireless connection 120 such as 802.11 WiFi, Bluetooth, etc or may be integrated in the mobile device 170. The integrated
20 sensors 170, in one embodiment include an inertial sensor.
The mobile device 110 can also retrieve data from a server 130 via netWork 140, or send data to a server 130 via netWork
140. The netWork may be the Internet, a cellular telephone netWork, or any other netWork. The mobile device 110 may be
25
A method and apparatus to provide a scheduler comprising receiving motion information from a mobile device, deter
mining a current use characteristic for the mobile device based on the motion information, and scheduling a task based
on the current use characteristic.
getting data from the netWork via various protocols including Wireless Access Protocol (WAP), HTTP, or other protocols.
The mobile device 110 may also obtain data from other another mobile device 150 either through a direct connection or through netWork. The scheduler 160 in mobile device 110 determines When the various tasks and communications
30
occur. This may include obtaining data from, and sending data to, servers 130, sensors 120, and other mobile devices
150, as Well as internal processes such as programs and tasks. FIG. 2 is a block diagram of one embodiment of the sched uler. The scheduler 160 in one embodiment is a softWare application Which runs on a mobile device. In another embodiment, the scheduler 160 may have a client and a server
The present invention is illustrated by Way of example, and not by Way of limitation, in the ?gures of the accompanying
draWings and in Which like reference numerals refer to similar elements and in Which: FIG. 1 is a netWork diagram illustrating a netWork in Which
35
Scheduler 160 includes a resource identi?cation list 210, Which includes a listing of one or more potential tasks and the
DETAILED DESCRIPTION
The method and apparatus described is for providing a preemptive operating system Which schedules tasks in a
mobile device. Prior art schedulers have had no aWareness as
utiliZes netWork bandWidth, storage bandWidth (memory bus), and storage. By contrast, a telephone call task only uses
50
to the motion that the device is experiencing and in particular What the users motion implies about the state of the device
and the likelihood of the user to perform certain actions With
55
priorities. For example, a task Which is observed by the user is a higher priority than a task Which is generally not observed by the user. A task Which provides semi-real-time feedback or other data processing is higher priority than a task Which
motion that a device is experiencing. The scheduler of the present invention in one embodiment
225 to prioritiZe tasks. In one embodiment, the system comes With a default set of priorities, Which may be edited or
Data communications may include pulling data from and pushing data to the netWork. While the scheduler improves the performance of all pro
grams on a mobile device, some programs require especially
received from a 3-dimensional accelerometer that is part of the device. Motion logic 230 determines a current motion, and based on an identi?ed activity of the user, determines
US 8,555,282 B1
3
expected future motion as Well. For example, if the user is Walking at a rapid cadence, it is likely that he or she Will
continue to Walk. If the user is playing a game, he or she is
4
future tasks. Future tasks are tasks either scheduled by the user to be executed in the future, or halted previously. If there
are no future tasks, the process returns to block 310 to con
application detector 240. In one embodiment, active applica tion detector detects When an application is active (i.e. being
used), even if there is no associated motion. For example, the
user may open an application such as a Web doWnload appli
mined based on the motion data and the active application data. In one embodiment, this is determined based on the
active app. detector 240 and motion logic 230. If the current task scheduler 250 determines that tWo appli
cations con?ict, it can in one embodiment, send a stop mes
sage to application stop logic 270. In one embodiment, cur rent task scheduler 250 also then sends the stopped task to future task scheduler 260. In one embodiment, current task
scheduler 250 may also utiliZe resource restrictor 280 to reduce available resources for loWer priority tasks. In one
20
priority. That is the ?rst query is for the highest priority future
task, then for the next highest priority, and so on. In one
embodiment, current task scheduler 250 uses prioritiZer data to determine Which application(s) to throttle. Resource restrictor 280 may be used to reduce the available
resources to one or more of the currently active applications. 25
may include netWork bandWidth, memory bandWidth, dis play, etc. At block 355, the loWest priority application Which uses
that resource is identi?ed. In one embodiment, the loWest priority resource may be one that is restartable, not vieWed or
embodiment, add tasks to a list of future tasks Which should be performed When there are resources available. For example, for a larger doWnload or upload project, the user may indicate that the project is a future task instead of
35
actively utiliZed by the user. For example, a backup applica tion may be the loWest priority application. At block 360, the process determines Whether throttling should be used. In one embodiment, throttling is alWays used When available. In one embodiment, throttling is only used if
the application is a non-interruptible application. In one embodiment, the user may set a preference for throttling. If throttling should be used, the process, at block 365 throttles the con?icting applications use of the con?icting
resource. The process then returns to block 325, to determine Whether there is still a con?ict.
scheduler 250 When the motion info logic 230 and active application detector 240 indicate that the time is good for performing that task. For example, When the device is not in motion, and there are no applications using netWork band Width, a upload or doWnload future task may be scheduled. In one embodiment, future task scheduler 260 passes tasks for data calls to the server for uploads, doWnloads, and synchro
niZation to the current task scheduler 250 When the device is idle. In one embodiment, the device is idle When no motion is detected. In one embodiment, the device is idle When no motion is detected and the user is not interacting With any
40
application.
In one embodiment, the system may have tasks that are interruptible (such as doWnloads) and tasks that are not inter ruptible (such as installation of applications). In one embodi
ment, future task scheduler 260 may also have as an input a clock. In one embodiment, the future task scheduler may take into account the likelihood of a user initiating a con?icting
50
to the future tasks list. In this Way, the system ensures that the task Will be performed at some future time. The process then returns to block 325, to determine Whether there is still a con?ict. In this Way, the system provides a methodto ensure that loW priority applications are throttled based on motion data, and potentially other data. Note that While this and other pro cesses are shoWn in ?oWchart form, the actual implementa
tion need not be sequential as described. Thus, for example, future tasks may also be monitoring the resource availability
55
task, prior to passing a non-interruptible task to the current task scheduler 250.
FIG. 3 is a ?owchart of one embodiment of scheduling. The process starts at block 305.
for tasks on the list. In one embodiment, con?icts may be tested for every time there is a change in state in the device, ie a neW application is started, a neW motion type is detected,
etc.
FIGS. 4A and 4B are a ?oWchart of one embodiment of in one embodiment in a buffer or similar temporary memory. 60 setting scheduling preferences. The process starts at block
At block 315, current motion is identi?ed, and future expected motions are identi?ed. At block 320, the active applications are identi?ed. At block 320, the process determines Whether there is a
con?ict betWeen the motions/ sensors and any current tasks. If there is no con?ict, the process continues to block 330. At block 330, the process determines Whether there are any
65
405. In one embodiment, this process is performed on the mobile device. I another embodiment, this process may be
performed on a remote server, and the results may be
At block 410, the applications on the mobile device are identi?ed. In one embodiment, this process is triggered each
US 8,555,282 B1
5
time a new application is added to the mobile device. In one
6
of it at all. In one embodiment, if the user loWers the priority of an application Which requires real-time feedback or has user interaction, the user is Warned of the risk of such a
reprioritization.
At block 470, the priorities are saved. The process then ends at block 475. In one embodiment, this process may be
invoked by the user at any time, may be automatically trig gered periodically, may be triggered Whenever a neW appli
cation is added to the mobile device, or may be started by
such applications. If so, at block 422, these applications receive the highest priority. The process then continues to
block 425. If there are no such applications, the process
another trigger.
In the foregoing speci?cation, the invention has been described With reference to speci?c exemplary embodiments thereof. It Will, hoWever, be evident that various modi?ca tions and changes may be made thereto Without departing
from the broader spirit and scope of the invention as set forth
continues directly to block 425. At block 425, the process identi?es any applications hav ing direct user interactions. Such applications may include
such applications. If so, at block 432, these applications receive the next highest priority. The process then continues
to block 435. If there are no such applications, the process
continues directly to block 435. At block 435, the process identi?es any non-interruptible
applications. Such applications may include softWare instal lation, games requiring periodic memory access, and other applications that cannot be terminated Without causing prob
lems. At block 440, the process determines Whether there are any
25
receiving active application data from the mobile device, the active application data identifying a currently active application, and resources used by the currently active application, the resources including netWork bandWidth,
storage bandWidth, memory, and sensor data;
determining a current use characteristic for the mobile device based on the motion information and the active
such applications. If so, at block 442, these applications receive the next highest priority. The process then continues
to block 445. If there are no such applications, the process
application data;
30
information; and
determining resources used by a task, the resources includ
ing one or more of:
continues directly to block 445. At block 445, the process identi?es any applications including periodic reporting. This includes sensors that have periodic updates, applications Which report out to the user,
applications such as email Which use periodic data pulls, etc. At block 450, the process determines Whether there are any
sors;
such applications. If so, at block 452, these applications receive the next highest priority. The process then continues
to block 455. If there are no such applications, the process
priority.
At block 460, the process determines Whether there is
2. The method of claim 1, further comprising: scheduling the task to be immediately executed. 3. The method of claim 1, further comprising: Wherein receiving the active application data from the mobile device, comprises receiving an indication that
there is no active application.
50
4. The method of claim 1, further comprising: determining a con?ict betWeen an existing operation and the task; and When the task is a higher priority than the existing opera tion, altering a use pro?le of the existing operation. 5. The method of claim 4, Wherein altering the use pro?le
comprises throttling one or more of the resources used by the
active application.
6. The method of claim 4, Wherein altering the use pro?le
egory. That is, the loWest priority application Within a cat egory is still a higher priority than the highest prioritization in
the next loWer category. In one embodiment, more frequently
55
used applications receive higher priority. In one embodiment, delay-sensitivity is used for prioritizing Within the category.
In one embodiment, this step is skipped entirely, and the user is prompted to make prioritization decisions. In one embodi ment, if tWo such applications are found in con?ict during
use, the one Which Was activated later is considered the higher
60
available again.
8. The method of claim 1, further comprising:
prioritizing tasks based on resource use and application
pro?le.
9. The method of claim 1, Wherein the task is a data call, and Wherein the data call task is scheduled When the motion information indicates that the device is idle. 10. The method of claim 9, Wherein the data call is for one or more of: uploading, doWnloading, and synchronizing data
With a server.
priority application.
At block 465, in one embodiment the priorities are pro vided to the user, and the user is permitted to make changes. In one embodiment, this only occurs if the user speci?cally requests it. Otherwise, the entire scheduling process is com pletely transparent to the user, and the user need not be aWare
65
US 8,555,282 B1
7
11. The method of claim 9, wherein the device is idle When
the device is motionless, and no user interaction With the
8
17. A mobile device comprising:
a motion information logic implemented in a processor to
device is occurring.
12. The method of claim 9, Wherein the device is idle When the device is motionless and no voice call is being made. 13. A mobile device comprising: a motion information logic implemented in a processor to
receive motion information from a sensor in a mobile device, and to determine a current use characteristic and
resources including: netWork bandWidth, storage band Width, memory, and sensor data; and
a scheduler to schedule tasks based on the current use, and
tion;
an active application detector to identify an active applica
tion, and one or more resources associated With the active application, the one or more resources including:
the current and expected future user activities, and resource requirements of the tasks.
cation, based on the current and the expected future user activities.
14. The mobile device of claim 13, further comprising: the scheduler scheduling the task to be immediately executed. 15. The mobile device of claim 13, further comprising:
a prioritizer determining a con?ict betWeen an existing
the scheduler to determine a category of the current use and the task, and to order the current use and the tasks based on the category.
20. The mobile device of claim 19, further comprising: the scheduler prioritizing tasks Within each category, to
order the current use and the tasks Within each category.
25
21. The mobile device of claim 17, further comprising: the scheduler prioritizing a frequently used application above a
available to the existing operation. 16. The mobile device of claim 13, further comprising:
the scheduler scheduling a task When the mobile device is idle, Wherein the mobile device is idle When the mobile device is motionless and no voice call is being made.