Assignment title: Information
Project 1 CPU Scheduling Evaluation,
In this project, you need to write a program to simulate the scheduling of CPU. The program will randomly generate process CPU burst based on user’s setting. Performance is measured and analyzed in a report. No specific time unit is needed; we use integer number to represent time. You can select any programming language for the program. You need to implement the simulation environment to simulate time and events.
Input of the program:
How long is the simulation (integer)
Probability of one process’s arrival in one time unit (float number between 0 and 1)
Minimum and maximum process burst time (integers)
Switching latency (non-negative integer)
Scheduling algorithm ( FCFS, non-preemptive SJF, Round Robin) (Bonus preemptive SJF)
Time quantum (integer, for Round Robin algorithm only)
Measurement:
Average waiting time
CPU utilization (1 - switching_latency/overall_time)
Report:
Compare the algorithms under different simulation settings (burst size, arrival frequency, quantum size, latency size). Organize the results in a report about 2-3 pages and try to give explanation about the results.
Submission:
Source code
Report
Readme file
Project 2: A Program Simulating Modified MARIE’s Computer
Language: Any computer language
Input:
A text file containing decimal (not Hex) machine code (not assembly code) for MARIE’s computer following instruction set described in chapter 4. Instructions are in different lines (no need for semicolon at the end of each instruction)
Output:
Any output specified in the input file by 6000 will be displayed on screen
Computer specification:
Generally the same as in chapter 4:
• 1000 memory address: 000—999
• Four digits decimal instruction or data in each memory slot.
• One PC, one AC, one IR, one MBR, one MAR
• The program in the input file needs to be loaded into memory first and stored in consecutive slots starting from address 000
• Instruction 5000 will ask user’s input from keyboard, 6000 displays content in calculator
• Instruction 8000 will skip next instruction if AC<0. Instruction 8100 will skip next instruction if AC=0. Instruction 8200 will skip next instruction if AC>0
Other requirements:
Your program should accept any length of input program that can be fit in MARIE’s 1000 memory slots and generate correct result and/or output on screen.
Submit the source code together with readme file with instruction to compile, build and use your program
Example:
Input file contains following code (return positive difference):
5000
2011
5000
2012
4011
8000
9009
1011
4012
6000
7000
Running of the program with this input will ask user to input 2 numbers, let's say 5 and 10, the program will output the positive difference on the screen, which is 5.
Address Content Comment
000 5000 Input the first number
001 2011 Save the first number to address 011
002 5000 Input the second number
003 2012 Save the second number to address 012
004 4011 Second number – First number, result in AC
005 8000 If AC<0 jump to address 007
006 9009 Jump to address 009
007 1011 Load the first number to AC
008 4012 First number – second number, result in AC
009 6000 Print AC’s value
010 7000 Halt
011 Storage for first number
012 Storage for second number