联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2023-11-12 10:10

EECS 2101 Section E Fall 2023

Assignment 2

System for Determining the Average Waiting Times When Three Different CPU

Scheduling Algorithms Are Used

Due Date: Monday November 13, 2023, 23:59.

1. Description of the Assignment

1.1. System for Determining the Average Waiting Times When Three Different CPU

Scheduling Algorithms Are Used

You are required to apply the concepts of data structures and algorithms that you have

learned in this course to design, analyze, implement, test, and document a system for

determining the average waiting times for any given set of processes when each of the

following three different CPU scheduling algorithms are used, as described in the

material in the textbook by Silberschatz, Galvin, and Gagne mentioned further below:

(1) Preemptive Shortest-Job-First (SJF) Scheduling Algorithm, when the Arrival Time,

and Burst Time are given for each process;

(2) Round Robin (RR) Scheduling Algorithm. when the Arrival Time, Burst Time, and

Time Quantum are given for each process;

(3) Combined Round-Robin and Priority Scheduling Algorithm, when the Arrival Time,

Burst Time, Time Quantum, and Process Priority are given for each process.

1.2. Required Readings

To understand the basic concepts related to CPU scheduling algorithms, you are required

to read the material in the book authored by Silberschatz, Galvin, and Gagne, “Operating

System Concepts,” Tenth Edition, Wiley, 2018, specified below. (A copy of the specified

material in Silberschatz, Galvin, and Gagne’s book can be found in the 2101E F23 eClass

file: Operating_System_Concepts_CPU_Scheduling.pdf)

(a) To understand the basic concept of CPU scheduling:

Read Silberschatz, Galvin, and Gagne page 200, first two paragraphs.

(b) To understand the basic concept of Waiting time:

Read Silberschatz, Galvin, and Gagne page 205, 3rd paragraph.

(c) To understand the basic concepts of the Preemptive Shortest-Job-First (SJF)

Scheduling Algorithm:

Read Silberschatz, Galvin, and Gagne page 207, 1st paragraph under subsection 5.3.2

“Shortest-Job-First Scheduling” and

page 209, starting from 3rd paragraph, and example of preemptive SJF scheduling.

(d) To understand the basic concepts of the Round-Robin (RR) Scheduling Algorithm:

Read Silberschatz, Galvin, and Gagne page 209, the paragraphs under subsection

5.3.3 “Round-Robin Scheduling” and all the material on page 210, including the

example of the RR scheduling algorithm.

(e) To understand the basic concepts of the Combined Round-Robin and Priority

Scheduling Algorithm:

Read Silberschatz, Galvin, and Gagne pages 211-214, all the material under

subsection 5.3.4 “Priority Scheduling”, including the example of the combined

round-robin and priority scheduling algorithm starting from the last paragraph of page

213 until the end of the subsection 5.3.4.

(f) You may also take a look at Slide DS.6.33 “Application: Round Robin Schedulers”

in the file “DS.6.pdf” posted on 2101E F23 eClass.

1.3. Requirements regarding the design, analysis, implementation, testing, and

documentation of the system:

(a) When designing the software to implement the System for Deterministic Modeling of

CPU Scheduling Algorithms, you must apply best practice software engineering

principles and carefully choose appropriate data structures and methods. Furthermore, in

your report/documentation you must justify and explain why you chose each particular

data structure and method.

(b) You must analyze the asymptotic run times and space usage of your methods in the

report.

(c) You must describe in detail any problems or difficulties that you had encountered, and

how you solved or were able to overcome those problems or difficulties in the report.

(d) Additional Requirements:

(d1) You must make sure that your code has very detailed comments.

(d2) You must make sure that your code compiles correctly.

(d3) You must make sure that your code does not generate non-recoverable exceptions.

(d4) You must make sure that your code is able to handle incorrect input.

Failure to satisfy all the requirements above will result in a low mark for the

assignment.

2. Platform on Which The System for Deterministic Modeling of CPU Scheduling

Algorithms is to be Implemented

The programs should to be implemented using the Java programming language and you

should make sure that the TAs/markers will be able to run them on the Red server at

York.

3. What to Hand In

3.1. Each group is required to submit an electronic copy of the following to the 2101E

F23

eClass folder titled “2101E F23 Assignment 2”:

1. A written report that identifies and addresses all the important aspects and issues in the

design, analysis, implementation, testing, and documentation of the software for the

problem described above. The required format of the submitted written report is PDF.

2. The Java source programs.

3. A “Test_output” file containing the output of any testing your group has done.

4. A “README” file explaining how to compile and run your group’s program.

3.2. Each group is also required to use the utility "submit" to submit the electronic

version of the above 3 files to the course directory /cs/course/2101E/submit/a2

on the Red server.

(Please direct all inquiries about how to login to the Red server to the Helpdesk at York

University Information Technologies (UIT). Once you have logged into the Red server,

in order to learn how to use any command such as “submit” on the Red server, type “man

submit”.)

Important Warning:

Only submitting an electronic copy of your group’s assignment to eClass is not

enough! If your group fails to use the utility "submit" to submit the electronic

version of the above 3 files to the course directory /cs/course/2101E/submit/a2 on or

before the due date, your group’s assignment will receive a grade of ‘F’.

4. Evaluation of the Assignment

4.1. The report part of your assignment (60%) will be evaluated according to:

(a) How well you have satisfied the requirements specified in Section 2 above.

(b) How well you have explained the design and implementation of your system and how

well you have justified your design decisions.

(c) The quality of your design.

(d) How well you have designed and explained the testing.

(e) The clarity, and readability of the report.

4.2. The program and testing part of your assignment (40%) will be evaluated according

to:

(a) The quality of the design and implementation of your programs.

(b) The quality of the testing of your programs.

(c) Whether your programs satisfy the Additional Requirements in Section 1.3 (d), (d1)-

(d4) above.

5. Resources

5.1. A copy of the material in Silberschatz, Galvin, and Gagne’s book mentioned above

can be found in the file on 2101E F23 eClass titled:

“Operating_System_Concepts_CPU_Scheduling.pdf”

5.2. A primitive sample java program template, is posted in the file

“EECS_2101E_F23_a2_primitive_sample_template.java” on 2101E F23 eClass,

Please note that the ONLY PURPOSE of providing this primitive sample java program

template is to provide some hints of what kinds of input data and output data could be

involved in the assignment. Your program is NOT required to be the same, or in any

way similar to, any elements or parts of this primitive sample java program template,

including either the style, or format, or syntax, or code, or data structures, or program

organization, etc., of any parts of this primitive sample java program template. Please

note that no further explanation regarding this primitive sample java program template

will be provided.

5.3. A copy of a set of slides related to the material in Silberschatz, Galvin, and Gagne’s

book mentioned above can be found in the file on 2101E F23 eClass titled:

“OS-ch5_part_1.pdf”

5.4. A copy of video recordings related to the set of slides in item 5.3 can be found in the

files on 2101E F23 eClass titled:

“OS-ch5_part_1.1.mp4,” and “OS-ch5_part_1.2.mp4”

Please note that it is completely up to each individual student to determine whether the

items in 5.3 and 5.4 may be useful or not for doing this assignment. Please note that

no further explanation regarding the items in 5.3 and 5.4, will be provided.

6. 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, testing, and

documentation choices concerning the unspecified details of the System for Deterministic

Modeling of CPU Scheduling Algorithms, and justify those decisions in your group’s

report.

Note that although the material in the textbook by Silberschatz, Galvin, and Gagne do not

include examples of the Round Robin (RR) Scheduling Algorithm; and Combined

Round-Robin and Priority Scheduling Algorithm when Arrival Times are NOT all equal

to zero, you should still try to figure out how to correctly handle cases where Arrival

Times are not all equal to zero, based on the concepts explained in the material in

Silberschatz, Galvin, and Gagne’s textbook (you should first try to get your program to

work correctly for the cases where Arrival Times are all equal to zero, before attempting

to get your program to work correctly for the cases where Arrival Times are not all equal

to zero.)

You need to very carefully read and try your best to fully understand the explanation in

the textbook by Silberschatz, Galvin, and Gagne regarding how the various CPU

scheduling algorithms work, as no further explanation beyond Silberschatz, Galvin, and

Gagne’s textbook will be provided.

In general it is up to each individual student to make his/her individual judgment

regarding details that are not explicitly specified above, such as what design, analysis,

implementation, testing, and documentation choices should be made; what specific

material to include in the report, the length of writing for each specific material/topic

in the report, the total length of the report, how to organize and structure the material

in the report, …, etc., and any other possible details about the report.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp