CSE 361S Intro to Systems Software Lab #4
|
|
- Bertram Adams
- 6 years ago
- Views:
Transcription
1 Due: Thursday, October 13, 2011 CSE 361S Intro to Systems Software Lab #4 Introduction In this lab, you will write a program in both assembly and C that sums a list of scores for a set of students, assigns grades to each of the students, and creates frequency and grade distribution tables for the all the students. The frequency and grade distributions will be printed to the screen as a histogram using ASCII characters. In Part I of the lab, you will generate the assembly code for the program, and in Part II of the lab, you will generate the equivalent C code, using pointers, for the program. In both Parts I and II, you have already been given the code organization and the code for printing out the score and grade distributions to the screen; you only need to complete the other portions of the program. For this lab, you are allowed to work in groups of up to 2 individuals. If you do work as a group, you need only make one submission of the group's work. Part I: Assembly Programming Record Format The list of student records will be included in your source file using the.include directive, so you can access the data as you would any other variables. You should keep the test files in the same directory as your assembly file, so that the.include declaration used in the given assembly file will always work:.include "test1.dat" Note: In verifying your program, you will need to change the name of the test file in the.include directive (and re-assemble after each change of the file name) to test the six different test files provided. Within each of the given input files, there are two variables. The first variable is scores, a record list in which each record provides a list of scores for a student. The second variable is numrec, which indicates the number of records in the record list scores. Each record contains a seven character ASCII id field (padded to seven characters with blanks, if needed), followed by the C end-of-string character, 0 (NULL). After the ID string, there are five unsigned word-size (16 bit) scores, a dword-size (32 bit) total field (initialized to 0), a single ASCII character field, grade (initialized to 'F'), and an end-of-record byte, 0 (NULL). The format is shown in the table below, where 'A' indicates an ASCII character, 'B' indicates an unsigned integer byte, 'W' indicates a word, and 'D' indicates a dword. An offset field is provided for your benefit for determining the necessary offset of each of the fields (note: you must determine these offsets yourself). 1
2 Field ID 0 Score 1 Score 2 Score 3 Score 4 Score 5 Total Grade EOR Data AAAAAAA A W W W W W D A B Offset The contents of the test1.dat file is shown below: /* Test1.dat - First data file for CSE 361S - Lab 4 */ /* Format: id, 0, score1, score2, score3, score4, score5, total, grade, 0 */ /* NOTE: the 0 after id is the string terminator for the id string */ scores:.byte 'H', 'a', 'p', 'p', 'y', ' ', ' ', 0, 98, 0, 100, 0, 92, 0, 89, 0, 99, 0, 0, 0, 0, 0, 'F', 0.byte 'G', 'r', 'u', 'm', 'p', 'y', ' ', 0, 91, 0, 86, 0, 93, 0, 89, 0, 88, 0, 0, 0, 0, 0, 'F', 0.byte 'S', 'n', 'e', 'e', 'z', 'y', ' ', 0, 80, 0, 79, 0, 83, 0, 85, 0, 72, 0, 0, 0, 0, 0, 'F', 0.byte 'D', 'o', 'p', 'e', 'y', ' ', ' ', 0, 72, 0, 68, 0, 63, 0, 75, 0, 71, 0, 0, 0, 0, 0, 'F', 0.byte 'B', 'a', 's', 'h', 'f', 'u', 'l', 0, 64, 0, 63, 0, 62, 0, 59, 0, 60, 0, 0, 0, 0, 0, 'F', 0.byte 'S', 'l', 'e', 'e', 'p', 'y', ' ', 0, 51, 0, 48, 0, 47, 0, 53, 0, 50, 0, 0, 0, 0, 0, 'F', 0.byte 'D', 'o', 'c', ' ', ' ', ' ', ' ', 0, 40, 0, 41, 0, 33, 0, 49, 0, 35, 0, 0, 0, 0, 0, 'F', 0 numrec:.int 7 Output Format The frequency distribution should be output to the screen as a histogram using ASCII characters. There should be one row of output per bin in the distribution table. Each row should start with a label indicating the range of scores which that row represents. Following the label should be one star '*' for each total in that range. Following output of the histogram should be a listing of the total number of grades of each type given. The output which corresponds to the test1.dat file is shown below: 0-50: : : : * : * : : ** : * : * : * Number of A's: 2 Number of B's: 3 Number of C's: 1 Number of D's: 1 Number of F's: 0 2
3 Program Details Your program has four main tasks: 1. Total the scores for each record. Each record contains a list of five word-size scores, followed by a dword-size total field (initialized to 0), and an ASCII character field for the grade. For each record your program should add together the five scores and place the sum in the corresponding total field. The scores are stored as unsigned integer words and all are in the range of (inclusive). Each total should be stored as an unsigned integer dword. This operation is to be performed by the compute_totals procedure. The skeleton of this procedure has been provided and you are to fill in the necessary code. 2. Compute the grade for each record. Based on the total, a grade should be given for that score. Scores are to be graded using a uniform distribution (i.e., NOT graded on a curve) that assigns an A to the top 20% of all possible scores, a B to the next 20%, and so on, down to an F for the lowest 20% of all possible scores. This operation is to be performed by the compute_grades procedure. The skeleton of this procedure has been provided and you are to fill in the necessary code. You can receive extra credit by appropriately using a jump table for the grade computation for each record. 3. Fill in the distribution arrays. An array, num_scores, with ten elements has been provided, in which you are to compute the number of records whose total fall within that 50 point range. That is, element 0 should contain the number of records whose total falls between 0 and 50 (inclusive), element 1 should contain the number of records whose total falls between 51 and 100, and so on, up to element 9 which should contain the number of records whose total falls between 451 and 500. Each element in the array has been initialized to 0. This array is then used for printing out the results by the last procedure in the main program. Similarly, an array, num_grades, with five elements has been provided, in which you are to compute the number of students that receive each of the five possible grades. The first element should contain the number of records for students receiving an 'F', the second element should contain the number of records for students receiving a 'D', and so on. Each element in the array has been initialized to 0. This array is then used for printing out the results by the last procedure in the main program. This should be done with only one pass over the data. These operations are to be performed by the create_hist procedure. The skeleton of this procedure has been provided and you are to fill in the necessary code. 3
4 4. Output the histogram and total number of grades for each grade level to the screen. The output should follow the format given above. Be sure to test all of the input files (by changing the file name referenced by the.include directive in the assembly file) and compare your output with the given output files. This code has been provided for you in the procedure, print_results. Implementation For the first part of the lab, students will need the program skeleton hist_asm.s, the Makefile, and the given input and output files: Input: test1.dat, test2.dat, test3.dat, test4.dat, test5.dat, test6.dat Output: out1.txt, out2.txt, out3.txt, out4.txt, out5.txt, out6.txt You can download all the files in the following tar file on the class webpage: cse361s_lab4.tar. Part II: C Programming In the second part of this lab, students are to implement the same functions from Part I in C. The C program skeleton (including the display functions) are provided. Add the necessary C code and verify correctness once again using the six output text files. Note: The test files are now defined in the C syntax as header files (.h files), and use the scores_rec data structure, as defined in each of the header files. To include a given test file, the #include "test1.h" directive is used in the main C program file, (hist_c.c). Similar to Part I, to test the six different input data sets, you will need to change this file name and re-compile the C program after each name change. Don't forget to edit the Makefile to reference the different.h files as well. In the provided C program skeleton, a new pointer variable, rec_ptr, has been declared in hist_c.c. Please use this pointer variable for performing all memory accesses to/from the scores array of records. Set the pointer to the address of each scores array record, as needed, using the technique discussed in class. Note however, that referencing fields in a data structure accessed via a pointer uses a different syntax; instead of a period ('.') between the main variable name and the data structure field, you need to use the pointer symbol ('->') between the pointer variable name and the data structure field. For example, when rec_ptr is pointing to one of the array records (of type scores_rec) in scores, then to access the contents of the grade field in that record, the syntax would be rec_ptr->grade. Note that no asterisk ('*') is needed before rec_ptr to access the contents of the grade field. Comparison of C and Assembly Once the C version of the program is complete, compare the execution time of the C version versus the assembly version. Unfortunately, the run times of these two programs are not sufficiently long enough to measure the time using the time command as we did in Lab #3. Instead, we can compare the two versions by 4
5 measuring the number of machine instructions executed while running each of the two versions. A benefit of this comparison method is that we can tabulate the number of instructions needed to execute each of the individual procedures, which provides more information than the time measurement method. The tool valgrind is commonly used to make these kinds of measurements. Technically, valgrind doesn t really execute your code on the physical machine, but instead executes your code in a simulator that can count things like number of instructions, cache misses, etc. We will use it to count executed instructions. The command line for this is valgrind -tool=callgrind./hist_asm for measuring the assembly language program and valgrind -tool=callgrind./hist_asm for measuring the C program. After execution, a file with the name callgrind.out.<pid> is greated, where <pid> is the process id of the execution. Issuing the command callgrind_annotate callgrind.out.<pid> will provide a (somewhat) human-readable printout of the performance information collected by valgrind. Use the test2 input (i.e. test2.dat and test2.h) for measuring the number of machine instructions executed in the procedures compute_totals(), compute_grades(), and create_hist(). Tabulate the results for each of the above functions in the two programs and discuss the results of this experiment. Are the results for the C program better or worse than the assembly program? How do the two versions compare on a per procedure basis? Are the results what you expected, or were you expecting different results? Why? Exit gdb (if it's still running, it shouldn t be because you should have just been using valgrind), and execute the man gcc command. In particular, look at the various options for the '-O' flags. How would you expect the C program's performance to change when using different levels of '-O' (i.e. -O0 vs. -O1 vs. -O2, etc.)? How would you expect the C program's performance to be different when using '-O' versus not using '-O'? Try changing this flag in the Makefile and measure the actual difference in the number of machine instructions needed for one procedure. Implementation For the second part of the lab, students will need the program skeleton hist_c.c, the Makefile, and the given input and output files: Lab Report Input: test1.h, test2.h, test3.h, test4.h, test5.h, test6.h Output: The output files are the same as in Part I. You can download all the files in the following tar file on the class webpage: cse361s_lab4.tar. When you turn in your assignment, prepare a.tar file containing all your code and the lab report. No hard copies are required. Upload the.tar file to telesis, with your name and lab number in the file name (i.e., use the filename convention we ve used all semester to date: <lastname><firstinitial>_lab4.tar). 5
6 If you worked as a group, make sure both names are in the file name of the submitted report (e.g., <lastname1><firstinitial1>_<lastname2><firstinitial2>_lab4.tar). Either team member can upload your submission to telesis. Be sure to include the assembly source code, hist_asm.s, you created in Part I of the lab in the.tar file. Be sure to include the C source code, hist_c.c, you created in Part II of the lab in the.tar file. In your.tar file, include a file report4.txt. This file should contain your answers, measurements, and discussion for Part II of the lab, the comparison between C and assembly. 6
Lab 03 - x86-64: atoi
CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb
More informationThe print queue was too long. The print queue is always too long shortly before assignments are due. Print your documentation
Chapter 1 CS488/688 F17 Assignment Format I take off marks for anything... A CS488 TA Assignments are due at the beginning of lecture on the due date specified. More precisely, all the files in your assignment
More informationEE355 Lab 5 - The Files Are *In* the Computer
1 Introduction In this lab you will modify a working word scramble game that selects a word from a predefined word bank to support a user-defined word bank that is read in from a file. This is a peer evaluated
More informationIt is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such as GitHub.
p4: Cache Simulator 1. Logistics 1. This project must be done individually. It is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such
More informationCS 361 Computer Systems Fall 2017 Homework Assignment 1 Linking - From Source Code to Executable Binary
CS 361 Computer Systems Fall 2017 Homework Assignment 1 Linking - From Source Code to Executable Binary Due: Thursday 14 Sept. Electronic copy due at 9:00 A.M., optional paper copy may be delivered to
More informationCSE 351, Spring 2010 Lab 7: Writing a Dynamic Storage Allocator Due: Thursday May 27, 11:59PM
CSE 351, Spring 2010 Lab 7: Writing a Dynamic Storage Allocator Due: Thursday May 27, 11:59PM 1 Instructions In this lab you will be writing a dynamic storage allocator for C programs, i.e., your own version
More informationThese bit positions are represented by numerical values, as defined in list.h.
CS305 Programming Assignment #3: Lovely Linked Lists with Starter Code Out: Feb 19, 015. Due: Mar 3, 015 by 11:00 pm on the CS305 Moodle site. Total points: 100. approximately 0% of the total homework
More informationFinal Programming Project
Due Thursday, Dec. 7, at 5:00 pm Logistics This assignment should be completed in groups of 3. This is not optional -- you are not allowed to complete it on your own, or in groups of any other size. I
More informationProject 5 Handling Bit Arrays and Pointers in C
CS 255 Project 5 Handling Bit Arrays and Pointers in C Due: Thursday, Apr. 30 by 8:00am. No late submissions! Assignment: This homework is adapted from the CS450 Assignment #1 that Prof. Mandelberg uses
More informationCS261: HOMEWORK 2 Due 04/13/2012, at 2pm
CS261: HOMEWORK 2 Due 04/13/2012, at 2pm Submit six *.c files via the TEACH website: https://secure.engr.oregonstate.edu:8000/teach.php?type=want_auth 1. Introduction The purpose of HW2 is to help you
More informationCpSc 1111 Lab 9 2-D Arrays
CpSc 1111 Lab 9 2-D Arrays Overview This week, you will gain some experience with 2-dimensional arrays, using loops to do the following: initialize a 2-D array with data from an input file print out the
More informationUNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017)
UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall 2017 Programming Assignment 1 (updated 9/16/2017) Introduction The purpose of this programming assignment is to give you
More informationOverview. Exercise 0: Implementing a Client. Setup and Preparation
Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple clientserver protocol. There are several differences, however. This time you will use the SOCK_DGRAM
More informationCSE 361S Intro to Systems Software Final Project
Due: Tuesday, December 9, 2008. CSE 361S Intro to Systems Software Final Project In this project, you will be writing a dynamic storage allocator for C programs (i.e., your own version of malloc, free,
More informationCS 105 Lab 1: Manipulating Bits
CS 105 Lab 1: Manipulating Bits See class calendar for lab and due dates Introduction The purpose of this assignment is to become more familiar with bit-level representations and manipulations. You ll
More informationCSE 231 Summer 2018 Computer Project #4
CSE 231 Summer 2018 Computer Project #4 Assignment Overview This assignment focuses on the implementation of Python programs to read files and process data by using lists and functions. It is worth 85
More informationECEn 424 Data Lab: Manipulating Bits
ECEn 424 Data Lab: Manipulating Bits 1 Introduction The purpose of this assignment is to become more familiar with bit-level representations of integers and floating point numbers. You ll do this by solving
More informationOPERATING SYSTEMS ASSIGNMENT 4 XV6 file system
OPERATING SYSTEMS ASSIGNMENT 4 XV6 file system Introduction In most systems the main weakness of the file system stems from the data access time, which is much longer than accessing the memory. For certain
More informationLab 09 - Virtual Memory
Lab 09 - Virtual Memory Due: November 19, 2017 at 4:00pm 1 mmapcopy 1 1.1 Introduction 1 1.1.1 A door predicament 1 1.1.2 Concepts and Functions 2 1.2 Assignment 3 1.2.1 mmap copy 3 1.2.2 Tips 3 1.2.3
More informationCSE 361S Intro to Systems Software Lab Assignment #4
Due: Thursday, October 23, 2008. CSE 361S Intro to Systems Software Lab Assignment #4 In this lab, you will mount a buffer overflow attack on your own program. As stated in class, we do not condone using
More informationHands on Assignment 1
Hands on Assignment 1 CSci 2021-10, Fall 2018. Released Sept 10, 2018. Due Sept 24, 2018 at 11:55 PM Introduction Your task for this assignment is to build a command-line spell-checking program. You may
More informationOverview. Exercise 0: Implementing a Client. Setup and Preparation
Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple client server protocol. There are several differences, however. This time you will use the SOCK_DGRAM
More informationCS 241 Data Organization using C
CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am
More informationFORM 2 (Please put your name and form # on the scantron!!!!)
CS 161 Exam 2: FORM 2 (Please put your name and form # on the scantron!!!!) True (A)/False(B) (2 pts each): 1. Recursive algorithms tend to be less efficient than iterative algorithms. 2. A recursive function
More informationCS : Programming for Non-majors, Fall 2018 Programming Project #2: Census Due by 10:20am Wednesday September
CS 1313 010: Programming for Non-majors, Fall 2018 Programming Project #2: Census Due by 10:20am Wednesday September 19 2018 This second assignment will introduce you to designing, developing, testing
More informationCS 3214, Fall 2015 Malloc Lab: Writing a Dynamic Storage Allocator Due date: November 16, 2014, 11:59pm
CS 3214, Fall 2015 Malloc Lab: Writing a Dynamic Storage Allocator Due date: November 16, 2014, 11:59pm 1 Introduction In this lab you will be writing a dynamic storage allocator for C programs, i.e.,
More informationCpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes
CpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes Overview For this lab, you will use: one or more of the conditional statements explained below
More informationCS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis
CS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis Handout written by Julie Zelenski with edits by Keith Schwarz. The Goal In the first programming project, you will get
More informationHere is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:
Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;
More informationCS 1044 Program 6 Summer I dimension ??????
Managing a simple array: Validating Array Indices Most interesting programs deal with considerable amounts of data, and must store much, or all, of that data on one time. The simplest effective means for
More informationData Lab: Manipulating Bits
Data Lab: Manipulating Bits 1 Introduction The purpose of this assignment is to become more familiar with bit-level representations of integers and floating point numbers. You ll do this by solving a series
More informationProject #1: Tracing, System Calls, and Processes
Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.
More informationProject 2 - Kernel Memory Allocation
Project 2 - Kernel Memory Allocation EECS 343 - Fall 2014 Important Dates Out: Monday October 13, 2014 Due: Tuesday October 28, 2014 (11:59:59 PM CST) Project Overview The kernel generates and destroys
More informationProject #1 Exceptions and Simple System Calls
Project #1 Exceptions and Simple System Calls Introduction to Operating Systems Assigned: January 21, 2004 CSE421 Due: February 17, 2004 11:59:59 PM The first project is designed to further your understanding
More informationCS155: Computer Security Spring Project #1
CS155: Computer Security Spring 2018 Project #1 Due: Part 1: Thursday, April 12-11:59pm, Parts 2 and 3: Thursday, April 19-11:59pm. The goal of this assignment is to gain hands-on experience finding vulnerabilities
More informationEECE.2160: ECE Application Programming
Fall 2017 Programming Assignment #10: Doubly-Linked Lists Due Monday, 12/18/17, 11:59:59 PM (Extra credit ( 5 pts on final average), no late submissions or resubmissions) 1. Introduction This assignment
More informationLing 473 Project 4 Due 11:45pm on Thursday, August 31, 2017
Ling 473 Project 4 Due 11:45pm on Thursday, August 31, 2017 Bioinformatics refers the application of statistics and computer science to the management and analysis of data from the biosciences. In common
More informationPointer Casts and Data Accesses
C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise
More informationCS 356, Fall 2018 Data Lab (Part 1): Manipulating Bits Due: Wednesday, Sep. 5, 11:59PM
CS 356, Fall 2018 Data Lab (Part 1): Manipulating Bits Due: Wednesday, Sep. 5, 11:59PM 1 Introduction The purpose of this assignment is to become more familiar with bit-level representations of integers
More informationHOT-Compilation: Garbage Collection
HOT-Compilation: Garbage Collection TA: Akiva Leffert aleffert@andrew.cmu.edu Out: Saturday, December 9th In: Tuesday, December 9th (Before midnight) Introduction It s time to take a step back and congratulate
More informationRouting. CS5516: Project 2 Spring 2000
Routing CS5516: Project 2 Spring 2000 Introduction A network interconnecting multiple hosts and networks is a dynamic entity. Most real world networks offer multiple paths from a source to a destination.
More informationEECE.4810/EECE.5730: Operating Systems Spring 2018 Programming Project 3 Due 11:59 PM, Wednesday, 4/18/18 Monday, 4/30/18
Spring 2018 Programming Project 3 Due 11:59 PM, Wednesday, 4/18/18 Monday, 4/30/18 1. Introduction This project uses simulation to explore the effectiveness of the different scheduling algorithms described
More informationCS 2505 Fall 2013 Data Lab: Manipulating Bits Assigned: November 20 Due: Friday December 13, 11:59PM Ends: Friday December 13, 11:59PM
CS 2505 Fall 2013 Data Lab: Manipulating Bits Assigned: November 20 Due: Friday December 13, 11:59PM Ends: Friday December 13, 11:59PM 1 Introduction The purpose of this assignment is to become more familiar
More informationReliable Data Transmission
Reliable Data Transmission CS5516: Project 1 Spring 2003 Deadline: Midnight March 13 th, 2003 Score: 100 points Introduction Reliable data transmission protocols form the basis of data communication. The
More informationBrought to you by CalLUG (UC Berkeley GNU/Linux User Group). Tuesday, September 20, 6-8 PM in 100 GPB.
Hate EMACS? Love EMACS? Richard M. Stallman, a famous proponent of opensource software, the founder of the GNU Project, and the author of emacs and gcc, will be giving a speech. We're working on securing
More informationLecture #6 Intro MIPS; Load & Store Assembly Variables: Registers (1/4) Review. Unlike HLL like C or Java, assembly cannot use variables
CS61C L6 Intro MIPS ; Load & Store (1) Hate EMACS? Love EMACS? Richard M. Stallman, a famous proponent of opensource software, the founder of the GNU Project, and the author of emacs and gcc, will be giving
More informationCS : Programming for Non-majors, Summer 2007 Programming Project #2: Census Due by 12:00pm (noon) Wednesday June
CS 1313 010: Programming for Non-majors, Summer 2007 Programming Project #2: Census Due by 12:00pm (noon) Wednesday June 20 2007 This second assignment will introduce you to designing, developing, testing
More informationECE454, Fall 2014 Homework2: Memory Performance Assigned: Sept 25th, Due: Oct 9th, 11:59PM
ECE454, Fall 2014 Homework2: Memory Performance Assigned: Sept 25th, Due: Oct 9th, 11:59PM David Lion (david.lion@mail.utoronto.ca) is the TA for this assignment. 1 Introduction After great success with
More informationCS 288: Statistical NLP Assignment 1: Language Modeling
CS 288: Statistical NLP Assignment 1: Language Modeling Due September 12, 2014 Collaboration Policy You are allowed to discuss the assignment with other students and collaborate on developing algorithms
More informationLab 5: SDC Virtual Machine
Lab 5: SDC Virtual Machine Due Date: Thursday 3/9/2017 11:59PM This lab covers the material in lectures 10-12. You will be creating a virtual (software-based) implementation of a basic, decimal-based Von
More informationCS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm
CS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm Description FUSE (http://fuse.sourceforge.net/) is a Linux kernel extension
More informationOregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011
Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Spring 2011 Outline Using Secure Shell Clients GCC Some Examples Intro to C * * Windows File transfer client:
More informationCS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA
CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA Code Due: Tuesday, November 7, 2017, by 11:59 p.m. The Assignment The purpose of this assignment is to give you more
More informationCS 2505 Fall 2018 Data Lab: Data and Bitwise Operations Assigned: November 1 Due: Friday November 30, 23:59 Ends: Friday November 30, 23:59
CS 2505 Fall 2018 Data Lab: Data and Bitwise Operations Assigned: November 1 Due: Friday November 30, 23:59 Ends: Friday November 30, 23:59 1 Introduction The purpose of this assignment is to become more
More informationIntroduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C
Final Review CS304 Introduction to C Why C? Difference between Python and C C compiler stages Basic syntax in C Pointers What is a pointer? declaration, &, dereference... Pointer & dynamic memory allocation
More informationEDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION
EDIABAS Electronic Diagnostic Basic System BEST/2 LANGUAGE DESCRIPTION VERSION 6b Copyright BMW AG, created by Softing AG BEST2SPC.DOC CONTENTS CONTENTS...2 1. INTRODUCTION TO BEST/2...5 2. TEXT CONVENTIONS...6
More informationLab 2: Threads and Processes
CS333: Operating Systems Lab Lab 2: Threads and Processes Goal The goal of this lab is to get you comfortable with writing basic multi-process / multi-threaded applications, and understanding their performance.
More informationSTAT 20060: Statistics for Engineers. Statistical Programming with R
STAT 20060: Statistics for Engineers Statistical Programming with R Why R? Because it s free to download for everyone! Most statistical software is very, very expensive, so this is a big advantage. Statisticians
More informationCpSc 1011 Lab 3 Integer Variables, Mathematical Operations, & Redirection
CpSc 1011 Lab 3 Integer Variables, Mathematical Operations, & Redirection Overview By the end of the lab, you will be able to: declare variables perform basic arithmetic operations on integer variables
More informationCS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro
CS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro Instructors: Vladimir Stojanovic & Nicholas Weaver http://inst.eecs.berkeley.edu/~cs61c/sp16 1 Machine Interpretation
More informationCS 356, Fall 2018 Data Lab (Part 2): Manipulating Bits Due: Mon, Sep. 17, 11:59PM
CS 356, Fall 2018 Data Lab (Part 2): Manipulating Bits Due: Mon, Sep. 17, 11:59PM 1 Introduction This second part of the data lab continues on bit-level manipulations and 2 s complement arithmetic as well
More informationUniversity of Arizona, Department of Computer Science. CSc 453 Assignment 5 Due 23:59, Dec points. Christian Collberg November 19, 2002
University of Arizona, Department of Computer Science CSc 453 Assignment 5 Due 23:59, Dec 4 100 points Christian Collberg November 19, 2002 1 Introduction Your task is to write a code generator for the
More informationCMSC 311 Spring 2010 Lab 1: Bit Slinging
CMSC 311 Spring 2010 Lab 1: Bit Slinging Tim Meyer January 31, 2010 Post questions on this assignment to the CMSC 311 discussion board http://www.elms.umd.edu/. Introduction The purpose of this assignment
More informationCS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro
CS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro 1 Levels of Representation/Interpretation Machine Interpretation High Level Language Program (e.g., C) Compiler Assembly
More informationProgramming Assignment 1 (PA1) - Display Bowtie
Programming Assignment 1 (PA1) - Display Bowtie Milestone Due: Final Due: Wednesday, April 18 @ 11:59 pm Wednesday, April 25 @ 11:59 pm Example Input Milestone Functions Unit Testing Extra Credit Detailed
More informationECE 375: Computer Organization and Assembly Language Programming
ECE 375: Computer Organization and Assembly Language Programming SECTION OVERVIEW Lab 4 Data Manipulation & the LCD Complete the following objectives: ˆ Understand the basics of data manipulation in AVR
More informationCMPSCI 119 LAB #1 Bar Graphs Professor William T. Verts
CMPSCI 119 LAB #1 Bar Graphs Professor William T. Verts The goal of this first Python programming assignment is to successfully create, enter, debug, and run a simple program in the JES environment. If
More informationENCE 3241 Data Lab. 60 points Due February 19, 2010, by 11:59 PM
0 Introduction ENCE 3241 Data Lab 60 points Due February 19, 2010, by 11:59 PM The purpose of this assignment is for you to become more familiar with bit-level representations and manipulations. You ll
More informationPorting 32-bit Applications to the Itanium Architecture - Lab 3: Managing Data Size
Porting 32-bit Applications to the Itanium Architecture - Lab 3: Managing Data Size Introduction Overview Migrating your application from 32-bit to 64-bit will impact your data size in a number of ways.
More informationCom S 227 Assignment Submission HOWTO
Com S 227 Assignment Submission HOWTO This document provides detailed instructions on: 1. How to submit an assignment via Canvas and check it 3. How to examine the contents of a zip file 3. How to create
More informationBIL220, Spring 2012 Data Lab: Manipulating Bits Assigned: Feb. 23, Due: Wed., Mar. 8, 23:59PM
BIL220, Spring 2012 Data Lab: Manipulating Bits Assigned: Feb. 23, Due: Wed., Mar. 8, 23:59PM Ali Caglayan (alicaglayan@cs.hacettepe.edu.tr) and Oguzhan Guclu (oguzhanguclu@cs.hacettepe.edu.tr) are the
More information1. Overview This project will help you understand address spaces and virtual memory management.
Project 2--Memory Worth: 12 points Assigned: Due: 1. Overview This project will help you understand address spaces and virtual memory management. In this project, you will implement an external pager,
More informationCSC-105 Exam #1 October 10, 2013
CSC-105 Exam #1 October 10, 2013 Name Questions are weighted as indicated. Show your work and state your assumptions for partial credit consideration. Unless explicitly stated, there are NO intended errors
More informationFinal Project: LC-3 Simulator
Final Project: LC-3 Simulator Due Date: Friday 4/27/2018 11:59PM; No late handins This is the final project for this course. It is a simulator for LC-3 computer from the Patt and Patel book. As you work
More informationCpSc 111 Lab 3 Integer Variables, Mathematical Operations, & Redirection
CpSc 111 Lab 3 Integer Variables, Mathematical Operations, & Redirection Overview By the end of the lab, you will be able to: declare variables perform basic arithmetic operations on integer variables
More informationCS 202, Fall 2017 Homework #4 Balanced Search Trees and Hashing Due Date: December 18, 2017
CS 202, Fall 2017 Homework #4 Balanced Search Trees and Hashing Due Date: December 18, 2017 Important Notes Please do not start the assignment before reading these notes. Before 23:55, December 18, upload
More informationEECE.2160: ECE Application Programming
Spring 2018 Programming Assignment #10: Instruction Decoding and File I/O Due Wednesday, 5/9/18, 11:59:59 PM (Extra credit ( 4 pts on final average), no late submissions or resubmissions) 1. Introduction
More informationComputer Networks CS3516 B Term, 2013
Computer Networks CS3516 B Term, 2013 Project 1 Project Assigned: October 31 Checkpoint: November 07 12:01 AM Due: November 14 12:01 AM Networks - Project 1 1 What You Will Do In This Project. The purpose
More informationMalloc Lab & Midterm Solutions. Recitation 11: Tuesday: 11/08/2016
Malloc Lab & Midterm Solutions Recitation 11: Tuesday: 11/08/2016 Malloc 2 Important Notes about Malloc Lab Malloc lab has been updated from previous years Supports a full 64 bit address space rather than
More informationDue: 9 February 2017 at 1159pm (2359, Pacific Standard Time)
CSE 11 Winter 2017 Program Assignment #2 (100 points) START EARLY! Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) PROGRAM #2: DoubleArray11 READ THE ENTIRE ASSIGNMENT BEFORE STARTING In lecture,
More informationCSCI 2021, Fall 2018 Malloc Lab: Writing a Dynamic Storage Allocator Assigned: Monday November 5th Due: Monday November 19th, 11:55PM
CSCI 2021, Fall 2018 Malloc Lab: Writing a Dynamic Storage Allocator Assigned: Monday November 5th Due: Monday November 19th, 11:55PM 1 Introduction In this lab you will be writing a dynamic storage allocator
More informationLecture 03 Bits, Bytes and Data Types
Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics
More informationData Lab: Manipulating Bits
Data Lab: Manipulating Bits 1 Introduction The purpose of this assignment is to become more familiar with bit-level representations of integers and floating point numbers. You ll do this by solving a series
More informationCpSc 1111 Lab 4 Formatting and Flow Control
CpSc 1111 Lab 4 Formatting and Flow Control Overview By the end of the lab, you will be able to: use fscanf() to accept a character input from the user and print out the ASCII decimal, octal, and hexadecimal
More informationCS1100: Excel Lab 1. Problem 1 (25 Points) Filtering and Summarizing Data
CS1100: Excel Lab 1 Filtering and Summarizing Data To complete this assignment you must submit an electronic copy to Blackboard by the due date. Use the data in the starter file. In this lab you are asked
More informationCS 31: Intro to Systems Pointers and Memory. Kevin Webb Swarthmore College October 2, 2018
CS 31: Intro to Systems Pointers and Memory Kevin Webb Swarthmore College October 2, 2018 Overview How to reference the location of a variable in memory Where variables are placed in memory How to make
More informationCS 135, Fall 2010 Project 4: Code Optimization Assigned: November 30th, 2010 Due: December 12,, 2010, 12noon
CS 135, Fall 2010 Project 4: Code Optimization Assigned: November 30th, 2010 Due: December 12,, 2010, 12noon 1 Introduction This assignment deals with optimizing memory intensive code. Image processing
More informationCMSC 201 Fall 2016 Lab 09 Advanced Debugging
CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working
More informationa translator to convert your AST representation to a TAC intermediate representation; and
CS 301 Spring 2016 Project Phase 3 March 28 April 14 IC Compiler Back End Plan By the end of this phase of the project, you will be able to run IC programs generated by your compiler! You will implement:
More informationCS Programming Languages Fall Homework #2
CS 345 - Programming Languages Fall 2010 Homework #2 Due: 2pm CDT (in class), September 30, 2010 Collaboration policy This assignment can be done in teams at most two students. Any cheating (e.g., submitting
More informationCOMP/ELEC 429/556 Project 2: Reliable File Transfer Protocol
COMP/ELEC 429/556 Project 2: Reliable File Transfer Protocol Assigned: Thu, 28 September Due: 11:55pm, Tue, 24 October 1 Description The objective of this project is to give you hands-on experience with
More informationCS155: Computer Security Spring Project #1. Due: Part 1: Thursday, April pm, Part 2: Monday, April pm.
CS155: Computer Security Spring 2008 Project #1 Due: Part 1: Thursday, April 17-1159 pm, Part 2: Monday, April 21-1159 pm. Goal 1. The goal of this assignment is to gain hands-on experience with the effect
More information2017/12/20 20:31 1/6 Lab 1 - Producer/Consumer in XINU
2017/12/20 20:31 1/6 Lab 1 - Producer/Consumer in XINU Lab 1 - Producer/Consumer in XINU DUE: Tuesday, September 6th 11:59 PM Objectives By the end of this lab students will be able to: Understand how
More informationOperating Systems Coursework Task 3
Operating Systems Coursework Task 3 TAR File System Driver DUE: Thursday 30th March @ 4PM GMT File Systems Used for the organised storage of data. Typically hierarchical/tree-based, consisting of directories
More informationCS 361S - Network Security and Privacy Spring Project #2
CS 361S - Network Security and Privacy Spring 2017 Project #2 Part 1 due: 11:00, April 3, 2017 Part 2 due: 11:00, April 10, 2017 Submission instructions Follow the submission instructions in the Deliverables
More informationCS164: Programming Assignment 5 Decaf Semantic Analysis and Code Generation
CS164: Programming Assignment 5 Decaf Semantic Analysis and Code Generation Assigned: Sunday, November 14, 2004 Due: Thursday, Dec 9, 2004, at 11:59pm No solution will be accepted after Sunday, Dec 12,
More informationCS 2210 Programming Project (Part IV)
CS 2210 Programming Project (Part IV) April 25, 2018 Code Generation This project is intended to give you experience in writing a code generator as well as bring together the various issues of code generation
More informationQuestion Points Score Total: 100
Computer Science 2021 Spring 2016 Midterm Exam 1 February 29th, 2016 Time Limit: 50 minutes, 3:35pm-4:25pm This exam contains 7 pages (including this cover page) and 5 questions. Once we tell you to start,
More information15-213, Spring 2008 Lab Assignment L1: Manipulating Bits Assigned: Jan. 15, Due: Wed., Jan. 30, 11:59PM
15-213, Spring 2008 Lab Assignment L1: Manipulating Bits Assigned: Jan. 15, Due: Wed., Jan. 30, 11:59PM Randy Bryant (Randy.Bryant@cs.cmu.edu) is the lead person for this assignment. 1 Introduction The
More informationEXPERIMENT TWELVE: USING DISK FILES
EXPERIMENT TWELVE: USING DISK FILES INTRODUCTION Because just about any program ever written requires the use of a disk file to store or retrieve data, this experiment shows how to create, read, write,
More information