Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)

Process-Creation Interoperability..........................................................................................75
fork() and exec Set of Functions.......................................................................................75
tdm_fork(), tdm_execve set, and tdm_spawn() Functions......................................................75
PROCESS_LAUNCH_ Procedure......................................................................................75
PROCESS_SPAWN_ Procedure.......................................................................................76
Process-Management Interoperability....................................................................................76
Guardian Procedure Calls Extended for OSS....................................................................76
OSS Functions for Accessing Guardian Processes .............................................................76
Process-Termination Interoperability......................................................................................77
File Interoperability.................................................................................................................77
Accessing Files From the OSS API........................................................................................77
Accessing OSS Files......................................................................................................77
Accessing Guardian Files...............................................................................................77
Opening Guardian Files................................................................................................78
Accessing Files From the Guardian API.................................................................................78
Accessing Guardian Files...............................................................................................78
Accessing OSS Files......................................................................................................78
Compatibility Issue for Guardian Files Created by OSS APIs...............................................79
Guardian Procedures Extended for OSS Files.........................................................................80
Native Signal Interoperability...................................................................................................80
I/O Interoperability.................................................................................................................81
Tape I/O..........................................................................................................................81
Terminal I/O.....................................................................................................................81
Printer I/O .......................................................................................................................82
Mixed-Module Programming....................................................................................................82
Design Considerations and Steps.........................................................................................83
Mixed-Language Programming.................................................................................................84
6 OSS Porting Considerations.......................................................................85
UNIX Features Requiring Substitution.........................................................................................85
Memory Mapping.............................................................................................................86
Multiple Threads in Applications..........................................................................................87
The STREAMS Feature........................................................................................................87
The poll() Function..............................................................................................................88
TLI/XTI..............................................................................................................................88
Using Interprocess Communication (IPC) Mechanisms..................................................................88
Using Sockets....................................................................................................................89
Using Message Queues......................................................................................................90
Message Queues and Process Creation Functions..............................................................91
Using Pipes and FIFO Files..................................................................................................91
Pipe Implementation for Single-Processor System................................................................91
Using a Pipe Across Processors.......................................................................................91
Opening and Reading a FIFO File ..................................................................................92
Performance Considerations for Pipes and FIFOs...............................................................92
Using Signals....................................................................................................................93
Using Shared Memory........................................................................................................93
Using Semaphores.............................................................................................................93
Using the $RECEIVE File.....................................................................................................94
Memory Model Considerations................................................................................................94
Memory Allocation and Deallocation...................................................................................95
Swap Space Management..................................................................................................95
Considering Design Trade-Offs.................................................................................................95
Using Process-Creation Calls....................................................................................................96
Using fork() and the exec Set of Functions in UNIX.................................................................96
Using fork() and the exec Set of Functions in OSS...................................................................97
6 Contents