Patents by Inventor Alessandro Forin

Alessandro Forin 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: 6728963
    Abstract: The invention is directed toward a loadable interprocess communication manager and generally to a computer operating system capable of supporting plural threads running in a computer having a working memory, the computer operating system including a kernel resident in the working memory at link time and a loadable interprocess communication manager resident at link time outside of the working memory and dynamically loadable into the working memory at run time upon request by one of the threads in one address space to communicate with an other thread in an other address space. The kernel includes a loader for loading the interprocess communication manager into the working memory in response to the request by the one thread. The computer further includes a storage memory separate from the working memory, the loadable interprocess communication manager residing at link time in the storage memory. The loader loads the interprocess communication manager from the storage memory to the working memory.
    Type: Grant
    Filed: March 31, 1999
    Date of Patent: April 27, 2004
    Assignee: Microsoft Corporation
    Inventors: Alessandro Forin, Johannes V. Helander
  • Patent number: 6708223
    Abstract: A method for improving the performance of a distributed object model over a network is disclosed. A client computer contains a client object which can call an interface on a server object located on a server computer. On the server side, the RPC dispatching layer is circumvented by providing a pointer into the DCOM dispatching layer directly from the RPC utility layer. The client can therefore specify an interface using only an interface pointer identifier, and need not also specify a RPC interface identifier. The DCOM dispatching can then call the appropriate stub for the interface specified by the client with the interface pointer identifier, while taking advantage of the RPC utility layer to perform security checking, thread management, socket management, and association management.
    Type: Grant
    Filed: December 9, 1999
    Date of Patent: March 16, 2004
    Assignee: Microsoft Corporation
    Inventors: Yi-Min Wang, Galen C. Hunt, Alessandro Forin
  • Patent number: 6668291
    Abstract: Multiple non-blocking FIFO queues are concurrently maintained using atomic compare-and-swap (CAS) operations. In accordance with the invention, each queue provides direct access to the nodes stored therein to an application or thread, so that each thread may enqueue and dequeue nodes that it may choose. The prior art merely provided access to the values stored in the node. In order to avoid anomalies, the queue is never allowed to become empty by requiring the presence of at least a dummy node in the queue. The ABA problem is solved by requiring that the next pointer of the tail node in each queue point to a “magic number” unique to the particular queue, such as the pointer to the queue head or the address of the queue head, for example. This obviates any need to maintain a separate count for each node.
    Type: Grant
    Filed: September 9, 1999
    Date of Patent: December 23, 2003
    Assignee: Microsoft Corporation
    Inventors: Alessandro Forin, Andrew Raffman
  • Publication number: 20030233392
    Abstract: A method and system for managing the execution of threads uses a single scheduler for both threads and work items. Objects representing the threads and the work items are either maintained in separate queues or are stored together in a single queue. Each thread object or work item object may contain information that allows the scheduler to determine what order to execute the corresponding threads or to process the corresponding work items.
    Type: Application
    Filed: June 12, 2002
    Publication date: December 18, 2003
    Applicant: Microsoft Corporation
    Inventors: Alessandro Forin, Johannes V. Helander, Paul T. Pham
  • Patent number: 6658469
    Abstract: A method and system for directing data transfers between applications and devices residing on different computers or devices using a transport provider switch to determine whether to use a primary transport provider or one of a plurality of alternative transport providers. When an application or device requests to transfer data with another application or device, the transport provider switch detects whether the applications and devices are served by an alternative transport provider and, if so, directs that alternative transport provider to transfer the data. To improve data transfer performance, the switch employs an adaptive protocol that adapts the way data is transferred by observing when an application that is receiving data posts a receive buffer and detects the receive buffer's size. Based upon the application's or device's behavior, the switch transfers the data in a mode that is best suited for the application. A credit-based sequencing method is used to coordinate message transfers.
    Type: Grant
    Filed: December 3, 1999
    Date of Patent: December 2, 2003
    Assignee: Microsoft Corporation
    Inventors: Michael T. Massa, Alessandro Forin, Vadim Eydelman, Timothy M. Morre, Khawar M. Zuberi
  • Patent number: 6640290
    Abstract: A hierarchical bitmap-based memory manager maintains a hierarchical bitmap having an entry for each memory block in a memory heap. Each bitmap entry contains a multi-bit value that represents an allocation state of the corresponding memory block. The memory manager manages allocation, deallocation, and reallocation of the memory blocks, and tracks the changes in allocation state via the hierarchical bitmap. Using a-two-bit value, the bitmap can represent at most four different allocation states of the corresponding memory block, including a “free” state, a “sub-allocated” state in which the corresponding memory block is itself an allocated set of smaller memory blocks, a “continue” state in which the corresponding memory block is allocated and part of, but not last in, a larger allocation of plural blocks, and a “last” state in which the corresponding memory block is allocated and last in an allocation of one or more memory blocks.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: October 28, 2003
    Assignee: Microsoft Corporation
    Inventors: Alessandro Forin, Johannes Helander
  • Publication number: 20030196010
    Abstract: Multiple non-blocking FIFO queues are concurrently maintained using atomic compare-and-swap (CAS) operations. In accordance with the invention, each queue provides direct access to the nodes stored therein to an application or thread, so that each thread may enqueue and dequeue nodes that it may choose. The prior art merely provided access to the values stored in the node. In order to avoid anomalies, the queue is never allowed to become empty by requiring the presence of at least a dummy node in the queue. The ABA problem is solved by requiring that the next pointer of the tail node in each queue point to a “magic number” unique to the particular queue, such as the pointer to the queue head or the address of the queue head, for example. This obviates any need to maintain a separate count for each node.
    Type: Application
    Filed: May 5, 2003
    Publication date: October 16, 2003
    Applicant: Microsoft Corporation
    Inventors: Alessandro Forin, Andrew Raffman
  • Patent number: 6594701
    Abstract: Methods and systems for controlling data flow between a sender and a receiver include communicating credit lists to the sender. The credit lists include credits indicative of receive buffer sizes accessible by the receiver and capable of receiving data. The sender transmits data packets to the receiver. The data packets are preferably no greater in size than the credits specified in the credit list. When the sender uses all of the credits, the sender preferably refrains from sending data packets to the receiver until the supply of credits is replenished by the receiver. Because data flow between the sender and the receiver is regulated using credits, the likelihood of data overflow errors is reduced and communication efficiency is increased.
    Type: Grant
    Filed: December 31, 1998
    Date of Patent: July 15, 2003
    Assignee: Microsoft Corporation
    Inventor: Alessandro Forin
  • Publication number: 20030033441
    Abstract: The invention is embodied in software executable on a computer having a working memory with demand-loadable components initially stored outside of the working memory, each component having an entry point including a constructor for an object. Preferably, the demand-loadable components are initially provided in a memory within the computer or a location external of the computer. A Namespace in the working memory provides access in the working memory to the components as they become needed by applications running in the computer. The Namespace provides the access by managing demand-loading and unloading of the components in the working memory.
    Type: Application
    Filed: March 31, 1999
    Publication date: February 13, 2003
    Inventors: ALESSANDRO FORIN, JOHANNES V. HELANDER, ANDREW R. RAFFMAN
  • Patent number: 6360220
    Abstract: Lock-free methods and systems for accessing information in an indexed computer data structure may include a lookup procedure, an insertion procedure, a removal and replacement procedure, and a release procedure. Each of these procedures accesses entries in an indexed computer data structure, such as a hash table, to access and store information. Each entry in the indexed computer data structure may include an in-use counter to indicate when the entry is in use by one or more threads. The in-use counter permits multiple threads or processes to concurrently access an entry without locks.
    Type: Grant
    Filed: December 31, 1998
    Date of Patent: March 19, 2002
    Assignee: Microsoft Corporation
    Inventor: Alessandro Forin
  • Publication number: 20020007427
    Abstract: A recoverable I/O request processor includes computer-executable instructions for processing I/O requests, such as requests to send or receive data through a network. The recoverable I/O request processor translates virtual memory addresses to physical memory addresses utilizing translation tables local to an I/O device. If a local translation fails, the recoverable I/O request processor requests virtual address mapping information from the operating system.
    Type: Application
    Filed: September 5, 2001
    Publication date: January 17, 2002
    Applicant: Microsoft Corporation
    Inventor: Alessandro Forin
  • Publication number: 20010051972
    Abstract: A method and system for directing data transfers between applications and devices residing on different computers or devices using an adaptive flow control protocol has been described. When an application or device requests to transfer data with another application or device, adaptive flow control protocol adapts the way data is transferred by observing when an application that is receiving data posts a receive buffer and detects the receive buffer's size. Based upon the application's or device's behavior, the adaptive flow control protocol transfers the data in a mode that is best suited for the application.
    Type: Application
    Filed: April 27, 2001
    Publication date: December 13, 2001
    Applicant: Microsoft Corporation
    Inventors: Vadim Eydelman, Khawar M. Zuberi, Michael T. Massa, Alessandro Forin
  • Publication number: 20010047438
    Abstract: A recoverable I/O request processor includes computer-executable instructions for processing I/O requests, such as requests to send or receive data through a network. The recoverable I/O request processor translates virtual memory addresses to physical memory addresses utilizing translation tables local to an I/O device. If a local translation fails, the recoverable I/O request processor requests virtual address mapping information from the operating system.
    Type: Application
    Filed: July 17, 2001
    Publication date: November 29, 2001
    Applicant: Microsoft Corporation
    Inventor: Alessandro Forin
  • Patent number: 6321276
    Abstract: A recoverable I/O request processor includes computer-executable instructions for processing I/O requests, such as requests to send or receive data through a network. The recoverable I/O request processor translates virtual memory addresses to physical memory addresses utilizing translation tables local to an I/O device. If a local translation fails, the recoverable I/O request processor requests virtual address mapping information from the operating system.
    Type: Grant
    Filed: December 29, 1998
    Date of Patent: November 20, 2001
    Assignee: Microsoft Corporation
    Inventor: Alessandro Forin
  • Patent number: 6175900
    Abstract: A hierarchical bitmap-based memory manager maintains a hierarchical bitmap having an entry for each memory block in a memory heap. Each bitmap entry contains a multi-bit value that represents an allocation state of the corresponding memory block. The memory manager manages allocation, deallocation, and reallocation of the memory blocks, and tracks the changes in allocation state via the hierarchical bitmap. Using a two-bit value, the bitmap can represent at most four different allocation states of the corresponding memory block, including a “free” state, a “sub-allocated” state in which the corresponding memory block is itself an allocated set of smaller memory blocks, a “continue” state in which the corresponding memory block is allocated and part of, but not last in, a larger allocation of plural blocks, and a “last” state in which the corresponding memory block is allocated and last in an allocation of one or more memory blocks.
    Type: Grant
    Filed: February 9, 1998
    Date of Patent: January 16, 2001
    Assignee: Microsoft Corporation
    Inventors: Alessandro Forin, Johannes Helander
  • Patent number: 6061711
    Abstract: In a multi-tasking computing system environment, one program is halted and context switched out so that a processor may context switch in a subsequent program for execution. Processor state information exists which reflects the state of the program being context switched out. Storage of this processor state information permits successful resumption of the context switched out program. When the context switched out program is subsequently context switched in, the stored processor information is loaded in preparation for successfully resuming the program at the point in which execution was previously halted. Although, large areas of memory can be allocated to processor state information storage, only a portion of this may need to be preserved across a context switch for successfully saving and resuming the context switched out program.
    Type: Grant
    Filed: August 19, 1996
    Date of Patent: May 9, 2000
    Assignee: Samsung Electronics, Inc.
    Inventors: Seungyoon Peter Song, Moataz A. Mohamed, Heonchul Park, Le T. Nguyen, Jerry R. Van Aken, Alessandro Forin, Andrew R. Raffman