← Back to Patent Explorer
US5721876A Expired / Lapsed US ⏱️ 0.0 years remaining

Sockets application program mechanism for proprietary based application programs running in an emulation environment

Assignee: Bull HN Information Systems Inc
•
Filing: 1995-03-30
•
Granted: 1998-02-24
•
Expires: 2015-03-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A host data processing system operating under the control of a host operating system such as an enhanced version of the UNIX operating system on a RISC based hardware platform includes an emulator which runs as an application process for executing emulated system (ES) user application programs. The emulator includes a number of emulated system executive service components including a socket command handler unit and a socket library component operating in shared memory and an interpreter, an emulator monitor call unit (EMCU) and a number of server components operating in host memory. The host operating system further includes a host socket library interface layer (API) which operatively connects through a TCP/IP network protocol stack to the communications facilities of the hardware platform. The socket server components operatively connect ES TCP/IP application programs to the socket library interface layer of the host operating system when such application programs issue standard ES socket library calls. The socket command handler unit maps the ES socket library calls into appropriate input/output requests directed to the EMCU. The EMCU directs the requests to an appropriate socket server component which in turn issues the appropriate host socket library calls to the host socket interface layer thereby eliminating both the need to communicate through additional protocol stacks and to provide additional communication hardware facilities.

Inventors

  • 👤 Kin C. Yu
  • 👤 John L. Curley

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 01:39
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/544; G06F9/44; G06F9/455; G06F9/45533; G06F9/45537

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 359 words
A host system having a memory organized into shared and host memory areas and a hardware platform operatively coupled to a communications network for communicating with other units using a communications network protocol, said host system emulating the execution of emulated system instructions by an emulator running as an application process on said host system, said emulator including a number of emulated system executive service components operating in said shared memory area comprising a command handler unit and an interpreter, an emulator monitor call unit (EMCU) and server facilities operating in said host memory area, said host system further including operating system facilities for providing a number of services for host programs, said operating system facilities being coupled to said communications network and to said EMCU, said host system further including a socket mechanism for processing socket library calls generated by emulated system application programs running under control of said emulator, said socket mechanism comprising: socket command handler means included within said command handler unit, said socket command handler means in response to each socket library call specifying a socket function received from an emulated application program generating an I/O request containing an input/output (IORB) data structure coded to contain a socket command identifying a socket operation mapped from said each socket library call and forwarding said request to said EMCU for issuance to said server facilities; an addressable socket control table located in said host memory area, said socket control table having a number of locations for storing predetermined formatted control words generated in response to socket commands generated by said socket command handler means specifying socket operations designated by said socket commands; and, said server facilities including main socket server processing means, said main socket server processing means in response to each socket command selectively generating a child process as a function of the length of time required to execute that type of socket operation on said communications network through the operating system facilities and for storing and updating said control words stored in said socket control table for executing socket operations initiated by socket library calls generated by any one of said emulated system application programs.
Claim 2
Dependent Claim 359 words
A host system having a memory organized into shared and host memory areas and a hardware platform operatively coupled to a communications network for communicating with other units using a communications network protocol, said host system emulating the execution of emulated system instructions by an emulator running as an application process on said host system, said emulator including a number of emulated system executive service components operating in said shared memory area comprising a command handler unit and an interpreter, an emulator monitor call unit (EMCU) and server facilities operating in said host memory area, said host system further including operating system facilities for providing a number of services for host programs, said operating system facilities being coupled to said communications network and to said EMCU, said host system further including a socket mechanism for processing socket library calls generated by emulated system application programs running under control of said emulator, said socket mechanism comprising: socket command handler means included within said command handler unit, said socket command handler means in response to each socket library call specifying a socket function received from an emulated application program generating an I/O request containing an input/output (IORB) data structure coded to contain a socket command identifying a socket operation mapped from said each socket library call and forwarding said request to said EMCU for issuance to said server facilities; an addressable socket control table located in said host memory area, said socket control table having a number of locations for storing predetermined formatted control words generated in response to socket commands generated by said socket command handler means specifying socket operations designated by said socket commands; and, said server facilities including main socket server processing means, said main socket server processing means in response to each socket command selectively generating a child process as a function of the length of time required to execute that type of socket operation on said communications network through the operating system facilities and for storing and updating said control words stored in said socket control table for executing socket operations initiated by socket library calls generated by any one of said emulated system application programs.
Claim 3
Dependent Claim 124 words
The host system of claim 1 wherein said socket command handler means includes a number of socket handler routines and wherein said emulated system components further includes an emulated system socket library containing a plurality of routines which in response to socket library calls from said emulated system application programs generate predetermined socket monitor calls for processing by said number of socket handler routines, each socket handler routine including mapping means for building an extension to said IORB structure for storing predetermined socket argument values derived from said socket monitor call in predetermined fields of said extension and for storing an appropriate socket function code in said IORB data structure designating the socket operation to be performed by said main socket server processing means.
Claim 4
Dependent Claim 23 words
The host system of claim 2 wherein said predetermined fields include an iorb socket family, iorb socket type and iorb socket protocol fields.
Claim 5
Dependent Claim 58 words
The host system of claim 1 wherein said server facilities includes a dynamic server handler which in response to a first I/O request specifying a socket operation operates to invoke said main socket server processing means and establish direct communications between said main socket server processing means and said socket command handler means for processing said socket commands.
Claim 6
Dependent Claim 41 words
The host system of claim 4 wherein said main socket server processing means generates said socket control table to contain a predetermined number of locations for processing a maximum number of socket operations for said number of emulated system application programs.
Claim 7
Dependent Claim 71 words
The host system of claim 1 wherein said operating system facilities includes a host socket library coupled to a network protocol stack facility, said network protocol stack facility being coupled to said communications network, said main server processing means in response to said socket commands being operative to access said host sockets library for generating signals for invoking said protocol stack to communicate over said communications network using said network protocol.
Claim 8
Dependent Claim 20 words
The host system of claim 6 wherein said protocol stack implements said predetermined protocol which corresponds to a TCP/IP protocol.
Claim 9
Dependent Claim 41 words
The host system of claim 1 wherein said control words of said socket control table are cleared from said socket control table upon the completion the use of assigned socket network resources by corresponding ones of said emulated system application programs.
Claim 10
Dependent Claim 43 words
The host system of claim 1 wherein said length of time exceeds a predetermined period of time during which said main socket server processing means is blocked from processing subsequently received socket commands from other emulated system application programs in an expeditious manner.
Claim 11
Dependent Claim 60 words
The host system of claim 9 wherein socket commands coded to specify accept, receive and send functions require a length of time exceeding said predetermined period of time causing said main socket server processing means to generate child processes for executing said socket operations enabling said main socket server processing means to continue processing of said subsequently received socket commands.
Claim 12
Dependent Claim 131 words
The host system of claim 1 wherein said socket control table includes socket pointer address means for accessing said locations for storing and updating said control words as required for executing operations specified by said socket commands, said main socket processing means in response to a first socket command and upon receipt of a socket number value from said communication network storing said socket number value corresponding to an actual socket number into a first available location in said socket control table designated by said socket pointer address means and returning to one of said emulated system application programs which issued said socket command, an index value obtained from said socket pointer address means identifying said first available location in said socket control table for use in subsequent socket operation requests.
Claim 13
Dependent Claim 19 words
The host system of claim 11 wherein said first socket command is coded to specify an open socket function.
Claim 14
Dependent Claim 96 words
The host system of claim 11 wherein said one of said emulated system application programs issues a subsequent socket command which includes said index value specifying a type of socket operation requiring more than a predetermined time period, said main server processing means being operative to access said control word stored in said location specified by said index value for obtaining the actual socket number to be used in issuing socket library calls to said communications network and to advance said socket pointer address means to specify a next available location in said socket control table.
Claim 15
Dependent Claim 95 words
The host system of claim 13 wherein said main socket server processing means in response to each subsequent socket command designating said actual socket number determines if a child process already exists for executing said each subsequent socket command, when said child process does not exist, said main socket server means generating an interprocess communications channel and executing a fork type of operation for spawning a child process to perform said socket operation specified by the subsequent socket command furnished by said socket server processing means to said child process through said interprocess communications channel.
Claim 16
Dependent Claim 128 words
The host system of claim 1 wherein each control word includes a plurality of fields, a first field for storing a socket number value returned by said host communications network, a first number of fields for storing socket process identification values designating which child process is associated with execution of different types of socket operations, a second number of fields for storing a number of indicator flags for indicating predetermined state characteristics of said socket, a third number of fields for storing pipe file values used for interprocess communication between said child process and said main server processing means and a fourth number of fields for storing pipe field values used for indicating which resources are to be returned to said host system when said socket is closed.
Claim 17
Dependent Claim 56 words
The host system of claim 15 wherein said first number of fields includes a first child process ID field for designating which child process is associated with an accept, receive or receive from type function and a second child process ID field for designating which child process is associated with a send or send to function.
Claim 18
Dependent Claim 75 words
The host system of claim 15 wherein said second number of fields includes a first indicator flag for designating when said socket defined by said first field is owned by said main server processing means, a second indicator flag for designating when said socket designated by said first field is in an accept block state and a third indicator flag for designating when a break-in command has been received by said main server processing means.
Claim 19
Dependent Claim 61 words
The host system of claim 15 wherein said third number of fields includes a first write pipe field for designating a write pipe file descriptor which is associated with a receive, accept or receive from type function and a second write pipe field for designating a write pipe file descriptor which is designated with a send or send to type function.
Claim 20
Dependent Claim 36 words
The host system of claim 15 wherein said fourth number of fields includes first and second socket pipe descriptor fields designating pipe files to be closed when said socket designated by said first field is closed.
Claim 21
Dependent Claim 40 words
The host system of claim 14 wherein each control word stored in said socket control table remains in said table for a period of time that the actual socket is being used by one of said emulated system application programs.
Claim 22
Dependent Claim 81 words
The host system of claim 14 wherein said subsequent socket command specifies an accept type operation, said child process accesses a designated control word location of said socket control table specified by said index value, sets said child process ID in said second number of fields and sets an indicator flag of said third number of fields to indicate that said socket is in an accept blocked state and generates a new socket call to said host requesting a new socket.
Claim 23
Dependent Claim 113 words
The host system of claim 21 wherein said child process upon receipt of an actual socket number from said communications network in response to said new socket call, first accesses said socket control table for resetting said indicator flag removing said blocked state and then accesses a next available location of said socket control table for storing in said first field of said control word, the actual socket number of said new socket returned by said host communications network and write pipe descriptor value in a first one of said second number of fields for enabling said child process to communicate with said main server processing means for processing subsequently issued socket commands.
Claim 24
Independent Claim 412 words
A method of organizing an emulator for executing socket library calls received from a plurality of emulated system application programs running under control of a host operating system on a host system connected to host communications network facilities which maximizes the use of said communications network facilities, said operating system including a host socket library, a host protocol stack operatively coupled to said library and to said host communications network facilities, said host system having a memory organized into shared and host memory areas and a hardware platform operatively coupled to said host communications network facilities for communicating with other units using a communications network protocol, said emulator including a number of emulated system executive service components operating in said shared memory area comprising a command handler unit operatively coupled to an emulated system socket library and an interpreter, an emulator monitor call unit (EMCU) coupled to said operating system and server facilities operating in said host memory area, said host system further including a socket mechanism for processing socket library calls generated by emulated system application programs running under control of said emulator, said method comprising the steps of: including socket command handler means included within said command handler unit; generating an I/O request containing an input/output (IORB) data structure by said socket command handler means in response to each socket library call specifying a socket function received from an emulated application program; mapping said each socket library call into a socket command coded to identify a socket operation for inclusion in said I/O request; forwarding said FO request to said EMCU for issuance to said server facilities; storing an addressable socket control table in said host memory area, said socket control table having a number of locations for storing predetermined formatted control words generated in response to socket commands generated by said socket command handler specifying socket operations designated by said socket commands; including a main socket server processing means in said server facilities; selectively generating a child process as a function of the length of time required to execute that type of socket operation on said communications network through the operating system facilities by said main socket server processing means in response to said each socket command; and, storing and updating said control words stored in said socket control table by said child process and main socket server processing means for executing socket operations initiated by socket library calls generated by different ones of said emulated system application programs.
Claim 25
Independent Claim 412 words
A method of organizing an emulator for executing socket library calls received from a plurality of emulated system application programs running under control of a host operating system on a host system connected to host communications network facilities which maximizes the use of said communications network facilities, said operating system including a host socket library, a host protocol stack operatively coupled to said library and to said host communications network facilities, said host system having a memory organized into shared and host memory areas and a hardware platform operatively coupled to said host communications network facilities for communicating with other units using a communications network protocol, said emulator including a number of emulated system executive service components operating in said shared memory area comprising a command handler unit operatively coupled to an emulated system socket library and an interpreter, an emulator monitor call unit (EMCU) coupled to said operating system and server facilities operating in said host memory area, said host system further including a socket mechanism for processing socket library calls generated by emulated system application programs running under control of said emulator, said method comprising the steps of: including socket command handler means included within said command handler unit; generating an I/O request containing an input/output (IORB) data structure by said socket command handler means in response to each socket library call specifying a socket function received from an emulated application program; mapping said each socket library call into a socket command coded to identify a socket operation for inclusion in said I/O request; forwarding said FO request to said EMCU for issuance to said server facilities; storing an addressable socket control table in said host memory area, said socket control table having a number of locations for storing predetermined formatted control words generated in response to socket commands generated by said socket command handler specifying socket operations designated by said socket commands; including a main socket server processing means in said server facilities; selectively generating a child process as a function of the length of time required to execute that type of socket operation on said communications network through the operating system facilities by said main socket server processing means in response to said each socket command; and, storing and updating said control words stored in said socket control table by said child process and main socket server processing means for executing socket operations initiated by socket library calls generated by different ones of said emulated system application programs.
Claim 26
Dependent Claim 116 words
The method of claim 23 wherein said socket command handler means includes a number of socket handler routines and wherein said system socket library contains a plurality of routines, said method further including the steps of: generating in response to socket library calls from said emulated system application programs predetermined socket monitor calls for processing by said number of socket handler routines, said mapping step building an extension to said IORB structure for storing predetermined socket argument values derived from said socket monitor call in predetermined fields of said extension and storing an appropriate socket function code in said IORB data structure designating the socket operation to be performed by said main socket server processing means.
Claim 27
Dependent Claim 22 words
The method of claim 24 wherein said predetermined fields include an iorb socket family, iorb socket type and iorb socket protocol fields.
Claim 28
Dependent Claim 42 words
The method of claim 23 wherein said method further includes the step of accessing said host sockets library in response to said socket command for generating signals which invoke said protocol stack to communicate over said communications network using said network protocol.
Claim 29
Dependent Claim 19 words
The method of claim 26 wherein said protocol stack implements said network protocol which corresponds to a TCP/IP protocol.
Claim 30
Dependent Claim 39 words
The method of claim 23 wherein said method further includes the step of clearing control words from said socket control upon the completion the use of assigned socket network resources by corresponding ones of said emulated system application programs.
Claim 31
Dependent Claim 42 words
The method of claim 23 wherein said length of time exceeds a predetermined period of time during which said main socket server processing means is blocked from processing subsequently received socket commands from other emulated system application programs in an expeditious manner.
Claim 32
Dependent Claim 63 words
The method of claim 29 wherein said step of generating said child process is performed in response to each socket command coded to specify an accept, receive or send function which requires a length of time exceeding said predetermined period of time for executing said socket operation enabling said main socket server processing means to continue processing of said subsequently received socket commands.
Claim 33
Dependent Claim 133 words
The method of claim 23 wherein said socket control table includes socket pointer address means for accessing said locations for storing and updating said control words as required for executing operations specified by said socket commands, said method further including the steps of: storing said socket number value corresponding to an actual socket number into a first available location in said socket control table designated by said socket pointer address means main in response to a first socket command and upon receipt of a socket number value from said communication network; and, returning to one of said emulated system application programs which issued said socket command, an index value obtained from said socket pointer address means identifying said first available location in said socket control table for use in subsequent socket operation requests.
Claim 34
Dependent Claim 18 words
The method of claim 31 wherein said first socket command is coded to specify an open socket function.
Claim 35
Dependent Claim 93 words
The method of claim 31 wherein said one of said emulated system application programs issues a subsequent socket command which includes said index value specifying a type of socket operation requiring more than a predetermined time period, said method further including the steps of: accessing said control word stored in said location specified by said index value for obtaining the actual socket number to be used in issuing socket library calls to said communications network; and, advancing said socket pointer address means to specify a next available location in said socket control table.
Claim 36
Dependent Claim 85 words
The method of claim 33 wherein said method further includes the steps of: determining if a child process already exists for executing said each subsequently received socket command designating said actual socket number; and, when said child process does not exist, generating an interprocess communications channel and executing a fork type of operation for spawning a child process to perform said socket function specified by the subsequent socket command furnished by said socket server processing means to said child process through said interprocess communications channel.
Claim 37
Dependent Claim 127 words
The method of claim 23 wherein each control word includes a plurality of fields, a first field for storing a socket number value returned by said host communications network, a first number of fields for storing socket process identification values designating which child process is associated with execution of different types of socket operations, a number of second fields for storing a number of indicator flags for indicating predetermined state characteristics of said socket, a third number of fields for storing pipe file values used for interprocess communication between said child process and said main server processing means and a fourth number of fields for storing pipe field values used for indicating which resources are to be returned to said host system when said socket is closed.
Claim 38
Dependent Claim 55 words
The method of claim 35 wherein said first number of fields includes a first child process ID field for designating which child process is associated with an accept, receive or receive from type function and a second child process ID field for designating which child process is associated with a send or send to function.
Claim 39
Dependent Claim 74 words
The method of claim 35 wherein said second number of fields includes a first indicator flag for designating when said socket defined by said first field is owned by said main server processing means, a second indicator flag for designating when said socket designated by said first field is in an accept block state and a third indicator flag for designating when a break-in command has been received by said main server processing means.
Claim 40
Dependent Claim 60 words
The method of claim 35 wherein said third number of fields includes a first write pipe field for designating a write pipe file descriptor which is associated with a receive, accept or receive from type function and a second write pipe field for designating a write pipe file descriptor which is designated with a send or send to type function.
Claim 41
Dependent Claim 35 words
The method of claim 35 wherein said fourth number of fields includes first and second socket pipe descriptor fields designating pipe files to be closed when said socket designated by said first field is closed.
Claim 42
Dependent Claim 39 words
The method of claim 34 wherein each control word stored in said socket control table remains in said table for a period of time that the actual socket is being used by one or said emulated system application programs.
Claim 43
Dependent Claim 89 words
The method of claim 34 wherein said subsequent socket command specifies an accept type operation, said method further includes the steps of: accessing a designated control word location of said socket control table specified by said index value by said child process; setting said child process ID in said second number of fields and an indicator flag of said third number of fields to indicate that said socket is in an accept blocked state; and, generating a new socket call to said host socket library requesting a new socket.
Claim 44
Dependent Claim 119 words
The host system of claim 41 wherein said method further includes the steps of: first accessing said socket control table by child process upon receipt of an actual socket number from said communications network in response to said new socket call for resetting said indicator flag removing said blocked state; and, accessing a next available location of said socket control table for storing in said first field of said control word, the actual socket number of said new socket returned by said host communications network and write pipe descriptor value in a first one of said second number of fields for enabling said child process to communicate with said main server processing means for processing subsequently issued socket commands.

References Cited (Backward Citations)

US4742447A Cited
US5301302A Cited
US5142622A Cited
US5485579A Cited
US5410681A Cited
US5537417A Cited
US5475601A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-02-23 2001-08-25 2002-02-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-02-23 2005-08-25 2006-02-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-02-23 2009-08-25 2010-02-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag