Proc32

Process Manager (QNX)

Syntax:

Proc32 [options]...

Options:

-b
Toggles between standard and alternate reboot method. Try this option if a machine will not reboot properly.
-B node
Set base node in network (default: 1)
-d num_major
The number of major device numbers to be supported (default is 64).
-D
If the debugger (Debugger32) is bound into the operating system, suppress its automatic invocation upon boot.
-e num_semaphores
Specify the maximum number of semaphores available in the system. (Default: 128)
-f min max total
This option controls the availability of file descriptors (FDs):
min
The minimum number of FDs that must be available before a process will start. This argument defaults to 16 and should be left at that value if POSIX-compliance is a requirement (POSIX requires that a process be capable of opening at least 16 files). You can save some memory by reducing this number.
max
The maximum number of FDs that can be available for a process (default is 512).
total
The total number of FDs available in the system (default is num_procsx16).
Each process starts off by taking min FDs, which it may grow to max FDs.
-H
Allocate heap as needed.
-i irq
Make irq the highest-priority hardware interrupt in the system. You can specify a number from 0 through 7 (default is 3).
-l node
("el") Assign the specified logical node ID to this machine (default is 1). Each connected machine must have a unique logical node ID.
-L
Local. Don't permit outbound network access from this computer.
-m num_shared_segs
The number of shared segments (managed by the qnx_segment_*() family of functions) that will be available in this operating system image (default is 2000).
-M machine_name
The symbolic name for this computer (default is AT or PS/2). Some programs check for this name and alter their behavior accordingly. For example, the floppy disk driver (Fsys.floppy) and some PS/2 disk drivers look for the name PS/2.
-n num_names
The maximum number of names that can be registered locally by the qnx_name_attach() function (default is 80).
-o port[,baud]
Emit messages to the specified serial port.
-p num_procs[,code]
The total number of real processes, virtual circuits, and proxies that can exist at any time (default is 400). The optional ",code" is for command-line compatibility with earlier Procs and is ignored.
-P priority
Set Proc's priority to the specified value between 26 and 30. (Default: 30)
-r prefix_len
The size of the system prefix space (default is 2000).
-s num_sessions
The maximum number of sessions that will be supported (default is 64).
-S gdts ldts
Set the maximum number of global segments and local segments in the system (by default an appropriate value will be chosen). Most programs need two local segments, while few may need 30 or more. Global segments may be used by some programs for permanent shared memory.
-t num_timers
The number of timers that will be supported (default is 100). These timers are allocated to processes with the timer_create() function and returned with the timer_delete() function. See also the sleep() and alarm() functions.
-T trace_size
The size of the trace buffer, in kilobytes (default is 4K). See also the tracectrl, traceinfo, and tracelogger utilities.
-v level
Set the verbosity level (0 to 3; default is 0). The message levels are as follows:
Level 0:
An internal inconsistency was detected. Contact QNX Software Systems.
Level 1:
The Kernel was forced to take a planned but uncommon recovery action.
Level 2:
Expected actions have occurred as a result of a misbehaving process or remote computer.
Level 3:
Status messages during normal operation.

Description:

Proc is a required process which handles process and memory management.

Proc cannot be started at the command line. It must be built into the operating system image. In QNX documentation, you'll see the Process Manager referred to as Proc. However, in your buildfile you must specify which version of the Process Manager you want to use:

Proc32
Allows both 16-bit and 32-bit programs to run.
Proc16
Allows only 16-bit programs to run. Proc16 is not supplied with QNX 4.23 and later. It may be available on your system if your have the binaries from a previous version of QNX.
You can run only one Process Manager per computer.

The Process Manager (Proc) works closely with the Kernel to provide essential operating system services. In fact, the Kernel is bundled with the code for Proc and shares the same address space. For these reasons, Proc is a required system process in all operating system images that are built. You cannot start Proc after booting.

Most of the services Proc provides require the use of memory within Proc. The amount of memory used is controlled by tables whose sizes are set by options to Proc. Some tables are fixed in size, while other dynamically request more memory as needed.

Heapp
displays the heap space for Proc as described in the formula above.
Heapf
displays the heap space for FDs (file descriptors) (-f option).
Heapl
displays the heap space for LDTs (local descriptor tables) (-S option).

See also: