Reusable Server Kernel - Exercises
Table of Contents
Reusable Server Kernel - Exercises
Reusable Server Kernel - Exercises
These questions will help you firm up your understanding of many of the areas of the RSK.
- Match the list entries.
PROFILE RSK
Service
Line driver
C-block
IUCV
Object, user, action
DIAG X'250'
Move Long
ssMemoryAllocate
S-block
CMS IPC
SSASMWRK
Worker machine
Enrollment set
BKWRTE
*
SSPRLG
CMS/MT wildcarding
KERNEL row
RSKMAIN
- Run-time environment manager
- Mapped userid for CONSOLE
- Essential part of user ID mapping
- Worker API binding
- Authorization API
- Represents service
- Data space backed by SFS
- Represents client
- Manages transport protocol
- Grandson of DMSFREE?
- Your route to the line driver
- Automatic storage macro
- A(your first instruction)
- Transport for worker API
- Key to decoding monitor data
- MAPMDISK I/O method
- The part you write
- Method for storage group I/O
- Initialization exec
- Isolates risky function
- Put these items in the correct order by writing
appropriate numerals on the lines provided.
____ ssServerRun
____ Module begins
____ RUNSERV
____ Line driver and service commands
____RSKMAIN returns to caller
____Appropriate setup code
____WAITSERV
____RSKMAIN regains control
____ssServiceBind a few times
____RSKMAIN gets control
____Module ends
____PROFILE RSK gets control
____SERVER STOP or ssServerStop
____Appropriate teardown code
____A few CONFIG commands
____PROFILE RSK returns
____A long time passes
____Your last-minute termination code -
Explain the processing that is to happen in your RSKMAIN.
-
As the author of a service,
there are three entry points you must supply.
- Name the three entry points.
- Which API do you use to inform the RSK about your service?
- When in the server's life do you call this API?
- Under what conditions does the RSK drive each one?
-
What register conventions must you observe when calling
an RSK entry point?
-
Explain the meanings of the status bits in the IPC
message an RSK line driver sends to an instance.
-
Suppose your service were being sourced by a record-oriented
line driver. Explain how to use ssClientDataGet
in this situation. How would you
decode the inbound data stream? What about your use of
ssClientDataPut -- how is the outbound
data stream to be constructed?
-
Suppose your service were interested in waiting for
stimuli other than those indicative of client activity.
How could you accomplish this?
-
What is the function of the AUTHCHECK_
configuration parameter set? Explain the relationship
between these and ssAuthTestOperations.
-
Your files are in the BFS in EBCDIC with X'15' line
delimiters and you are serving them to a client that wants
them in ASCII with CR-LF delimiters. Show how to call
ssCacheFileOpen for this situation.
-
Why is DIAG X'A4' the RSK's last resort for
storage group I/O?
-
Suppose your server requires an extensive set of configuration
variables of its own. Is there an RSK feature or facility
that will help you with this problem? Explain.
-
Name some reasons why you would consider running work in
a worker machine instead of the main server.
-
If you divide the circumference of a jack-o-lantern by
its diameter, what do you get?
-
Consider the following output from the MONITOR service:
RSK> monitor display kernel MONITOR KERNEL at 07E59000.00000048 MONITOR D2C5D9D5 C5D34040 40404040 40404040 00000032 00000048 00000020 00000001 MONITOR 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 MONITOR 00000000 00000000 RSK> monitor display linedrv MONITOR LINEDRV SUBCOM at 07E59708.00000048 MONITOR D3C9D5C5 C4D9E540 E2E4C2C3 D6D44040 00000000 00000020 00000000 0000023E MONITOR 00000000 000004F0 00000000 00000000 00000000 00000000 00000000 00000000 MONITOR 00000000 00000000 MONITOR LINEDRV CONSOLE at 07E597E0.00000048 MONITOR D3C9D5C5 C4D9E540 C3D6D5E2 D6D3C540 00000000 00000002 00000000 0000001D MONITOR 00000000 0000011C 00000000 00000000 00000000 00000000 00000000 00000000 MONITOR 00000000 00000000 RSK> monitor user MONITOR User data at 07E59F78.00000020 MONITOR 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 RSK>
- How many monitor rows are there?
- What is the size of the user monitor buffer?
- How many lines have been typed on the console?
-
Why does
ssMemoryAllocate
not support
private subpools?
-
In PROFILE RSK, which line driver starts services
first, and why?
-
What's wrong with this Rexx snippet from PROFILE RSK?
'TCP START HTTP 80' if (rc<>0) then say 'TCP start failed!'