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: 9400677Abstract: 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: GrantFiled: May 14, 2013Date of Patent: July 26, 2016Assignee: Apple Inc.Inventors: Benjamin C. Trumbull, Adam C. Swift, Russell A. Blaine, Benjamin H. Nham, Kari E. Christianson
-
Patent number: 9348645Abstract: 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: GrantFiled: December 19, 2014Date of Patent: May 24, 2016Assignee: 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: 9286120Abstract: 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: GrantFiled: August 30, 2012Date of Patent: March 15, 2016Assignee: Apple Inc.Inventors: James M. Magee, Russell A. Blaine, Umesh S. Vaishampayan
-
Publication number: 20150347192Abstract: 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: ApplicationFiled: May 29, 2014Publication date: December 3, 2015Applicant: Apple Inc.Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
-
Publication number: 20150347262Abstract: 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: ApplicationFiled: May 30, 2014Publication date: December 3, 2015Applicant: Apple Inc.Inventors: Amit K. Vyas, Albert S. Liu, Anand Ramadurai, Drew A. Schmitt, Russell A. Blaine, Karen Crippes
-
Publication number: 20150347189Abstract: 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: ApplicationFiled: May 30, 2014Publication date: December 3, 2015Applicant: 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: 20150347177Abstract: 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: ApplicationFiled: December 19, 2014Publication date: December 3, 2015Inventors: James Michael Magee, Russell A. Blaine, Daniel A. Chimene, James McIlree, Vishal Patel, Daniel Andreas Steffen, Kevin James Van Vechten
-
Publication number: 20150347178Abstract: 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: ApplicationFiled: December 19, 2014Publication date: December 3, 2015Inventors: James Michael Magee, Russell A. Blaine, Daniel Allen Chimene, Vishal Patel, Shantonu Sen
-
Publication number: 20150347327Abstract: 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: ApplicationFiled: May 30, 2014Publication date: December 3, 2015Applicant: Apple Inc.Inventors: Russell A. BLAINE, Kushal DALMIA, Joseph SOKOL, JR., Andrew W. VOGAN, Matthew J. BYOM
-
Publication number: 20150347743Abstract: 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: ApplicationFiled: December 19, 2014Publication date: December 3, 2015Inventors: 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: 9158661Abstract: 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: GrantFiled: September 14, 2012Date of Patent: October 13, 2015Assignee: Apple Inc.Inventors: Russell A. Blaine, Matthew Byom, Kevin Rathbun Walker, Daniel S. Heller, Shantonu Sen
-
Patent number: 8930324Abstract: 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: GrantFiled: September 15, 2012Date of Patent: January 6, 2015Inventors: Russell A. Blaine, Timothy P. Marsland, Benjamin H. Nham, Adam C. Swift, Benjamin C. Trumbull, Umesh S. Vaishampayan
-
Patent number: 8875159Abstract: 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: GrantFiled: December 12, 2006Date of Patent: October 28, 2014Assignee: Oracle America, Inc.Inventors: Nils A. Nieuwejaar, Eric N. Schrock, William J. Kucharski, Russell A. Blaine, Edward K. Pilatowicz, Adam H. Leventhal
-
Publication number: 20140297700Abstract: 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: ApplicationFiled: March 28, 2014Publication date: October 2, 2014Applicant: GOOGLE INC.Inventors: Alain Vongsouvanh, Russell Blaine Jorgensen, Robert Eugene Wyrick, Justin Lee Hicks, Stephen Nowland Clark
-
Publication number: 20140189693Abstract: 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: ApplicationFiled: May 14, 2013Publication date: July 3, 2014Applicant: Apple Inc.Inventors: Benjamin C. Trumbull, Adam C. Swift, Russell A. Blaine, Benjamin H. Nham, Kari E. Christianson
-
Publication number: 20130339313Abstract: 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: ApplicationFiled: September 15, 2012Publication date: December 19, 2013Applicant: Apple Inc.Inventors: Russell A. BLAINE, Timothy P. Marsland, Benjamin H. Nham, Adam C. Swift, Benjamin C. Trumbull, Umesh S. Vaishampayan
-
Publication number: 20130332936Abstract: 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: ApplicationFiled: August 30, 2012Publication date: December 12, 2013Inventors: James M. Magee, Russell A. Blaine, Umesh S. Vaishampayan
-
Publication number: 20130212425Abstract: 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: ApplicationFiled: September 14, 2012Publication date: August 15, 2013Inventors: Russell A. Blaine, Matthew Byom, Kevi Rathbun Walker, Daniel S. Heller, Shantonu Sen
-
Patent number: 7689566Abstract: 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: GrantFiled: December 12, 2006Date of Patent: March 30, 2010Assignee: Sun Microsystems, Inc.Inventors: Nils A. Nieuwejaar, Eric N. Schrock, William J. Kucharski, Russell A. Blaine, Edward K. Pilatowicz, Adam H. Leventhal