Input: All input files are already open, so do not call fopen() to open any file. You may immediately begin reading from the necessary file without an explicit call to fopen(), e.g., fscanf( scriptfp, ... ). Also, do not close any file. Remember to type "make data3files" to get the necessary .dat files for objective 3. Output: All output must be written to simout, e.g., fprintf( simout, ... ). The following functions will probably produce output of some sort: Get_Script(), Next_pgm(), Get_memory(), End_Service(), Abend_Service() This is not an absolute rule, just a recommendation. Refer to ossim.out (by typing "make correct-output") to check for the information that must be displayed and the proper format. Calling Add_events(): Your code will not call Add_events(). By this I mean, none of the functions that you write in obj3.c will call Add_events(). The programs are loaded into memory but are not actually executed. However, Add_events() will still be called by Load_events() since the LOGON and END events must be processed. Load_events() is called by the simulator in main(); you do not need to call it. pcb: A variable called pcb (process context block) is mentioned throughout the objective description and is the main object you will be dealing with for this assignment. This is a variable declared by you in Logon_Service(); it is dynamically allocated and saved in termtable. A new pcb is created for each user when they logon (do not allocate one per program). Familiarize yourself with the fields in a pcb_type structure (it's defined in osdefs.h).