Tiling Rectangles. ...would be encoded as (4 2 1) (1) (1 2) (1) Problem Description
|
|
- Solomon Perry
- 5 years ago
- Views:
Transcription
1 Tiling Rectangles Akshay Singh (akki) June 1, 2011 Given a rectangular area with integral dimensions, that area can be subdivided into square subregions, also with integral dimensions. This process is known as tiling the rectangle. For such square-tiled rectangles, we can encode the tiling with a sequence of grouped integers. Starting from the upper horizontal side of the given rectangle, the squares are "read" from left to right and from top to bottom. The length of the sides of the squares sharing the same horizontal level (at the top of the tiling square) are grouped together by parentheses and listed in order from left to right. For example, the 4x7 rectangle tiled with the following pattern......would be encoded as (4 2 1) (1) (1 2) (1) Problem Description Write a threaded code to input an unknown number of sets of ordered integers and decide if there is some grouping of those integers that would form the correct encoding for some square-tiled rectangle. The sets for testing will be held within a text file listed first on the application's command line. For all valid encodings found, output of the application will be the height and width of the rectangle and the properly formatted coding of the tiling. Output will be stored in the second text file listed on the command line. Input Description The input to the program will be from a text file named on the command line of the application. Consecutive lines will correspond to the same potential tiling of a rectangle, in order. A 0' (zero) will be used to indicate the end of a tiling set. Input file lines will contain 20 integers per text line; the last line of a tiling may have fewer than 20 integers, and will terminate with a zero. End of file marks the
2 end of the tiling sets. Output Description For each potential tiling set within the input file, the output to be generated by the application is the dimensions of rectangles and the encoded tiling of each rectangle to the second file listed on the application command line. If there is no encoding possible from an input set, a message stating that fact should be printed. Order of output sets must be the same as the input set order. Example Command line: tiling.exe setsin.txt rectout.txt Input file: setsin.txt Output file: rectout.txt Set 1 dimensions: 4 x 7 (4 2 1) (1) (1 2) (1) Set 2 dimensions: 2 x 3 (2 1) (1) dimensions: 3 x 2 (2) (1 1) Set 3 Cannot encode a rectangle Set 4 dimensions: 61 x 69 (36 33) (5 28) (25 9 2) (7) (16)
3 Serial Algorithm A serial algorithm to solve the rectangle tiling problem is described below. The following variables shall be used in the algorithm: N W number of tiles array containing the sequence of tiles specified in the problem statement area Area of the rectangle. area = W i2, i [0, N 1] cr, nr minh T R start arrays representing the current row and the next row respectively. Each element of these arrays has height and width properties. smallest height in cr tile index row number array containing the tile index of the first tile in each row of the solution n Number of tiles in the first row (1 n N) 1 Determine feasibility 1.1 Choose the number of tiles n in the first row (1 n N) 1.2 Compute width = W i, i [0, n 1] 1.3 A solution is feasible if area is divisible by width 2 Construct the first row 2.1 minh =, T = 0, R = while T < n cr T.width = cr T.height = W T if W T < minh minh = W T T start R = R++ 3 Iteratively, attempt to plug in the next tiles in sequence 3.1 start R = T, gap = 0, newminh =, k = R for t cr newh = t.height minh
4 3.3.2 if newh == gap += t.width else if gap > plug the gap as described in 4 below gap = if newh < newminh newminh = newh nr k.width = t.width nr k.height = newh k if gap > plug the gap as described in 4 below 3.5 swap cr and nr 3.6 minh = newminh 3.7 if T < N return to make sure all tiles in the last row have the same height for t cr if t.height minh, rectangle of the selected width is not possible return to start R = N 3.10 use start to produce output 3.11 return to 1 4 Plug a gap 4.1 wsum = while wsum < gap and T < N wsum += W T nr k.width = nr k.height = W T if W T < newminh newminh = W T k++, T if wsum gap, the gap cannot be plugged return to return
5 Parallel Algorithm The solution to this problem can be easily parallelized. A suitable strategy may be adopted depending on the nature of the input file. 1. If the input file contains a large number of small problems, it makes sense to use static data decomposition, by dividing the input into sets of problems, and solving each set of problems in a separate thread, using the serial algorithm. 2. On the other hand, the input file may contain relatively large problems. In this case, exploratory decomposition can be used, by statically dividing the number of tiles in the first row (n) among a set of threads, and aggregating the results to produce the output. Input and Output Once an initial serial solution had been implemented, it was evident that the input and output phases were dominating the execution time. It was, therefore, necessary to improve the I/O performance. It was clear that stream based I/O was too slow and an alternative would be required. The obvious choice for improving input performance, was memory mapping the input file, and then using a custom scanner, to construct the problem definitions. ProblemDefinition* ProblemParser::next() { if(eof()) { // End of file return NULL; } ProblemDefinition* problem = new ProblemDefinition(); // W array from the serial algorithm vector<int32_t>& tiles = problem->tiles; int64_t area = 0; int32_t value = 0; bool ws = false; // number of bytes of input remaining int64_t remain = length - (int64_t)(fp - buffer); // Scan input do { if(isws(*fp)) { ws = true; } else { if(ws) { if(value == 0) break; // Stop when a 0 is found tiles.push_back(value); // area += (value * value); Save tile
6 } value = 0; ws = false; } // Construct a number value = value * 10 + *fp - '0'; ++fp; } while(--remain); if(eof() && area == 0) { // End of input return NULL; } problem->area = area; } return problem; For output, a fairly large output buffer was created, and a custom formatter was used to produce formatted output. The output was flushed to disk, whenever the buffer was full. void SolutionFormatter::format(ProblemDefinition& definition, Solution& solution) { appendstring("\n dimensions: ", 15); appendint(solution.height); appendstring(" x ", 3); appendint(solution.width); appendstring("\n ", 2); // solution.row is the start array from the algorithm int32_t** prend = solution.row + solution.nrows; // definition.tiles is the W array from the algorithm int32_t* ptp = &definition.tiles.front(); int32_t* ptpend; // Encode rectangle for(int32_t** pr = solution.row + 1; pr < prend; ++pr) { appendstring(" (", 2); appendint(*ptp); ++ptp; ptpend = *pr; for(; ptp < ptpend; ++ptp) { appendstring(" ", 1); appendint(*ptp); }
7 } appendstring(")", 1); } appendstring("\n", 1); However, even after these optimizations, the time spent on I/O was significant. In particular, formatting and scanning were found to be expensive operations. Naturally, the next step was parallelizing these operations. This requirement gives us one set of threads, that perform the following actions, on different regions of the input file: 1. Scan input from the assigned region of the memory mapped input file and construct problem definitions 2. Solve each problem, depending on it's size, either in the same thread, or by dividing the search space among multiple threads 3. Format the discovered solutions and write them to a buffer, adding new buffers when required 4. Notify the Collector thread (defined below) on completion Let us call these, the Solver threads. Additionally, since sets of problems are being solved in parallel, it makes sense to have a dedicated thread for writing pre-formatted buffers to the output file, as soon as the next expected set of solutions becomes available. The job of this thread would be: 1. Collect formatted output from Solver threads 2. Keep track of the next set of solutions to be written to the output file 3. Dump buffers to the output file Let us call this thread, the Collector thread. Modified Parallel Algorithm After incorporating the I/O considerations, we arrive at the following simplified parallel algorithm: 1. Start the Collector thread 2. Open the input file as a memory mapped file 3. Divide the memory mapped input file into pieces of a predefined size, and create one Solver thread to work on each piece. Use a thread pool to restrict the number of concurrently running threads. 4. Wait for the Collector thread to terminate
8 Further Improvements The following improvements to the basic parallel algorithm, described above, were identified and implemented: 1. Unequal problem set sizes If the sizes of the input file pieces assigned to different Solver threads are the same, it is likely that all concurrently running Solver threads will complete their assigned tasks at the same time, thus, defeating the purpose of the Collector thread. If, however, the sizes of the pieces assigned to the Solver threads are successively increased, we might expect the Solvers to complete execution in the appropriate sequence. Simultaneously, the Collector thread would be kept busy as well, helping us achieve better parallel performance. 2. Reduce the number of memory allocations / deallocations Another factor that severely impacts the execution time, when dealing with a large number of small problems, is the number of allocations and deallocations. In order to reduce this impact, the memory allocated to represent the tile sequence (W), current row (cr), next row (nr) and row start index (start) is reused, as far as possible, across problem instances assigned to one thread. 3. Assign non-consecutive search areas when using multiple threads to solve a large problem One of the problems used to test the solution was x! ones. The logic behind this choice was that the number of solutions would be equal to the number of divisors of the total area (i.e. x!). For example, consider the problem The area of this rectangle is 6 (3!). 6 is divisible by 1, 2, 3, 6 and the corresponding 4 solutions are: 1. (1) (1) (1) (1) (1) (1) 2. (1 1) (1 1) (1 1) 3. (1 1 1) (1 1 1) 4. ( ) Since x! has a large number of small but distinct divisors, x! ones may be the worst case scenario. While solving such problems using multiple threads, by assigning consecutive, number of first row tiles (n in the serial algorithm), to each thread, it was observed that one thread would end up finding many more solutions and, consequently, run much longer than the others. For example, if we solve the 3! ones problem using 2 threads, and the search space division is, {1, 2, 3} assigned to thread 1 and {4, 5, 6} assigned to thread 2, then thread 1 will find 3 solutions while thread 2 discovers only one solution. The imbalance becomes clearer when we consider the 10! ones problem, solved using 4 threads, the number of solutions found per thread are (thread/count) 1/267, 2/2, 3/0, 4/1. An alternative is to initialize n = i for the i th thread and increment n by y when using y threads.
9 For the 3! ones problem, the modified search spaces are {1, 3, 5} and {2, 4, 6}. As a result the solutions per thread would be 1/2, 2/2. For the 10! ones problem solved using 4 threads, we get, 1/210, 2/30, 3/15, 4/15. There is still a significant imbalance, but the result is better than the earlier case. Graphical Overview
10 Performance The input files used to test the solution were: File Description # Problems # Solutions I/P size O/P size o19sisrs o20sisrs lcm16 Order 19 simple imperfect squared rectangles posted in the forum by john_e_lilley Order 20 simple imperfect squared rectangles posted in the forum by john_e_lilley As many ones as the least common multiple (LCM) of all numbers from 1 to 16 (720720) * MB 3.6MB * MB 13MB MB 337MB fact10 10! ( ) ones MB 1.9GB Serial Performance Here's a comparison of the execution times observed when using stream-based I/O vs. custom scanning and formatting on MTL. File Stream I/O Custom I/O o19sisrs o20sisrs lcm fact o o lcm fact10 Note: All times in seconds Stream-based Custom scan/format Clearly, I/O using a custom scanner and formatter is approximately 6 times as fast as stream-based I/O.
11 Scaling The following times were observed on MTL with varying number of threads: File Threads (1 Collector + Solvers) o19sisrs o20sisrs lcm fact Time (sec) Threads o19sisrs o20sisrs Time (sec) Threads lcm16 fact10
12 Conclusion For a file containing small problems, the scaling is variable. o19sisrs scales to 8 threads, producing a 300% speedup while o20sisrs appears to scale to 16 threads, exhibiting a 400% speedup. This is because, the variable partitioning scheme, described earlier, uses fixed partition size increments, which causes o19sisrs to be split into 6 parts while o20sisrs is split into 13 parts. Larger files are expected to produce better parallel performance. The solution scales to 32 cores for large problems. The scaling is sub-linear, but speed does improve, almost constantly, resulting in 600% speedup for both lcm16 and fact10 using 32 threads. It is likely that speedup, in this case, is limited due to the unavailability of processors on the MTL.
Preview. Memory Management
Preview Memory Management With Mono-Process With Multi-Processes Multi-process with Fixed Partitions Modeling Multiprogramming Swapping Memory Management with Bitmaps Memory Management with Free-List Virtual
More informationGeneral Objective:To understand the basic memory management of operating system. Specific Objectives: At the end of the unit you should be able to:
F2007/Unit6/1 UNIT 6 OBJECTIVES General Objective:To understand the basic memory management of operating system Specific Objectives: At the end of the unit you should be able to: define the memory management
More informationMemory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358
Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement
More informationCache Performance (H&P 5.3; 5.5; 5.6)
Cache Performance (H&P 5.3; 5.5; 5.6) Memory system and processor performance: CPU time = IC x CPI x Clock time CPU performance eqn. CPI = CPI ld/st x IC ld/st IC + CPI others x IC others IC CPI ld/st
More informationEXTERNAL SORTING. Sorting
EXTERNAL SORTING 1 Sorting A classic problem in computer science! Data requested in sorted order (sorted output) e.g., find students in increasing grade point average (gpa) order SELECT A, B, C FROM R
More informationChapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition
Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation
More informationPerformance and Optimization Issues in Multicore Computing
Performance and Optimization Issues in Multicore Computing Minsoo Ryu Department of Computer Science and Engineering 2 Multicore Computing Challenges It is not easy to develop an efficient multicore program
More informationChapter 7: Main Memory. Operating System Concepts Essentials 8 th Edition
Chapter 7: Main Memory Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 7: Memory Management Background Swapping Contiguous Memory Allocation Paging Structure
More informationCSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable)
CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable) Past & Present Have looked at two constraints: Mutual exclusion constraint between two events is a requirement that
More informationMemory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory.
Memory Management Page 1 Memory Management Wednesday, October 27, 2004 4:54 AM Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Two kinds
More informationBasic Memory Management
Basic Memory Management CS 256/456 Dept. of Computer Science, University of Rochester 10/15/14 CSC 2/456 1 Basic Memory Management Program must be brought into memory and placed within a process for it
More informationFile Organization Sheet
File Organization Sheet 1. What are File Structures? A File Structure is a combination of representations for data in files and of operations for accessing the data. A File Structure allows applications
More informationHeap Management portion of the store lives indefinitely until the program explicitly deletes it C++ and Java new Such objects are stored on a heap
Heap Management The heap is the portion of the store that is used for data that lives indefinitely, or until the program explicitly deletes it. While local variables typically become inaccessible when
More informationDistributed computing: index building and use
Distributed computing: index building and use Distributed computing Goals Distributing computation across several machines to Do one computation faster - latency Do more computations in given time - throughput
More informationCS 3733 Operating Systems:
CS 3733 Operating Systems: Topics: Memory Management (SGG, Chapter 08) Instructor: Dr Dakai Zhu Department of Computer Science @ UTSA 1 Reminders Assignment 2: extended to Monday (March 5th) midnight:
More informationMemory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts
Memory management Last modified: 26.04.2016 1 Contents Background Logical and physical address spaces; address binding Overlaying, swapping Contiguous Memory Allocation Segmentation Paging Structure of
More informationChapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel
Chapter-6 SUBJECT:- Operating System TOPICS:- I/O Management Created by : - Sanjay Patel Disk Scheduling Algorithm 1) First-In-First-Out (FIFO) 2) Shortest Service Time First (SSTF) 3) SCAN 4) Circular-SCAN
More informationChapter 8: Main Memory
Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:
More informationPerformance of Various Levels of Storage. Movement between levels of storage hierarchy can be explicit or implicit
Memory Management All data in memory before and after processing All instructions in memory in order to execute Memory management determines what is to be in memory Memory management activities Keeping
More informationOutline. Database Tuning. Ideal Transaction. Concurrency Tuning Goals. Concurrency Tuning. Nikolaus Augsten. Lock Tuning. Unit 8 WS 2013/2014
Outline Database Tuning Nikolaus Augsten University of Salzburg Department of Computer Science Database Group 1 Unit 8 WS 2013/2014 Adapted from Database Tuning by Dennis Shasha and Philippe Bonnet. Nikolaus
More informationChapter 8: Memory-Management Strategies
Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and
More informationMEMORY MANAGEMENT/1 CS 409, FALL 2013
MEMORY MANAGEMENT Requirements: Relocation (to different memory areas) Protection (run time, usually implemented together with relocation) Sharing (and also protection) Logical organization Physical organization
More informationCS307: Operating Systems
CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn
More information: Principles of Imperative Computation Victor Adamchik. Practice Exam - I
15-122 Practice Exam - I Page 1 of 10 15-122 : Principles of Imperative Computation Victor Adamchik Practice Exam - I Name: Andrew ID: Answer the questions in the space provided following each question.
More informationCHAPTER 8 - MEMORY MANAGEMENT STRATEGIES
CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide
More informationMemory management. Knut Omang Ifi/Oracle 10 Oct, 2012
Memory management Knut Omang Ifi/Oracle 1 Oct, 212 (with slides from V. Goebel, C. Griwodz (Ifi/UiO), P. Halvorsen (Ifi/UiO), K. Li (Princeton), A. Tanenbaum (VU Amsterdam), and M. van Steen (VU Amsterdam))
More informationBackground. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches
Background 20: Distributed File Systems Last Modified: 12/4/2002 9:26:20 PM Distributed file system (DFS) a distributed implementation of the classical time-sharing model of a file system, where multiple
More informationCS399 New Beginnings. Jonathan Walpole
CS399 New Beginnings Jonathan Walpole Memory Management Memory Management Memory a linear array of bytes - Holds O.S. and programs (processes) - Each cell (byte) is named by a unique memory address Recall,
More informationECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Memory Management
ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part I: Operating system overview: Memory Management 1 Hardware background The role of primary memory Program
More informationChapter 8: Main Memory. Operating System Concepts 9 th Edition
Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel
More informationCS 261 Fall Mike Lam, Professor. Virtual Memory
CS 261 Fall 2016 Mike Lam, Professor Virtual Memory Topics Operating systems Address spaces Virtual memory Address translation Memory allocation Lingering questions What happens when you call malloc()?
More informationCaching and Buffering in HDF5
Caching and Buffering in HDF5 September 9, 2008 SPEEDUP Workshop - HDF5 Tutorial 1 Software stack Life cycle: What happens to data when it is transferred from application buffer to HDF5 file and from HDF5
More informationCOMPUTER 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 informationRecall from Tuesday. Our solution to fragmentation is to split up a process s address space into smaller chunks. Physical Memory OS.
Paging 11/10/16 Recall from Tuesday Our solution to fragmentation is to split up a process s address space into smaller chunks. Physical Memory OS Process 3 Process 3 OS: Place Process 3 Process 1 Process
More informationRequirements, Partitioning, paging, and segmentation
Requirements, Partitioning, paging, and segmentation Main Memory: The Big Picture kernel memory proc struct kernel stack/u area Stack kernel stack/u area Stack kernel stack/u area Stack Data Text (shared)
More informationChapter 8: Main Memory
Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel
More informationInformatica Data Explorer Performance Tuning
Informatica Data Explorer Performance Tuning 2011 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise)
More informationEvaluation of relational operations
Evaluation of relational operations Iztok Savnik, FAMNIT Slides & Textbook Textbook: Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGraw-Hill, 3 rd ed., 2007. Slides: From Cow Book
More informationOptimizing the use of the Hard Disk in MapReduce Frameworks for Multi-core Architectures*
Optimizing the use of the Hard Disk in MapReduce Frameworks for Multi-core Architectures* Tharso Ferreira 1, Antonio Espinosa 1, Juan Carlos Moure 2 and Porfidio Hernández 2 Computer Architecture and Operating
More informationCS122 Lecture 8 Winter Term,
CS122 Lecture 8 Winter Term, 2014-2015 2 Other Join Algorithms Nested- loops join is generally useful, but slow Most joins involve equality tests against attributes Such joins are called equijoins Two
More informationMemory Management william stallings, maurizio pizzonia - sistemi operativi
Memory Management 1 summary goals and requirements techniques that do not involve virtual memory 2 memory management tracking used and free memory primitives allocation of a certain amount of memory de-allocation
More informationMaximizing Face Detection Performance
Maximizing Face Detection Performance Paulius Micikevicius Developer Technology Engineer, NVIDIA GTC 2015 1 Outline Very brief review of cascaded-classifiers Parallelization choices Reducing the amount
More informationBasic Memory Management. Basic Memory Management. Address Binding. Running a user program. Operating Systems 10/14/2018 CSC 256/456 1
Basic Memory Management Program must be brought into memory and placed within a process for it to be run Basic Memory Management CS 256/456 Dept. of Computer Science, University of Rochester Mono-programming
More informationComputer Systems Assignment 4: Scheduling and I/O
Autumn Term 018 Distributed Computing Computer Systems Assignment : Scheduling and I/O Assigned on: October 19, 018 1 Scheduling The following table describes tasks to be scheduled. The table contains
More informationReview: Creating a Parallel Program. Programming for Performance
Review: Creating a Parallel Program Can be done by programmer, compiler, run-time system or OS Steps for creating parallel program Decomposition Assignment of tasks to processes Orchestration Mapping (C)
More informationMemory Management. CSCI 315 Operating Systems Design Department of Computer Science
Memory Management CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture are based on those from Operating Systems Concepts, 9th ed., by Silberschatz, Galvin,
More informationMemory Management. Memory Management Requirements
Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable supply of ready processes to consume available processor time 1 Memory Management
More informationMemory Management. To do. q Basic memory management q Swapping q Kernel memory allocation q Next Time: Virtual memory
Memory Management To do q Basic memory management q Swapping q Kernel memory allocation q Next Time: Virtual memory Memory management Ideal memory for a programmer large, fast, nonvolatile and cheap not
More informationTopics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems
Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems Instructor: Dr. Turgay Korkmaz Department Computer Science The University of Texas at San Antonio Office: NPB
More informationOperating Systems. Overview Virtual memory part 2. Page replacement algorithms. Lecture 7 Memory management 3: Virtual memory
Operating Systems Lecture 7 Memory management : Virtual memory Overview Virtual memory part Page replacement algorithms Frame allocation Thrashing Other considerations Memory over-allocation Efficient
More information6 - Main Memory EECE 315 (101) ECE UBC 2013 W2
6 - Main Memory EECE 315 (101) ECE UBC 2013 W2 Acknowledgement: This set of slides is partly based on the PPTs provided by the Wiley s companion website (including textbook images, when not explicitly
More informationBalanced Search Trees
Balanced Search Trees Computer Science E-22 Harvard Extension School David G. Sullivan, Ph.D. Review: Balanced Trees A tree is balanced if, for each node, the node s subtrees have the same height or have
More informationComputer Architecture Memory hierarchies and caches
Computer Architecture Memory hierarchies and caches S Coudert and R Pacalet January 23, 2019 Outline Introduction Localities principles Direct-mapped caches Increasing block size Set-associative caches
More informationBackground. Contiguous Memory Allocation
Operating System Lecture 8 2017.5.9 Chapter 8 (Main Memory) Background Swapping Contiguous Memory Allocation Segmentation - Paging Memory Management Selection of a memory-management method for a specific
More informationParallel GC. (Chapter 14) Eleanor Ainy December 16 th 2014
GC (Chapter 14) Eleanor Ainy December 16 th 2014 1 Outline of Today s Talk How to use parallelism in each of the 4 components of tracing GC: Marking Copying Sweeping Compaction 2 Introduction Till now
More information8: Memory Management
CSC400 - Operating Systems 8: Memory Management J. Sumey Physical Memory as important as the CPU, a computer's physical memory is another important resource that must be carefully & efficiently managed
More informationUNIT III MEMORY MANAGEMENT
UNIT III MEMORY MANAGEMENT TOPICS TO BE COVERED 3.1 Memory management 3.2 Contiguous allocation i Partitioned memory allocation ii Fixed & variable partitioning iii Swapping iv Relocation v Protection
More information20-EECE-4029 Operating Systems Fall, 2015 John Franco
20-EECE-4029 Operating Systems Fall, 2015 John Franco Final Exam name: Question 1: Processes and Threads (12.5) long count = 0, result = 0; pthread_mutex_t mutex; pthread_cond_t cond; void *P1(void *t)
More informationOperating Systems, Fall
EXAM: Thu 22.10. 9.00 CK112 Operating Systems: Wrap-up Fall 2009 Tiina Niklander Questions both in English and Finnish. You may answer in Finnish, Swedish or English. No additional material allowed. You
More informationDelay Reduction In File Download Through Parallelization
Delay Reduction In File Download Through Parallelization Miss Priyanka Sahu Pursuing M.E. from Shri Ram Institute of Technology Jabalpur, India priyanka.sahu7@yahoo.com Mr. Brajesh Patel Head Of Department
More informationChapter 4 File Systems. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved
Chapter 4 File Systems File Systems The best way to store information: Store all information in virtual memory address space Use ordinary memory read/write to access information Not feasible: no enough
More informationCHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.
CHAPTER 8: MEMORY MANAGEMENT By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the
More informationCS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck
Main memory management CMSC 411 Computer Systems Architecture Lecture 16 Memory Hierarchy 3 (Main Memory & Memory) Questions: How big should main memory be? How to handle reads and writes? How to find
More informationLast class: Today: Deadlocks. Memory Management
Last class: Deadlocks Today: Memory Management CPU il1 L2 Memory Bus (e.g. PC133) Main Memory dl1 On-chip I/O Bus (e.g. PCI) Disk Ctrller Net. Int. Ctrller Network Binding of Programs to Addresses Address
More informationChapter 9 Memory Management
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationLast Class: Deadlocks. Where we are in the course
Last Class: Deadlocks Necessary conditions for deadlock: Mutual exclusion Hold and wait No preemption Circular wait Ways of handling deadlock Deadlock detection and recovery Deadlock prevention Deadlock
More informationVirtual 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 informationMemory management. Requirements. Relocation: program loading. Terms. Relocation. Protection. Sharing. Logical organization. Physical organization
Requirements Relocation Memory management ability to change process image position Protection ability to avoid unwanted memory accesses Sharing ability to share memory portions among processes Logical
More informationUnit 2 : Computer and Operating System Structure
Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring
More informationOperating Systems Design Exam 2 Review: Spring 2011
Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes
More informationChapter 9. Software Testing
Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of
More informationQuestion 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures
Comp 104: Operating Systems Concepts Revision Lectures Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects you want to know about??? 1
More informationParallel quicksort algorithms with isoefficiency analysis. Parallel quicksort algorithmswith isoefficiency analysis p. 1
Parallel quicksort algorithms with isoefficiency analysis Parallel quicksort algorithmswith isoefficiency analysis p. 1 Overview Sequential quicksort algorithm Three parallel quicksort algorithms Isoefficiency
More informationMemory Management. Dr. Yingwu Zhu
Memory Management Dr. Yingwu Zhu Big picture Main memory is a resource A process/thread is being executing, the instructions & data must be in memory Assumption: Main memory is super big to hold a program
More informationCS 416: Opera-ng Systems Design March 23, 2012
Question 1 Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes
More informationReference Counting. Reference counting: a way to know whether a record has other users
Garbage Collection Today: various garbage collection strategies; basic ideas: Allocate until we run out of space; then try to free stuff Invariant: only the PL implementation (runtime system) knows about
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 L17 Main Memory Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Was Great Dijkstra a magician?
More informationChapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition
Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation
More informationChapter 8: Memory- Management Strategies
Chapter 8: Memory Management Strategies Chapter 8: Memory- Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and
More informationScan Primitives for GPU Computing
Scan Primitives for GPU Computing Shubho Sengupta, Mark Harris *, Yao Zhang, John Owens University of California Davis, *NVIDIA Corporation Motivation Raw compute power and bandwidth of GPUs increasing
More informationc. What are the machine cycle times (in nanoseconds) of the non-pipelined and the pipelined implementations?
Brown University School of Engineering ENGN 164 Design of Computing Systems Professor Sherief Reda Homework 07. 140 points. Due Date: Monday May 12th in B&H 349 1. [30 points] Consider the non-pipelined
More informationPart Three - Memory Management. Chapter 8: Memory-Management Strategies
Part Three - Memory Management Chapter 8: Memory-Management Strategies Chapter 8: Memory-Management Strategies 8.1 Background 8.2 Swapping 8.3 Contiguous Memory Allocation 8.4 Segmentation 8.5 Paging 8.6
More informationFile system internals Tanenbaum, Chapter 4. COMP3231 Operating Systems
File system internals Tanenbaum, Chapter 4 COMP3231 Operating Systems Architecture of the OS storage stack Application File system: Hides physical location of data on the disk Exposes: directory hierarchy,
More informationRAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE
RAID SEMINAR REPORT 2004 Submitted on: Submitted by: 24/09/2004 Asha.P.M NO: 612 S7 ECE CONTENTS 1. Introduction 1 2. The array and RAID controller concept 2 2.1. Mirroring 3 2.2. Parity 5 2.3. Error correcting
More informationOperating Systems and Computer Networks. Memory Management. Dr.-Ing. Pascal A. Klein
Operating Systems and Computer Networks Memory Management pascal.klein@uni-due.de Alexander Maxeiner, M.Sc. Faculty of Engineering Agenda 1 Swapping 2 Segmentation Algorithms 3 Memory Allocation 4 Virtual
More informationComputer Organization & Assembly Language Programming
Computer Organization & Assembly Language Programming CSE 2312-002 (Fall 2011) Lecture 5 Memory Junzhou Huang, Ph.D. Department of Computer Science and Engineering Fall 2011 CSE 2312 Computer Organization
More information(Refer Slide Time: 00:02:00)
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts
More informationCHAPTER 6 Memory. CMPS375 Class Notes Page 1/ 16 by Kuo-pao Yang
CHAPTER 6 Memory 6.1 Memory 233 6.2 Types of Memory 233 6.3 The Memory Hierarchy 235 6.3.1 Locality of Reference 237 6.4 Cache Memory 237 6.4.1 Cache Mapping Schemes 239 6.4.2 Replacement Policies 247
More informationObject Oriented Programming 2015/16. Final Exam June 28, 2016
Object Oriented Programming 2015/16 Final Exam June 28, 2016 Directions (read carefully): CLEARLY print your name and ID on every page. The exam contains 8 pages divided into 4 parts. Make sure you have
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationNotes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)
Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects
More informationQuestion Bank Subject: Advanced Data Structures Class: SE Computer
Question Bank Subject: Advanced Data Structures Class: SE Computer Question1: Write a non recursive pseudo code for post order traversal of binary tree Answer: Pseudo Code: 1. Push root into Stack_One.
More informationAlgorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I
Memory Performance of Algorithms CSE 32 Data Structures Lecture Algorithm Performance Factors Algorithm choices (asymptotic running time) O(n 2 ) or O(n log n) Data structure choices List or Arrays Language
More informationHeckaton. SQL Server's Memory Optimized OLTP Engine
Heckaton SQL Server's Memory Optimized OLTP Engine Agenda Introduction to Hekaton Design Consideration High Level Architecture Storage and Indexing Query Processing Transaction Management Transaction Durability
More informationMemory Management. Memory Management. G53OPS: Operating Systems. Memory Management Monoprogramming 11/27/2008. Graham Kendall.
Memory Management Memory Management Introduction Graham Kendall Memory Management consists of many tasks, including Being aware of what parts of the memory are in use and which parts are not Allocating
More informationInput/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security
Input/Output Today Principles of I/O hardware & software I/O software layers Disks Next Protection & Security Operating Systems and I/O Two key operating system goals Control I/O devices Provide a simple,
More informationImplementing Coroutines with call/cc. Producer/Consumer using Coroutines
Implementing Coroutines with call/cc Producer/Consumer using Coroutines Coroutines are a very handy generalization of subroutines. A coroutine may suspend its execution and later resume from the point
More informationHoard: A Fast, Scalable, and Memory-Efficient Allocator for Shared-Memory Multiprocessors
Hoard: A Fast, Scalable, and Memory-Efficient Allocator for Shared-Memory Multiprocessors Emery D. Berger Robert D. Blumofe femery,rdbg@cs.utexas.edu Department of Computer Sciences The University of Texas
More informationEffect of memory latency
CACHE AWARENESS Effect of memory latency Consider a processor operating at 1 GHz (1 ns clock) connected to a DRAM with a latency of 100 ns. Assume that the processor has two ALU units and it is capable
More informationCS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College November 15, 2018
CS 31: Intro to Systems Virtual Memory Kevin Webb Swarthmore College November 15, 2018 Reading Quiz Memory Abstraction goal: make every process think it has the same memory layout. MUCH simpler for compiler
More information