Write a java program to simulate job scheduling in an operating system. It requires: ith PCB (storing process current state, pointer to the current instruction) and calculate /o Basic processes w yield instructions. Job files" are text files that open and load the mock programs found in "program files". The lines in a job file will be LOAD commands specifying the exact cycle time a process (in the program files) is to be loaded and put into the NEW queue or state. Also, the job file contains the string name of the process so it can be identified to the user. The EXE command is the last line in each job file script and will cause the simulator to load all other lines and information, storing it into the proper fields of the PCB Once loaded, the first line in approgram file will input the process' memory requirement (possibly an INT value). The following lines will be the "script" of operations: CALCULATE, VO, YIELD, and OUT 1. CALCULATE - When this is read in, the simulator will run the process in the run state for the number of cycles specified as a parameter .VO-The simulator reads in this command, but a random number generator creates the parameter value in the main code or simulator (likely an INT value). This will put the process in the blocked state. YIELD- This command yields from or pauses the running process, halts its accumulating cycle time and gives priority to another process (possibly through the use of round-robin scheduling) These can act as random interrupts in the system OUT This will print out a message to the screen, possibly to indicate which process is running and all of its PCB information. This is similar to the user entered PROC command, but i generated by the system Creating new processes per user demand and as many as user requires The state implementation of our operating system simulator is as follows: 2. NEW The program or process is being created or loaded (but not yet in memory) READY-The program is loaded into memory and is waiting to run on the CPU RUN- Instructions are being executed (or simulated). .WAIT (BLOCKED)- The program is waiting for some event to occur (such an I/O completion) EXIT-The program has finished execution on the CPU (all instructions and I/O complete) and leaves memory 3. Implementing one scheduler (but not FCFS) and using it to schedule processes for execution Write a java program to simulate job scheduling in an operating system. It requires: ith PCB (storing process current state, pointer to the current instruction) and calculate /o Basic processes w yield instructions. Job files" are text files that open and load the mock programs found in "program files". The lines in a job file will be LOAD commands specifying the exact cycle time a process (in the program files) is to be loaded and put into the NEW queue or state. Also, the job file contains the string name of the process so it can be identified to the user. The EXE command is the last line in each job file script and will cause the simulator to load all other lines and information, storing it into the proper fields of the PCB Once loaded, the first line in approgram file will input the process' memory requirement (possibly an INT value). The following lines will be the "script" of operations: CALCULATE, VO, YIELD, and OUT 1. CALCULATE - When this is read in, the simulator will run the process in the run state for the number of cycles specified as a parameter .VO-The simulator reads in this command, but a random number generator creates the parameter value in the main code or simulator (likely an INT value). This will put the process in the blocked state. YIELD- This command yields from or pauses the running process, halts its accumulating cycle time and gives priority to another process (possibly through the use of round-robin scheduling) These can act as random interrupts in the system OUT This will print out a message to the screen, possibly to indicate which process is running and all of its PCB information. This is similar to the user entered PROC command, but i generated by the system Creating new processes per user demand and as many as user requires The state implementation of our operating system simulator is as follows: 2. NEW The program or process is being created or loaded (but not yet in memory) READY-The program is loaded into memory and is waiting to run on the CPU RUN- Instructions are being executed (or simulated). .WAIT (BLOCKED)- The program is waiting for some event to occur (such an I/O completion) EXIT-The program has finished execution on the CPU (all instructions and I/O complete) and leaves memory 3. Implementing one scheduler (but not FCFS) and using it to schedule processes for execution