Patents by Inventor Russell A. Blaine

Russell A. Blaine has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9400677
    Abstract: An operating system of a data processing system receives a request from a first process to acquire an exclusive lock for accessing a resource of the data processing system. A second priority of a second process is increased to reduce total execution time. The second process is currently in possession of the exclusive lock for performing a transactional operation with the resource. The second priority was lower than a first priority of the first process. The operating system notifies the second process to indicate that another process is waiting for the exclusive lock to allow the second process to complete or roll back the transactional operation and to release the exclusive lock thereafter.
    Type: Grant
    Filed: May 14, 2013
    Date of Patent: July 26, 2016
    Assignee: Apple Inc.
    Inventors: Benjamin C. Trumbull, Adam C. Swift, Russell A. Blaine, Benjamin H. Nham, Kari E. Christianson
  • Patent number: 9348645
    Abstract: A method and an apparatus for priority donations among different processes are described. A first process running with a first priority may receive a request from a second process running with a second priority to perform a data processing task for the second process. A dependency relationship may be identified between the first process and a third process running with a third priority performing separate data processing task. The dependency relationship may indicate that the data processing task is to be performed via the first process subsequent to completion of the separate data processing task via the third process. The third process may be updated with the second priority to complete the separate data processing task. The first process may perform the data processing task with the second priority for the second process.
    Type: Grant
    Filed: December 19, 2014
    Date of Patent: May 24, 2016
    Assignee: Apple Inc.
    Inventors: James Michael Magee, Russell A. Blaine, Daniel A. Chimene, James McIlree, Vishal Patel, Daniel Andreas Steffen, Kevin James Van Vechten
  • Patent number: 9286120
    Abstract: A method for resource management of a data processing system is described. According to one embodiment, a request is received via a programming interface from a program to modify a resource budget assigned to the program, where the resource budget specifies an amount of resources of the data processing system the program can utilize during an execution of the program. It is determined whether the program is entitled to modify the resource budget based on entitlement associated with the program. The resource budget for the program is modified if it is determined the program is entitled to modify the resource budget and the modified resource budget is enforced against the program during the execution of the program.
    Type: Grant
    Filed: August 30, 2012
    Date of Patent: March 15, 2016
    Assignee: Apple Inc.
    Inventors: James M. Magee, Russell A. Blaine, Umesh S. Vaishampayan
  • Publication number: 20150347192
    Abstract: Techniques for scheduling threads for execution in a data processing system are described herein. According to one embodiment, in response to a request for executing a thread, a scheduler of an operating system of the data processing system accesses a global run queue to identify a global run entry associated with the highest process priority. The global run queue includes multiple global run entries, each corresponding to one of a plurality of process priorities. A group run queue is identified based on the global run entry, where the group run queue includes multiple threads associated with one of the processes. The scheduler dispatches one of the threads that has the highest thread priority amongst the threads in the group run queue to one of the processor cores of the data processing system for execution.
    Type: Application
    Filed: May 29, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
  • Publication number: 20150347262
    Abstract: A method and apparatus of a device for performance management by terminating application programs that consume an excessive amount of system resources is described. The device receives a resource consumption threshold and a detection period. The device further monitors a resource usage of an application program. The device determines whether the resource usage of the application program exceeds the resource consumption threshold for the detection period. The device further terminates the application program when the resource usage exceeds the resource consumption threshold for the detection period.
    Type: Application
    Filed: May 30, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: Amit K. Vyas, Albert S. Liu, Anand Ramadurai, Drew A. Schmitt, Russell A. Blaine, Karen Crippes
  • Publication number: 20150347189
    Abstract: In one embodiment, tasks executing on a data processing system can be associated with a Quality of Service (QoS) classification that is used to determine the priority values for multiple subsystems of the data processing system. The QoS classifications are propagated when tasks interact and the QoS classes are interpreted a multiple levels of the system to determine the priority values to set for the tasks. In one embodiment, one or more sensors coupled with the data processing system monitor a set of system conditions that are used in part to determine the priority values to set for a QoS class.
    Type: Application
    Filed: May 30, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: DANIEL A. STEFFEN, Matthew W. Wright, Russell A. Blaine, JR., Daniel A. Chimene, Kevin J. Van Vechten, Thomas B. Duffy
  • Publication number: 20150347177
    Abstract: A method and an apparatus for priority donations among different processes are described. A first process running with a first priority may receive a request from a second process running with a second priority to perform a data processing task for the second process. A dependency relationship may be identified between the first process and a third process running with a third priority performing separate data processing task. The dependency relationship may indicate that the data processing task is to be performed via the first process subsequent to completion of the separate data processing task via the third process. The third process may be updated with the second priority to complete the separate data processing task. The first process may perform the data processing task with the second priority for the second process.
    Type: Application
    Filed: December 19, 2014
    Publication date: December 3, 2015
    Inventors: James Michael Magee, Russell A. Blaine, Daniel A. Chimene, James McIlree, Vishal Patel, Daniel Andreas Steffen, Kevin James Van Vechten
  • Publication number: 20150347178
    Abstract: A method and an apparatus for activity based execution scheduling are described. Activities may be tracked among a plurality of threads belonging to a plurality of processes running in one or more processors. Each thread may be associated with one of the activities. Each activity may be associated with one or more of the threads in one or more of the processes for a data processing task. The activities may be ordered by a priority order. A group of the threads may be identified to be associated with a particular one of the activities with highest priority based on the priority order. A thread may be selected from the identified threads for next scheduled execution in the processors.
    Type: Application
    Filed: December 19, 2014
    Publication date: December 3, 2015
    Inventors: James Michael Magee, Russell A. Blaine, Daniel Allen Chimene, Vishal Patel, Shantonu Sen
  • Publication number: 20150347327
    Abstract: In one embodiment, input-output (I/O) scheduling system detects and resolves priority inversions by expediting previously dispatched requests to an I/O subsystem. In response to detecting the priority inversion, the system can transmit a command to expedite completion of the blocking I/O request. The pending request can be located within the I/O subsystem and expedited to reduce the pendency period of the request.
    Type: Application
    Filed: May 30, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: Russell A. BLAINE, Kushal DALMIA, Joseph SOKOL, JR., Andrew W. VOGAN, Matthew J. BYOM
  • Publication number: 20150347743
    Abstract: A method and an apparatus to dynamically distribute privileges among a plurality of processes are described. Each process may have attributes including a privilege to control access to processing resources. A first process may be running with a first privilege prohibited from access to a processing resource. A second process may be running with a second privilege allowed to access the processing resource. The first process may receive a request from the second process to perform a data processing task for the second process. In response, the second privilege may be dynamically transferred to the first process to allow the first process to access the processing resource. The first process may perform operations for the data processing task with the second privilege transferred from the second process.
    Type: Application
    Filed: December 19, 2014
    Publication date: December 3, 2015
    Inventors: James Michael Magee, Russell A. Blaine, Vishal Patel, Daniel Andreas Steffen, Kevin James Van Vechten, Jacques Anthony Vidrine, Kelly B. Yancey, Jainam A. Shah
  • Patent number: 9158661
    Abstract: Methods, machine-readable tangible storage media, and data processing systems that enable a debug host device to acquire memory dump information from a debug target device after the target device suffers an unrecoverable system malfunction are disclosed. In one embodiment, data in the volatile memory on a debug target device is accessed via a hardware integrated debug framework, which is also used to access data on a nonvolatile electronically erasable semiconductor memory of a debug target device, and one or more registers of one or more processors on a debug target device, and a core dump is created on the debug host device.
    Type: Grant
    Filed: September 14, 2012
    Date of Patent: October 13, 2015
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Matthew Byom, Kevin Rathbun Walker, Daniel S. Heller, Shantonu Sen
  • Patent number: 8930324
    Abstract: Guarded file access operations are provided for creating and using guarded file descriptors, which can detect and prevent erroneous file access operations in computer programs. A file descriptor can be associated with a guard identifier to create a guarded file descriptor. The association can be established when the file is opened, and can be maintained independently of the computer program, which ordinarily maintains its own association between files, file descriptors, and guard identifiers. Subsequent file operations using the guarded file descriptor check that the guard identifier previously associated with that file descriptor is presented, and generate errors without performing the requested file operations if the correct guard identifier is not presented. This check serves as a validation of the computer program's use of file descriptors. An error and stack trace can be generated for use in analyzing a cause of the guard violation.
    Type: Grant
    Filed: September 15, 2012
    Date of Patent: January 6, 2015
    Inventors: Russell A. Blaine, Timothy P. Marsland, Benjamin H. Nham, Adam C. Swift, Benjamin C. Trumbull, Umesh S. Vaishampayan
  • Patent number: 8875159
    Abstract: Methods and systems for defining the partitioning between operating system environments are provided. In this method, network resources, devices, and pseudo-filesystems, etc. can be partitioned. This method provides the capability to support services from native and foreign operating environments without colliding on fixed resources. This method simplifies the task of supporting multiple different operating environments. By assigning each operating environment to its own zone, multiple instances of a single operating environment or multiple different operating environments can be simultaneously supported on a single operating system kernel.
    Type: Grant
    Filed: December 12, 2006
    Date of Patent: October 28, 2014
    Assignee: Oracle America, Inc.
    Inventors: Nils A. Nieuwejaar, Eric N. Schrock, William J. Kucharski, Russell A. Blaine, Edward K. Pilatowicz, Adam H. Leventhal
  • Publication number: 20140297700
    Abstract: A cloud storage system identifies and creates metadata associated with a stored file. On receiving a request to access the file with an application, the cloud storage system generates a metadata category associated only with the application, and creates metadata associated with the generated metadata category and corresponding to the file. On receiving a request to access file metadata, the cloud storage system identifies an application associated with the metadata access request, identifies a set of metadata categories associated with the identified application, filters metadata associated with the file based on the identified set of metadata categories, and provides the filtered metadata to the application.
    Type: Application
    Filed: March 28, 2014
    Publication date: October 2, 2014
    Applicant: GOOGLE INC.
    Inventors: Alain Vongsouvanh, Russell Blaine Jorgensen, Robert Eugene Wyrick, Justin Lee Hicks, Stephen Nowland Clark
  • Publication number: 20140189693
    Abstract: An operating system of a data processing system receives a request from a first process to acquire an exclusive lock for accessing a resource of the data processing system. A second priority of a second process is increased to reduce total execution time. The second process is currently in possession of the exclusive lock for performing a transactional operation with the resource. The second priority was lower than a first priority of the first process. The operating system notifies the second process to indicate that another process is waiting for the exclusive lock to allow the second process to complete or roll back the transactional operation and to release the exclusive lock thereafter.
    Type: Application
    Filed: May 14, 2013
    Publication date: July 3, 2014
    Applicant: Apple Inc.
    Inventors: Benjamin C. Trumbull, Adam C. Swift, Russell A. Blaine, Benjamin H. Nham, Kari E. Christianson
  • Publication number: 20130339313
    Abstract: Guarded file access operations are provided for creating and using guarded file descriptors, which can detect and prevent erroneous file access operations in computer programs. A file descriptor can be associated with a guard identifier to create a guarded file descriptor. The association can be established when the file is opened, and can be maintained independently of the computer program, which ordinarily maintains its own association between files, file descriptors, and guard identifiers. Subsequent file operations using the guarded file descriptor check that the guard identifier previously associated with that file descriptor is presented, and generate errors without performing the requested file operations if the correct guard identifier is not presented. This check serves as a validation of the computer program's use of file descriptors. An error and stack trace can be generated for use in analyzing a cause of the guard violation.
    Type: Application
    Filed: September 15, 2012
    Publication date: December 19, 2013
    Applicant: Apple Inc.
    Inventors: Russell A. BLAINE, Timothy P. Marsland, Benjamin H. Nham, Adam C. Swift, Benjamin C. Trumbull, Umesh S. Vaishampayan
  • Publication number: 20130332936
    Abstract: A method for resource management of a data processing system is described. According to one embodiment, a request is received via a programming interface from a program to modify a resource budget assigned to the program, where the resource budget specifies an amount of resources of the data processing system the program can utilize during an execution of the program. It is determined whether the program is entitled to modify the resource budget based on entitlement associated with the program. The resource budget for the program is modified if it is determined the program is entitled to modify the resource budget and the modified resource budget is enforced against the program during the execution of the program.
    Type: Application
    Filed: August 30, 2012
    Publication date: December 12, 2013
    Inventors: James M. Magee, Russell A. Blaine, Umesh S. Vaishampayan
  • Publication number: 20130212425
    Abstract: Methods, machine-readable tangible storage media, and data processing systems that enable a debug host device to acquire memory dump information from a debug target device after the target device suffers an unrecoverable system malfunction are disclosed. In one embodiment, data in the volatile memory on a debug target device is accessed via a hardware integrated debug framework, which is also used to access data on a nonvolatile electronically erasable semiconductor memory of a debug target device, and one or more registers of one or more processors on a debug target device, and a core dump is created on the debug host device.
    Type: Application
    Filed: September 14, 2012
    Publication date: August 15, 2013
    Inventors: Russell A. Blaine, Matthew Byom, Kevi Rathbun Walker, Daniel S. Heller, Shantonu Sen
  • Patent number: 7689566
    Abstract: Methods and systems for defining the partitioning between operating system environments are provided. In this method, network resources, devices, and pseudo-filesystems, etc. can be partitioned. This method provides the capability to support services from native and foreign operating environments without colliding on fixed resources. This method simplifies the task of supporting multiple different operating environments. By assigning each operating environment to its own zone, multiple instances of a single operating environment or multiple different operating environments can be simultaneously supported on a single operating system kernel.
    Type: Grant
    Filed: December 12, 2006
    Date of Patent: March 30, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Nils A. Nieuwejaar, Eric N. Schrock, William J. Kucharski, Russell A. Blaine, Edward K. Pilatowicz, Adam H. Leventhal