Course Outline Prerequisites COMP2011 Data Organisation Stacks, queues, hash tables, lists, trees, heaps,. Introduction

Similar documents
Introduction. COMP3231/9201/3891/9283 (Extended) Operating Systems Kevin Elphinstone

Introduction. COMP3231/9201/3891/9283 (Extended) Operating Systems Kevin Elphinstone

Course Outline. Introduction. Lectures. Why does this fail? Tutorials. Assignments

Introduction. COMP3231/9201/3891/9283 (Extended) Operating Systems Kevin Elphinstone

Introduction to Operating. Chapter Chapter

Introduction to Operating Systems. Chapter Chapter

Introduction to Operating Systems. Chapter Chapter

Introduction. 1990s. UNSW/NICTA startup OK Labs Timeline. 2000s. Operating UNSW. John Lions (19 January December 1998)

Introduction. 1990s. UNSW/NICTA startup OK Labs Timeline. Operating UNSW. John Lions (19 January December 1998)

Introduction. 1990s. UNSW/NICTA startup OK Labs Timeline. 2000s. Operating UNSW. John Lions (19 January December 1998)

Introduction. COMP3231/9201/3891/9283 (Extended) Operating Systems Dr. Kevin Elphinstone Dr. Leonid Ryzhyk

Introduction. 1990s. UNSW/NICTA startup OK Labs Timeline. Operating UNSW. John Lions (19 January December 1998)

Advanced Operating Systems. COMP9242 Introduction

Staff. Advanced Operating Systems. Why are you here? What can you expect?

Computer System Overview OPERATING SYSTEM TOP-LEVEL COMPONENTS. Simplified view: Operating Systems. Slide 1. Slide /S2. Slide 2.

Lecture 1 Introduction (Chapter 1 of Textbook)

Computer System Overview

Chapter 1 Computer System Overview

Staff. Advanced Operating Systems. Why are you here? What can you expect?

Advanced Operating Systems. COMP9242 Introduction

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input.

CSC 2405: Computer Systems II

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Computer System Overview. Chapter 1

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13

Introduction. CS3026 Operating Systems Lecture 01

Chapter 2. OS Overview

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Operating Systems Overview. Chapter 2

Introduction to OS. Introduction MOS Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1

CPSC 341 OS & Networks. Introduction. Dr. Yingwu Zhu

Computer System Overview

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

CS450/550 Operating Systems

COURSE OVERVIEW & OPERATING SYSTEMS CONCEPT Operating Systems Design Euiseong Seo

Introduction to Computer Systems

Principles of Operating Systems CS 446/646

CSC 369H1S. Operating Systems Spring 2007 Professor Angela Demke Brown U of T

Introduction to System Programming

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

Systems Architecture II

Introduction to Computer Systems and Operating Systems

CS370 Operating Systems

Computer System Overview

Four Components of a Computer System

Chapter Seven Morgan Kaufmann Publishers

7/20/2008. What Operating Systems Do Computer-System Organization

Introduction to Operating Systems

Anne Bracy CS 3410 Computer Science Cornell University

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals

Operating System: an Overview. Lucia Dwi Krisnawati, MA

CS370 Operating Systems

CSCE Introduction to Computer Systems Spring 2019

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

Architecture and OS. To do. q Architecture impact on OS q OS impact on architecture q Next time: OS components and structure

Chapter 9: Virtual Memory

ELEC 377 Operating Systems. Week 1 Class 2

Operating Systems. Lecture Course in Autumn Term 2015 University of Birmingham. Eike Ritter. September 22, 2015

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications

Page 1. Review: Address Segmentation " Review: Address Segmentation " Review: Address Segmentation "

EECS 678: Introduction to Operating Systems. Heechul Yun

Q.1 Explain Computer s Basic Elements

Handout 4 Memory Hierarchy

Misc. Third Generation Batch Multiprogramming. Fourth Generation Time Sharing. Last Time Evolution of OSs

Operating Systems CS 571

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

Chapter 8: Virtual Memory. Operating System Concepts Essentials 2 nd Edition

SMD149 - Operating Systems

Operating System. Operating System Overview. Layers of Computer System. Operating System Objectives. Services Provided by the Operating System

Operating System Overview. Operating System

Generic Model of I/O Module Interface to CPU and Memory Interface to one or more peripherals

Roland Parviainen Phone: Office:? Web:

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

Andrew S. Tanenbaum, Operating Systems, Design and Implementation, (Second Edition), Prentice Hall.

Operating Systems. Minati De. Lecture 1: Introduction. Department of Mathematics, Indian Institute of Technology Delhi, India.

Chapter 1: Introduction

Chapter 1: Introduction

Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - II OS Structures. University at Buffalo. OS Design and Implementation

OS Design Approaches. Roadmap. System Calls. Tevfik Koşar. Operating System Design and Implementation. CSE 421/521 - Operating Systems Fall 2013

Lecture 2 - Fundamental Concepts

Performance! (1/latency)! 1000! 100! 10! Capacity Access Time Cost. CPU Registers 100s Bytes <10s ns. Cache K Bytes ns 1-0.

Chapter 8: Virtual Memory. Operating System Concepts

Input / Output. School of Computer Science G51CSA

18-447: Computer Architecture Lecture 16: Virtual Memory

CS370 Operating Systems

Operating Systems: Internals and Design Principles, 7/E William Stallings. Chapter 1 Computer System Overview

Architectural Support for Operating Systems

Architectural Support for Operating Systems

Unit 2 : Computer and Operating System Structure

CS370 Operating Systems

Basic Concepts COE 205. Computer Organization and Assembly Language Dr. Aiman El-Maleh

GUJARAT TECHNOLOGICAL UNIVERSITY MASTER OF COMPUTER APPLICATION SEMESTER: III

Lecture 2: September 9

Background: Operating Systems

LECTURE 4: LARGE AND FAST: EXPLOITING MEMORY HIERARCHY

Transcription:

Introduction COMP3231/9201/3891/9283 (Extended) Operating Systems Kevin Elphinstone Course Outline Prerequisites COMP2011 Data Organisation Stacks, queues, hash tables, lists, trees, heaps,. COMP2121 Microprocessor and Interfacing Assembly programming Mapping of high-level procedural language to assembly language or the postgraduate equivalent You are expected to be competent programmers!!!! We will be using the C programming language The dominant language for OS implementation. Need to understand pointers, pointer arithmetic, explicit memory allocation. 2 Why does this fail? void func(int *x, int *y) { *x = 1; *y = 2; } void main() { int *a, *b; func(a,b); printf( %d %d\n,*a,*b); Lectures Common for all courses (3231/3891/9201/9283) Tuesday, 2-4pm Wednesday, 1-2pm All lectures are here (Central Lecture Block 2 (K-E19-G03)) The lecture notes will be available on the course web site Available prior to lectures, when possible. Slide numbers for note taking The lecture notes and textbook are NOT a substitute for attending lectures. } 3 4 Tutorials Start in week 2 A tutorial participation mark will contribute to your final assessment. Participation means participation, NOT attendance. Comp3891/9283 students excluded Comp9201 optional You will only get participation marks in your enrolled tutorial. 5 Assignments Assignments form a substantial component of your assessment. They are challenging!!!! Because operating systems are challenging We will be using OS/161, an educational operating system developed by the Systems Group At Harvard It contains roughly 20,000 lines of code and comments 6 1

Assignments Don t under estimate the time needed to do the assignments. If you start a couple days before they are due, you will be late. To encourage you to start early, Bonus 10% of max mark of the assignment for finishing a week early To iron out any potential problems with the spec, 5% bonus for finishing within 48 hours of assignment release. See course handout for exact details Read the fine print!!!! Assignments Assignments are in pairs Info on how to pair up available soon We usually offer advanced versions of the assignments Available bonus marks are small compared to amount of effort required. Student should do it for the challenge, not the marks. Attempting the advanced component is not a valid excuse for failure to complete the normal component of the assignment Extended OS students (COMP3891/9283) are expected to attempt the advanced assignments 7 8 Four assignments Assignments due roughly week 4,5, 9,13 The first one is trivial It s a warm up to have you familiarize yourself with the environment and easy marks. Do not use it as a gauge for judging the difficulty of the following assignments. Late penalty Assignments 4% of total assignment value per day Assignment is worth 20% You get 18, and are 2 days late Final mark = 18 (20*0.04*2) = 16 (16.4) Assignments are only accepted up to one week late. 8+ days = 0 9 10 Assignments To help you with the assignments We dedicate a tutorial per-assignment to discuss issues related to the assignment Prepare for them!!!!! Plagiarism We take cheating seriously!!! We systematically check for plagiarised code Penalties are generally sufficient to make it difficult to pass 11 12 2

Cheating Statistics Exams Session 1998/S1 1999/S1 2000/S1 2001/S1 2001/S2 2002/S1 2002/S2 2003/S1 2003/S2 enrolment 178 410 320 300 107 298 156 333 133 suspected cheaters 10(6%) 26(6%) 22(7%) 26(9%) 20(19%) 15(5%)???(?%) 13 (4%)???(?%) full penalties * 2 6 * 9 * 14 * 10 9 5 2 1 reduced penalties 7 15 7 7 5 4 2 2 9 cheaters failed 4 10 16 16 10 12 5 4? cheaters suspended 0 0 1 0 0 1 0 0 0 There is NO mid-session The final written exam is 2 hours Supplementary exams are oral. Supplementaries are available according to school policy, not as a second chance. *Note: Full penalty 0 FL not applied prior to 2001/S1 13 14 Assessment 3891/9283 Exam Mark Component Max mark of 100 Based solely on the final exam Class Mark Component Max mark of 100 10% tutorial participation 90% Assignments No tutorial participation component Assignment marks scaled to 100 15 16 9201 Undergrad Assessment Optional tutorial participation, we ll award the better mark of Tutorial participation included as for comp3231 Class marked based solely on the assignments 17 The final assessment is the harmonic mean of the exam and class component. If E >= 40, EC M = 2 E+ C 18 3

Postgrads (9201/9283) Maximum of a 50/50 weighted harmonic mean and a 20/80 harmonic mean Can weight final mark heavily on exam if you can t commit the time to the assignments You are rewarded for seriously attempting the assignments if E >= 40, M =max ( ) 2EC E+C, 5EC E+4C If E < 40 Assessment 2EC M = min 44, E+ C 19 20 Harmonic Mean (Class Mark = 100 - Exam Mark) Final M ark = 50 100 100 90 90 Final Mark 80 70 60 50 40 30 20 Harm 50/50 Arith 50/50 Arith 20/80 Harm 20/80 Exam Mark Required to Pass 80 70 60 50 40 30 20 Harm 50/50 Harm 20/80 10 10 0 0 10 20 30 40 50 60 70 80 90 100 0 0 10 20 30 40 50 60 70 80 90 100 Exam Mark Class Mark 21 22 Assessment You need to perform reasonably consistently in both exam and class components. Harmonic mean only has significant effect with significant variation. Reserve the right to scale, and scale courses individually if required. Warning: We have not scaled in the past. Textbook Andrew Tanenbaum, Modern Operating Systems, 2 nd Edition, Prentice Hall 26 27 4

References Consultations/Questions A. Silberschatz and P.B. Galvin, Operating System Concepts, 5 th, 6 th, or 7 th edition, Addison Wesley William Stallings, Operating Systems: Internals and Design Principles, 4th or 5 th edition, Prentice Hall. A. Tannenbaum, A. Woodhull, Operating Systems--Design and Implementation, 2 nd edition Prentice Hall John O'Gorman, Operating Systems, MacMillan, 2000 Uresh Vahalla, UNIX Internals: The New Frontiers, Prentice Hall, 1996 McKusick et al., The Design and Implementation of the 4.4 BSD Operating System, Addison Wesley, 1996 Questions should be directed to the forum. Admin related queries to Nicholas Fitzroy-Dale nfd@cse.unsw.edu.au Personal queries can be directed to me kevine@cse.unsw.edu.au We reserve the right to ignore email sent directly to us (including tutors) if it should have been directed to the forum. Consultation Times TBA 28 29 Course Outline the course aims to educate students in the basic concepts and components of operating systems, the relevant characteristics of hardware, and the tradeoffs between conflicting objectives faced by operating systems in efficiently supporting a wide range of applications. Course Outline Processes and threads Concurrency control Memory Management File Systems I/O and Devices Security Scheduling 30 31 Learning Outcomes Introduction to Operating Systems Chapter 1 1.3 High-level understand what is an operating system and the role it plays Appreciate the evolution of operating systems tracks the evolution of hardware, and that evolution is repeated in each new hardware era. 33 5

What is an Operating System? 34 35 Viewing the Operating System as an Abstract Machine Extends the basic hardware with added functionality Provides high-level abstractions More programmer friendly Common core for all applications It hides the details of the hardware Makes application code portable Disk Memory CPU Network Bandwidth Users 36 37 Viewing the Operating System as a Resource Manager Responsible for allocating resources to users and processes Must ensure No Starvation Progress Allocation is according to some desired policy First-come, first-served; Fair share; Weighted fair share; limits (quotas), etc Overall, that the system is efficiently used Dated View: the Operating System as the Privileged Component Privileged Mode User Mode Requests (System Calls) Operating System Applications Applications Applications 38 39 6

The Operating System is Privileged Applications should not be able to interfere or bypass the operating system OS can enforce the extended machine OS can enforce its resource allocation policies Prevent applications from interfering with each other Note: Some Embedded OSs have no privileged component, e.g. PalmOS Can implement OS functionality, but cannot enforce it. Note: Some operating systems implement significant OS functionality in user-mode, e.g. User-mode Linux 40 Why Study Operating Systems? There are many interesting problems in operating systems. For a complete, top-to-bottom view of a system. Understand performance implications of application behaviour. Understanding and programming large, complex, software systems is a good skill to acquire. 41 (A brief) Operating System History Largely parallels hardware development First Generation machines Vacuum tubes Plug boards Programming via wiring Users were simultaneously designers, engineers, and programmers single user difficult to debug (hardware) No Operating System 42 Second Generation Machines Batch Systems IBM 7094 0.35 MIPS, 32K x 36-bit memory 3.5 million dollars Batching used to more efficiently use the hardware Share machine amongst many users One at a time Debugging a pain Drink coffee until jobs finished 43 Batch System Operating Systems Sometimes called resident job monitor Managed the Hardware Simple Job Control Language (JCL) Load compiler Compile job Run job End job No resource allocation issues Issue: Keeping Batch Systems Busy Reading tapes or punch cards was time consuming Expensive CPU was idle waiting for input one user 44 45 7

Third Generation Systems - Multiprogramming Divided memory among several loaded jobs While one job is loading, CPU works on another With enough jobs, CPU 100% busy Needs special hardware to isolate memory partitions from each other This hardware was notably absent on early batch systems Memory Job 1 Job 2 Job 3 OS Multiprogramming Example 46 47 Job turn-around time was still an issue. Time sharing Batch systems were well suited to Scientific calculations Data processing For programmers, debugging was much easier on older first gen. machines as the programmer had the machine to himself. Word processing on a batch system? 48 Each user had his/her own terminal connected to the machine All user s jobs were multiprogrammed Regularly switch between each job Do it fast Gives the illusion that the programmer has the machine to himself Early examples: Compatible Time Sharing System (CTSS), MULTICS 49 An then A little history tour Further developments (hardware and software) resulted in improved techniques, concepts, and operating systems.. CAP, Hydra, Mach, UNIX V6, BSD UNIX, THE, Thoth, Sprite, Accent, UNIX SysV, Linux, EROS, KeyKOS, OS/360, VMS, HPUX, Apollo Domain, Nemesis, L3, L4, CP/M, DOS, Exo-kernel, Angel, Mungi, BE OS, Cache Kernel, Choices, V, Inferno, Grasshopper, MOSIX, Opal, SPIN, VINO, OS9, Plan/9, QNX, Synthetix, Tornado, x-kernel, VxWorks, Solaris. 50 51 8

The Advent of the PC Operating System Time Line Large Scale Integration (LSI) made small, fast(-ish), cheap computers possible OSs followed a similar path as with the mainframes Simple single-user systems (DOS) Multiprogramming without protection, (80286 era, Window 3.1, 95, 98, ME, etc, MacOS <= 9) Real operating systems (UNIX, WinNT, MacOS X etc..) 52 53 Learning Outcomes Computer Hardware Review Chapter 1.4 Understand the basic components of computer hardware CPU, buses, memory, devices controllers, DMA, Interrupts, hard disks Understand the concepts of memory hierarchy and caching, and how they affect performance. 55 Operating Systems Basic Computer Elements Exploit the hardware available Provide a set of high-level services that represent or are implemented by the hardware. Manages the hardware reliably and efficiently Understanding operating systems requires a basic understanding of the underlying hardware 56 57 9

Basic Computer Elements CPU Performs computations Load data to/from memory via system bus Device controllers Control operation of their particular device Operate in parallel with CPU Can also load/store to memory (Direct Memory Access, DMA) Control register appear as memory locations to CPU Or I/O ports Signal the CPU with interrupts Memory Controller Responsible for refreshing dynamic RAM Arbitrating access between different devices and CPU The real world is logically similar, but a little more complex 58 59 A Simple Model of CPU Computation The fetch-execute cycle 60 A Simple Model of CPU Computation Stack Pointer Status Register Condition codes Positive result Zero result Negative result General Purpose Registers Holds operands of most instructions Enables programmers to minimise memory references. CPU Registers PC: 0x0300 SP: 0xcbf3 Status R1 Rn 61 A Simple Model of CPU Computation The fetch-execute cycle Load memory contents from address in program counter (PC) The instruction Execute the instruction Increment PC Repeat CPU Registers PC: 0x0300 SP: 0xcbf3 Status R1 Rn 62 Privileged-mode Operation To protect operating system execution, two or more CPU modes of operation exist Privileged mode (system-, kernel-mode) All instructions and registers are available User-mode Uses safe subset of the instruction set E.g. no disable interrupts instruction Only safe registers are accessible CPU Registers Interrupt Mask Exception Type MMU regs Others PC: 0x0300 SP: 0xcbf3 Status R1 Rn 63 10

Safe registers and instructions Registers and instructions are safe if Only affect the state of the application itself They cannot be used to uncontrollably interfere with The operating system Other applications They cannot be used to violate a correctly implemented operating system policy. 64 Privileged-mode Operation The accessibility of addresses within an address space changes depending on operating mode To protect kernel code and data 0xFFFFFFFF 0x80000000 0x00000000 Address Space Accessible only to Kernel-mode Accessible to User- and Kernel-mode 65 I/O and Interrupts I/O events (keyboard, mouse, incoming network packets) happen at unpredictable times How does the CPU know when to service an I/O event? Interrupts An interruption of the normal sequence of execution A suspension of processing caused by an event external to that processing, and performed in such a way that the processing can be resumed. Improves processing efficiency Allows the processor to execute other instructions while an I/O operation is in progress Avoids unnecessary completion checking (polling) 66 67 Interrupt Cycle Classes of Interrupts Processor checks for interrupts If no interrupts, fetch the next instruction If an interrupt is pending, divert to the interrupt handler 68 Program exceptions (also called synchronous interrupts) Arithmetic overflow Division by zero Executing an illegal/privileged instruction Reference outside user s memory space. Asynchronous (external) events Timer I/O Hardware or power failure 69 11

Interrupt Handler Simple Interrupt A software routine that determines the nature of the interrupt and performs whatever actions are needed. Control is transferred to the handler by hardware. The handler is generally part of the operating system. 70 User Mode Kernel Mode Interrupt Return from Int Application Interrupt Handler 71 Simple Interrupt Processing Device controller issues an interrupt Processor finishes current instruction and changes to kernel mode Processor masks interrupts and transfers flow of control (new PC) Kernel SP loaded user SP & PC pushed on kernel stack Hardware User state is restored Interrupt is processed including acknowledging the interrupt at the device level Remainder of user state is saved Software User SP & PC loaded from kernel stack Processor unmasks interrupts and returns to user mode. Hardware 72 Programmed I/O Also called polling, or busy waiting I/O module (controller) performs the action, not the processor Sets appropriate bits in the I/O status register No interrupts occur Processor checks status until operation is complete Wastes CPU cycles 75 Interrupt-Driven I/O Processor is interrupted when I/O module (controller) ready to exchange data Processor is free to do other work No needless waiting Consumes a lot of processor time because every word read or written passes through the processor 76 Direct memory access (DMA) I/O exchanges occur directly with memory Processor directs I/O controller to read/write to memory Relieves the processor of the responsibility for data transfer Processor free to do other things An interrupt is sent when the task is complete 77 12

Multiprogramming (Multitasking) Processor has more that one program to execute. Some tasks waiting for I/O to complete Some tasks ready to run, but not running Interrupt handler can switch to other tasks when they become runnable Regular timer interrupts can be used for timesharing 78 Memory Hierarchy Going down the hierarchy Decreasing cost per bit Increasing capacity Increasing access time Decreasing frequency of access to the memory by the processor Hopefully Principle of locality!!!!! 79 Memory Hierarchy Rough approximation of memory hierarchy CPU Registers Word Transfer Cache Cache Block Transfer Main Memory Cache is fast memory placed between the CPU and main memory 1 to a few cycles access time compared to RAM access time of tens hundreds of cycles Holds recently used data or instructions to save memory accesses. Matches slow RAM access time to CPU speed if high hit rate Is hardware maintained and (mostly) transparent to software Sizes range from few kb to several MB. Usually a hierarchy of caches (2 5 levels), on- and off-chip. Block transfers can achieve higher transfer bandwidth than single words. Also assumes probability of using newly fetch data is higher than the probability of reuse ejected data. 80 81 Processor-DRAM Gap (latency) Cache size affect on performance Performance 1000 100 10 1 Moore s Law DRAM 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 CPU µproc 60%/yr. Processor-Memory Performance Gap: (grows 50% / year) DRAM 7%/yr. Time 82 Slide originally from Dave Patterson, Parcon 98 83 13

Moving-Head Disk Mechanism Example Disk Access Times 84 Disk can read/write data relatively fast 15,000 rpm drive - 80 MB/sec 1 KB block is read in 12 microseconds Access time dominated by time to locate the head over data Rotational latency Half one rotation is 2 milliseconds Seek time Full inside to outside is 8 milliseconds Track to track.5 milliseconds 2 milliseconds is 164KB in lost bandwidth 85 A Strategy: Avoid Waiting for Disk Access Keep a subset of the disk s data in memory Main memory acts as a cache of disk contents Two-level Memories and Hit Rates Given a two-level memory, cache memory and main memory (RAM) main memory and disk what is the effective access time? Answer: It depends on the hit rate in the first level. 86 87 Effective Access Time T eff =H T 1 +(1 H) (T 1 +T 2 ) T 1 = accesstime ofmemory 1 T 2 = accesstime ofmemory 2 H = hitrate in memory 1 T eff = effectiveaccesstime ofsystem Example Cache memory access time 1ns Main memory access time 10ns Hit rate of 95% T eff = 0.95 1 10 9 + 0.05 (1 10 9 +10 10 9 ) = 1.5 10 9 88 89 14