Variable-Prefix Identifiers (Adjustable Oid s)

Size: px
Start display at page:

Download "Variable-Prefix Identifiers (Adjustable Oid s)"

Transcription

1 Variable-Prefix Identifiers (Adjustable Oid s) William Kent Database Technology Department Hewlett-Packard Laboratories Palo Alto, California 1 Introduction Object identifiers come from various sources, and often conflict in content and form. Identifiers generated in different databases, or at different network nodes, may accidentally be the same. User-specified identifiers have the same problem: an employee number might accidentally match a part number. Literals are susceptible as well: the representations of some numbers and character strings are the same. The natural solution for conflicting contents is to attach some sort of qualifier (prefix) to differentiate one set of identifiers from another. Sometimes this leads to identifiers whose overall length is variable, as in hierarchical name spaces. While this may be appropriate in many cases, nonuniform identifier lengths impose a heavy penalty on system design and performance. We limit our attention to designs in which identifiers have some fixed length n (64 bits in most of our examples). The usual approach to prefixes is to fix the identifier format, dividing all identifiers into a prefix of length p and a suffix of length s. The length p is rigidly fixed, requiring a difficult and irrevocable design decision. The maximum number of regions into which identifiers may be partitioned is fixed in advance, being limited to 2 p. Similarly, the length s of the suffix must be decided and fixed in advance, in the hopes that no region will contain more than 2 s identifiers. Once fixed, this same capacity is reserved for all regions, which wastes identifier capacity in padding bits for all but the largest region. Identifiers will go unused in databases whose capacity is less than 2 s objects, and also in user-specified identifiers (employee numbers, part numbers) less than s bits in length. A naive approach to variable-length prefixes would embed a length field in the identifier. This is exorbitantly wasteful of identifier capacity, and still puts a difficult restriction on the maximum number of regions. For example, to allow a prefix length of up to 16 bits requires a four-bit length field, reducing the number of identifiable objects by a factor of 16. We could also consider reserving a bit pattern to serve as a delimiter at the end of the prefix, but this also restricts the usable bit patterns and hence the total identifier capacity. Two innovations alleviate these difficulties: a global table of valid prefix values, and an expansion zone of zeros designed into the middle of the identifier format, allowing various sorts of adaptation and extension. The cost of maintaining the prefix table needs to be weighed against the benefits of this approach. The technique also supports a hierarchical nesting of subregions. 1.1 The Prefix Table With variable-length prefixes and no embedded length field or delimiter, the only way to recognize the prefix is to maintain a table of valid prefixes. A simple rule makes prefixes uniquely distinguishable: no prefix value may match the initial portion of any other prefix value. Thus 0, 10, and 11 constitute a valid set of prefixes, and 01 could not be added as a valid prefix. Internal Accession Date Only 1

2 The rule can be refined to support subregions. If the prefix of a region r 1 matches the initial portion of the prefix of region r 2, then r 2 is a subregion of r 1. Any identifier belonging to r 2 also belongs to r 1. For example, regions with prefixes 01 and 0110 are nested subregions of a region with prefix 0. Such regions and prefixes exist only if recorded in the prefix table. For each region, the table contains: The prefix length p. The prefix code (bit pattern) c. Optionally, other information about the region, such as a name or description, or a network node address, or other control information as needed. For convenience, it might include a flag indicating whether a region has subregions, though this can be determined algorithmically. This technique can be used to hierarchically partition oid s for any reason, not just for location purposes. Regions could be used to encode different identifier types and formats, e.g., literals and non-literals. Other object types could also be encoded in the prefix, so long as they are invariant over the object s lifetime. Figure 1 shows a plausible set of prefixes, which can be adapted to changing needs. For user-specified identifiers, the suffix length could be fixed at the actual length of the value (part number, employee number). region prefix length value c Literal 1 0 AtomicLiteral 2 00 Char CityName MonthName Number Integer Aggregate 2 01 Set List NonLiteral 1 1 SystemTypeObject 2 10 Type Function UserObject 2 11 SystemOid Iris_Oid IrisDB00_Oid IrisDB01_Oid UserOid HP_EmpNum HP_PartNum HP_DocNum Figure 1. An example set of prefixes. Identifying the region to which an identifier belongs is a little more complicated than with fixed-length or lengthencoded prefixes. It is necessary to compare different initial segments of an identifier with various table entries until a matching prefix is found. If subgroups are present, determining the most restrictive subregion should begin by comparing with the longer prefixes in the table, then progressing to the shorter ones. In the absence of subregions, it s hard 2

3 to know whether it s more efficient to start with the long ones or the short ones. Also, it may be possible to apply or adapt other search techniques such as indexes or hashing. This bears further investigation. Testing for a specific region is still relatively simple, since its prefix value can be compared with the initial portion of the identifier. However, under certain conditions, the prefix for a given region might change (Section 3.2 ), and tests for that region need to accommodate such changes. 2 Customized Capacities In identifiers of length n, if the length of a region s prefix is p, then individuals in that region are identified by a suffix of length s=n-p, and the region has a capacity for identifying 2 s objects. For example, if 64-bit identifiers are being used globally, and a particular database generates 32-bit oid s, then its oid s can be qualified with a 32-bit prefix. If employee numbers are 24 bits long, then the Employee Number region can be identified with a 40-bit prefix. If part numbers are 48 bits in length, then the Part Number region is identified with a 16-bit prefix. Of course, this scheme can only accommodate regions for which s<n. To accommodate four databases independently generating 64-bit oid s, the global identifier length n must be at least 66 bits. 80-bit product numbers cannot be used as user-specified identifiers unless n>80. 3 Expansion Zones The expansion zone for a given region is a string of z bits between the prefix and the suffix, reserved to be zero in all identifiers belonging to that region. The expansion zone allows for several kinds of extensibility. The format of any n- bit identifier in a given region is: prefix code zeros individual identifier p bits z bits s bits The prefix table is now extended to explicitly specify the suffix length s or the expansion zone length z=n-(p+s), or both for convenience. The current capacity of a region is 2 s, while its ultimate capacity is 2 (n-p). Maintaining all zeros in the expansion zone is crucial to extensibility. By making appropriate adjustments to the table, these bits can be used to: Increase the capacity of a region. Introduce new independent (disjoint) regions. Introduce subregions of an existing region. 3.1 Increasing Region Capacity Each region can be managed by an independent manager which issues s-bit individual identifiers, with zeros in the expansion zone, without having to refer to the table. If this capacity is exhausted, the suffix length s in the table can be increased, up to n-p if necessary, to increase the current capacity of the region. If a region has subregions (Section 3.3 ), then the subregions should be expanded rather than the parent region itself. The current capacity of a region can be multiplied by 2 k by shifting k bits from the expansion zone to the suffix. The prefix identifying the region is unchanged, and identifiers previously belonging to the region still belong to it. The only difference is that previously reserved bits in the expansion zone have been released for use in new identifiers in that region. 3

4 For example, the current capacity of a region with a suffix length of 50 bits and an expansion zone of 8 bits can be quadrupled by stretching its suffix to 52 bits and shrinking its expansion zone to 6 bits (Figure 2). This might be required, for example, because the estimated number of objects in a region has been revised upwards, or because the company has expanded the length of its employee numbers, etc. Under certain conditions, the current capacity of a region can also be reduced, if needed for load balancing. If it is known that no identifiers have been issued in a given region with high order 1-bits in the suffix, then those high-order bits can be returned to the expansion zone, and the suffix length correspondingly reduced. before after region prefix exp zone suffix region prefix exp zone z s z lnth p value c lnth p value c suffix s r r before: the last oid that filled region r p z s after: the next oid after expansion p z s Figure 2. Expanding the current capacity of a region. 3.2 Adding Independent Regions To introduce a new independent region, one first seeks a new prefix which does not conflict with any existing prefixes. An acceptable new prefix would not coincide with the initial portion of any existing prefix, nor would any existing prefix match the initial portion of the new prefix. For example, if the existing prefixes are 1 and 01, then 00 would be a legal new prefix. This is not always possible. When the existing prefixes are 1, 01, and 00, no other independent prefix can be added. These existing prefixes would match the initial portion of any new prefix that might be added. At this point we take clever advantage of the expansion zones to split an existing region in order to accommodate a new region. In effect, the prefix of an existing region is extended with zeros taken from the expansion zone. Since all identifiers previously issued in this region necessarily had zeros in these bits, they are still recognized as belonging to this region. The expansion zone is made smaller, with a corresponding reduction in the ultimate capacity of the region. Suppose (Figure 3) region r 1 with prefix code has a suffix length s=50, i.e., a current capacity of 2 50 objects. It has an expansion zone of z=8 bits, so that all identifiers in that region begin with a code of followed by in the expansion zone. This region r 1 can be split by extending its prefix with up to eight zeros. If we extend its prefix with two zeros to be , its prefix length becomes p=8, and its expansion zone is reduced to z=6. Note again that all identifiers in region r 1 did already begin with , due to the expansion zone, so they still belong to region r 1. It is now possible to introduce , , and as new independent prefixes, each with an arbitrary suffix length s 56, i.e., a capacity of up to 2 56 objects. In general, taking k bits from the expansion zone of r 1 4

5 allows the introduction of up to 2 k -1 new independent regions. We don t have to introduce all of them if we don t need them. If we only wanted to introduce one new region, we could have extended the prefix of r 1 with just one 0. The region r 1 chosen to be so subdivided must have z>0 at the outset, and should have no subregions. It should be able to tolerate the reduction in its ultimate capacity, and it should be able to give up enough ultimate capacity to meet the requirements of the new region(s). Since the prefix identifying region r 1 has changed, any routine testing whether an oid belongs to this region would now have to use the new prefix. This could be a problem in some cases. before after region prefix exp zone suffix region prefix exp zone z s z lnth p value c lnth p value c suffix s r r r r r p z s...before a typical oid in region r p z s...after a typical oid in region r p z s Figure 3. Adding new independent regions. 3.3 Adding Subregions Adding subregions is somewhat similar to the previous case of adding independent regions, the main difference being that the parent region retains its original prefix, with the new subregions being assigned extensions of this prefix. A region can only be extended with immediate subregions once, but the subregions themselves can acquire further subregions. Though it can be determined algorithmically, it might be useful to put a flag in the table to indicate that a region has subregions. The maximum number of subregions which can be added to a region r is 2 z, where z is the length of the expansion zone of r. Figure 4 shows an example. Regions r 2, r 3, r 4, and r 5 are now subregions of r 1, since the prefix of r 1 matches the initial portion of the prefixes of these four new regions. 5

6 These four regions partition r 1, which can have no direct members of its own; all members of r 1 must be members of one of the subregions. We therefore show the suffix and expansion size of r 1 to be 0. Previous members of r 1 have become members of r 2. It is safest to define the subregions of a region before populating it. If we didn t add all four subregions, then should not be assigned as a prefix. Region r 1 would not be covered, and could still have direct members of its own. However, its ultimate capacity is constrained to be no larger than any of its subregions, in order to avoid oid conflicts. For example, region r 1 could not have any direct members with an oid beginning with In effect, region r 2 would not be added to the table, but it would serve as a virtual region containing members not covered by the other subregions. before after region prefix exp zone suffix region prefix exp zone z s z lnth p value c lnth p value c suffix s r r r r r r Figure 4. Adding subregions. Subregions need not be managed globally in the master prefix table. If a region is able to give up future growth by accepting a permanent suffix length, then it could treat that suffix as a fixed-length identifier and reapply the general algorithm to subregions of its own. The difference is in the scope over which the table has to be maintained. For example, within a 64-bit identifier system, a region could be described in the master table as having a prefix of 1001 and a suffix length of 60, i.e., no expansion zone and no room for growth. Another table could be maintained within this region for subregions within the region, managing prefixes, suffixes, and expansion zones within this 60- bit identifier. These subregions would not be recognized in the context of other regions, though the individual oid s would still be globally unique and recognized as belonging to the parent region. 4 Conclusions When fixed-length identifiers are grouped using fixed-length prefixes, the number of possible regions is fixed at the outset by the size of the prefix. The fixed-length suffix dictates that the same number of possible identifiers is reserved for each region. The suffix size is dictated by the needs of the potentially largest region, leading to a potential waste of unused identifiers in the other regions. Supporting variable-length prefixes by encoding the prefix length in the identifier wastes precious bits that could be used to identify individual objects. We have described a flexible system of variable-length prefixes employing a global prefix table and expansion zones in the identifiers. The disadvantages: 6

7 The need to maintain the global prefix table. More instructions executed to determine an identifier s region. Testing for a given region becomes sensitive to changes in prefix length. The overhead for maintaining the prefix table may not be significant. The table is not likely to be altered very often; a similar table may be present in any case to support global addressing in a network. The benefits of the approach: Regions can have different capacities. The number of regions is dynamically variable. New regions can be added as needed. The capacities of regions can often be increased. Subregions can be defined, and added dynamically. No prefix-length field is required in identifiers. Overall, it would seem that this scheme should lead to more efficient use of identifier capacity, since fewer identifiers will be reserved for regions where they are not needed. It remains to be seen how these advantages and disadvantages balance out in various contexts. 7

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

Global Search And Replace User s Manual

Global Search And Replace User s Manual Global Search And Replace User s Manual Welcome... 2 Configuring the Add-in... 3 How to Use Global Search and Replace... 3 Look In Fields/Special Instructions... 4 Regular Expression Tutorial... 5 Troubleshooting...

More information

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing. Basic Concepts Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

Chapter 11: Indexing and Hashing

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Database System Concepts, 5th Ed. See www.db-book.com for conditions on re-use Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree

More information

SEMANTIC ANALYSIS TYPES AND DECLARATIONS

SEMANTIC ANALYSIS TYPES AND DECLARATIONS SEMANTIC ANALYSIS CS 403: Type Checking Stefan D. Bruda Winter 2015 Parsing only verifies that the program consists of tokens arranged in a syntactically valid combination now we move to check whether

More information

Implementing a Statically Adaptive Software RAID System

Implementing a Statically Adaptive Software RAID System Implementing a Statically Adaptive Software RAID System Matt McCormick mattmcc@cs.wisc.edu Master s Project Report Computer Sciences Department University of Wisconsin Madison Abstract Current RAID systems

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

UNIT-II. Part-2: CENTRAL PROCESSING UNIT

UNIT-II. Part-2: CENTRAL PROCESSING UNIT Page1 UNIT-II Part-2: CENTRAL PROCESSING UNIT Stack Organization Instruction Formats Addressing Modes Data Transfer And Manipulation Program Control Reduced Instruction Set Computer (RISC) Introduction:

More information

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2 Introduction :- Today single CPU based architecture is not capable enough for the modern database that are required to handle more demanding and complex requirements of the users, for example, high performance,

More information

CHAPTER TWO. Data Representation ( M.MORRIS MANO COMPUTER SYSTEM ARCHITECTURE THIRD EDITION ) IN THIS CHAPTER

CHAPTER TWO. Data Representation ( M.MORRIS MANO COMPUTER SYSTEM ARCHITECTURE THIRD EDITION ) IN THIS CHAPTER 1 CHAPTER TWO Data Representation ( M.MORRIS MANO COMPUTER SYSTEM ARCHITECTURE THIRD EDITION ) IN THIS CHAPTER 2-1 Data Types 2-2 Complements 2-3 Fixed-Point Representation 2-4 Floating-Point Representation

More information

CPS352 Lecture - Indexing

CPS352 Lecture - Indexing Objectives: CPS352 Lecture - Indexing Last revised 2/25/2019 1. To explain motivations and conflicting goals for indexing 2. To explain different types of indexes (ordered versus hashed; clustering versus

More information

Bits, Words, and Integers

Bits, Words, and Integers Computer Science 52 Bits, Words, and Integers Spring Semester, 2017 In this document, we look at how bits are organized into meaningful data. In particular, we will see the details of how integers are

More information

E-R Model. Hi! Here in this lecture we are going to discuss about the E-R Model.

E-R Model. Hi! Here in this lecture we are going to discuss about the E-R Model. E-R Model Hi! Here in this lecture we are going to discuss about the E-R Model. What is Entity-Relationship Model? The entity-relationship model is useful because, as we will soon see, it facilitates communication

More information

Optimizing Closures in O(0) time

Optimizing Closures in O(0) time Optimizing Closures in O(0 time Andrew W. Keep Cisco Systems, Inc. Indiana Univeristy akeep@cisco.com Alex Hearn Indiana University adhearn@cs.indiana.edu R. Kent Dybvig Cisco Systems, Inc. Indiana University

More information

P Is Not Equal to NP. ScholarlyCommons. University of Pennsylvania. Jon Freeman University of Pennsylvania. October 1989

P Is Not Equal to NP. ScholarlyCommons. University of Pennsylvania. Jon Freeman University of Pennsylvania. October 1989 University of Pennsylvania ScholarlyCommons Technical Reports (CIS) Department of Computer & Information Science October 1989 P Is Not Equal to NP Jon Freeman University of Pennsylvania Follow this and

More information

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions Data In single-program multiple-data (SPMD) parallel programs, global data is partitioned, with a portion of the data assigned to each processing node. Issues relevant to choosing a partitioning strategy

More information

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3 LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 10 Scope and visibility The rules defining the scope of declarations and the rules defining which identifiers are visible at various points in the

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

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

Item Number Change for Sage Accpac ERP

Item Number Change for Sage Accpac ERP SAGE ACCPAC Sage Accpac Options Item Number Change for Sage Accpac ERP User Guide 2008 Sage Software, Inc. All rights reserved. Sage Software, Sage Software logos, and all Sage Accpac product and service

More information

TotalCost = 3 (1, , 000) = 6, 000

TotalCost = 3 (1, , 000) = 6, 000 156 Chapter 12 HASH JOIN: Now both relations are the same size, so we can treat either one as the smaller relation. With 15 buffer pages the first scan of S splits it into 14 buckets, each containing about

More information

Lecture Notes on Priority Queues

Lecture Notes on Priority Queues Lecture Notes on Priority Queues 15-122: Principles of Imperative Computation Frank Pfenning Lecture 16 October 18, 2012 1 Introduction In this lecture we will look at priority queues as an abstract type

More information

Seminar on. A Coarse-Grain Parallel Formulation of Multilevel k-way Graph Partitioning Algorithm

Seminar on. A Coarse-Grain Parallel Formulation of Multilevel k-way Graph Partitioning Algorithm Seminar on A Coarse-Grain Parallel Formulation of Multilevel k-way Graph Partitioning Algorithm Mohammad Iftakher Uddin & Mohammad Mahfuzur Rahman Matrikel Nr: 9003357 Matrikel Nr : 9003358 Masters of

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

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup Yan Sun and Min Sik Kim School of Electrical Engineering and Computer Science Washington State University Pullman, Washington

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

Lecture Notes on Memory Layout

Lecture Notes on Memory Layout Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,

More information

Integrity and Security

Integrity and Security C H A P T E R 6 Integrity and Security This chapter presents several types of integrity constraints, including domain constraints, referential integrity constraints, assertions and triggers, as well as

More information

Representing Data Elements

Representing Data Elements Representing Data Elements Week 10 and 14, Spring 2005 Edited by M. Naci Akkøk, 5.3.2004, 3.3.2005 Contains slides from 18.3.2002 by Hector Garcia-Molina, Vera Goebel INF3100/INF4100 Database Systems Page

More information

Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret

Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret Greedy Algorithms (continued) The best known application where the greedy algorithm is optimal is surely

More information

Module 2: Classical Algorithm Design Techniques

Module 2: Classical Algorithm Design Techniques Module 2: Classical Algorithm Design Techniques Dr. Natarajan Meghanathan Associate Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Module

More information

File System Interface and Implementation

File System Interface and Implementation Unit 8 Structure 8.1 Introduction Objectives 8.2 Concept of a File Attributes of a File Operations on Files Types of Files Structure of File 8.3 File Access Methods Sequential Access Direct Access Indexed

More information

20-EECE-4029 Operating Systems Spring, 2013 John Franco

20-EECE-4029 Operating Systems Spring, 2013 John Franco 20-EECE-4029 Operating Systems Spring, 2013 John Franco Second Exam name: Question 1: Translation Look-aside Buffer (a) Describe the TLB. Include its location, why it is located there, its contents, and

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

Chapter 3. Planning and Scheduling. Chapter Objectives. Check off these skills when you feel that you have mastered them.

Chapter 3. Planning and Scheduling. Chapter Objectives. Check off these skills when you feel that you have mastered them. Chapter Objectives Check off these skills when you feel that you have mastered them. State the assumptions for the scheduling model. Compute the lower bound on the completion time for a list of independent

More information

Example Lecture 12: The Stiffness Method Prismatic Beams. Consider again the two span beam previously discussed and determine

Example Lecture 12: The Stiffness Method Prismatic Beams. Consider again the two span beam previously discussed and determine Example 1.1 Consider again the two span beam previously discussed and determine The shearing force M1 at end B of member B. The bending moment M at end B of member B. The shearing force M3 at end B of

More information

Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION

Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION DESIGN AND ANALYSIS OF ALGORITHMS Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION http://milanvachhani.blogspot.in EXAMPLES FROM THE SORTING WORLD Sorting provides a good set of examples for analyzing

More information

Managing Scopes, Prefixes, and Link Templates

Managing Scopes, Prefixes, and Link Templates This chapter describes how to set up templates for scopes, prefixes, and links. Creating and Applying Scope Templates, on page 1 Creating and Editing Prefix Templates, on page 3 Creating and Editing Link

More information

192 Chapter 14. TotalCost=3 (1, , 000) = 6, 000

192 Chapter 14. TotalCost=3 (1, , 000) = 6, 000 192 Chapter 14 5. SORT-MERGE: With 52 buffer pages we have B> M so we can use the mergeon-the-fly refinement which costs 3 (M + N). TotalCost=3 (1, 000 + 1, 000) = 6, 000 HASH JOIN: Now both relations

More information

Chapter 8: Subnetting IP Networks

Chapter 8: Subnetting IP Networks Chapter 8: Subnetting IP Networks Designing, implementing and managing an effective IP addressing plan ensures that networks can operate effectively and efficiently. This is especially true as the number

More information

CSC 553 Operating Systems

CSC 553 Operating Systems CSC 553 Operating Systems Lecture 12 - File Management Files Data collections created by users The File System is one of the most important parts of the OS to a user Desirable properties of files: Long-term

More information

FROM A RELATIONAL TO A MULTI-DIMENSIONAL DATA BASE

FROM A RELATIONAL TO A MULTI-DIMENSIONAL DATA BASE FROM A RELATIONAL TO A MULTI-DIMENSIONAL DATA BASE David C. Hay Essential Strategies, Inc In the buzzword sweepstakes of 1997, the clear winner has to be Data Warehouse. A host of technologies and techniques

More information

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a

More information

Range Queries. Kuba Karpierz, Bruno Vacherot. March 4, 2016

Range Queries. Kuba Karpierz, Bruno Vacherot. March 4, 2016 Range Queries Kuba Karpierz, Bruno Vacherot March 4, 2016 Range query problems are of the following form: Given an array of length n, I will ask q queries. Queries may ask some form of question about a

More information

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

Dictionaries and Hash Tables

Dictionaries and Hash Tables Dictionaries and Hash Tables Nicholas Mainardi Dipartimento di Elettronica e Informazione Politecnico di Milano nicholas.mainardi@polimi.it 14th June 2017 Dictionaries What is a dictionary? A dictionary

More information

(Refer Slide Time 6:48)

(Refer Slide Time 6:48) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about

More information

ECE 122 Engineering Problem Solving with Java

ECE 122 Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 3 Expression Evaluation and Program Interaction Outline Problem: How do I input data and use it in complicated expressions Creating complicated expressions

More information

Chapter 12. File Management

Chapter 12. File Management Operating System Chapter 12. File Management Lynn Choi School of Electrical Engineering Files In most applications, files are key elements For most systems except some real-time systems, files are used

More information

Qualifying Exam in Programming Languages and Compilers

Qualifying Exam in Programming Languages and Compilers Qualifying Exam in Programming Languages and Compilers University of Wisconsin Fall 1991 Instructions This exam contains nine questions, divided into two parts. All students taking the exam should answer

More information

Requirements, Partitioning, paging, and segmentation

Requirements, Partitioning, paging, and segmentation Requirements, Partitioning, paging, and segmentation Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as many processes into memory

More information

CMSC424: Database Design. Instructor: Amol Deshpande

CMSC424: Database Design. Instructor: Amol Deshpande CMSC424: Database Design Instructor: Amol Deshpande amol@cs.umd.edu Databases Data Models Conceptual representa1on of the data Data Retrieval How to ask ques1ons of the database How to answer those ques1ons

More information

2.3 Algorithms Using Map-Reduce

2.3 Algorithms Using Map-Reduce 28 CHAPTER 2. MAP-REDUCE AND THE NEW SOFTWARE STACK one becomes available. The Master must also inform each Reduce task that the location of its input from that Map task has changed. Dealing with a failure

More information

Chapter 11: Indexing and Hashing

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree

More information

Top-Level View of Computer Organization

Top-Level View of Computer Organization Top-Level View of Computer Organization Bởi: Hoang Lan Nguyen Computer Component Contemporary computer designs are based on concepts developed by John von Neumann at the Institute for Advanced Studies

More information

Chapter 11: Indexing and Hashing

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree

More information

RAQUEL s Relational Operators

RAQUEL s Relational Operators Contents RAQUEL s Relational Operators Introduction 2 General Principles 2 Operator Parameters 3 Ordinary & High-Level Operators 3 Operator Valency 4 Default Tuples 5 The Relational Algebra Operators in

More information

Class modelling (part 2)

Class modelling (part 2) Class modelling (part 2) Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Qualified Associations What is the meaning

More information

Modules:Context-Sensitive Keyword

Modules:Context-Sensitive Keyword Document Number: P0924r1 Date: 2018-11-21 To: SC22/WG21 EWG Reply to: Nathan Sidwell nathan@acm.org / nathans@fb.com Re: Merging Modules, p1103r2 Modules:Context-Sensitive Keyword Nathan Sidwell The new

More information

Intermediate Representations & Symbol Tables

Intermediate Representations & Symbol Tables Intermediate Representations & Symbol Tables Copyright 2014, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California have explicit permission

More information

1 Motivation for Improving Matrix Multiplication

1 Motivation for Improving Matrix Multiplication CS170 Spring 2007 Lecture 7 Feb 6 1 Motivation for Improving Matrix Multiplication Now we will just consider the best way to implement the usual algorithm for matrix multiplication, the one that take 2n

More information

Eli System Administration Guide

Eli System Administration Guide Eli System Administration Guide Compiler Tools Group Department of Electrical and Computer Engineering University of Colorado Boulder, CO, USA 80309-0425 Copyright c 2002, 2009 The Regents of the University

More information

Run-time Environments

Run-time Environments Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction

More information

Run-time Environments

Run-time Environments Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction

More information

File Structures and Indexing

File Structures and Indexing File Structures and Indexing CPS352: Database Systems Simon Miner Gordon College Last Revised: 10/11/12 Agenda Check-in Database File Structures Indexing Database Design Tips Check-in Database File Structures

More information

Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See  for conditions on re-use Chapter 11: Indexing and Hashing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files Static

More information

Lecture 5. Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs

Lecture 5. Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs Lecture 5 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs Reading: Randomized Search Trees by Aragon & Seidel, Algorithmica 1996, http://sims.berkeley.edu/~aragon/pubs/rst96.pdf;

More information

REGION BASED SEGEMENTATION

REGION BASED SEGEMENTATION REGION BASED SEGEMENTATION The objective of Segmentation is to partition an image into regions. The region-based segmentation techniques find the regions directly. Extract those regions in the image whose

More information

Redes de Computadores (RCOMP) 2017/2018 Laboratory Class Script - PL09

Redes de Computadores (RCOMP) 2017/2018 Laboratory Class Script - PL09 Redes de Computadores (RCOMP) 2017/2018 Laboratory Class Script - PL09 Simplifying IPv4 routeing tables. Practical exercises (IPv4 networks dimensioning and static routeing) Project 1 dimensioning and

More information

12 Advanced IP Addressing

12 Advanced IP Addressing 12 Advanced IP Addressing CERTIFICATION OBJECTIVES 12.01 Variable-Length Subnet Masking 12.02 Route Summarization Q&A Two-Minute Drill Self Test 2 Chapter 12: Advanced IP Addressing In Chapter 11, you

More information

The Grid File: An Adaptable, Symmetric Multikey File Structure

The Grid File: An Adaptable, Symmetric Multikey File Structure The Grid File: An Adaptable, Symmetric Multikey File Structure Presentation: Saskia Nieckau Moderation: Hedi Buchner The Grid File: An Adaptable, Symmetric Multikey File Structure 1. Multikey Structures

More information

Internet Engineering Task Force (IETF) Request for Comments: 8156 Category: Standards Track ISSN: June 2017

Internet Engineering Task Force (IETF) Request for Comments: 8156 Category: Standards Track ISSN: June 2017 Internet Engineering Task Force (IETF) Request for Comments: 8156 Category: Standards Track ISSN: 2070-1721 T. Mrugalski ISC K. Kinnear Cisco June 2017 DHCPv6 Failover Protocol Abstract DHCPv6 as defined

More information

Type Bindings. Static Type Binding

Type Bindings. Static Type Binding Type Bindings Two key issues in binding (or associating) a type to an identifier: How is type binding specified? When does the type binding take place? N. Meng, S. Arthur 1 Static Type Binding An explicit

More information

DP2 Report: A collaborative text editor

DP2 Report: A collaborative text editor DP2 Report: A collaborative text editor Eleftherios Ioannidis, elefthei@mit.edu Tal Tchwella, tchwella@mit.edu Larry Rudolph, R01 May 25, 2012 1 Introduction This paper describes the architecture of a

More information

Chapter 14 Global Search Algorithms

Chapter 14 Global Search Algorithms Chapter 14 Global Search Algorithms An Introduction to Optimization Spring, 2015 Wei-Ta Chu 1 Introduction We discuss various search methods that attempts to search throughout the entire feasible set.

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

File Systems. OS Overview I/O. Swap. Management. Operations CPU. Hard Drive. Management. Memory. Hard Drive. CSI3131 Topics. Structure.

File Systems. OS Overview I/O. Swap. Management. Operations CPU. Hard Drive. Management. Memory. Hard Drive. CSI3131 Topics. Structure. File Systems I/O Management Hard Drive Management Virtual Memory Swap Memory Management Storage and I/O Introduction CSI3131 Topics Process Management Computing Systems Memory CPU Peripherals Processes

More information

An Improved Algebraic Attack on Hamsi-256

An Improved Algebraic Attack on Hamsi-256 An Improved Algebraic Attack on Hamsi-256 Itai Dinur and Adi Shamir Computer Science department The Weizmann Institute Rehovot 76100, Israel Abstract. Hamsi is one of the 14 second-stage candidates in

More information

CREATE INDEX. Syntax CREATE INDEX

CREATE INDEX. Syntax CREATE INDEX CREATE INDEX Use the CREATE INDEX statement to create a new index for one or more columns in a table, a functional value on one or more columns, and, optionally, to cluster the physical table in the order

More information

Lecture 6: External Interval Tree (Part II) 3 Making the external interval tree dynamic. 3.1 Dynamizing an underflow structure

Lecture 6: External Interval Tree (Part II) 3 Making the external interval tree dynamic. 3.1 Dynamizing an underflow structure Lecture 6: External Interval Tree (Part II) Yufei Tao Division of Web Science and Technology Korea Advanced Institute of Science and Technology taoyf@cse.cuhk.edu.hk 3 Making the external interval tree

More information

Oracle NoSQL Database. Creating Index Views. 12c Release 1

Oracle NoSQL Database. Creating Index Views. 12c Release 1 Oracle NoSQL Database Creating Index Views 12c Release 1 (Library Version 12.1.2.1) Legal Notice Copyright 2011, 2012, 2013, 2014, Oracle and/or its affiliates. All rights reserved. This software and related

More information

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 10: IP Routing and Addressing Extensions

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 10: IP Routing and Addressing Extensions CS 5520/ECE 5590NA: Network Architecture I Spring 2009 Lecture 10: IP Routing and Addressing Extensions This lecture provides discussion of the mechanisms used to route IP datagrams (Chapter 7). It also

More information

Chapter 2. Data Representation in Computer Systems

Chapter 2. Data Representation in Computer Systems Chapter 2 Data Representation in Computer Systems Chapter 2 Objectives Understand the fundamentals of numerical data representation and manipulation in digital computers. Master the skill of converting

More information

Teradata. This was compiled in order to describe Teradata and provide a brief overview of common capabilities and queries.

Teradata. This was compiled in order to describe Teradata and provide a brief overview of common capabilities and queries. Teradata This was compiled in order to describe Teradata and provide a brief overview of common capabilities and queries. What is it? Teradata is a powerful Big Data tool that can be used in order to quickly

More information

Chapter 12. Selected Pentium Instructions

Chapter 12. Selected Pentium Instructions Chapter 12 Selected Pentium Instructions 1 2 Chapter 12 12 1 Carry flag indicates out-of-range error for unsigned operations. Chapter 12 3 12 2 Overflow flag indicates out-of-range error for signed operations.

More information

Fast Bit Sort. A New In Place Sorting Technique. Nando Favaro February 2009

Fast Bit Sort. A New In Place Sorting Technique. Nando Favaro February 2009 Fast Bit Sort A New In Place Sorting Technique Nando Favaro February 2009 1. INTRODUCTION 1.1. A New Sorting Algorithm In Computer Science, the role of sorting data into an order list is a fundamental

More information

Short Notes of CS201

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

General Objective:To understand the basic memory management of operating system. Specific Objectives: At the end of the unit you should be able to:

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

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2014/15

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2014/15 Systems Infrastructure for Data Science Web Science Group Uni Freiburg WS 2014/15 Lecture II: Indexing Part I of this course Indexing 3 Database File Organization and Indexing Remember: Database tables

More information

Table of Contents 1 AAA Overview AAA Configuration 2-1

Table of Contents 1 AAA Overview AAA Configuration 2-1 Table of Contents 1 AAA Overview 1-1 Introduction to AAA 1-1 Authentication 1-1 Authorization 1-1 Accounting 1-2 Introduction to ISP Domain 1-2 Introduction to AAA Services 1-2 Introduction to RADIUS 1-2

More information

Chapter 1. Introduction. 1.1 More about SQL More about This Book 5

Chapter 1. Introduction. 1.1 More about SQL More about This Book 5 Chapter 1 Introduction 1.1 More about SQL 2 1.2 More about This Book 5 SAS defines Structured Query Language (SQL) as a standardized, widely used language that retrieves data from and updates data in tables

More information

Sorting. Order in the court! sorting 1

Sorting. Order in the court! sorting 1 Sorting Order in the court! sorting 1 Importance of sorting Sorting a list of values is a fundamental task of computers - this task is one of the primary reasons why people use computers in the first place

More information

Excerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997

Excerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997 Excerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997 APPENDIX A.1 Number systems and codes Since ten-fingered humans are addicted to the decimal system, and since computers

More information

File Management. Ezio Bartocci.

File Management. Ezio Bartocci. File Management Ezio Bartocci ezio.bartocci@tuwien.ac.at Cyber-Physical Systems Group Institute for Computer Engineering Faculty of Informatics, TU Wien Motivation A process can only contain a limited

More information

CSE100. Advanced Data Structures. Lecture 8. (Based on Paul Kube course materials)

CSE100. Advanced Data Structures. Lecture 8. (Based on Paul Kube course materials) CSE100 Advanced Data Structures Lecture 8 (Based on Paul Kube course materials) CSE 100 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs

More information

Concurrency Control Service 7

Concurrency Control Service 7 Concurrency Control Service 7 7.1 Service Description The purpose of the Concurrency Control Service is to mediate concurrent access to an object such that the consistency of the object is not compromised

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information