Programming Assignment 3

Size: px
Start display at page:

Download "Programming Assignment 3"

Transcription

1 UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Spring 2016 Programming Assignment 3 Introduction For this programming assignment you are to write a C, C++, Java, or Python program that demonstrates the processing of memory allocation and deallocation requests when the first fit algorithm is being used. The input data (which is to be read from the standard input) will begin with a single positive integer called MSIZE. This is the size of the simulated memory that will be used to satisfy allocation requests. You should assume the memory region extends from memory location 0 through memory location MSIZE 1. You may assume that no memory allocation request will ever require more than MSIZE units of memory, and that MSIZE will never be larger than The remainder of the input will contain a sequence of allocation and deallocation requests, each on a line by itself. Each allocation request will include a unique positive integer ID that may also be later specified in a memory deallocation request. Examples of allocation and deallocation requests are provided below, and sample input is provided on Loki. Your program is to demonstrate your understanding of the first fit memory management algorithm (and your programming prowess) by displaying the address associated with each requested memory allocation at the time it succeeds. All allocations and deallocations in this assignment are simulated. That is, the memory regions being allocated and deallocated are not real memory regions. Your program is only to keep track of the addresses associated with the simulated allocations. Again, the examples provided below will make this obvious. The First-Fit Algorithm The principal data structure used in the first-fit system is a linked list of unused memory regions; this list is traditionally called the free list. Each entry on this list will identify the address of the unused region and the size 1 of the unused region, and will also identify the next entry on the free list. In this program the entries on the free list are to be ordered by address. That is, each entry on the free list will have a larger address than its predecessor 2. As noted earlier, other than initialization, there are two basic operations to be performed: allocation and deallocation. The details of how these operations are to be implemented will now be described. Allocation of a request for N units of memory is performed by searching the free list for the first entry that has a size R N. If no such entry is found, then the allocation request is deferred (this is discussed later). If R = N, then the entry is removed from the free list and, in a real system, would be used to satisfy 1 We use the generic term unit for the smallest memory item that can be allocated. For many systems this may be a byte, but other systems have other smallest memory allocation sizes. 2 Recall that there are variations of first-fit in which the entries on the list are ordered in other ways. In particular, remember the discussions of best-fit, worst-fit, and next-fit from the text and the lectures.

2 the allocation request 3. Otherwise we have R > N. In this case, the first N units of memory 4 in the region are used to satisfy the allocation request (in the real system). The second part of the region 5, of size R N, remains on the free list. Deallocation of a previously allocated region of size N at address A has more steps than allocation. The first step is to find the correct location on the free list for the region of memory being deallocated. Recall that the free list is ordered by address, so the correct location will be after an entry with a smaller address (or the beginning of the list) and before an entry with a larger address (or the end of the list). Once the correct location on the free list is found, the memory being deallocated (N units at address A) is either added to the region identified by the previous free list entry P if A is the address immediately after the the region identified by P, or added to the free list as a new entry. Regardless of which of these two actions is taken, the free list entry now associated with the deallocated memory must then be coalesced with the following block if it exists and the memory regions are adjacent. Deferred Requests are those allocation requests that could not be completed immediately. When this happes, information about the request (the request ID and the number of memory units requested) is added to the end of a list of such deferred requests. Of course, this list is initially empty at the beginning of the program. Each time a deallocation is performed, then each entry on the deferred list should be examined to see if the memory it originally requested can now be allocated. If it can, then the entry should be removed from the deferred request list and the allocation action performed, as usual. The deferred request list is maintained in FIFO order. That is, the first deferred request essentially has priority over later deferred requests. An Example An illustration with real numbers will aid your understanding of these actions. Specifically, let s assume we have a region with 1024 bytes to use in satisfying allocation requests. Then assume we have the following allocation and deallocation requests to process, in the order given. ID Action 1 Allocate 200 bytes 2 Allocate 399 bytes 3 Allocate 500 bytes 4 Allocate 100 bytes 5 Allocate 300 bytes 6 Allocate 75 bytes 4 Deallocate 5 Deallocate 3 To facilitate later deallocation of a region, your program must maintain some data structure that records successful allocations, including the allocation ID, the size, and the address of each allocated region. 4 If the free list entry indicates the R units of memory start at address A, then these N units of memory will have addresses from A to A + N 1. 5 If the entire region of size R started at address A, then this remaining part of the region will start at address A + N.

3 Initially the free list has a single entry for a region of size 1024 at address 0. The first request (ID 1, allocate 200 units) is easy, since the first (and only) entry on the free list is larger than 200. That region is split into two parts. The region from 0 to 199 is used to satisfy the allocation request, and the region starting at address 200 with size 824 remains on the free list. The second request (ID 2, allocate 399 units) is also easily satisfied. A region of size 399 from address 200 to address 598 is used to satisfy the request, and the region starting at address 599 of size 425 remains on the free list. The third request (ID 3, allocate 500 units) cannot be immediately satisfied because there are no entries on the free list with a sufficient size. The request is therefore deferred. It is added to the end of a list of deferred requests, and will be considered again after each deallocation. The fourth request (ID 4, allocate 100 units) can be easily satisfied by splitting the free region at address 599 into two parts: 100 units at address 599 (as per the request) and the single free list region at address 699 of size 325. The fifth request (ID 5, allocate 300 units) is satisfied using memory starting at address 699, leaving a region of size 25 units on the free list starting at address 999. The sixth request (ID 6, allocate 75 units) cannot be satisfied immediately, so it is deferred. Remember that this deferred request is to be recorded in such a way that the first deferred request (ID 3) will be considered before this one when additional memory becomes available (that is, after each deallocation). The seventh request (ID 4, deallocate) asks for the 100 unit block at address 599 to be freed. Once this has been done, deferred requests must be considered. The first deferred request (ID 3) cannot be satisfied. But sufficient memory is available to complete the next deferred allocation request (ID 6); it s given 75 units at address 599, with the 25 unused units at address 674 being placed in a new node on the free list. The eighth and final request (ID 5, deallocate) frees the 300 byte block at address 699. Note that this region is adjacent to the region with 25 unused units starting at address 674, so those two regions are joined to yield a single region of size 350 units at address 674. There is only one deferred request pending (ID 3 for size 500 units), but there is still insufficient memory to satisfy that request. Details and Limits After reading MSIZE (1 MSIZE 2 20 ) and initializing the free list and any other data structures needed, your program should read and process requests for allocation or deallocation, one at a time, until the end of input (end of file on the standard input) is encountered. Each request will be on a single line that begins with a unique positive integer ID (1 ID) used to identify the request in the input and in the output. No two allocation requests will ever have the same ID, but each deallocation request must contain the ID of a previously successful allocation. The input data used to test your solution will never attempt to deallocate an allocation that is currently deferred, but your solution should detect this case if it should exist, since that would indicate either an error in the input data or your solution! Although the IDs used in the earlier example s allocation requests were sequential, this need not be the case in actual test data. After theid in a request there will appear some whitespace blanks and/or tab characters and either '+' or ' ' to indicate an allocation request or a deallocation request, respectively. In the allocation case,

4 there will also be additional whitespace and a positive integer ASIZE (1 ASIZE MSIZE) that specifies the size of the region to be allocated. After reading each request, your program should display a line that indicates the request that is being processed; these should look like this: Request ID 52: allocate 73 units. Request ID 35: deallocate. Each line for an allocation request should be followed by or Success; addr = as appropriate. Note that the address in the Success message should be the address at which the region allocated for the request begins. After each deallocation request you should display a line that says Additionally, for each deferred request that can be successfully accommodated as a result of a deallocation, display a line that says Deferred request 59 allocated; addr = 500. If multiple deferred requests can be performed as the result of a deallocation, then the messages announcing their successful allocations should be given in the order the requests were deferred. Of course, the IDs and address values in each of these are just examples. Keep in mind that the addresses used in the program for free blocks and allocations are not real memory addresses they are simulated memory addresses. Your program should not be doing dynamic memory allocation for blocks of the sizes used in the progam. Naturally you may use dynamically-allocated data structures to represent the nodes in the free list and other data structures as needed by your solution. Sample Input and Output The instructor s solution to this assignment and files containing sample input are available on Loki in the directory/home/stanw/csci4500. The instructor s solution is in the file named prog3. Like your solution should do, it reads input data from the standard input. The instructor s solution also recognizes the v option on the command line. This causes that solution to produce considerable additional (verbose) output. For example, after each input request has been completed, the program will display the status of each request that has been encountered (active that is, still allocated, deferred, or freed), and the identification of the regions on the free list. Your solution need not include this feature. The sample shown below is the input used the earlier discussion, and is found in the file prog3.in0 on Loki. Here s what it looks like:

5 The expected output for this input is as follows: Request ID 1: allocate 200 units. Success; addr = 0. Request ID 2: allocate 399 units. Success; addr = 200. Request ID 3: allocate 500 units. Request ID 4: allocate 100 units. Success; addr = 599. Request ID 5: allocate 300 units. Success; addr = 699. Request ID 6: allocate 75 units. Request ID 4: deallocate. Deferred request 6 allocated; addr = 599 Request ID 5: deallocate. There are several additional test cases provided, appropriately named. The expected output for each test case can be obtained using the instructor s solution. You should also prepare and use your own data for testing (although it should not be placed in the submission directory). Requirements You must write (and test) a C, C++, Java or Python program that performs the tasks associated with the first fit memory management system as described above. You should ideally have a single file of source code, appropriately named (that is, useprog3 as part of the name). That file (or multiple files, if necessary) should be located in a top-level directory named csci prog3 sometime before Thursday, April 28, 2016 at 11:59 PM. At that time, the contents of that directory will be copied to the instructor s directory for grading. A template (partial solution) for a C solution to this assignment can be found in thecsci4500 directory. It is named prog3_temp.c. You are free to use this source code as the basis for your solution if you wish. You are not, however, required to use this partial solution. Locations in the code that are marked XXX WORK NEEDED obviously will require additional work. There may also be other modifications required to the code. You may work with one or two other students on this assignment that is, groups as large as three students are acceptable. If you work in a group with others, you must clearly indicate the names of all individuals in the group in a comment near the top of the source code (you should indicate the author of your code in all cases, even if you are working by yourself). You should also submit only one solution from the group for evaluation. Each individual in the group will receive the same evaluation. As always, please contact the instructor if you have questions, and periodically check the class web site for any additions or corrections to this assignment.

Programming Assignment 3

Programming Assignment 3 UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2017 Programming Assignment 3 Introduction For this programming assignment you are to write a C, C++, Java, or Python

More information

UNIVERSITY 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 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 information

Programming Assignment 3

Programming Assignment 3 UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Section 002 Communication Networks Spring 2018 Programming Assignment 3 Introduction Having created a TCP client in programming assignment 2, it s

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this programming assignment is to give you some experience

More information

Programming Standards: You must conform to good programming/documentation standards. Some specifics:

Programming Standards: You must conform to good programming/documentation standards. Some specifics: CS3114 (Spring 2011) PROGRAMMING ASSIGNMENT #3 Due Thursday, April 7 @ 11:00 PM for 100 points Early bonus date: Wednesday, April 6 @ 11:00 PM for a 10 point bonus Initial Schedule due Thursday, March

More information

6.172 Performance Engineering of Software Systems Spring Lecture 9. P after. Figure 1: A diagram of the stack (Image by MIT OpenCourseWare.

6.172 Performance Engineering of Software Systems Spring Lecture 9. P after. Figure 1: A diagram of the stack (Image by MIT OpenCourseWare. 6.172 Performance Engineering of Software Systems Spring 2009 Lecture 9 MIT OpenCourseWare Dynamic Storage Allocation Stack allocation: LIFO (last-in-first-out) Array and pointer A used unused P before

More information

CS Operating Systems

CS Operating Systems CS 4500 - Operating Systems Module 9: Memory Management - Part 1 Stanley Wileman Department of Computer Science University of Nebraska at Omaha Omaha, NE 68182-0500, USA June 9, 2017 In This Module...

More information

CS Operating Systems

CS Operating Systems CS 4500 - Operating Systems Module 9: Memory Management - Part 1 Stanley Wileman Department of Computer Science University of Nebraska at Omaha Omaha, NE 68182-0500, USA June 9, 2017 In This Module...

More information

Linked Lists, Stacks, and Queues

Linked Lists, Stacks, and Queues Department of Computer Science and Engineering Chinese University of Hong Kong In a nutshell, a data structure describes how data are stored in memory, in order to facilitate certain operations. In all

More information

CS 1044 Program 6 Summer I dimension ??????

CS 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 information

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 2 (document version 1.4) Contiguous and Non-contiguous Memory Management

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 2 (document version 1.4) Contiguous and Non-contiguous Memory Management CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 2 (document version 1.4) Contiguous and Non-contiguous Memory Management Overview This project is due by 11:59:59 PM on Wednesday,

More information

Dynamic Memory Allocation

Dynamic Memory Allocation Dynamic Memory Allocation CS61, Lecture 10 Prof. Stephen Chong October 4, 2011 Announcements 1/2 Assignment 4: Malloc Will be released today May work in groups of one or two Please go to website and enter

More information

CS 342 Software Design Spring 2018 Term Project Part III Saving and Restoring Exams and Exam Components

CS 342 Software Design Spring 2018 Term Project Part III Saving and Restoring Exams and Exam Components CS 342 Software Design Spring 2018 Term Project Part III Saving and Restoring Exams and Exam Components Due: Wednesday 13 March. Electronic copy due at 3:30 P.M. Optional paper copy may be handed in during

More information

CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points

CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points CS 1803 Pair Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 29th, before 6 PM Out of 100 points Files to submit: 1. HW4.py This is a PAIR PROGRAMMING Assignment: Work with your partner!

More information

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 1 (document version 1.3) Process Simulation Framework

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 1 (document version 1.3) Process Simulation Framework CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 1 (document version 1.3) Process Simulation Framework Overview This project is due by 11:59:59 PM on Thursday, October 20, 2016.

More information

Com S 227 Assignment Submission HOWTO

Com 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 information

COP Programming Assignment #7

COP Programming Assignment #7 1 of 5 03/13/07 12:36 COP 3330 - Programming Assignment #7 Due: Mon, Nov 21 (revised) Objective: Upon completion of this program, you should gain experience with operator overloading, as well as further

More information

1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM

1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM 1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM 1.1 Introduction Given that digital logic and memory devices are based on two electrical states (on and off), it is natural to use a number

More information

Blackboard Student Quick Reference Guide

Blackboard Student Quick Reference Guide Blackboard Student Quick Reference Guide Welcome to Blackboard, UTT s E-Learning System! This Quick Reference Guide is designed to help get you started using Blackboard Release 9.1.120113.0. Page 1 of

More information

CS 2316 Individual Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 18th, before 11:55 PM Out of 100 points

CS 2316 Individual Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 18th, before 11:55 PM Out of 100 points CS 2316 Individual Homework 4 Greedy Scheduler (Part I) Due: Wednesday, September 18th, before 11:55 PM Out of 100 points Files to submit: 1. HW4.py This is an INDIVIDUAL assignment! Collaboration at a

More information

key h(key) Hash Indexing Friday, April 09, 2004 Disadvantages of Sequential File Organization Must use an index and/or binary search to locate data

key h(key) Hash Indexing Friday, April 09, 2004 Disadvantages of Sequential File Organization Must use an index and/or binary search to locate data Lectures Desktop (C) Page 1 Hash Indexing Friday, April 09, 004 11:33 AM Disadvantages of Sequential File Organization Must use an index and/or binary search to locate data File organization based on hashing

More information

Recitation #12 Malloc Lab - Part 2. November 14th, 2017

Recitation #12 Malloc Lab - Part 2. November 14th, 2017 18-600 Recitation #12 Malloc Lab - Part 2 November 14th, 2017 1 2 REMINDER Malloc Lab checkpoint is due on 11/17 This is Friday (instead of the usual Thursday deadline) No late days available Final submission

More information

CS 2210 Programming Project (Part IV)

CS 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 information

15-110: Principles of Computing, Spring 2018

15-110: Principles of Computing, Spring 2018 15-110: Principles of Computing, Spring 2018 Problem Set 5 (PS5) Due: Friday, February 23 by 2:30PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill

More information

3. When you process a largest recent earthquake query, you should print out:

3. When you process a largest recent earthquake query, you should print out: CS3114 (Fall 2013) PROGRAMMING ASSIGNMENT #1 Due Wednesday, September 18 @ 11:00 PM for 100 points Due Tuesday, September 17 @ 11:00 PM for 10 point bonus Updated: 9/11/2013 Assignment: This is the first

More information

CS 2604 Minor Project 1 Summer 2000

CS 2604 Minor Project 1 Summer 2000 RPN Calculator For this project, you will design and implement a simple integer calculator, which interprets reverse Polish notation (RPN) expressions. There is no graphical interface. Calculator input

More information

1. Introduction. 2. Deliverables

1. Introduction. 2. Deliverables 16.216: ECE Application Programming Summer 2014 Programming Assignment #10: Doubly-Linked Lists Due Friday, 6/27/14, 12:00 PM (noon) NO LATE ASSIGNMENTS 1. Introduction This assignment deals with the combination

More information

Lab 1: Dynamic Memory: Heap Manager

Lab 1: Dynamic Memory: Heap Manager Lab 1: Dynamic Memory: Heap Manager Introduction to Systems, Duke University 1 Introduction For this lab you implement a basic heap manager. The standard C runtime library provides a standard heap manager

More information

Review! Lecture 5 C Memory Management !

Review! Lecture 5 C Memory Management ! CS61C L05 C Memory Management (1)! inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 5 C Memory Management 2010-06-28!!! Instructor Paul Pearce! Symmetric multiprocessor! MIPS support for

More information

The Program Specification:

The Program Specification: Reading to Input Failure, Decisions, Functions This programming assignment uses many of the ideas presented in sections 3 through 8 of the course notes, so you are advised to read those notes carefully

More information

CS61C : Machine Structures

CS61C : Machine Structures inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 5 C Memory Management 2010-06-28!!! Instructor Paul Pearce! Symmetric multiprocessor! MIPS support for Android MIPS Technologies (founded

More information

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm 1 CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 8 Assigned: October 26, 2016 Due: November 2, 2016 by 2:30pm Objectives To enhance your experience with designing and implementing your own

More information

CS 3204 Operating Systems Programming Project #2 Job / CPU Scheduling Dr. Sallie Henry Spring 2001 Due on February 27, 2001.

CS 3204 Operating Systems Programming Project #2 Job / CPU Scheduling Dr. Sallie Henry Spring 2001 Due on February 27, 2001. CS 3204 Operating Systems Programming Project #2 Job / CPU Scheduling Dr. Sallie Henry Spring 2001 Due on February 27, 2001. 23:59:59 PM Design and implement a program that simulates some of the job scheduling,

More information

Homework 2 (by Ao Zeng) Solutions Due: Friday Sept 28, 11:59pm

Homework 2 (by Ao Zeng) Solutions Due: Friday Sept 28, 11:59pm CARNEGIE MELLON UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE 15-445/645 DATABASE SYSTEMS (FALL 2018) PROF. ANDY PAVLO Homework 2 (by Ao Zeng) Solutions Due: Friday Sept 28, 2018 @ 11:59pm IMPORTANT: Upload

More information

Hashing. Hashing Procedures

Hashing. Hashing Procedures Hashing Hashing Procedures Let us denote the set of all possible key values (i.e., the universe of keys) used in a dictionary application by U. Suppose an application requires a dictionary in which elements

More information

ACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1

ACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1 ACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1 Due to CMS by Tuesday, February 14. Social networking has caused a return of the dot-com madness. You want in on the easy money, so you have decided to make

More information

CS61C : Machine Structures

CS61C : Machine Structures inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #4 C Memory Management 2007-06-28 Scott Beamer, Instructor iphone Comes out Tomorrow CS61C L4 C Memory Management (1) www.apple.com/iphone

More information

Memory Allocation in VxWorks 6.0 White Paper

Memory Allocation in VxWorks 6.0 White Paper Memory Allocation in VxWorks 6.0 White Paper Zoltan Laszlo Wind River Systems, Inc. Copyright 2005 Wind River Systems, Inc 1 Introduction Memory allocation is a typical software engineering problem for

More information

Programming, Data Structures and Algorithms Prof. Hema A Murthy Department of Computer Science and Engineering Indian Institute of Technology, Madras

Programming, Data Structures and Algorithms Prof. Hema A Murthy Department of Computer Science and Engineering Indian Institute of Technology, Madras Programming, Data Structures and Algorithms Prof. Hema A Murthy Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 54 Assignment on Data Structures (Refer Slide

More information

CS Lecture 19: Loop invariants

CS Lecture 19: Loop invariants CS 1110 Lecture 19: Loop invariants Announcements Prelim 2 conflicts Today (April 2) is two weeks before the prelim, and the deadline for submitting prelim conflicts. Instructor travel This week and the

More information

EECE.4810/EECE.5730: Operating Systems Spring 2018 Programming Project 3 Due 11:59 PM, Wednesday, 4/18/18 Monday, 4/30/18

EECE.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 information

CSCI 4500 / 8506 Sample Questions for Quiz 5

CSCI 4500 / 8506 Sample Questions for Quiz 5 CSCI 4500 / 8506 Sample Questions for Quiz 5 1. Why might a system treat memory allocation requests from the operating system itself differently from those generated by an application? a. The OS typically

More information

CS 2704 Project 2: Elevator Simulation Fall 1999

CS 2704 Project 2: Elevator Simulation Fall 1999 Elevator Simulation Consider an elevator system, similar to the one on McBryde Hall. At any given time, there may be zero or more elevators in operation. Each operating elevator will be on a particular

More information

Homework 3: Relational Database Design Theory (100 points)

Homework 3: Relational Database Design Theory (100 points) CS 122A: Introduction to Data Management Spring 2018 Homework 3: Relational Database Design Theory (100 points) Due Date: Wed, Apr 25 (5:00 PM) Submission All HW assignments should be turned in with a

More information

Kaltura Blackboard Building Block - KAF

Kaltura Blackboard Building Block - KAF Kaltura Blackboard Building Block - KAF I. Introduction a. The Kaltura Building Block allows us to add powerful media tools to Blackboard, combing the best features of video sharing, webcam recording,

More information

Part II: Memory Management. Chapter 7: Physical Memory Chapter 8: Virtual Memory Chapter 9: Sharing Data and Code in Main Memory

Part II: Memory Management. Chapter 7: Physical Memory Chapter 8: Virtual Memory Chapter 9: Sharing Data and Code in Main Memory Part II: Memory Management Chapter 7: Physical Memory Chapter 8: Virtual Memory Chapter 9: Sharing Data and Code in Main Memory 1 7. Physical Memory 7.1 Preparing a Program for Execution Program Transformations

More information

The e-marks System: Instructions for Faculty of Arts and Science Users

The e-marks System: Instructions for Faculty of Arts and Science Users The e-marks System: Instructions for Faculty of Arts and Science Users Contents Section A: Logging in... 2 Section B: Submitting Your Marks... 3 Section C: Marks Amendments... 8 Section D: How to Approve

More information

Problem Set 1. Problem 1-1.

Problem Set 1. Problem 1-1. Introduction to Algorithms: 6.006 Massachusetts Institute of Technology September 8, 2011 Professors Erik Demaine and Srini Devadas Problem Set 1 Problem Set 1 Both theory and programming questions are

More information

Homework #5 Algorithms I Spring 2017

Homework #5 Algorithms I Spring 2017 Homework #5 Algorithms I 600.463 Spring 2017 Due on: Saturday, March 18th, 11:59pm Late submissions: will NOT be accepted Format: Please start each problem on a new page. Where to submit: On Gradescope,

More information

CS 2604 Minor Project 1 DRAFT Fall 2000

CS 2604 Minor Project 1 DRAFT Fall 2000 RPN Calculator For this project, you will design and implement a simple integer calculator, which interprets reverse Polish notation (RPN) expressions. There is no graphical interface. Calculator input

More information

Problem Set 6 Due: 11:59 Sunday, April 29

Problem Set 6 Due: 11:59 Sunday, April 29 CS230 Data Structures Handout # 36 Prof. Lyn Turbak Monday, April 23 Wellesley College Problem Set 6 Due: 11:59 Sunday, April 29 Reading: You are expected to read and understand all of the following handouts,

More information

Homework No. 4 Answers

Homework No. 4 Answers Homework No. 4 Answers CSCI 4470/6470 Algorithms, CS@UGA, Spring 2018 Due Thursday March 29, 2018 There are 100 points in total. 1. (20 points) Consider algorithm DFS (or algorithm To-Start-DFS in Lecture

More information

CS 261 Spring 2013 Midterm

CS 261 Spring 2013 Midterm CS 261 Spring 2013 Midterm Name: Student ID: 1: 2: 3: 4: 5: 6: Total: 1. (20 points) Suppose that we implement a simplified version of the dynamic array data structure in which the amount of memory allocated

More information

COMP-202: Foundations of Programming. Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015

COMP-202: Foundations of Programming. Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015 COMP-202: Foundations of Programming Lecture 4: Flow Control Loops Sandeep Manjanna, Summer 2015 Announcements Check the calendar on the course webpage regularly for updates on tutorials and office hours.

More information

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 2 (document version 1.4) CPU Scheduling Algorithms

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 2 (document version 1.4) CPU Scheduling Algorithms CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Project 2 (document version 14) CPU Scheduling Algorithms Overview This project is due by 11:59:59 PM on Monday, October 5, 2015 Projects

More information

COMPUTER SCIENCE 4500 OPERATING SYSTEMS

COMPUTER SCIENCE 4500 OPERATING SYSTEMS Last update: 3/28/2017 COMPUTER SCIENCE 4500 OPERATING SYSTEMS 2017 Stanley Wileman Module 9: Memory Management Part 1 In This Module 2! Memory management functions! Types of memory and typical uses! Simple

More information

(Refer Slide Time: 00:18)

(Refer Slide Time: 00:18) Programming, Data Structures and Algorithms Prof. N. S. Narayanaswamy Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 11 Lecture 58 Problem: single source shortest

More information

Project 4: Implementing Malloc Introduction & Problem statement

Project 4: Implementing Malloc Introduction & Problem statement Project 4 (75 points) Assigned: February 14, 2014 Due: March 4, 2014, 11:59 PM CS-3013, Operating Systems C-Term 2014 Project 4: Implementing Malloc Introduction & Problem statement As C programmers, we

More information

Computer Center. Texas Tech University. Quick Reference Guide For Testing

Computer Center. Texas Tech University. Quick Reference Guide For Testing Computer Center Texas Tech University Quick Reference Guide For Testing Office Hours Monday - Friday, 8 am to 5 pm (Closed Noon-1 pm) (Scanning Hours: 8-11:45; and 1-4:45) Computer Center, 8 th & Boston,

More information

Welcome to CS 135 (Winter 2018)

Welcome to CS 135 (Winter 2018) Welcome to CS 135 (Winter 2018) Instructors: Sandy Graham, Paul Nijjar Other course personnel: see website for details ISAs (Instructional Support Assistants) IAs (Instructional Apprentices) ISC (Instructional

More information

LBSC 690: Information Technology Lecture 05 Structured data and databases

LBSC 690: Information Technology Lecture 05 Structured data and databases LBSC 690: Information Technology Lecture 05 Structured data and databases William Webber CIS, University of Maryland Spring semester, 2012 Interpreting bits "my" 13.5801 268 010011010110 3rd Feb, 2014

More information

CS 211 Programming Practicum Spring 2018

CS 211 Programming Practicum Spring 2018 Due: Thursday, 4/5/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will

More information

CS 186/286 Spring 2018 Midterm 1

CS 186/286 Spring 2018 Midterm 1 CS 186/286 Spring 2018 Midterm 1 Do not turn this page until instructed to start the exam. You should receive 1 single-sided answer sheet and a 13-page exam packet. All answers should be written on the

More information

Events, Memory Management

Events, Memory Management Events, Memory Management Events, Memory Management 1. Call back, message pumps 2. Call backs vs messages 3. Memory management Callback Program registers and event handler program that is called whenever

More information

Sakai Forums.

Sakai Forums. Sakai Forums http://sakai.providence.edu SakaiHelp@Providence.edu www.providence.edu/itdp Turning on the Forums Tool: The Forums tools is not automatically set up a new Sakai site. If you would like to

More information

CISC 3130 Data Structures Spring 2018

CISC 3130 Data Structures Spring 2018 CISC 3130 Data Structures Spring 2018 Instructor: Ari Mermelstein Email address for questions: mermelstein AT sci DOT brooklyn DOT cuny DOT edu Email address for homework submissions: mermelstein DOT homework

More information

Assignment 6: The Power of Caches

Assignment 6: The Power of Caches Assignment 6: The Power of Caches Due by: April 20, 2018 before 10:00 pm Collaboration: Individuals or Registered Pairs (see Piazza). It is mandatory for every student to register on Piazza. Grading: Packaging

More information

Project #1 Computer Science 2334 Fall 2008

Project #1 Computer Science 2334 Fall 2008 Project #1 Computer Science 2334 Fall 2008 User Request: Create a Word Verification System. Milestones: 1. Use program arguments to specify a file name. 10 points 2. Use simple File I/O to read a file.

More information

CS 556 Spring 2017 Project 3 Study of Cryptographic Techniques

CS 556 Spring 2017 Project 3 Study of Cryptographic Techniques CS 556 Spring 2017 Project 3 Study of Cryptographic Techniques Project Due Dates: Part A: Due before class on CANVAS by Thursday, March 23, 2017 Part B: Due before class on CANVAS by Thursday April 6,

More information

Marks Management & ScanExam Introduction

Marks Management & ScanExam Introduction Marks Management & ScanExam Introduction 1. Install Marks Management Software (MMS) and ScanExam First uninstall your old version of MMS. Then, use a web browser to visit ssnds.uwo.ca/softwaredownloads.html

More information

EE355 Lab 5 - The Files Are *In* the Computer

EE355 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 information

International MBA Administrator Instructions

International MBA Administrator Instructions International MBA Administrator Instructions International MBA Administrator Instructions Thank you for using the I-MBA Administrator. The environment aims at simplifying the maintenance and facilitating

More information

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 2 Assigned: September 7, 2016 Due: Wednesday, September 14, 2016 by 2:30 pm

CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 2 Assigned: September 7, 2016 Due: Wednesday, September 14, 2016 by 2:30 pm 1 Objectives CMPSC 111 Introduction to Computer Science I Fall 2016 Lab 2 Assigned: September 7, 2016 Due: Wednesday, September 14, 2016 by 2:30 pm To develop a template for a Java program to use during

More information

Pointer Accesses to Memory and Bitwise Manipulation

Pointer Accesses to Memory and Bitwise Manipulation C Programming Pointer Accesses to Memory and Bitwise Manipulation This assignment consists of implementing a function that can be executed in two modes, controlled by a switch specified by a parameter

More information

CS ) PROGRAMMING ASSIGNMENT 11:00 PM 11:00 PM

CS ) PROGRAMMING ASSIGNMENT 11:00 PM 11:00 PM CS3114 (Fall 2017) PROGRAMMING ASSIGNMENT #4 Due Thursday, December 7 th @ 11:00 PM for 100 points Due Tuesday, December 5 th @ 11:00 PM for 10 point bonus Last updated: 11/13/2017 Assignment: Update:

More information

Lab 7 1 Due Thu., 6 Apr. 2017

Lab 7 1 Due Thu., 6 Apr. 2017 Lab 7 1 Due Thu., 6 Apr. 2017 CMPSC 112 Introduction to Computer Science II (Spring 2017) Prof. John Wenskovitch http://cs.allegheny.edu/~jwenskovitch/teaching/cmpsc112 Lab 7 - Using Stacks to Create a

More information

Spring 2017 CMSC 140 Programming Project 7: Payroll

Spring 2017 CMSC 140 Programming Project 7: Payroll Spring 2017 CMSC 140 Programming Project 7: Payroll Concepts tested by the program: 1. Working with arrays 2. Using file operations 3. Using a selection sort to sort parallel arrays 4. Using a binary search

More information

Due: February 26, 2014, 7.30 PM

Due: February 26, 2014, 7.30 PM Jackson State University Department of Computer Science CSC 438-01/539-01 Systems and Software Security, Spring 2014 Instructor: Dr. Natarajan Meghanathan Project 1: Exploring UNIX Access Control in a

More information

CSCI 204 Introduction to Computer Science II Lab 8 Priority Queue ADT

CSCI 204 Introduction to Computer Science II Lab 8 Priority Queue ADT CSCI 204 Introduction to Computer Science II Lab 8 Priority Queue ADT 1. Objectives The objectives of this lab are to: Become familiar with priority queues. Exercise inheritance. Implement a priority queue

More information

Soda Machine Laboratory

Soda Machine Laboratory Soda Machine Laboratory Introduction This laboratory is intended to give you experience working with multiple queue structures in a familiar real-world setting. The given application models a soda machine

More information

Lab 03 - x86-64: atoi

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 information

Memory Management Basics

Memory Management Basics Memory Management Basics 1 Basic Memory Management Concepts Address spaces! Physical address space The address space supported by the hardware Ø Starting at address 0, going to address MAX sys! MAX sys!!

More information

Programming assignment for the course Sequence Analysis (2006)

Programming assignment for the course Sequence Analysis (2006) Programming assignment for the course Sequence Analysis (2006) Original text by John W. Romein, adapted by Bart van Houte (bart@cs.vu.nl) Introduction Please note: This assignment is only obligatory for

More information

CMPE 180A Data Structures and Algorithms in C++ Spring 2018

CMPE 180A Data Structures and Algorithms in C++ Spring 2018 San José State University Department of Computer Engineering CMPE 180A Data Structures and Algorithms in C++ Spring 2018 Assigned: Thursday, April Due: Thursday, April 12 at :30 PM Canvas: Assignment #10.

More information

D2L Extract Process (ZSRD2LX) Workbook Version Information Technology Services

D2L Extract Process (ZSRD2LX) Workbook Version Information Technology Services (ZSRD2LX) Workbook Version 8.14 June 2012 This page left blank to facilitate front/back printing. Table of Contents Table of Contents (ZSRD2LX) Introduction... 1 Section 1: Codes, Rules, and Forms... 2

More information

Linking to Tools in a Course Area

Linking to Tools in a Course Area Linking to Tools in a Course Area Sometimes a specific course tool is a natural complement to the material featured in a content area. In this case, it makes sense to add a tool link to any page where

More information

CSCI 561: Foundations of Artificial Intelligence Instructor: Prof. Laurent Itti Homework 1: Uninformed Search Due on September 23rd at 11:59pm, 2015

CSCI 561: Foundations of Artificial Intelligence Instructor: Prof. Laurent Itti Homework 1: Uninformed Search Due on September 23rd at 11:59pm, 2015 CSCI 561: Foundations of Artificial Intelligence Instructor: Prof. Laurent Itti Homework 1: Uninformed Search Due on September 23rd at 11:59pm, 2015 UNINFORMED SEARCH There is an old city that has an antique

More information

Graph Coloring. Margaret M. Fleck. 3 May This lecture discusses the graph coloring problem (section 9.8 of Rosen).

Graph Coloring. Margaret M. Fleck. 3 May This lecture discusses the graph coloring problem (section 9.8 of Rosen). Graph Coloring Margaret M. Fleck 3 May 2010 This lecture discusses the graph coloring problem (section 9.8 of Rosen). 1 Announcements Makeup quiz last day of classes (at the start of class). Your room

More information

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments. Java How to Program, 9/e Education, Inc. All Rights Reserved. } Java application programming } Use tools from the JDK to compile and run programs. } Videos at www.deitel.com/books/jhtp9/ Help you get started

More information

Online Course Evaluation System Faculty User Guide

Online Course Evaluation System Faculty User Guide Accessing the System The online system for course evaluations is available through your Banner Web for Faculty account. To access the course evaluations menu, follow these steps: Log in to Banner Web using

More information

Announcements. Final Exam. December 10th, Thursday Patrick Taylor Hall. Chapters included in Final. 8.

Announcements. Final Exam. December 10th, Thursday Patrick Taylor Hall. Chapters included in Final. 8. CSC 4103 - Operating Systems Fall 2009 Lecture - XXV Final Review Announcements * You should have received your grades as well as graded papers for: - Homework 1-4 - Quiz 1-3 - Midterm If not, please see

More information

Assignment 1: Plz Tell Me My Password

Assignment 1: Plz Tell Me My Password Assignment 1: Plz Tell Me My Password Part I Due: 11:59 pm, September 23, 2013 Part II Due : 11:59 pm, September 27, 2013 1 Introduction The objective of this assignment is to gain experience in: socket

More information

Using VeriCite. NMU Center for Teaching and Learning. 1. To Create and Assignment using VeriCite:

Using VeriCite. NMU Center for Teaching and Learning. 1. To Create and Assignment using VeriCite: 1. To Create and Assignment using VeriCite: Log into EduCat, Click into your course, and Turn editing on. 2. Scroll to the section you want the assignment to be displayed. Click on Add an activity or resource.

More information

NYSESLAT Speaking Audio Recorder Download/Upload Instructions

NYSESLAT Speaking Audio Recorder Download/Upload Instructions New York State English As A Second Language Achievement Test NYSESLAT Speaking Audio Recorder Download/Upload Instructions Speaking Field Test 2018 Field test edition copyright 2018 by the New York State

More information

manaba+r Report Examination Manual [For Students]

manaba+r Report Examination Manual [For Students] manaba+r Report Examination Manual [For Students] Contents 1. Report Examination... 1 1.1. Courses with Report Examinations... 1 1.2. Report Topic Announcement Method... 1 1.3. Report Submission... 1 1.4.

More information

Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018

Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018 Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018 Due: Tuesday, September 18, 11:59 pm Collaboration Policy: Level 1 (review full policy for details) Group Policy: Individual This lab will give you experience

More information

CS125 : Introduction to Computer Science. Lecture Notes #4 Type Checking, Input/Output, and Programming Style

CS125 : Introduction to Computer Science. Lecture Notes #4 Type Checking, Input/Output, and Programming Style CS125 : Introduction to Computer Science Lecture Notes #4 Type Checking, Input/Output, and Programming Style c 2005, 2004, 2002, 2001, 2000 Jason Zych 1 Lecture 4 : Type Checking, Input/Output, and Programming

More information

Virtual Memory. Chapter 8

Virtual Memory. Chapter 8 Virtual Memory 1 Chapter 8 Characteristics of Paging and Segmentation Memory references are dynamically translated into physical addresses at run time E.g., process may be swapped in and out of main memory

More information

EECE.2160: ECE Application Programming

EECE.2160: ECE Application Programming Summer 2017 Programming Assignment #9: Doubly-Linked Lists Due Monday, 6/26/17, 11:59:59 PM (+15% if submitted by 6/23, +10% if submitted 6/24-6/25, +5% if submitted 6/26) 1. Introduction This assignment

More information

CS 245 Midterm Exam Winter 2014

CS 245 Midterm Exam Winter 2014 CS 245 Midterm Exam Winter 2014 This exam is open book and notes. You can use a calculator and your laptop to access course notes and videos (but not to communicate with other people). You have 70 minutes

More information