1
0
mirror of https://github.com/moshix/mvs.git synced 2026-01-22 18:21:25 +00:00
moshix.mvs/SOS_OS/README_with_Console.txt

103 lines
4.8 KiB
Plaintext

Sample Operating System Version 2.00 - Console I/O Via EXCP Device Handler Demo
===============================================================================
The book "Operating Systems" by Stuart E. Madnick and John J. Donovan
(McGraw-Hill 1974) describes a sample operating system suitable to run on
IBM S/360 and S/370 computers.
While providing a programming interface for card readers and printers, the
sample operating system doesn't come with equivalent support for console
devices. It provides, however, an "EXCP Device Handler" allowing user programs
to execute channel programs addressing arbitrary devices, as long as UCBs for
these devices are defined in the UCB table. Thus, after adding a "console UCB"
to the UCB table and after adding a matching device to the hardware (Hercules),
user programs can perform "console I/O" using the EXCP device handler.
As opposed to a system wide console task handling console I/O asynchronously
from requesting programs, allowing user programs to access the console device
directly requires serialization. The sample operating system serializes the I/O
using a wait semaphore defined in the UCB. That means all requests are queued
and user programs have to wait until it's their turn to access the device.
Serialized console I/O shouldn't be a problem when messages are to be sent to
the console, as long as no message flooding occurs. However, when it comes to
reading from the console (replies, parameters, etc.) serialization can lead to a
complete halt of running jobs if a read request isn't answered in a timely
manner. This has to be kept in mind when using such a "poor man's" console.
The Console I/O package contains an updated version of the demo user program
shown in figure 7-11 of the "Operating Systems" book. In addition to printing a
message confirming its successful entry into the system, it reads "parameters"
from the console and echoes them back to the printer. To support this program a
UCB to handle a "console" at 009 has been added to the sample operating system.
This is meant as a proof of concept style example on using the EXCP device
handler only. In particular, I/O is not checked for completeness, success or
failure, which certainly would need to be done for real world usability.
Installation:
-------------
Before installing the Console I/O package, please ensure you have the sample
operating system with the card reader handling enhancement installed, as found
and described in
https://groups.yahoo.com/neo/groups/hercules-390/files/Madnick_4_KB_RDR_for_Hercules.zip
It is recommended to install the Console I/O package on a separate copy of the
sample operating system, as it changes the Hercules configuration (hardware)
and the system configuration (device support). To install the package unzip the
archive found at
https://groups.yahoo.com/neo/groups/hercules-390/files/Madnick_with_Console.zip
into the folder containing the copy of the sample operating system to be used,
allowing the unzip program to merge folders and replace files already existing.
Contents:
---------
README_with_Console.txt - this file
conf/madnick.cnf - Hercules configuration file
source/sos4krdc.asm - sample OS source, updated to include console UCB
source/sosuserc.asm - demo user program source, updated for console I/O
rdr/sample_operating_system_version_2.00.ipldeck - card deck to IPL sample OS
rdr/demo_user_program.deck - card deck to submit the demo user program
sysgen/madnick_with_console.xmi - XMITted PDS containing source and
build information
Note that rdr/sample_operating_system_version_2.00.ipldeck is identical to
member IPL4KRDC of the PDS contained in sysgen/madnick_with_console.xmi.
Follow the instructions in member $README of this PDS to rebuild the IPL
deck from source.
Usage:
------
The following steps provide minimal information to IPL the sample operating
system and to run the demo user program from four card readers simultaneously:
o make sure to have Hercules in your path
o run start_herc (*i*x systems) or start_herc.bat (Windows systems)
o connect a telnet (_not_ tn3270) session to your local port 3215
o enter "ipl c" at the Hercules console prompt
o The system will enter a wait state (PSW=FE0200008000056A) when it is ready
to process jobs
o enter "script scripts/load_card_decks" at the Hercules console prompt and
reply politely to the requests being issued at the telnet session
o the system will enter a wait state (PSW=FE0200008000056A) after completion
of the four jobs
o review the output of the four jobs in folder prt
o to rerun, enter "script scripts/load_card_decks" at the Hercules console prompt
Have fun!
----------
13.11.2015, Juergen Winkelmann, ETH Zuerich
e-mail: winkelmann@id.ethz.ch