User Tools

Site Tools


faq

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
faq [2021/03/17 13:51] jxufaq [2021/03/17 14:23] jxu
Line 176: Line 176:
 **Question 20**: Because my group started working on Assignment 2 rather late, now it looks almost certain that we won’t be able to finish designing, and implementing any working Java program that is able to compute the average waiting times and average turnaround times for any given workload using all of the six scheduling algorithms as specified in Assignment 2. Yet we don’t want to completely give up on Assignment 2. Can you give us some advice on what we might consider doing for the programming part of Assignment 2 to at least get something done for the programming part, taking into consideration that we only have a few days left before the deadline to work on the assignment?   **Question 20**: Because my group started working on Assignment 2 rather late, now it looks almost certain that we won’t be able to finish designing, and implementing any working Java program that is able to compute the average waiting times and average turnaround times for any given workload using all of the six scheduling algorithms as specified in Assignment 2. Yet we don’t want to completely give up on Assignment 2. Can you give us some advice on what we might consider doing for the programming part of Assignment 2 to at least get something done for the programming part, taking into consideration that we only have a few days left before the deadline to work on the assignment?  
  
-**Answer to Question 20**: : As a first step, you may try to write the code only for a very basic and simple Java program, which only needs to handle the following:  +**Answer to Question 20**: : As a first step, you may try to write the code only for a //**very basic and simple Java program**//, which only needs to handle the following:
-   +
-  - (1) Each process only executes once on the CPU before terminating; +
-  - (2) Each process never does any I/O on any I/O device; +
-  - (3) All processes have the same single CPU Computation Time; +
-  - (4) Only the simplest C1. Nonpreemptive First-Come, First-Served (FCFS) CPU Scheduling Algorithm is used. +
  
 +  * Each process //**only executes once on the CPU**// before terminating;
 +  * Each process //**never does any I/O**// on any I/O device;
 +  * All processes have the //**same single CPU Computation Time**//;
 +  * Only the simplest //**C1. Nonpreemptive First-Come, First-Served (FCFS) CPU Scheduling**// Algorithm is used.
  
 Note that in this very basic and simple system: Note that in this very basic and simple system:
Line 196: Line 194:
   - the Arrival Time of each process;   - the Arrival Time of each process;
   - the CPU Computation Time for each process;   - the CPU Computation Time for each process;
 +
  
 Then try to write code which computes the Average Waiting Times and Average Turnaround Times for any set of user input parameters above. Then try to write code which computes the Average Waiting Times and Average Turnaround Times for any set of user input parameters above.
  
-Once you have got the code for the very basic and simple Java program described above working, then try to gradually add additional features, in order of difficulty, to the code. For example: +**Once you have got the code for the very basic and simple Java program described above working, then try to gradually add additional features, in order of difficulty**, to the code. For example: 
-  - First try to allow processes to have different CPU Computation Times. +  - First try to allow processes to have //**different CPU Computation Times**//
-  - Then try using C2. Nonpreemptive Shortest-Job-First (SJF) Scheduling. (The only difference in this case, is that, whenever the CPU becomes available, the Nonpremptive SJF CPU Scheduler always removes from the ready queue the process which has the smallest CPU Computation Time among all processes in the ready queue, and allows that process to start executing on the CPU. +  - Then try using //**C2. Nonpreemptive Shortest-Job-First (SJF) Scheduling**//. (The only difference in this case, is that, whenever the CPU becomes available, the Nonpremptive SJF CPU Scheduler always removes from the ready queue the process which has the smallest CPU Computation Time among all processes in the ready queue, and allows that process to start executing on the CPU. 
-  - Then try using C4. Nonpreemptive Priority Scheduling. (The only difference in this case, is that, whenever the CPU becomes available, the Nonpremptive Priority CPU Scheduler always removes from the ready queue the process which has the smallest Priority Number among all processes in the ready queue, and allows that process to start executing on the CPU.  +  - Then try using //**C4. Nonpreemptive Priority Scheduling**//. (The only difference in this case, is that, whenever the CPU becomes available, the Nonpremptive Priority CPU Scheduler always removes from the ready queue the process which has the smallest Priority Number among all processes in the ready queue, and allows that process to start executing on the CPU.  
-  - Then try using some of the Preemptive CPU Scheduling Algorithms C3, C5, C6. (In this case, whenever a process which is currently executing on the CPU is preempted by a process with higher priority, that preempted process which has lower priority is put back into the ready queue.) +  - Then try using some of the //**Preemptive**// CPU Scheduling Algorithms C3, C5, C6. (In this case, whenever a process which is currently executing on the CPU is preempted by a process with higher priority, that preempted process which has lower priority is put back into the ready queue.) 
-  - Then try to allow each process to make one single request to perform I/O for some I/O Time on one single I/O device after completing its first CPU Computation Time, while for CPU Scheduling only use one of the Nonpremptive CPU Scheduling Algorithms C1, C2 or C4. (In this case, an I/O queue is used, and processes are entered at the end of the I/O queue whenever they request I/O. Whenever the I/O device is available, the Nonpremptive FCFS I/O Scheduler always removes from the I/O queue the process which is at the front of the I/O queue, and allows that process to start performing I/O on the I/O device for the full duration of its I/O Time before that process makes the next request to execute on the CPU - after completing I/O the process will be entered into the ready queue.) +  - Then try to allow each process to make //**one single request to perform I/O**// for some I/O Time on one single I/O device after completing its first CPU Computation Time, while for CPU Scheduling only use one of the //**Nonpremptive CPU Scheduling Algorithms**// C1, C2 or C4. (In this case, an I/O queue is used, and processes are entered at the end of the I/O queue whenever they request I/O. Whenever the I/O device is available, the Nonpremptive FCFS I/O Scheduler always removes from the I/O queue the process which is at the front of the I/O queue, and allows that process to start performing I/O on the I/O device for the full duration of its I/O Time before that process makes the next request to execute on the CPU - after completing I/O the process will be entered into the ready queue.) 
-  - Then try to allow each process to make one single request to perform I/O for some I/O Time on one single I/O device after completing its first CPU Computation Time, while for CPU Scheduling only use one of the Preemptive CPU Scheduling Algorithms C3, C5, C6.+  - Then try to allow each process to make //**one single request to perform I/O**// for some I/O Time on one single I/O device after completing its first CPU Computation Time, while for CPU Scheduling only use one of the //**Preemptive CPU Scheduling Algorithms**// C3, C5, C6.
   -  …    -  … 
  
faq.txt · Last modified: 2021/04/26 22:20 by jxu