Patents by Inventor Yousef A. Khalidi

Yousef A. Khalidi 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).

  • Publication number: 20060259489
    Abstract: Reference counting is shared between an in-process service runtime and a machine-wide service. The machine-wide service maintains a count for the total number of references to an object or resource (the global reference count), a count for the number of exports of a object (the global export count) and a count of the number of exports that must be received by the machine-wide service before a revoke can occur (the exports before revoke count). When a process exports an object or resource, the machine-wide service increments the global export count for the object or resource and increments the global reference count for the object or resource. The machine-wide service increments the global reference count for a passed reference but does not increment the global reference count. The machine-wide service decrements the global reference count in response to receiving an unreferenced message.
    Type: Application
    Filed: May 16, 2005
    Publication date: November 16, 2006
    Applicant: Microsoft Corporation
    Inventors: Jose Bernabeu-Auban, Jeff Havens, Yousef Khalidi
  • Publication number: 20060256797
    Abstract: An agent, service or process may request an operation by invoking an object that is implemented by another agent, service or process. Object invocation may be carried out by one thread in a service which may include multiple executing threads. After initiating the operation, the requesting agent may detect one or more conditions that make it advisable to cancel the requested operation. In a mechanism for implementing a cancellation operation in a cooperative system, a thread identifies an operation to be cancelled. A cancel function has an argument comprising the thread identifier in which the operation is to be cancelled. The cancel function is called by a client process thread to cancel a pending object invocation initiated by the client process. An immediate or hard cancel causes the targeted client and cancel thread to return immediately. A discretionary or soft cancel does not affect the targeted client thread. In either case the server process is notified via a maintenance notification.
    Type: Application
    Filed: May 16, 2005
    Publication date: November 16, 2006
    Applicant: Microsoft Corporation
    Inventors: Jose Bernabeu-Auban, Jeff Havens, Yousef Khalidi
  • Patent number: 6615383
    Abstract: A first computer sends a sequence of messages to a second computer using remote write operations to directly store each message in a corresponding memory location in the second computer. The second computer retains information denoting the sequence numbers of the messages it receives and processes, and it acknowledges each received message with an asynchronous acknowledgment message. The first computer keeps track of which messages it has sent but for which it has not yet received an acknowledgment. Whenever the first computer determines that it has failed to receive a message acknowledgment from the second computer in a timely fashion, or it needs to reuse previously used message sequence numbers, the first computer undertakes remedial actions to resynchronize the first and second computers.
    Type: Grant
    Filed: May 29, 1998
    Date of Patent: September 2, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Madhusudhan Talluri, Yousef A. Khalidi
  • Patent number: 6405237
    Abstract: A method and apparatus are described that permit an application to control data transfer from a memory object of a source device to a sink device. The application can request that an operating system establish a mapping between a fast buffer and a memory object storing the data. The operating system then establishes the mapping between the fast buffer and the memory object thereby permitting the application to direct that the data of the memory object be transferred to the sink device. Thus, the sink device can use direct memory access to the source device to transfer the data from the memory object. Furthermore, if the application modifies a portion of the data of the memory object prior to directing the transfer, only the modified portion of the data is copied to main memory prior to transfer to the sink device.
    Type: Grant
    Filed: January 9, 1997
    Date of Patent: June 11, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Yousef A. Khalidi, Moti N. Thadani
  • Patent number: 6298390
    Abstract: In a computer system having a kernel supporting an interface definition language, a file system composed of an object framework. The object framework includes a set of proxy vnodes, a set of memcache vnodes, and a set of storage vnodes. The set of proxy vnodes and the set of memcache vnodes are linked to the set of storage vnodes through the use of the interface definition language, and the set of proxy vnodes are linked to the set of memcache vnodes through the use of a set of pointers. Each proxy vnode of said set of proxy vnodes is typed so as to differentiate between a set of file system objects such as files, directories and devices. The set of memcache vnodes forms an interface to a virtual memory system while the set of storage vnodes forms an interface to an underlying file system. The file system also uses a set of file paging interfaces that support extensions to the file system while providing full coherence of data.
    Type: Grant
    Filed: March 26, 1996
    Date of Patent: October 2, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Vladimir Matena, Yousef A. Khalidi, Jose Bernabeu-Auban, Moti N. Thadani, Kenneth W. Shirriff
  • Patent number: 6185695
    Abstract: One embodiment of the present invention provides a method and an apparatus that facilitates transparent failovers from a primary copy of an object on a first server to a secondary copy of the object on a second server when the first server fails, or otherwise becomes unresponsive. The method includes detecting the failure of the first server; selecting the second server; and reconfiguring the second server to act as a new primary server for the object. Additionally, the method includes transparently retrying uncompleted invocations to the object to the second server, without requiring explicit retry commands from a client application program. A variation on this embodiment further includes winding up active invocations to the object before reconfiguring the second server to act as the new primary server. This winding up process may include causing invocations to unresponsive nodes to unblock and complete.
    Type: Grant
    Filed: April 9, 1998
    Date of Patent: February 6, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Declan J. Murphy, Madhusudhan Talluri, Vladimir Matena, Yousef A. Khalidi, Jose M. Bernabeu-Auban, Andrew G. Tucker
  • Patent number: 6163806
    Abstract: A system and method are disclosed that provides transparent, global access to devices on a computer cluster. The present system generates unique device type (dev.sub.-- t) values for all devices and corresponding links between a global file system and the dev.sub.-- t values. The file system is modified to take advantage of this framework so that, when a user requests that a particular device, identified by its logical name, be opened, an operating system kernel queries the file system to determine that device's dev.sub.-- t value and then queries the a device configuration system (DCS) for the location (node) and identification (local address) of a device with that dev.sub.-- t value. Once it has received the device's location and identification, the kernel issues an open request to the host node for the device identified by the DCS.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: December 19, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Srinivasan Viswanathan, Siamak Nazari, Anil Swaroop, Yousef Khalidi
  • Patent number: 6163856
    Abstract: A file disaster recovery system that employs geographical replication of data from a local site to remote site in a such a manner that file requests from clients of the local site can be handled by a file server on the remote site following a failover from the local site to the remote site. Geographical data replication software running on a local server checkpoints to a log in local stable storage all information on file operations that change the file state of the local file system. According to a selected mode, the local geographical data replication software flushes information in the log pertaining to the file operations since the last flush to the remote site. At the remote site, compatible remote geographical data replication software running on a remote file server receives the flushed log and replicates in sequence order the file operations represented in the flushed log. The results of the operations are stored on remote stable storage. The local and remote servers can be clusters or single servers.
    Type: Grant
    Filed: May 29, 1998
    Date of Patent: December 19, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: David Dion, Yousef A. Khalidi, Madhusudhan Talluri, Anil Swaroop
  • Patent number: 6151639
    Abstract: The present invention pertains to a system and method for performing remote object invocation. A object-oriented computing system includes a number of independent computing nodes that are interconnected via a communications link. The nodes represent client and/or server computers that do not share memory. Each node includes a number of domains having separate address spaces. Each domain includes one or more threads of execution that invoke one or more objects. The object's method can reside in the same domain as the requesting thread, in a different domain within the same node, or in a different domain in another node. A file descriptor is used to represent those objects whose methods reside in a different domain than the requesting thread. A file descriptor is a protected kernel entity that enables a thread to invoke an object. A thread can only access those objects for which it has received an associated file descriptor.
    Type: Grant
    Filed: June 19, 1997
    Date of Patent: November 21, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Andrew G. Tucker, Madhusudhan Talluri, Declan Murphy, Yousef A. Khalidi
  • Patent number: 6144999
    Abstract: A file disaster recovery system that employs geographical replication of data from a local site to remote site in a such a manner that file requests from clients of the local site can be handled by a file server on the remote site following a failover from the local site to the remote site. Geographical data replication software running on a local server checkpoints to a log in local stable storage all information on file operations that change the file state of the local file system. According to a selected mode, the local geographical data replication software flushes information in the log pertaining to the file operations since the last flush to the remote site. At the remote site, compatible remote geographical data replication software running on a remote file server receives the flushed log and replicates in sequence order the file operations represented in the flushed log. The results of the operations are stored on remote stable storage. The local and remote servers can be clusters or single servers.
    Type: Grant
    Filed: May 29, 1998
    Date of Patent: November 7, 2000
    Assignee: Sun Microsystems, Incorporated
    Inventors: Yousef A. Khalidi, Madhusudhan Talluri, David Dion, Anil Swaroop
  • Patent number: 6138251
    Abstract: The present invention pertains to a system and method for tracking object references in an object-oriented computing system including a number of independent computing nodes interconnected by a communications link. The reference counting mechanism tracks references to an object through the use of a messaging protocol. A server node keeps a foreign reference count for each of its objects. The foreign reference count indicates the number of remote nodes having a reference to one of the servers objects. A server node increments the foreign reference count for each object reference that it exports prior to sending it to an intended client node. A client node will send a message to the server node when it has already received the exported object reference and in response to this message, the server node decrements the appropriate foreign reference count.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: October 24, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Declan J. Murphy, Andrew G. Tucker, Madhusudhan Talluri, Jose Bernabeu-Auban, Yousef A. Khalidi
  • Patent number: 6047332
    Abstract: A system and method are disclosed for rendering devices on a cluster globally visible, wherein the cluster includes a plurality of nodes on which the devices are attached. The system establishes for each of the devices in the cluster at least one globally unique identifier enabling global access to the device. The system includes a device registrar that creates the identifiers and a global file system. The identifiers include a globally unique logical name by which users of the cluster identify the device and a globally unique physical name by which the global file system identifies the device. The registrar creates a one-to-one mapping between the logical name and the physical name for each of the devices. The system also includes a device information (dev.sub.-- info) data structure maintained by the device registrar that represents physical associations of the devices within the cluster. Each association corresponds to the physical name of a device file maintained by the global file system.
    Type: Grant
    Filed: June 30, 1997
    Date of Patent: April 4, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Srinivasan Viswanathan, Siamak Nazari, Anil Swaroop, Yousef Khalidi
  • Patent number: 5956756
    Abstract: A method and apparatus for translating a virtual address to a physical address. A virtual address to be translated has a virtual page offset and a virtual page number. The virtual address to be translated addresses a page of memory. The size of this page is unknown. There are L different possible page sizes where L is a positive integer greater than one. Each of the L different page sizes is selected to be a test page size and a test is performed. During the test, a pointer into a translation storage buffer is calculated. The pointer is calculated from the virtual address to be translated by assuming that the virtual address to be translated corresponds to a mapping of the test page size. The pointer points to a candidate translation table entry of the translation storage buffer. The candidate translation table entry has a candidate tag and candidate data.
    Type: Grant
    Filed: June 6, 1997
    Date of Patent: September 21, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Yousef A. Khalidi, Glen R. Anderson, Stephen A. Chessin, Shing Ip Kong, Charles E. Narad, Madhusudhan Talluri
  • Patent number: 5860153
    Abstract: A bit map is maintained by a provider object of a name server to keep track of names cached by a cache object of the client. The bit map is indexed by performing a hash of the name. When a name is looked up by the server on behalf of a client, the server hashes the name, and sets the bit in the bit map indexed by the result of the hash modulo the size of the bit map. The result of the hash is returned to the client and is stored with the entry in the cache. A bit "set" in the bit map indicates that the client caches at least one name that hashes into the bit. When the server invalidates a name, a hash of the name to be invalidated is used to find the corresponding bit in the bit mask. If the bit is set, the server sends an invalidation request to the client. The invalidation request includes the result of the hash, and the size of the provider's bit map. The client invalidates all entries that hash into the specified bit in the bitmap on the server.
    Type: Grant
    Filed: November 22, 1995
    Date of Patent: January 12, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Vladimir Matena, Jose M. Bernabeu-Auban, Yousef A. Khalidi, Kenneth W. Shirriff, Moti N. Thadani
  • Patent number: 5808911
    Abstract: The present invention pertains to a system and method for tracking object references in an object-oriented computing system including a number of independent computing nodes interconnected by a communications link. The reference counting mechanism tracks references to an object at three levels. At a first level, the server handler associated with an object is used to track local references to the object by other user applications within the same domain. At a second level, the inter-process communications facility (i.e., door facility) is used to track object references that are exported to different domains within the same node. At a third level, the kernel object request broker (ORB) is used to track object references that are exported outside the node. When all external object references are released, the ORB notifies the object's server handler of this occurrence. Similarly, the door facility notifies the object's server handler when all inter-domain references have been released.
    Type: Grant
    Filed: June 19, 1997
    Date of Patent: September 15, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Andrew G Tucker, Madhusudhan Talluri, Declan Murphy, Yousef A. Khalidi
  • Patent number: 5805572
    Abstract: Transparent routing within the cluster is achieved (without changing the networking code on each node of the cluster) by using a pair of modules interposed appropriately on the networking stack. In a "clustered" system built out of several computers, using the present invention, the networking subsystem appears to applications as if the applications are running on a single computer. In addition, no modifications to the networking code is needed. The present invention is extensible to a variety of networking protocols, not just TCP/IP as the packet filter allows the routing within the cluster to be done dynamically. No modifications to the applications is needed (same binaries will work). A packet filter and remote communication between the modules through IDL enable the modules to do their job. A name server that maintains the port name space is used.
    Type: Grant
    Filed: November 22, 1995
    Date of Patent: September 8, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Jose M. Bernabeu-Auban, Yousef A. Khalidi, Vladimir Matena, Kenneth W. Shirriff
  • Patent number: 5784707
    Abstract: A computer system having virtual memory that can be mapped using multiple page sizes onto logically addressable physical memory. An intermediate addressing scheme permits the mapping of several non-contiguous small pages in physical memory onto a bigger sized virtual memory page. Rather than translating a virtual address directly into a physical address, a virtual address is translated into an intermediate address that may or may not be a physical address. If the virtual page is backed by physical memory that is contiguous and aligned on a proper boundary for the page size, then the intermediate address will be the physical address and no second translation is required. If the intermediate address is not a physical address, it is then translated into a physical address. This is the case where a big page in virtual memory is backed by more than one smaller page in physical memory.
    Type: Grant
    Filed: April 19, 1996
    Date of Patent: July 21, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Yousef A. Khalidi, Vikram P. Joshi, Madhusudhan Talluri
  • Patent number: 5764897
    Abstract: This disclosure describes a solution to this basic problem of transaction management for systems which use the object metaphor to define the interfaces between different components of a system. An elegant solution is described which defines a transaction manager protocol and process, which is independent of the operating system micro-kernel's interprocess communication activities. The object-oriented transaction manager ("TM") creates transactions, keeps track of all object managers (servers) that are a part of a transaction, and coordinates transaction termination among all objects that are involved in the transaction. In addition, operations by naive applications can be made to execute under transaction control without modifying the applications.
    Type: Grant
    Filed: October 28, 1996
    Date of Patent: June 9, 1998
    Assignee: Sun Microsystems, Inc.
    Inventor: Yousef A. Khalidi
  • Patent number: 5648965
    Abstract: A packet filter can be programmed by a remote controller to detect packets meeting a particular criterion and to report detection of these packets to the controller. The reports from the packet filter are collected and analyzed by the remote controller. A streams module that incorporates the packet filter is used within a Solaris operating system environment that has been enhanced to support an object framework. The streams module exports a programming interface to the packet filter defined in an interface definition language (IDL). The streams module can be pushed onto a network device in a similar fashion to other streams modules. The streams module responds to requests from one remote controller or to requests from more than one remote controller. These remote controller requests arrive as remote procedure call (RPC) requests on the IDL object references exported by the module.
    Type: Grant
    Filed: July 7, 1995
    Date of Patent: July 15, 1997
    Assignee: Sun Microsystems, Inc.
    Inventors: Moti N. Thadani, Jose M. Bernabeu-Auban, Yousef A. Khalidi, Vladimir Matena, Kenneth W. Shirriff
  • Patent number: 5630087
    Abstract: A method and apparatus to share virtual memory translations in a computer is described. The apparatus includes an operating system that runs in conjunction with a central processing unit. The operating system is programmed to include an address identification routine to identify distinct virtual memory translation entries, associated with a plurality of distinct processes running on the computer, that map to one or more common physical memory page addresses. The operating system also includes a mask assignment routine to assign a first mask value to the distinct virtual memory translation entries, and a write routine to write, to a translation-lookaside buffer or a page table, the distinct virtual memory translation entries as a single address associated with the first mask value. A comparison mechanism is used to compare a second mask value of a translation-request virtual memory translation value to the first mask value to determine whether the second mask value corresponds to said first mask value.
    Type: Grant
    Filed: November 2, 1994
    Date of Patent: May 13, 1997
    Assignee: Sun Microsystems, Inc.
    Inventors: Madhusudhan Talluri, Yousef A. Khalidi