Greats Bugs in History
|
|
- Bridget Miller
- 5 years ago
- Views:
Transcription
1 Semidoctus, 23 November 2016 Semidoctus, 23 November / 1/
2 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion Semidoctus, 23 November / 2/
3 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion Semidoctus, 23 November / 3/
4 What s a bug? Definition (Bug) Unexpected behavior in a program. Semidoctus, 23 November / 4/
5 What s a bug? Definition (Bug) Unexpected behavior in a program. It s not a bug, it s a feature! ( Maybe from Microsoft Word for Windows maintenance team.) Semidoctus, 23 November / 4/
6 Different kinds of unexpected behaviors Expected by who? Kinds of bugs The end user? Misbug The programmer? Undocumented feature One of the programmers? ( cheat codes!) The manager? Easter egg Actual bug Backdoor 5/ Semidoctus, 23 November /
7 First bugs in history Semidoctus, 23 November / 6/
8 but the concept predated! Thomas Edison, 1878 [ ] then difficulties arise this thing gives out and it is then that Bugs as such little faults and difficulties are called [ ] Journal of the Royal Aeronautical Society, 1945 [ ] through the stage of type test and flight test and debugging right through to later development of the engine to higher powers and efficiency. Semidoctus, 23 November / 7/
9 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion Semidoctus, 23 November / 8/
10 Semidoctus, 23 November / 9/
11 Anatomy of an octet Most (young enough) computer scientists would say: Computers don t work like this! 10/ Semidoctus, 23 November /
12 Anatomy of an octet Most (young enough) computer scientists would say: Computers don t work like this! Let s look at an octet 8 bits, values 0 to / Semidoctus, 23 November /
13 Anatomy of an octet Most (young enough) computer scientists would say: Computers don t work like this! Let s look at an octet 8 bits, values 0 to decimal digits: first (0-9) and second (0-9) Binary-Coded Decimal 10/ Semidoctus, 23 November /
14 Binary-Coded Decimal And one would say: But that s stupid! Especially at a time when memory was expensive! 11/ Semidoctus, 23 November /
15 Binary-Coded Decimal And one would say: But that s stupid! Especially at a time when memory was expensive! 11/ Semidoctus, 23 November /
16 Binary-Coded Decimal II BCD originated in OS/360 (years 1960 s) It became a tradition In first versions of Windows (years 1990 s) Arithmetic overflow on Y2K 12/ Semidoctus, 23 November /
17 What are the consequences? Oh, come on, it was nothing. True, the media overstated the problem a lot. 13/ Semidoctus, 23 November /
18 What are the consequences? Oh, come on, it was nothing. True, the media overstated the problem a lot. But still Hospital software incorrectly calculated age of mothers = wrong diagnosis of down syndrome in children SMS in wrong order in some mobile phones 1 January Incorrect leap year handling 13/ Semidoctus, 23 November /
19 But today it s fixed, right? Most Unix systems store times as # seconds ellapsed since 1970/01/01 00:00 UTC. 14/ Semidoctus, 23 November /
20 But today it s fixed, right? Most Unix systems store times as # seconds ellapsed since 1970/01/01 00:00 UTC. Many computers still store integers over 32 bits What could possibly go wrong? Make the calculation 14/ Semidoctus, 23 November /
21 But today it s fixed, right? Most Unix systems store times as # seconds ellapsed since 1970/01/01 00:00 UTC. Many computers still store integers over 32 bits What could possibly go wrong? Make the calculation See you on 19 January 2038, 03:14:08 UTC! 14/ Semidoctus, 23 November /
22 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion 15/ Semidoctus, 23 November /
23 Ariane 5 On June, 1996, the Ariane 5 rocket crashes, with all its equipments and crew. Acceleration of Ariane 5 is 5 Ariane 4 Acceleration variable overflows Blind reusing of old code The code wasn t supposed to be here! Presentation by Jean-Jacques Levy 16/ Semidoctus, 23 November /
24 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion 17/ Semidoctus, 23 November /
25 The worst security bug ever OpenSSL: a cryptography layer Extremely widespread Bug allows to reveal the computer s memory Possibly known in advance! Discovered 1 April / Semidoctus, 23 November /
26 How Heartbleed Works 19/ Semidoctus, 23 November /
27 How Heartbleed Works 20/ Semidoctus, 23 November /
28 The Heartbleed buzz The bug existed for years = some people new it? Easily leaks passwords, private numbers (It happened) Also attacks the clients No traces! Once again, OpenSSL was extremely widespread 21/ Semidoctus, 23 November /
29 The Heartbleed buzz The bug existed for years = some people new it? Easily leaks passwords, private numbers (It happened) Also attacks the clients No traces! Once again, OpenSSL was extremely widespread Turns out the code of OpenSSL was a mess The faulty code shouldn t have been there in the first place 21/ Semidoctus, 23 November /
30 22/ Semidoctus, 23 November /
31 23/ Semidoctus, 23 November /
32 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion 24/ Semidoctus, 23 November /
33 A Public Relations affair 13 June 1994: Thomas Nicely ( his name) finds some computation about prime numbers wrong 24 October 1994: reports the problem to Intel (Intel admits problem was known since May!) 1 7 November 1994: story spreads on the Internet and specialized press 21 November 1994: CNN Coverage 25/ Semidoctus, 23 November /
34 A Public Relations affair 13 June 1994: Thomas Nicely ( his name) finds some computation about prime numbers wrong 24 October 1994: reports the problem to Intel (Intel admits problem was known since May!) 1 7 November 1994: story spreads on the Internet and specialized press 21 November 1994: CNN Coverage = Long battle between Intel and IBM about the severity of the bug = Intel first refunds CPUs to whom asks, then recall them all 25/ Semidoctus, 23 November /
35 How do you discover such a bug? Tom Nicely was doing number theory calculations. A bug in my code? A bug in some library? A bug in the compiler? A bug in other hardware? 26/ Semidoctus, 23 November /
36 How do you discover such a bug? Tom Nicely was doing number theory calculations. A bug in my code? A bug in some library? A bug in the compiler? A bug in other hardware? Tested in C, C++, Basic Tested on different computers ( different hardware) Tested in stock software: Excel Tested with disabled FPU (At the time, most CPUs used emulation for floating-point numbers!) 26/ Semidoctus, 23 November /
37 Was it bad? Computations of x (1/x) or 1/(1/x) gave results between 200 and 3000 but really not often. 1 chance in 10 billion to get the 9 th digit wrong 1 chance in 360 billion to get the 4 th digit wrong 27/ Semidoctus, 23 November /
38 Where does the error come from? Faster division algorithm: produces 2 bits per iteration (instead of one). Uses a lookup table (extremely common). Some cells of the lookup table were not filled. 7/2, 13/8, 1/2, 1/2, 3/2, 3 7/2, 7/4, 1/2, 1/2, 7/4, 7/2 4, 2, 3/4, 1/2, 2, 4 9/2, 9/4, 3/4, 1/2, 2, 4 9/2, 5/2, 1, 3/4, 9/4, 9/2 5, 5/2, 1, 1, 5/2, 5 11/2, 11/4, 1, 1, 5/2, 5 11/2, 3, 1, 1, 3, 11/2 28/ Semidoctus, 23 November /
39 The Division Algorithm P N D D 2 n for i {31,..., 0} If P 0 then q[i] +1, P 2P D Else q[i] 1, P 2P + D For N = numerator, D = denominator, and q = quotient. Gives results in a strange +1/ 1 encoding Renormalization necessary Lookup table: normalize on the way and get 2 bits at a time 29/ Semidoctus, 23 November /
40 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion 30/ Semidoctus, 23 November /
41 The 500-mile bug 31/ Semidoctus, 23 November /
42 Plan 1 Introduction: what s a bug? 2 The Y2K Bug 3 The case of Ariane 5 4 Heartbleed 5 The Intel Division Bug mile s 7 Conclusion 32/ Semidoctus, 23 November /
43 Conclusion Bug severity overstated by the media By contrast, analysts understate their gravity Few studies afterwards Usually very low-level stuff Thank you for your attention! / Semidoctus, 23 November 2016 /
Software Testing Lecture 1. Justin Pearson
Software Testing Lecture 1 Justin Pearson 2017 1 / 50 Four Questions Does my software work? 2 / 50 Four Questions Does my software work? Does my software meet its specification? 3 / 50 Four Questions Does
More informationCS/MA 109 Fall Wayne Snyder Computer Science Department Boston University
CS/MA 9 Fall 25 Wayne Snyder Department Boston University Today (Friday the 3 th!): Error-detecting and error-correcting codes. Next week: Cryptography From last time to this time Compression takes advantage
More informationFrom last time to this time
/7/6 CS/MA 9 Fall 26 Wayne Snyder Department Boston University Today and Wednesday: Error-detecting and error-correcting codes Wednesday & Friday: Cryptography From last time to this time Compression takes
More informationScientific Computing. Error Analysis
ECE257 Numerical Methods and Scientific Computing Error Analysis Today s s class: Introduction to error analysis Approximations Round-Off Errors Introduction Error is the difference between the exact solution
More informationStatic Analysis of Embedded Systems
Static Analysis of Embedded Systems Xavier RIVAL rival@di.ens.fr Outline Case study Certification of embedded softwares Demo Static Analysisof Embedded Systems p.2/12 Ariane 5 Flight 501 Ariane 5: sattelite
More informationObjectives. look at floating point representation in its basic form expose errors of a different form: rounding error highlight IEEE-754 standard
Floating Point Objectives look at floating point representation in its basic form expose errors of a different form: rounding error highlight IEEE-754 standard 1 Why this is important: Errors come in two
More informationComputer Science 217
Computer Science 217 Midterm Exam October 29, 2014 First Name: Last Name: ID: Class Time (Circle One): 1:00pm 3:00pm Instructions: Neatly print your names and ID number in the spaces provided above. Pick
More informationCS 520 Theory and Practice of Software Engineering Fall 2018
CS 520 Theory and Practice of Software Engineering Fall 2018 Nediyana Daskalova Monday, 4PM CS 151 Debugging October 30, 2018 Personalized Behavior-Powered Systems for Guiding Self-Experiments Help me
More informationSteps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26.
git status Steps for project success Homework 1 submitted Homework 2 will be posted October 26 due November 16, 9AM Projects underway project status check-in meetings November 9 System-building project
More informationHeartbleed Bug. Anthony Postiglione. Department of Electrical & Computer Engineering Missouri University of Science and Technology
Heartbleed Bug Anthony Postiglione Department of Electrical & Computer Engineering Missouri University of Science and Technology avp275@mst.edu rev. 14.0 Introduction What is Heartbleed? Discovery Presentation
More informationVba Variables Constant and Data types in Excel
Vba Variables Constant and Data types in Excel VARIABLES In Excel VBA, variables are areas allocated by the computer memory to hold data. Data stored inside the computer memory has 4 properties: names,
More information3. Simple Types, Variables, and Constants
3. Simple Types, Variables, and Constants This section of the lectures will look at simple containers in which you can storing single values in the programming language C++. You might find it interesting
More informationLimitations of the stack
The heap hic 1 Limitations of the stack int *table_of(int num, int len) { int table[len+1]; for (int i=0; i
More informationC Review. MaxMSP Developers Workshop Summer 2009 CNMAT
C Review MaxMSP Developers Workshop Summer 2009 CNMAT C Syntax Program control (loops, branches): Function calls Math: +, -, *, /, ++, -- Variables, types, structures, assignment Pointers and memory (***
More informationSOFTWARE DEVELOPMENT 1. Operators 2018W A. Ferscha (Institute of Pervasive Computing, JKU Linz)
SOFTWARE DEVELOPMENT 1 Operators 2018W (Institute of Pervasive Computing, JKU Linz) OPERATORS Operators are required to form expressions. Depending on the number of operands they take, they are called:
More informationFundamentals. Fundamentals. Fundamentals. We build up instructions from three types of materials
Fundamentals We build up instructions from three types of materials Constants Expressions Fundamentals Constants are just that, they are values that don t change as our macros are executing Fundamentals
More informationPrimality Testing! 1
Primality Testing! 1 Goals of Assignment! Writing software as part of a large team" Living and breathing what COS 217 is about" Abstraction, separation of interfaces and implementations, modularity" Also,
More informationBasic Definitions: Testing
Basic Definitions: Testing l What is software testing? Running a program In order to find faults a.k.a. defects a.k.a. errors a.k.a. flaws a.k.a. faults a.k.a. BUGS 1 Bugs Hopper s bug (moth stuck in a
More informationSample Exam ISTQB Advanced Test Analyst Answer Rationale. Prepared By
Sample Exam ISTQB Advanced Test Analyst Answer Rationale Prepared By Released March 2016 TTA-1.3.1 (K2) Summarize the generic risk factors that the Technical Test Analyst typically needs to consider #1
More informationSoftware Testing. Software Testing. Theory, Practise and Reality IBM Corporation
Software Testing Software Testing Theory, Practise and Reality Who am I? David Vines (dvines@uk.ibm.com) Degree in Computer Science and Operational Research Joined IBM in 1984 Been involved in product
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: September 18, 2017 at 12:48 CS429 Slideset 4: 1 Topics of this Slideset
More informationCHW 261: Logic Design
CHW 261: Logic Design Instructors: Prof. Hala Zayed Dr. Ahmed Shalaby http://www.bu.edu.eg/staff/halazayed14 http://bu.edu.eg/staff/ahmedshalaby14# Slide 1 Slide 2 Slide 3 Digital Fundamentals CHAPTER
More informationAnnouncements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop
Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00
More informationCPSC 467b: Cryptography and Computer Security
CPSC 467b: Cryptography and Computer Security Michael J. Fischer Lecture 7 January 30, 2012 CPSC 467b, Lecture 7 1/44 Public-key cryptography RSA Factoring Assumption Computing with Big Numbers Fast Exponentiation
More informationDifference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn
Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn Problem Write and test a Scheme program to compute how many days are spanned by two given days. The program will include a procedure
More informationCIS 5373 Systems Security
CIS 5373 Systems Security Topic 1: Introduction to Systems Security Endadul Hoque 1 Why should you care? Security impacts our day-to-day life Become a security-aware user Make safe decisions Become a security-aware
More informationGDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
More informationLecture 7: Efficient Collections via Hashing
Lecture 7: Efficient Collections via Hashing These slides include material originally prepared by Dr. Ron Cytron, Dr. Jeremy Buhler, and Dr. Steve Cole. 1 Announcements Lab 6 due Friday Lab 7 out tomorrow
More informationWhat Every Programmer Should Know About Floating-Point Arithmetic
What Every Programmer Should Know About Floating-Point Arithmetic Last updated: October 15, 2015 Contents 1 Why don t my numbers add up? 3 2 Basic Answers 3 2.1 Why don t my numbers, like 0.1 + 0.2 add
More information1.1 For Fun and Profit. 1.2 Common Techniques. My Preferred Techniques
1 Bug Hunting Bug hunting is the process of finding bugs in software or hardware. In this book, however, the term bug hunting will be used specifically to describe the process of finding security-critical
More informationSoftware Quality. What is Good Software?
Software Quality CS A470 What is Good Software? Depends on your point of view Five perspectives Transcendental view. Quality can be recognized but hard to define User view. Fitness for purpose Often adopted
More informationNumber Systems and Computer Arithmetic
Number Systems and Computer Arithmetic Counting to four billion two fingers at a time What do all those bits mean now? bits (011011011100010...01) instruction R-format I-format... integer data number text
More informationFloating Point II, x86 64 Intro
Floating Point II, x86 64 Intro CSE 351 Autumn 2018 Instructor: Teaching Assistants: Justin Hsia Akshat Aggarwal An Wang Andrew Hu Brian Dai Britt Henderson James Shin Kevin Bi Kory Watson Riley Germundson
More informationHacking in C. Pointers. Radboud University, Nijmegen, The Netherlands. Spring 2019
Hacking in C Pointers Radboud University, Nijmegen, The Netherlands Spring 2019 Allocation of multiple variables Consider the program main(){ char x; int i; short s; char y;... } What will the layout of
More informationDivide: Paper & Pencil CS152. Computer Architecture and Engineering Lecture 7. Divide, Floating Point, Pentium Bug. DIVIDE HARDWARE Version 1
Divide: Paper & Pencil Computer Architecture and Engineering Lecture 7 Divide, Floating Point, Pentium Bug 1001 Quotient 1000 1001010 Dividend 1000 10 101 1010 1000 10 (or Modulo result) See how big a
More informationChapter 4: Data Representations
Chapter 4: Data Representations Integer Representations o unsigned o sign-magnitude o one's complement o two's complement o bias o comparison o sign extension o overflow Character Representations Floating
More informationTesting. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus
Testing Prof. Clarkson Fall 2017 Today s music: Wrecking Ball by Miley Cyrus Review Previously in 3110: Modules Specification (functions, modules) Today: Validation Testing Black box Glass box Randomized
More informationLecture 15 Software Testing
Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered
More informationLecture 10: Introduction to Correctness
Lecture 10: Introduction to Correctness Aims: To look at the different types of errors that programs can contain; To look at how we might detect each of these errors; To look at the difficulty of detecting
More informationFormal Methods at Scale in Microsoft
Formal Methods at Scale in Microsoft Thomas Ball http://research.microsoft.com/rise Microsoft Research 4 October 2017 Code Integ. Tests Unit Test Testing-based Development Commit, Build Review Web app
More informationUnderstanding Software Engineering
McBreen.book Page 3 Wednesday, August 1, 2001 10:08 PM Chapter 1 Understanding Software Engineering In order to understand software engineering, we first need to look at the projects that were reported
More informationStatic Analysis by A. I. of Embedded Critical Software
Static Analysis by Abstract Interpretation of Embedded Critical Software Julien Bertrane ENS, Julien.bertrane@ens.fr Patrick Cousot ENS & CIMS, Patrick.Cousot@ens.fr Radhia Cousot CNRS & ENS, Radhia.Cousot@ens.fr
More informationDisclaimer. This talk vastly over-simplifies things. See notes for full details and resources.
Greg Kroah-Hartman Disclaimer This talk vastly over-simplifies things. See notes for full details and resources. https://github.com/gregkh/presentation-spectre Spectre Hardware bugs Valid code can be tricked
More information1 ICS 161: Design and Analysis of Algorithms Lecture notes for January 23, Bucket Sorting
1 ICS 161: Design and Analysis of Algorithms Lecture notes for January 23, 1996 2 Bucket Sorting We ve seen various algorithms for sorting in O(n log n) time and a lower bound showing that O(n log n) is
More informationTable : IEEE Single Format ± a a 2 a 3 :::a 8 b b 2 b 3 :::b 23 If exponent bitstring a :::a 8 is Then numerical value represented is ( ) 2 = (
Floating Point Numbers in Java by Michael L. Overton Virtually all modern computers follow the IEEE 2 floating point standard in their representation of floating point numbers. The Java programming language
More informationClient Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module
Basic Class Design Goal of OOP: Reduce complexity of software development by keeping details, and especially changes to details, from spreading throughout the entire program. Actually, the same goal as
More informationAdding Binary Integers. Part 4. Negative Binary. Integers. Adding Base 10 Numbers. Adding Binary Example = 10. Arithmetic Logic Unit
Part 4 Adding Binary Integers Arithmetic Logic Unit = Adding Binary Integers Adding Base Numbers Computer's add binary numbers the same way that we do with decimal Columns are aligned, added, and "'s"
More informationCSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch
CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch Purpose: We will take a look at programming this week using a language called Scratch. Scratch is a programming language that was developed
More informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationDisclaimer. This talk vastly over-simplifies things. See notes for full details and resources.
Greg Kroah-Hartman Disclaimer This talk vastly over-simplifies things. See notes for full details and resources. https://github.com/gregkh/presentation-spectre Spectre Hardware bugs Valid code can be tricked
More informationIntroduction to Modern Fortran
Introduction to Modern Fortran p. 1/?? Introduction to Modern Fortran See next foil for copyright information Nick Maclaren nmm1@cam.ac.uk March 2014 Introduction to Modern Fortran p. 2/?? Acknowledgement
More informationCryptography III Want to make a billion dollars? Just factor this one number!
Cryptography III Want to make a billion dollars? Just factor this one number! 3082010a0282010100a3d56cf0bf8418d66f400be31c3f22036ca9f5cf01ef614de2eb9a1cd74a0c344b5a20d5f80df9a23c89 10c354821aa693432a61bd265ca70f309d56535a679d68d7ab89f9d32c47c1182e8a14203c050afd5f1831e5550e8700e008f2
More information(a) Which of these two conditions (high or low) is considered more serious? Justify your answer.
CS140 Winter 2006 Final Exam Solutions (1) In class we talked about the link count in the inode of the Unix file system being incorrect after a crash. The reference count can either be either too high
More informationOutline. software testing: search bugs black-box and white-box testing static and dynamic testing
Outline 1 Verification Techniques software testing: search bugs black-box and white-box testing static and dynamic testing 2 Programming by Contract assert statements in Python using preconditions and
More informationSummer May 11, 2010
Summer 2010 Department of Computer Science and Engineering York University Toronto May 11, 2010 1 / 40 What we did last time Overview of C to the language Program structure Types in C Operators in C IO
More informationCryptography for Software and Web Developers
Cryptography for Software and Web Developers Part 4: randomness, hashing, tokens Hanno Böck 2014-05-28 1 / 13 Bad random numbers Random fails Example: Factoring RSA keys Good / bad randomness In security
More informationRecursion: The Beginning
Yufei Tao ITEE University of Queensland This lecture is the inception of a powerful technique called recursion. If used judiciously, this technique can simplify the design of an algorithm significantly,
More informationAPPENDIX B. Fortran Hints
APPENDIX B Fortran Hints This appix contains hints on how to find errors in your programs, and how to avoid some common Fortran errors in the first place. The basics on how to invoke the Fortran compiler
More informationTopic Notes: Bits and Bytes and Numbers
Computer Science 220 Assembly Language & Comp Architecture Siena College Fall 2010 Topic Notes: Bits and Bytes and Numbers Binary Basics At least some of this will be review, but we will go over it for
More informationDivide: Paper & Pencil
Divide: Paper & Pencil 1001 Quotient Divisor 1000 1001010 Dividend -1000 10 101 1010 1000 10 Remainder See how big a number can be subtracted, creating quotient bit on each step Binary => 1 * divisor or
More informationNumber Systems MA1S1. Tristan McLoughlin. November 27, 2013
Number Systems MA1S1 Tristan McLoughlin November 27, 2013 http://en.wikipedia.org/wiki/binary numeral system http://accu.org/index.php/articles/1558 http://www.binaryconvert.com http://en.wikipedia.org/wiki/ascii
More informationLecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni.
Lecture Notes for 04/04/06 UNTRUSTED CODE Fatima Zarinni. Last class we started to talk about the different System Solutions for Stack Overflow. We are going to continue the subject. Stages of Stack Overflow
More informationIntroduction to Assurance
Introduction to Assurance Overview Why assurance? Trust and assurance Life cycle and assurance April 1, 2015 Slide #1 Overview Trust Problems from lack of assurance Types of assurance Life cycle and assurance
More informationCS 31: Introduction to Computer Systems. 03: Binary Arithmetic January 29
CS 31: Introduction to Computer Systems 03: Binary Arithmetic January 29 WiCS! Swarthmore Women in Computer Science Slide 2 Today Binary Arithmetic Unsigned addition Subtraction Representation Signed magnitude
More informationAdding Binary Integers. Part 5. Adding Base 10 Numbers. Adding 2's Complement. Adding Binary Example = 10. Arithmetic Logic Unit
Part 5 Adding Binary Integers Arithmetic Logic Unit = Adding Binary Integers Adding Base Numbers Computer's add binary numbers the same way that we do with decimal Columns are aligned, added, and "'s"
More informationEnhanced Debugging with Traces
Enhanced Debugging with Traces An essential technique used in emulator development is a useful addition to any programmer s toolbox. Peter Phillips Creating an emulator to run old programs is a difficult
More informationLast week. Data on the stack is allocated automatically when we do a function call, and removed when we return
Last week Data can be allocated on the stack or on the heap (aka dynamic memory) Data on the stack is allocated automatically when we do a function call, and removed when we return f() {... int table[len];...
More information15. Regression testing
Outline 15. Regression testing Tom Verheyen, Jelle Slowack, Bart Smets, Glenn Van Loon Introduction - What, why, when, how - Regression faults - Test automation - Test suite maintenance - Reducing a test
More informationOutline. Operating System Security CS 239 Computer Security February 23, Introduction. Server Machines Vs. General Purpose Machines
Outline Operating System Security CS 239 Computer Security February 23, 2004 Introduction Memory protection Interprocess communications protection File protection Page 1 Page 2 Introduction Why Is OS Security
More informationOperator Precedence Lab
Operator Precedence Lab Introduction Order of operations (also known as operator precedence) is a set of rules used to clarify the order in which procedures are performed in mathematical expressions. Similarly,
More informationInteger Multiplication. Back to Arithmetic. Integer Multiplication. Example (Fig 4.25)
Back to Arithmetic Before, we did Representation of integers Addition/Subtraction Logical ops Forecast Integer Multiplication Integer Division Floating-point Numbers Floating-point Addition/Multiplication
More informationAgile Software Development. Lecture 7: Software Testing
Agile Software Development Lecture 7: Software Testing Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Slides are a modified version of the slides by Prof. Kenneth M. Anderson Outline Testing Terminology Types
More informationSecurity Architecture
Security Architecture We ve been looking at how particular applications are secured We need to secure not just a few particular applications, but many applications, running on separate machines We need
More informationLow level security. Andrew Ruef
Low level security Andrew Ruef What s going on Stuff is getting hacked all the time We re writing tons of software Often with little regard to reliability let alone security The regulatory environment
More informationICSE MET 17 Keynote. Metamorphic Testing: Beyond Testing Numerical Computations
ICSE MET 17 Keynote Metamorphic Testing: Beyond Testing Numerical Computations Dr. Zhi Quan (George) Zhou Associate Professor University of Wollongong Australia zhiquan@uow.edu.au 1 Why this topic? Observation:
More information2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS).
2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS). 2.. Natural Binary Code (NBC). The positional code with base 2 (B=2), introduced in Exercise, is used to encode
More informationRead & Download (PDF Kindle) C++ Footprint And Performance Optimization (Sams Professional)
Read & Download (PDF Kindle) C++ Footprint And Performance Optimization (Sams Professional) This text aims to supply programmers with the knowledge they need to write code for the increasing number of
More informationFixed-Point Math and Other Optimizations
Fixed-Point Math and Other Optimizations Embedded Systems 8-1 Fixed Point Math Why and How Floating point is too slow and integers truncate the data Floating point subroutines: slower than native, overhead
More informationCS 31: Intro to Systems Binary Arithmetic. Martin Gagné Swarthmore College January 24, 2016
CS 31: Intro to Systems Binary Arithmetic Martin Gagné Swarthmore College January 24, 2016 Unsigned Integers Suppose we had one byte Can represent 2 8 (256) values If unsigned (strictly non-negative):
More informationVariables and Data Representation
You will recall that a computer program is a set of instructions that tell a computer how to transform a given set of input into a specific output. Any program, procedural, event driven or object oriented
More informationNumerical Precision. Or, why my numbers aren t numbering right. 1 of 15
Numerical Precision Or, why my numbers aren t numbering right 1 of 15 What s the deal? Maybe you ve seen this #include int main() { float val = 3.6f; printf( %.20f \n, val); Print a float with
More informationVerification and Validation. Verification and validation
Verification and Validation Verification and validation Verification and Validation (V&V) is a whole life-cycle process. V&V has two objectives: Discovery of defects, Assessment of whether or not the system
More information! Addition! Multiplication! Bigger Example - RSA cryptography
! Addition! Multiplication! Bigger Example - RSA cryptography Modular Arithmetic Modular Exponentiation Primality Testing (Fermat s little theorem) Probabilistic algorithm Euclid s Algorithm for gcd (greatest
More informationCHAPTER 2 Data Representation in Computer Systems
CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 37 2.2 Positional Numbering Systems 38 2.3 Decimal to Binary Conversions 38 2.3.1 Converting Unsigned Whole Numbers 39 2.3.2 Converting
More informationWeek 11: Class Design
Week 11: Class Design 1 Most classes are meant to be used more than once This means that you have to think about what will be helpful for future programmers There are a number of trade-offs to consider
More informationCSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York
CSc 10200! Introduction to Computing Lecture 1 Edgardo Molina Fall 2013 City College of New York 1 Introduction to Computing Lectures: Tuesday and Thursday s (2-2:50 pm) Location: NAC 1/202 Recitation:
More informationOODA Security. Taking back the advantage!
OODA Security Taking back the advantage! About Me Kevin Fiscus Owner Cyber Defense Advisors 24 Years in IT 13 Years in security SANS Certified Instructor GIAC Security Expert Cyber Guardian Red/Blue Team
More informationCHAPTER 2 Data Representation in Computer Systems
CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 37 2.2 Positional Numbering Systems 38 2.3 Decimal to Binary Conversions 38 2.3.1 Converting Unsigned Whole Numbers 39 2.3.2 Converting
More informationOUTLINE. Number system. Creating MATLAB variables Overwriting variable Error messages Making corrections Entering multiple statements per line
1 LECTURE 2 OUTLINE Number system Integer number Decimal number Binary number Hexadecimal number Creating MATLAB variables Overwriting variable Error messages Making corrections Entering multiple statements
More informationRace Catcher. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives.
Race Catcher US and International Patents Issued and Pending. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives. Whitepaper Introducing Race Catcher
More informationOptimized Scientific Computing:
Optimized Scientific Computing: Coding Efficiently for Real Computing Architectures Noah Kurinsky SASS Talk, November 11 2015 Introduction Components of a CPU Architecture Design Choices Why Is This Relevant
More informationDebugging Applications in Pervasive Computing
Debugging Applications in Pervasive Computing Larry May 1, 2006 SMA 5508; MIT 6.883 1 Outline Video of Speech Controlled Animation Survey of approaches to debugging Turning bugs into features Speech recognition
More informationCS 161 Computer Security. Security Throughout the Software Development Process
Popa & Wagner Spring 2016 CS 161 Computer Security 1/25 Security Throughout the Software Development Process Generally speaking, we should think of security is an ongoing process. For best results, it
More informationRegression testing. Whenever you find a bug. Why is this a good idea?
Regression testing Whenever you find a bug Reproduce it (before you fix it!) Store input that elicited that bug Store correct output Put into test suite Then, fix it and verify the fix Why is this a good
More informationIntegers. N = sum (b i * 2 i ) where b i = 0 or 1. This is called unsigned binary representation. i = 31. i = 0
Integers So far, we've seen how to convert numbers between bases. How do we represent particular kinds of data in a certain (32-bit) architecture? We will consider integers floating point characters What
More informationPointers and References. 8-Aug-11
Pointers and References 8-Aug-11 Machine addresses Computer memory consists of one long list of addressable bytes A pointer is a data item that contains an address 3FA71CF6 A reference is a data item that
More informationSimulink Verification and Validation
Simulink Verification and Validation Mark Walker MathWorks 7 th October 2014 2014 The MathWorks, Inc. 1 V Diagrams 3 When to Stop? A perfectly tested design would never be released Time spent on V&V is
More informationMachine Learning on Encrypted Data
Machine Learning on Encrypted Data Kim Laine Microsoft Research, Redmond WA January 5, 2017 Joint Mathematics Meetings 2017, Atlanta GA AMS-MAA Special Session on Mathematics of Cryptography Two Tracks
More informationComputer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Bits and Bytes and Numbers
Computer Science 324 Computer Architecture Mount Holyoke College Fall 2007 Topic Notes: Bits and Bytes and Numbers Number Systems Much of this is review, given the 221 prerequisite Question: how high can
More informationEE260: Logic Design, Spring n Integer multiplication. n Booth s algorithm. n Integer division. n Restoring, non-restoring
EE 260: Introduction to Digital Design Arithmetic II Yao Zheng Department of Electrical Engineering University of Hawaiʻi at Mānoa Overview n Integer multiplication n Booth s algorithm n Integer division
More information