faq
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
faq [2021/02/27 02:26] – jxu | faq [2021/03/17 14:07] – jxu | ||
---|---|---|---|
Line 133: | Line 133: | ||
**Answer to Question 15:** | **Answer to Question 15:** | ||
Take a look at the References or Bibliography section of //**any**// article among the **hundreds of millions** of scholarly literature in Google Scholar https:// | Take a look at the References or Bibliography section of //**any**// article among the **hundreds of millions** of scholarly literature in Google Scholar https:// | ||
+ | |||
+ | **Question 16**: How should we submit the academic honesty statement for Assignment 1? | ||
+ | Should it be added in a page before the title page or would it be all right | ||
+ | to upload both our report PDF and academic honesty statement PDF as two | ||
+ | different files in the submission? | ||
+ | |||
+ | **Answer to Question 16**: Both methods are acceptable. | ||
+ | |||
+ | **Question 17**: : Am I coding the whole system, like a queue for a ready, running and terminated our am I coding the calculation of the CPU. And also for first come first serve I assume every state has an CPU_time, and an I/ | ||
+ | |||
+ | **Answer to Question 17**: In the EECS2011N W21 Assignment 2 specification, | ||
+ | “... | ||
+ | 5. Notes, Please note that the requirements specified in Section 1. Description of the Assignment above, are the minimum requirements that must be satisfied by your assignment. Obviously, there are many other possible details of the System for Deterministic Modeling CPU Scheduling Algorithms that have been left unspecified. It is your responsibility to make appropriate design, analysis, implementation, | ||
+ | ...” | ||
+ | |||
+ | **Question 18**: I am not quite sure what we have to code in java, is it the 6 scheduling | ||
+ | algorithms from section 5.3? If yes then what should be the processes, arrival time and | ||
+ | their priority process? There is no data set available on the assignment 2 pdf. | ||
+ | |||
+ | **Answer to Question 18**: You need to not only carefully read and study the Assignment 2 specification in the 2011N_W21 Assignment_2.pdf file on eClass, but also need to carefully read and study all of the following which are posted on eClass: | ||
+ | |||
+ | (1) The copy of Sections 5.1, 5.2, 5.3, and 5.8.1, of Chapter 5 of Silberschatz, | ||
+ | Gagne’s book above can be found in the 2011N W21 eClass file | ||
+ | Operating_System_Concepts_CPU_Scheduling.pdf; | ||
+ | |||
+ | (2) The example provided in the file “2011N_W21_Assignment_2_Example.pdf” | ||
+ | which is posted on 2011N W21 eClass. | ||
+ | |||
+ | (3) The Wednesday March 3 Lecture 14 video recording which explains the 2011N W21 Assignment 2 Example posted on eClass. | ||
+ | |||
+ | **Question 19**: We are having extreme difficulties | ||
+ | implementing the preemptive algorithms. Implementing these algorithms to work in parallel with the IOScheduler FCFS | ||
+ | algorithm is a greater challenge than we have the tools to solve. | ||
+ | |||
+ | **Answer to Question 19**: You also need to carefully read and study all the material listed | ||
+ | in the Answer to Question 18 above. As shown in the Wednesday March 3 Lecture 14 video recording which explains the 2011N W21 Assignment 2 Example posted on eClass, the performance of each algorithm for any workload, that is, the Average Waiting Time, and the Average Turnaround Time, can all be calculated solely with pen and paper step-by-step. | ||
+ | |||
+ | Note that, ANYTHING THAT CAN BE CALCULATED SOLELY WITH PEN AND PAPER STEP-BY-STEP, | ||
+ | there is no need to get anything "to work in parallel", | ||
+ | parallel programming tools such as " | ||
+ | |||
+ | **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**//, | ||
+ | | ||
+ | - (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. | ||
+ | |||
+ | |||
+ | |||
+ | Note that in this very basic and simple system: | ||
+ | - There is only one single process queue – the ready queue, which is a FCFS queue; | ||
+ | - Whenever a process arrives, it is entered at the end of the ready queue; | ||
+ | - Whenever the CPU becomes available, the Nonpremptive FCFS CPU Scheduler always removes from the ready queue the process which is at the front of the ready queue, and allows that process to start executing on the CPU; | ||
+ | - Once a process starts executing on the CPU, it is never preempted, and always executes for the full duration of its CPU Computation Time before terminating. | ||
+ | - Whenever a process terminates, the CPU becomes available again. | ||
+ | |||
+ | Write the code so that the program allows the user to enter as input parameters the following: | ||
+ | - the number of processes; | ||
+ | - the Arrival Time of 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. | ||
+ | |||
+ | 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. | ||
+ | - 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 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 Preemptive CPU Scheduling Algorithms C3, C5, C6. | ||
+ | - … | ||
+ | |||
+ | (Add additional features one-by-one in this gradualist fashion, and just try to add as many features as possible before the assignment deadline.) | ||
+ | |||
+ | When adding each additional feature, write the code so that the program allows the user to enter as input parameters the following: | ||
+ | - the number of processes; | ||
+ | - the Arrival Time of each process; | ||
+ | - the Priority of each process; | ||
+ | - the Sequence of CPU Computation Time and I/O Time Requirements for each process; | ||
+ | |||
+ | When adding each additional feature, write code which computes the Average Waiting Times and Average Turnaround Times for | ||
+ | any set of user input parameters above. |
faq.txt · Last modified: 2021/04/26 22:20 by jxu