1 1 Any modern computer system will incorporate (at least) two levels of storage: primary storage: typical capacity cost per MB $3. typical access time burst transfer rate?? secondary storage: typical capacity cost per MB typical access time burst transfer rate?? random access memory (RAM) 32MB to 1GB 5ns to 6ns magnetic disk/optical devices/tape systems GB to 1GB for fixed media; for removable $.1 for fixed media, more for removable 8ms to 12ms for fixed media, larger for removable Note: all statistics here are guaranteed invalid by July 1, 2.
2 Units of Measurement 2 Spatial units: byte kilobyte (KB) megabyte (MB) gigabyte (GB) Time units: nanosecond (ns) microsecond (µs) millisecond (ms) 8 bits 12 or 2 1 bytes 12 kilobytes or 2 2 bytes* 12 megabytes or 2 3 bytes one-billionth (1-9 ) of a second one-millionth (1-6 ) of a second one-thousandth (1-3 ) of a second * Most, if not all, secondary storage vendors lie about this and call 1,, bytes a megabyte and 1,,, bytes a gigabyte. We will ignore the issue.
3 Primary versus 3 While the particular values given earlier are volatile, the relative performances suggested are actually quite stable: Primary storage: costs several hundred times as much per unit as secondary storage. has access times that are 25, to 1,, times faster than secondary storage has transfer rates that are?? times faster than secondary storage Why do WE care (in a data structures class)? Often data must be first read from disk into memory for processing, and then results must be written back to disk after processing. In many cases, data sets are too large to store in memory at once.
4 File Storage In many file systems, space is allocated in fixed-size chunks called clusters. Typical cluster sizes range from 1KB up to 32KB, usually equaling a power of 2. When a file is stored on disk, an integer number of clusters are allocated for the file; since files sizes are typically not a multiple of the cluster size, this means that a certain amount of space is wasted to internal fragmentation. On average, ½ of a cluster is wasted per file stored. Obviously that adds up but that s not really our concern in this course. The clusters are also not usually stored contiguously on the disk. This external fragmentation can cause a serious degradation of performance when a file is being read from or written to disk. cluster
5 Hard Disk Performance Factors 5 To illustrate the issues, we will consider the physical organization and behavior of a typical hard disk design. Note that the presentation here is an over-simplification and that contemporary hard drive designs incorporate control sophistication not discussed here. Despite advances, the basic performance issues remain the same. We will consider three primary factors that affect the time required to read requested data from the disk into memory: seek time latency transfer time time for the appropriate I/O head to reach the desired track time for the appropriate sector to rotate to the I/O head time for the data to be read to move past the I/O head First we must have a clear picture of the hardware
6 Disk Controllers 6 All disk systems incorporate an on-board controller which acts as an interface between the CPU and the disk hardware. The controller masks the internal physical organization of the disk (covered in the next few slides) from the CPU and user processes. The controller has an internal cache (typically 256KB up to several MB) that it uses to buffer data for read/write requests. Disk Controller Physical Disk Controller Cache Slots
7 Platters and I/O Heads 7 A typical hard drive contains a number of circular platters, attached to a rotating spindle. Each platter holds data on one or both of its surfaces. The data is read and written by I/O heads, typically one per data surface. These I/O heads are mounted in a rack and all move in and out in unison. Typically, only one I/O head can be active (reading or writing data) at any given time. rack platter spindle head
8 Tracks and Sectors 8 Each data surface is organized into concentric rings of data, called tracks. Each track is divided into a number of segments, called sectors. We will assume that each sector contains the same amount of data, regardless of which track it belongs to. (That is actually true for some older disks.) track sector The basic unit of disk I/O is the sector. We will see shortly that reading an entire sector from disk takes only slightly longer than reading a single byte. inter-sector gap
9 Reading a Sector 9 When a disk read is requested the following actions must be carried out: 1. Determine what sector(s) must be read the disk controller is responsible for this. 3. Wait for the beginning of the first sector to rotate to the head. 2. Move the read head to the track containing the targeted sector(s).. Read the data as it rotates beneath the head.
10 Seek Time seek time the time required to move the head to the appropriate track 1 The seek time depends only on the speed with which the head rack moves, and the number of tracks that the head must move across to reach its target. Given the following (which are constant for a particular disk): H s H T = the time for the I/O head to start moving = the time for the I/O head to move from one track to the next then the time for the head to move n tracks is: Seek( n ) = H s + H T n QTP: On average, the head will move 1/3 of the way across the platter. Why?
11 Rotational Latency Time 11 latency the time required for the appropriate sector to rotate to the position of the I/O head The rotational latency time depends only on the speed at which the spindle rotates, and the angle through which the track must rotate to reach the I/O head. Given the following: R θ = the rotational speed of the spindle (in rotations per second) = the number of radians through which the track must rotate then the rotational latency is: Latency ( θ) = θ 2π 1 R On average, the latency time will be the time required for the platter to complete 1/2 of a full rotation.
12 Data Transfer Time 12 transfer time the time required for the appropriate sector(s) to rotate under the I/O head (for contiguous sectors on the same track) The transfer time depends only on the speed at which the spindle rotates, and the number of sectors that must be read. Given: S T = the total number of sectors per track the transfer time for n contiguous sectors on the same track is: Transfer ( n) = n S T 1 R For sectors on different tracks, each track must be analyzed separately, allowing for seek and latency.
13 Total Read/Write Time The total time to read/write data is from/to disk is then the sum of the seek time, the rotational latency time, and the transfer time. This ignores the time for controller logic, delays due to multitasking queues, etc.; that is fair because those times are normally orders of magnitude less that the times considered. One note: we have assumed in the analysis of the data transfer time that the I/O heads are capable of reading/writing data as fast as the sector moves beneath the head. On older disk systems that was often not the case, and interleaving was necessary to optimize read/write performance. On most contemporary disk systems, the I/O heads are fast enough that such tricks are unnecessary.
14 Example: Contiguous File Read Assume a disk system with the following parameters: 1 Total capacity: 675 MB # of platters: 15 (3 data surfaces) # of tracks per platter: 576 # of sectors per track: 16 cluster size: 8 KB spindle speed: 36 RPM head start time: 3 ms head track traversal time:.8 ms Question: how much time would be required, on average, to read a file of size 1 KB, assuming the file is stored in contiguous sectors on adjacent tracks (since one track won t hold the whole file in this case)?
15 Example: Contiguous File Read 15 We must compute some values from the given disk parameters: rotations per second: 6 capacity of one platter: 5 MB capacity of one track: 8 KB capacity of one sector: 512 bytes sectors per cluster: 16 clusters per track: 1 So a 1 KB file would occupy 18 clusters, or one full track plus 8 clusters on an adjacent track. The last cluster is only partially filled, but we will ignore that in our calculations. For reading the first (full) track, assuming average values: - seek time = 3 + (576/3)*.8 = ms - latency time = (1/2)*(1/6) = 8.33 ms - transfer time = (16/16)*(1/6) = ms total: 3.36 ms
16 Example: Contiguous File Read 16 For reading the relevant sectors from the second track, assuming average values: - seek time = 3 + (1)*.8 = 3.36 ms - latency time = (1/2)*(1/6) = 8.33 ms - transfer time = (128/16)*(1/6) =.33 ms total: 2.7 ms So the total time to read the file into memory* would be about 68.1 ms. * Actually this is the time to read the file into the disk buffer memory.
17 Example: Fragmented File Read What if the file is scattered all over the disk? Then it will take a lot longer for each cluster: - seek time = 3 + (576/3)*.8 = ms - latency time = (1/2)*(1/6) = 8.33 ms - transfer time = (16/16)*(1/6) = 1.67 ms total: ms Since the file occupies (part or all of) 18 clusters, the total read time for a completely fragmented copy of the file would be about 51.8 ms.
18 Sector Read vs Single Byte Read 18 The programs you have implemented simply perform read/write actions, usually on single variables which may store from 1 to a few hundred bytes of data. Why do typical disk controllers perform read/write operations in sector-sized chunks? Performance given the disk system described earlier: time to read one full track: 3.36 ms (slide 1) time to read one full sector: ms ms ms + (1/16)*(1/6) time to read one byte: ms ms ms + (1/512)*(1/16)*(1/6) The time to read one sector is only slightly more than the time to read a single byte, largely because the seek and latency times dominate the transfer time.
19 Locality of Reference 19 In view of the previous slide, it makes sense to design programs so that data is read from and written to disk in relatively large chunks but there is more. Spatial Locality of Reference In many cases, if a program accesses one part of a file, there is a high probability that the program will access nearby parts of the file in the near future. Temporal Locality of Reference Moral: grab a larger chunk than you immediately need. In many cases, if a program accesses one part of a file, there is a high probability that the program will access the same part of the file again in the near future. Moral: once you ve grabbed a chunk, keep it around.
20 Buffer Pools 2 buffer pool a series of buffers (memory locations) used by a program to cache disk data A program that does much disk I/O can often improve its performance by employing a buffer pool to take advantage of locality of reference. Basically, the buffer pool is just a collection of data chunks. The program reads and writes data in buffer-sized chunks, storing newly-read data chunks into the pool, replacing currently stored chunks as necessary. Executing process disk read request served disk data Buffer Pool 1 data1 data3 Disk Controller 2 data5 3
21 Replacement Strategies 21 The buffer pool must be organized physically and logically. The physical organization is generally an ordered list of some sort. The logical organization depends upon how the buffer pool deals with the issue of replacement if a new data chunk must be added to the pool and all the buffers are currently full, one of the current elements must be replaced. If the replaced element has been modified, it (usually) must be written back to disk or the changes will be lost. Common buffer replacement strategies: FIFO (first-in is first-out) organize buffers as a queue LFU (least frequently used) replace the least-accessed buffer LRU (least recently used) replace the longest-idle buffer
22 FIFO Replacement Logically the buffer pool is treated as a queue: 22 Requested "chunks": Takes no notice of the access pattern exhibited by the program. Consider what would happen with the sequence: =...
23 LFU Replacement 23 For LFU we must maintain an access count for each element of the buffer pool. It is also useful to keep the elements sorted by that count. Requested "chunks": 7 8,1,1,1,1,1,2,2,2,2,1,1,2,2,1,1 7,1 8,1,1,1,1,1 7,1 8,1,1,1 7,1 8,1,1,1 = Aside from cost of storing and maintaining counter values, and searching for least value, consider the sequence: (5 times) 1 (5 times)
24 LRU Replacement 2 With LRU, we may use a simple list structure. On an access, we move the targeted element to the front of the list. That puts the least recently used element at the tail of the list. Requested "chunks": Consider what would happen with the sequence: =
25 Comparison 25 In general, none of these replacement strategies is best in all cases. All are used with some frequency. Intuitively, LRU and LFU make more sense than FIFO. The performance you get is determined by the access pattern exhibited by the running program, and that is often impossible to predict. Optimal buffer replacement strategy: replace the buffer element whose next access lies furthest in the future.
Lecture Overview Virtual memory Demand paging Page faults Page replacement Frame allocation Thrashing Operating Systems - June 7, 00 Virtual Memory Up until now we assumed that an entire program/process
4 Secondary Storage Devices Copyright 2004, Binnur Kurt Content Secondary storage devices Organization of disks Organizing tracks by sector Organizing tracks by blocks Non-data overhead The cost of a disk
1 Physical Disk Storage Figure 1.1. The interior of a hard disk drive showing three platters, read/write heads on an actuator arm, and controller hardware Mass storage for computer systems originally used
University of Dublin Trinity College Storage Hardware Owen.Conlan@cs.tcd.ie Hardware Issues Hard Disk/SSD CPU Cache Main Memory CD ROM/RW DVD ROM/RW Tapes Primary Storage Floppy Disk/ Memory Stick Secondary
Mass Storage Structure 12 CHAPTER Practice Exercises 12.1 The accelerating seek described in Exercise 12.3 is typical of hard-disk drives. By contrast, floppy disks (and many hard disks manufactured before
Storage in Database Systems CMPSCI 445 Fall 2010 1 Storage Topics Architecture and Overview Disks Buffer management Files of records 2 DBMS Architecture Query Parser Query Rewriter Query Optimizer Query
Data Storage - I: Memory Hierarchies & Disks W7-C, Spring 2005 Updated by M. Naci Akkøk, 27.02.2004 and 23.02.2005, based upon slides by Pål Halvorsen, 11.3.2002. Contains slides from: Hector Garcia-Molina,
CS 245: Database System Principles Notes 02: Hardware Hector Garcia-Molina Outline Hardware: Disks Access Times Solid State Drives Optimizations Other Topics: Storage costs Using secondary storage Disk
Outline Principles of Database Management Systems Pekka Kilpeläinen (after Stanford CS245 slide originals by Hector Garcia-Molina, Jeff Ullman and Jennifer Widom) Hardware: Disks Access Times Example -
Last Class: File System Abstraction! Lecture 19, page 1 Today: File System Implementation! Disk management Brief review of how disks work. How to organize data on to disks. Lecture 19, page 2 How Disks
Solid State Drive Architecture A comparison and evaluation of data storage mediums Tyler Thierolf Justin Uriarte Outline Introduction Storage Device as Limiting Factor Terminology Internals Interface Architecture
COMP 242 Class Notes Section 6: File Management 1 File Management We shall now examine how an operating system provides file management. We shall define a file to be a collection of permanent data with
class12.ppt Memory Random-Access Memory (RAM) Key features 2 RAM is packaged as a chip. Basic storage unit is a cell (one bit per cell). Multiple RAM chips form a memory. Static RAM (SRAM( SRAM) Each cell
Lecture 21: Storage Administration Take QUIZ 15 over P&H 6.1-4, 6.8-9 before 11:59pm today Project: Cache Simulator, Due April 29, 2010 NEW OFFICE HOUR TIME: Tuesday 1-2, McKinley Last Time Exam discussion
Record Storage and Primary File Organization 1 C H A P T E R 4 Contents Introduction Secondary Storage Devices Buffering of Blocks Placing File Records on Disk Operations on Files Files of Unordered Records
Lecture 7: Storage Management File System Management Contents Non volatile memory Tape, HDD, SSD Files & File System Interface Directories & their Organization File System Implementation Disk Space Allocation
Chapter 5 Computer Organization OBJECTIVES Distinguish between the three components of a computer hardware. List the functionality of each component. Understand memory addressing and calculate the number
CS341: Operating System Lect 36: 1 st Nov 2014 Dr. A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati File System & Device Drive Mass Storage Disk Structure Disk Arm Scheduling RAID
Storing Data: Disks and Files Chapter 7 Instructor: Vladimir Zadorozhny email@example.com Information Science Program School of Information Sciences, University of Pittsburgh 1 Disks and Files DBMS
Last Class: File System Abstraction Naming Protection Persistence Fast access Lecture 17, page 1 Protection The OS must allow users to control sharing of their files => control access to files Grant or
Storing Data: Disks and Files (From Chapter 9 of textbook) Storing and Retrieving Data Database Management Systems need to: Store large volumes of data Store data reliably (so that data is not lost!) Retrieve
Virtual Memory Reading: Silberschatz chapter 10 Reading: Stallings chapter 8 1 Outline Introduction Advantages Thrashing Principal of Locality VM based on Paging/Segmentation Combined Paging and Segmentation
Storing Data: Disks and Files [R&G] Chapter 9 CS 4320 1 Data on External Storage Disks: Can retrieve random page at fixed cost But reading several consecutive pages is much cheaper than reading them in
: Technology Overview & System Impacts Zhichao Liang firstname.lastname@example.org Outline Why & what is storage class memory? A typical storage class memory device: PCM The impacts of SCM on database system Conclusion
Storing : Disks and Files Chapter 7 Yea, from the table of my memory I ll wipe away all trivial fond records. -- Shakespeare, Hamlet base Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Disks and
Storing Data: Disks and Files Chapter 9 Comp 521 Files and Databases Fall 2010 1 Disks and Files DBMS stores information on ( hard ) disks. This has major implications for DBMS design! READ: transfer data
Storage and File Structure DBMS and Storage/File Structure Why do we need to know about storage/file structure Many database technologies are developed to utilize the storage architecture/hierarchy Data
Storage Hierarchy 10: Storage and File System Basics Last Modified: 6/15/2004 12:10:04 PM Faster, Smaller, More Expensive Registers L1 Cache L2 Cache DRAM Volatile DISK Non-Volatile TAPE Each level acts
Memory Management Main memory Virtual memory Main memory Background (1) Processes need to share memory Instruction execution cycle leads to a stream of memory addresses Basic hardware CPU can only access
Review Storing : Disks and Files Lecture 3 (R&G Chapter 9) Aren t bases Great? Relational model SQL Yea, from the table of my memory I ll wipe away all trivial fond records. -- Shakespeare, Hamlet Disks,
Guest lecturer: David Hovemeyer November 15, 2004 The memory hierarchy Red = Level Access time Capacity Features Registers nanoseconds 100s of bytes fixed Cache nanoseconds 1-2 MB fixed RAM nanoseconds
Virtual Memory Gordon College Stephen Brinton Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Demand Segmentation Operating System Examples Background
Chapter NO.4 Storage Devices 4.01 Complete the following statements. i) A byte is a group of bits. ii) is a volatile memory. iii) Storage capacity of a sector on floppy is a multiple of bytes. iv) SIMMs
15.561 Information Technology Essentials Session 2 Fundamentals of Computing II Copyright 2003 Thomas Malone, Chris Dellarocas Acknowledgments:. Adapted from slides by Chris Dellarocas, U. Md.. Outline:
Introduction to I/O and Disk Management 1 Secondary Storage Management Disks just like memory, only different Why have disks? Memory is small. Disks are large. Short term storage for memory contents (e.g.,
administrivia using slides from here on out posted in advance as pdf on website exam back overall happy with results with some exceptions short slides today gets to a good overview point probably a short
Disk Performance Parameters To read or write, the disk head must be positioned at the desired track and at the beginning of the desired sector Seek time Time it takes to position the head at the desired
CSCA0102 IT & Business Applications Foundation in Business Information Technology School of Engineering & Computing Sciences FTMS College Global Chapter 2 Data Storage Concepts System Unit The system unit
Virtual Memory COMP375 Computer Architecture and Organization You never know when you're making a memory. Rickie Lee Jones Design Project The project is due 1:00pm (start of class) on Monday, October 19,
Mass-Storage Devices: Disks CSCI 5103 Operating Systems Instructor: Abhishek Chandra Disk Structure and Attachment Disk Scheduling Disk Management RAID Structure Stable Storage 2 Magnetic Disks Most common
COMPUTER HARDWARE Input- Output and Communication Memory Systems Computer I/O I/O devices commonly found in Computer systems Keyboards Displays Printers Magnetic Drives Compact disk read only memory (CD-ROM)
Storing : Disks and Files Chapter 7 base Management Systems, R. Ramakrishnan and J. Gehrke 1 Disks and Files DBMS stores information on ( hard ) disks. This has major implications for DBMS implementation!
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
Computer Science 1000 Terminology II Storage a computer has two primary tasks store data operate on data a processor's primary job is to operate on data math operations move operations note that processors
Chapter HW 1 THE CENTRAL PROCESSING UNIT AND MEMORY In this module we look hardware, the physical makeup of a computer system. In this chapter we learn how computers work inside. Two Types of Computers
1 / 36 The Problem Application Data? Filesystem Logical Drive Physical Drive 2 / 36 Requirements There are different classes of requirements: Data Independence application is shielded from physical storage
MEMORY MANAGEMENT Requirements: Relocation (to different memory areas) Protection (run time, usually implemented together with relocation) Sharing (and also protection) Logical organization Physical organization
Memory Hierarchy Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex Goals of Today s Lecture Memory hierarchy o From fast/expensive/small to slow/cheap/big memory technology o Registers, on-chip
Disk Scheduling Algorithms (CS537 Spring 215 :: Kanlue Zhang) Abstract This report starts from the structure of a disk and the hardware activities involved in the data retrieval from direct attached storage
True / False Questions: Chapter 7 Memory Management 1. T / F In a multiprogramming system, main memory is divided into multiple sections: one for the operating system (resident monitor, kernel) and one
Storing Data: Disks and Files Chapter 7 Yea, from the table of my memory I ll wipe away all trivial fond records. -- Shakespeare, Hamlet Database Management Systems, R. Ramakrishnan and J. Gehrke 1 Disks
Q & A From Hitachi Data Systems WebTech Presentation: RAID Concepts 1. Is the chunk size the same for all Hitachi Data Systems storage systems, i.e., Adaptable Modular Systems, Network Storage Controller,
W8: virtual memory Instructor: Junfeng Yang References: Modern Operating Systems ( rd edition), Operating Systems Concepts (8 th edition), previous W8, and OS at MIT, Stanford, and UWisc Background: memory
Computer Architecture Slide Sets WS 2013/2014 Prof. Dr. Uwe Brinkschulte M.Sc. Benjamin Betting Part 11 Memory Management Computer Architecture Part 11 page 1 of 44 Prof. Dr. Uwe Brinkschulte, M.Sc. Benjamin
The Operating System Level Virtual Memory File systems Parallel processing Case studies Due 6/3: 2, 3, 18, 23 Like other levels we have studied, the OS level is built on top of the next lower layer. Like
CS 422/522 Design & Implementation of Operating Systems Lecture 16: Storage Devices Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken from previous versions of
System Architecture CS143: Disks and Files CPU Word (1B 64B) ~ 10 GB/sec Main Memory System Bus Disk Controller... Block (512B 50KB) ~ 100 MB/sec Disk 1 2 Magnetic disk vs SSD Magnetic Disk Stores data
Chapter 0: Virtual Memory Background Demand Paging Page Replacement Allocation of Frames Thrashing Operating System Example 0. Virtual memory separation of logical memory from physical memory only part
Hard Drive Performance Theory Please read on to see how fragmentation and other, even more, important factors act to slow your hard drive s performance. How Your Hard Drive Works Your hard drive is the
Disks and RAID Profs. Bracy and Van Renesse based on slides by Prof. Sirer 50 Years Old! 13th September 1956 The IBM RAMAC 350 Stored less than 5 MByte Reading from a Disk Must specify: cylinder # (distance
Main Memory & Backing Store Main memory backing storage devices 1 Introduction computers store programs & data in two different ways: nmain memory ntemporarily stores programs & data that are being processed
CPS104 Computer Organization and Programming Lecture 18: Input-Output Robert Wagner cps 104 I/O.1 RW Fall 2000 Outline of Today s Lecture The I/O system Magnetic Disk Tape Buses DMA cps 104 I/O.2 RW Fall
COS 318: Operating Systems Storage Devices Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Today s Topics! Magnetic disks!
Chapter 7: Memory Management CH 7. MAIN MEMORY Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation adapted from textbook slides Background Base and Limit Registers
ICS 143 - Principles of Operating Systems Lectures 15 and 16 - Virtual Memory Prof. Ardalan Amiri Sani Prof. Nalini Venkatasubramanian email@example.com firstname.lastname@example.org Virtual Memory Background Demand
Sistemas Operativos: Input/Output Disks Pedro F. Souto (email@example.com) April 28, 2012 Topics Magnetic Disks RAID Solid State Disks Topics Magnetic Disks RAID Solid State Disks Magnetic Disk Construction
CHAPTER 9 Virtual memory can be a very interesting subject since it has so many different aspects: page faults, managing the backing store, page replacement, frame allocation, thrashing, page size. The
Memory Classification With respect to the way of data access we can classify memories as: - random access memories (RAM), - sequentially accessible memory (SAM), - direct access memory (DAM), - contents
Storage Devices for Database Systems These slides are mostly taken verbatim, or with minor changes, from those prepared by Stephen Hegner (http://www.cs.umu.se/ hegner/) of Umeå University Storage Devices
CS 134: Operating Systems Memory Fun with Paging CS 134: Operating Systems Memory Fun with Paging 1 / 37 Overview Cost of Faults Overview Overview Cost of Faults Algorithms Easy Approaches Realistic Approaches
Free University of Bolzano Database 2. Lecture I, 2003/2004 A.Artale (1) Database 2 Lecture I Alessandro Artale Faculty of Computer Science Free University of Bolzano Room: 221 firstname.lastname@example.org http://www.inf.unibz.it/
Slide Set 8 for ENCM 369 Winter 2015 Lecture Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Winter Term, 2015 ENCM 369 W15 Section