1 / 25

Student Computer Simulation

Student Computer Simulation. Barbara Ericson Georgia Tech Sept 2005. Operating System - Organizer. Keep track of executing programs Give them time with the CPU A program gets a slice of time with the CPU Keep track of memory Decide when to move some data to disk (virtual memory)

Download Presentation

Student Computer Simulation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Student Computer Simulation Barbara Ericson Georgia Tech Sept 2005 Georgia Institute of Technology

  2. Operating System - Organizer • Keep track of executing programs • Give them time with the CPU • A program gets a slice of time with the CPU • Keep track of memory • Decide when to move some data to disk (virtual memory) • Keep track of disk space • Decide where to store stuff • Interface with the user • Accept input via keyboard and mouse • Keep track of devices • USB drives, cameras, etc Georgia Institute of Technology

  3. Try it Out • Type ctrl-alt-delete (press all keys at the same time) • To bring up the task manager • Click on each of the tabs • To see the applications running • To see the processes that are running • To see how much memory is used Georgia Institute of Technology

  4. CPU – Calculator Plus More • Add, subtract, multiply, divide numbers • Compare numbers • Characters are encoded as numbers • Jump to a new instruction based on the result of a comparison • Can only work with one program at a time! • Keeps a program counter which is the address of the currently executing instruction Georgia Institute of Technology

  5. Memory – Whiteboard • Holds the currently executing programs and their data • Clears when the power is turned off • Much faster than disk • Has addresses for data based on bytes • Can get data from an address • Can put data into an address Georgia Institute of Technology

  6. Disk – Storage Facility • Stores data and programs • Doesn’t clear when the power is turned off • Much slower than memory • Much cheaper than memory Georgia Institute of Technology

  7. Program - Recipe • Set of instructions to the computer • Carried out by the CPU • Accomplishes some task Georgia Institute of Technology

  8. Computer Startup • The power is turned on • The Basic Input/Output System (BIOS) • Loads from a memory chip (ROM) and executes • Initializes the hardware (keyboard, disk drive, mouse, etc) • Then loads the operating system into memory and executes it • The Operating System waits for user input • The user starts a program • By double clicking on an icon or file • Or by click on Start->Program->Some Program Georgia Institute of Technology

  9. Program Execution • The operating system reads the program into memory • adds it to a list of programs that want to execute • It gives it a time slice of the CPU • adds it to a list of programs that are executing • It saves the current state of the CPU when it gives another program a time slice of the CPU • Context switch • It can restore the state of the CPU Georgia Institute of Technology

  10. Student Computer Simulation • Operating System – need 1 • Keep a list of programs to be run • Keep a list of programs that are running • Tell CPU to run a program (set program counter to memory address) • Tell CPU to save the current state to a memory address • Tell CPU to restore the current state from a memory address • Central Processing Unit – need 1 • Keep track of the contents of Registers A, B, and C • Keep track of the program counter • Keep track of the currently executing instruction • Be able to save current state to memory • Memory – need 1 • Have a list of values for addresses (on board) • Change the values at the addresses • Disk – need 1 • Hold the source code for programs and the byte code (compiled) versions Georgia Institute of Technology

  11. Simulation Set-Up • Give the person playing the disk the source code and 2 copies of the assembler code • Create an area on the whiteboard for memory to use • Create an area on the whiteboard for the CPU to use • Label registers A, B, C • Label the program counter • Create an area on the whiteboard for the operating system to use • Label programs that want to execute list • Label programs that are executing list with address in memory Georgia Institute of Technology

  12. Program 1 // how many pizza slices? int numPeople = 30; int numSlicesPerPerson = 2; int totalSlices = numPeople * numSlicesPerPerson; int numPizzas = totalSlices / 10; Georgia Institute of Technology

  13. Compiling • Computers can’t execute source code • They need to execute bytecodes • Instructions for the machine the code is running on • 1 might be add A and B and store the result in C • We compile Java source code Name.java into Name.class • bytecodes for a virtual machine • Not any particular machine • Then we execute Java class files • Runs a Java Virtual Machine to interpret the bytecodes • Or compile to native bytecodes using a just-in-time compiler Georgia Institute of Technology

  14. Assembler • Low level programming language • Names for instructions instead of numbers • ADD instead of 1 • LOADA instead of 20 • Use an assembler to convert to the bytecodes for a machine Georgia Institute of Technology

  15. Example Assembler LOADA mem - Load register A from memory address LOADB mem - Load register B from memory address CONB con - Load a constant value into register B SAVEB mem - Save register B to memory address SAVEC mem - Save register C to memory address ADD - Add A and B and store the result in C SUB - Subtract A and B and store the result in C MUL - Multiply A and B and store the result in C DIV - Divide A and B and store the result in C COM - Compare A and B and store the result in test JUMP addr - Jump to an address JEQ addr - Jump, if equal, to address JNEQ addr - Jump, if not equal, to address JG addr - Jump, if greater than, to address JGE addr - Jump, if greater than or equal, to address JL addr - Jump, if less than, to address JLE addr - Jump, if less than or equal, to address STOP - Stop execution Georgia Institute of Technology

  16. Program 1 Assembler 0 CONB 30 // put 30 in register B 1 SAVEB 128 // int numPeople = 30; 2 CONB 2 // put 2 in register B 3 SAVEB 132 // int numSlicesPerPerson = 2; 4 LOADA 128 // get value in address 128 5 MUL // multiply a and b and store result in c 6 SAVEC 136 // int totalSlices = numPeople * numSlicesPerPerson; 7 LOADA 136 8 CONB 10 9 DIV // divide a and b and store result in c 10 SAVEC 140 int numPizzas = totalSlices / 10; 11 STOP Georgia Institute of Technology

  17. Program 2 • // calculate if we have enough material • int width = 15; • int length = 50; • int total = width * height; Georgia Institute of Technology

  18. Program 2 Assembler 0 CONB 15 1 SAVEB 160 // (int width = 15) 2 CONB 50 3 SAVEB 164 // (int height = 50) 4 LOADA 160 // load width 5 LOADB 164 // load height 6 MUL 7 SAVEC 168 // (int total = width * height) 8 STOP Georgia Institute of Technology

  19. Simulation – Get Ready • Operating System: • Say, “Program 1 wants to execute so I add it to my list of programs that want to execute” • Add it to the list of programs to execute and put 0 for the address • Say, “Disk, please give a copy of the assembler version of program 1 to the memory at location 0” • The memory can tape the program at address 0 • Say, “CPU, please execute the program at address 0” • The CPU updates the program counter to 0 • The Operating System takes program 1 off the list of programs to execute and puts it on the list of executing programs with an address of 0 Georgia Institute of Technology

  20. Simulation – Start Program 1 • CPU: • Say, “Memory please tell me the first instruction at address 0” • Memory: • Read the first instruction of program 1 (assembler version) • CPU: • Write down the first instruction as the currently executing instruction and then do what it says • If the instruction is SAVEB ask Memory to please store the value at the memory address • Memory should write down the address and value • If the instruction is a LOAD ask Memory for the value at the address • After each instruction is finished update the program counter • Ask the Memory for the next instruction Georgia Institute of Technology

  21. Simulation – Context Switch • Operating System: • After the CPU executes 6 instructions from Program 1 interrupt • Say, “Program 2 wants to execute” • Ask the Disk for a copy of program 2 to be loaded into address 200 • Have the disk give a copy of the assembler version to memory • Memory can tape it by the address 200 • Add program 2 to the list of programs to execute • Ask the CPU to save state to address 400 • CPU asks memory to save A, B, C, and program counter to memory starting at 400 • Ask the CPU to set the program counter to 200 • Remove program 2 from the list of programs to execute • Add program 2 to the list of programs that are executing Georgia Institute of Technology

  22. Simulation – Start Program 2 • CPU: • Say, “Memory please tell me the first instruction at address 200” • Memory: • Read the first instruction of program 2 (assembler version) • CPU: • Write down the first instruction as the currently executing instruction and then do what it says • If the instruction is SAVEB ask Memory to please store the value at the memory address • Memory should write down the address and value • If the instruction is a LOAD ask Memory for the value at the address • Memory will tell you the value • After each instruction is finished update the program counter • Ask the Memory for the next instruction Georgia Institute of Technology

  23. Simulation – Context Switch • Operating System: • After the CPU executes 6 instructions from Program 2 interrupt • Ask the CPU to save state to address 600 • CPU asks memory to save A, B, C, and program counter to memory address 600 • CPU • Ask memory for values at address 400 • Reset A, B, C and program counter • Ask for next instruction based on program counter • Memory tells next instruction in Program 1 • Execute this instruction and update the program counter • When you reach STOP tell Operating System • Operating System • Remove program 1 from list of executing programs Georgia Institute of Technology

  24. Simulation – Context Switch • Operating System: • Ask CPU to restore state from address 600 • CPU • Ask memory for values at address 600 • Reset A, B, C and program counter • Ask for next instruction based on program counter • Memory tells next instruction in Program 2 • Execute this instruction and update the program counter • When you reach STOP tell Operating System • Operating System • Remove program 2 from list of executing programs Georgia Institute of Technology

  25. Summary • Programs must be in memory to execute • Data and programs are copied from disk • The CPU only has a few places to save values • So we save values to memory while we are executing • We can give each program a bit of time with the CPU • And then save the current state to memory • Later we can restore it from memory • This makes it look like it is executing several programs at once Georgia Institute of Technology

More Related