Patents by Inventor Jeffrey C. Fuller
Jeffrey C. Fuller 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: 10038616Abstract: Embodiments relate to classifying network streams and regulating behavior of the streams based on their respective classes. One technique for managing streams involves analyzing applications, obtaining indicia of features of the applications, and using those features to infer classes to which streams of the applications may be assigned. Another technique involves deploying beacon nodes at the edge of a network. The beacon nodes inform a stream manager about network conditions such as latencies with regard to network boundaries or regions. Another embodiment for facilitating management of streams involves a subscription service for UDP applications. A UDP application may subscribe to the service, which may be provided by an operating system hosting the application. Events are published to any subscribed UDP applications to inform the UDP applications of changes in networking conditions. The UDP applications, in turn, may adapt their internal transmission control logic.Type: GrantFiled: September 25, 2014Date of Patent: July 31, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Ahmed Talat, Vibhor Bhatt, Jeff Sinnemaki, Alexei Aleksenko, Ilia Sacson, Jeffrey C. Fuller, Milena Salman, Madhusudhan Ravi, Mohammed Karam, Neel Jain
-
Patent number: 9674099Abstract: An operating system implements classes of network streams. Applications assign their network streams to the classes. The operating system, in turn, regulates the streams according to which classes the streams are in. As conditions change, network resources may be made available or more fully utilized by regulating streams according to which classes they have been assigned to. Network resources may be made available, perhaps rapidly or preemptively, for streams in higher priority classes by restricting streams in lower priority classes.Type: GrantFiled: September 25, 2014Date of Patent: June 6, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Ahmed Talat, Vibhor Bhatt, Jeff Sinnemaki, Alexei Aleksenko, Ilia Sacson, Jeffrey C. Fuller, Milena Salman, Madhusudhan Ravi, Mohammed Karam, Neel Jain
-
Publication number: 20160094427Abstract: Embodiments relate to classifying network streams and regulating behavior of the streams based on their respective classes. One technique for managing streams involves analyzing applications, obtaining indicia of features of the applications, and using those features to infer classes to which streams of the applications may be assigned. Another technique involves deploying beacon nodes at the edge of a network. The beacon nodes inform a stream manager about network conditions such as latencies with regard to network boundaries or regions. Another embodiment for facilitating management of streams involves a subscription service for UDP applications. A UDP application may subscribe to the service, which may be provided by an operating system hosting the application. Events are published to any subscribed UDP applications to inform the UDP applications of changes in networking conditions. The UDP applications, in turn, may adapt their internal transmission control logic.Type: ApplicationFiled: September 25, 2014Publication date: March 31, 2016Inventors: Ahmed Talat, Vibhor Bhatt, Jeff Sinnemaki, Alexei Aleksenko, Ilia Sacson, Jeffrey C. Fuller, Milena Salman, Madhusudhan Ravi, Mohammed Karam, Neel Jain
-
Publication number: 20160094464Abstract: An operating system implements classes of network streams. Applications assign their network streams to the classes. The operating system, in turn, regulates the streams according to which classes the streams are in. As conditions change, network resources may be made available or more fully utilized by regulating streams according to which classes they have been assigned to. Network resources may be made available, perhaps rapidly or preemptively, for streams in higher priority classes by restricting streams in lower priority classes.Type: ApplicationFiled: September 25, 2014Publication date: March 31, 2016Inventors: Ahmed Talat, Vibhor Bhatt, Jeff Sinnemaki, Alexei Aleksenko, Ilia Sacson, Jeffrey C. Fuller, Milena Salman, Madhusudhan Ravi, Mohammed Karam, Neel Jain
-
Patent number: 8966000Abstract: A method and system for managing remote file system requests between client and server redirectors where a set of data request packets may be aggregated and/or ordered at a server based on hint information from a client.Type: GrantFiled: June 22, 2007Date of Patent: February 24, 2015Assignee: Microsoft CorporationInventors: Ramanathan Ganapathy, Thomas J. Ootjers, Mathew George, David Kruse, Jeffrey C. Fuller
-
Patent number: 8863022Abstract: Two different process management views can be displayed, and a user can request to switch between the two views. The user can select a process in either view and have the selected process terminated. One view is a simplified view that identifies processes and whether they are non-responsive. The other view is an expanded view that identifies processes and the amount of various system resources used by each of those processes. Various additional information can be displayed in the expanded view, such as identifiers of various windows, tabs, and/or services associated with each of the processes.Type: GrantFiled: September 7, 2011Date of Patent: October 14, 2014Assignee: Microsoft CorporationInventors: Christina L. Rhodes, Mark Yalovsky, Rolf A. Ebeling, John Corey Morgan, Shawn M. Woods, Ryan M. Hurst, Jonathan M. Au, Peter Seraphim Ponomarev, Jason C. Hendrickson, Hemchand Alla, Yau N. Chin, Stuart Sechrest, Mehmet Iyigun, Yevgeniy Bak, Ishfaq M. Ismail, Jeffrey C. Fuller, Prashant Ratanchandani
-
Patent number: 8812817Abstract: A cache controller in a computer system is configured to manage a cache such that the use of bus bandwidth is reduced. The cache controller receives commands from a processor. In response, a cache mapping maintaining information for each block in the cache is modified. The cache mapping may include an address, a dirty bit, a zero bit, and a priority for each cache block. The address indicates an address in main memory for which the cache block caches data. The dirty bit indicates whether the data in the cache block is consistent with data in main memory at the address. The zero bit indicates whether data at the address should be read as a default value, and the priority specifies a priority for evicting the cache block. By manipulating this mapping information, commands such as move, copy swap, zero, deprioritize and deactivate may be implemented.Type: GrantFiled: June 28, 2013Date of Patent: August 19, 2014Assignee: Microsoft CorporationInventors: Jeffrey C. Fuller, Thomas J. Ootjers, Bruce L. Worthington
-
Publication number: 20130346692Abstract: A cache controller in a computer system is configured to manage a cache such that the use of bus bandwidth is reduced. The cache controller receives commands from a processor. In response, a cache mapping maintaining information for each block in the cache is modified. The cache mapping may include an address, a dirty bit, a zero bit, and a priority for each cache block. The address indicates an address in main memory for which the cache block caches data. The dirty bit indicates whether the data in the cache block is consistent with data in main memory at the address. The zero bit indicates whether data at the address should be read as a default value, and the priority specifies a priority for evicting the cache block. By manipulating this mapping information, commands such as move, copy swap, zero, deprioritize and deactivate may be implemented.Type: ApplicationFiled: June 28, 2013Publication date: December 26, 2013Inventors: Jeffrey C. Fuller, Thomas J. Ootjers, Bruce L. Worthington
-
Patent number: 8495299Abstract: A cache controller in a computer system is configured to manage a cache. The cache controller receives commands from a processor. In response, a cache mapping maintaining information for each block in the cache is modified. The cache mapping may include an address, a dirty bit, a zero bit, and a priority for each cache block. The address indicates an address in main memory for which the cache block caches data. The dirty bit indicates whether the data in the cache block is consistent with data in main memory at the address. The zero bit indicates whether data at the address should be read as a default value, and the priority specifies a priority for evicting the cache block. By manipulating this mapping information, commands such as move, copy swap, zero, deprioritize and deactivate may be implemented.Type: GrantFiled: November 16, 2009Date of Patent: July 23, 2013Assignee: Microsoft CorporationInventors: Jeffrey C. Fuller, Bruce L. Worthington, Thomas J. Ootjers
-
Publication number: 20130061167Abstract: Two different process management views can be displayed, and a user can request to switch between the two views. The user can select a process in either view and have the selected process terminated. One view is a simplified view that identifies processes and whether they are non-responsive. The other view is an expanded view that identifies processes and the amount of various system resources used by each of those processes. Various additional information can be displayed in the expanded view, such as identifiers of various windows, tabs, and/or services associated with each of the processes.Type: ApplicationFiled: September 7, 2011Publication date: March 7, 2013Applicant: Microsoft CorporationInventors: Christina L. Rhodes, Mark Yalovsky, Rolf A. Ebeling, John Corey Morgan, Shawn M. Woods, Ryan M. Hurst, Jonathan M. Au, Peter Seraphim Ponomarev, Jason C. Hendrickson, Hemchand Alla, Yau N. Chin, Stuart Sechrest, Mehmet Iyigun, Yevgeniy Bak, Ishfaq M. Ismail, Jeffrey C. Fuller, Prashant Ratanchandani
-
Patent number: 8370456Abstract: A system and method for pre-fetching data uses a combination of heuristics to determine likely next data retrieval operations and an evaluation of available resources for executing speculative data operations. When local resources, such as cache memory for storing speculative command results is not available, the compound operation request may not be sent. When resources on a server-side system are insufficient, only the primary command of a compound operation request may be processed and speculative command requests may be rejected. Both local computing resources and network resources may be evaluated when determining whether to build or process a compound operations request.Type: GrantFiled: September 22, 2006Date of Patent: February 5, 2013Assignee: Microsoft CorporationInventors: Ramanathan Ganapathy, Jeffrey C. Fuller, Mathew George, David Kruse
-
Publication number: 20110119451Abstract: A cache controller in a computer system is configured to manage a cache such that the use of bus bandwidth is reduced. The cache controller receives commands from a processor. In response, a cache mapping maintaining information for each block in the cache is modified. The cache mapping may include an address, a dirty bit, a zero bit, and a priority for each cache block. The address indicates an address in main memory for which the cache block caches data. The dirty bit indicates whether the data in the cache block is consistent with data in main memory at the address. The zero bit indicates whether data at the address should be read as a default value, and the priority specifies a priority for evicting the cache block. By manipulating this mapping information, commands such as move, copy swap, zero, deprioritize and deactivate may be implemented.Type: ApplicationFiled: November 16, 2009Publication date: May 19, 2011Applicant: Microsoft CorporationInventors: Jeffrey C. Fuller, Thomas J. Ootjers, Bruce L. Worthington
-
Patent number: 7872975Abstract: A method of metering bandwidth allocation on a server using credits is disclosed. The method may receive a request for data from a client, respond to the request for data and determining if the request for data for the client exceeds a current data allocation credit limit for the client. Using the round trip time, the method may calculate a connection throughput for a client and may increase the current data allocation credit limit for the client if the server has resources to spare, the client is actively using the current pipeline depth allowed and network connection latency and bandwidth indicate a deeper pipeline is necessary for saturation. The method may decrease the current data allocation credit limit for the client if the server does not have resources to spare.Type: GrantFiled: March 26, 2007Date of Patent: January 18, 2011Assignee: Microsoft CorporationInventors: David Kruse, Ramanathan Ganapathy, Jeffrey C. Fuller, Mathew George
-
Patent number: 7690003Abstract: A system and method for delivering data from a device driver to an application increases the usage of synchronous processing (fast I/O mode) of data requests from the application by utilizing thread scheduling to enhance the likelihood that the requested data are available for immediate delivery to the application. If the amount of data in a data queue for storing data ready for delivery is low, the thread scheduling of the system is modified to promote the thread of the device driver to give it the opportunity to place more data in the data queue for consumption by the application. The promotion of the thread of the device driver may be done by switching from the application thread to another thread (not necessarily the device driver thread), boosting the device driver's priority, and/or lowering the priority of the application, etc.Type: GrantFiled: August 29, 2003Date of Patent: March 30, 2010Inventor: Jeffrey C. Fuller
-
Publication number: 20090327303Abstract: A solution provides an efficient process for a user to complete operations within a file server system. A user's future requests, such as reading or writing files, are predicted based on previous operations. An effective amount of a file server's resources are allocated to accommodate the predicted future requests, thereby reducing the amount of required system time for performing operations corresponding to a file server memory.Type: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: TOM OOTJERS, JEFFREY C. FULLER, RAMANATHAN GANAPATHY, DAVID M. KRUSE
-
Patent number: 7496928Abstract: A system and method uses a heuristic approach to manage the boosting of thread priorities after I/O completion to improve system performance. Upon detection of the completion of an I/O operation in response to a request, the system thread does not automatically boost the priority of the thread that made the I/O request by a fixed amount. Instead, the system thread determines whether to boost the requesting thread's priority by applying heuristic criteria based on the I/O operation status, such as whether the system thread has additional I/O requests to process, how many I/O request packets have been completed in the current thread context without a priority boost to the requesting thread, and the time that has passed since the last boosted I/O completion.Type: GrantFiled: August 28, 2003Date of Patent: February 24, 2009Assignee: Microsoft CorporationInventor: Jeffrey C. Fuller
-
Publication number: 20080320155Abstract: A method and system for managing remote file system requests between client and server redirectors where a set of data request packets may be aggregated and/or ordered at a server based on hint information from a client.Type: ApplicationFiled: June 22, 2007Publication date: December 25, 2008Applicant: MICROSOFT CORPORATIONInventors: Ramanathan Ganapathy, Thomas J. Ootjers, Mathew George, David Kruse, Jeffrey C. Fuller
-
Publication number: 20080240144Abstract: A method of metering bandwidth allocation on a server using credits is disclosed. The method may receive a request for data from a client, respond to the request for data and determining if the request for data for the client exceeds a current data allocation credit limit for the client. Using the round trip time, the method may calculate a connection throughput for a client and may increase the current data allocation credit limit for the client if the server has resources to spare, the client is actively using the current pipeline depth allowed and network connection latency and bandwidth indicate a deeper pipeline is necessary for saturation. The method may decrease the current data allocation credit limit for the client if the server does not have resources to spare.Type: ApplicationFiled: March 26, 2007Publication date: October 2, 2008Applicant: MICROSOFT CORPORATIONInventors: David Kruse, Ramanathan Ganapathy, Jeffrey C. Fuller, Mathew George
-
Publication number: 20080077655Abstract: A system and method for pre-fetching data uses a combination of heuristics to determine likely next data retrieval operations and an evaluation of available resources for executing speculative data operations. When local resources, such as cache memory for storing speculative command results is not available, the compound operation request may not be sent. When resources on a server-side system are insufficient, only the primary command of a compound operation request may be processed and speculative command requests may be rejected. Both local computing resources and network resources may be evaluated when determining whether to build or process a compound operations request.Type: ApplicationFiled: September 22, 2006Publication date: March 27, 2008Applicant: MICROSOFT CORPORATIONInventors: Ramanathan Ganapathy, Jeffrey C. Fuller, Mathew George, David M. Kruse