introduction and overview summer 2014 comp 2130 introduction to computer systems computing science...

22
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

Upload: gilbert-dickerson

Post on 13-Jan-2016

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

Introduction and Overview

Summer 2014

COMP 2130 Introduction to Computer Systems

Computing ScienceThompson Rivers University

Page 2: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 2

Instructor: Mridula Sharma @ HL 407 Office hour: 1:30-2:30 @ Mon, Wed, Thurs, Fri

and by appointment E-mail: [email protected]

Prerequisites for this course: COMP 1230 with minimum ‘C’, and COMP 1380 with minimum ‘C’

This course is a prerequisite for COMP 3270 Computer Networks COMP 3410 Operating Systems

Page 3: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

Course Schedule

Span across 5th May 2-014 – 11th June 2014 Number of Lectures : 12

Each lecture has two sessions: Session I : 9:00 to 10:15 AM. Session II : 10:30 to 11:45 AM.

Number of Assignments : 4 Number of Marked Quizzes : 3 Number of Seminars : 6

Seminar 2, 4 & 6 : Marked Lab Seminar 6 – presentations

TRU-COMP327 Overview 3

Page 4: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

Marking Scheme

Assignments I – 3% II – 3% III – 3% IV – 4%

Quizes I – 3% II – 3% III – 3%

Seminars I : Paper – 2% 2 , 4 & 6: Marked Lab – 8%

Mid term Exam - 26th May 1:00 PM – 25% Final Exam – 45%

TRU-COMP2130 Overview 4

Page 5: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 5

Rise of Questions

What is a computer system? What is an operating system? Which [programming] language is most powerful?

What are the benefits to take this course “Introduction to Computer Systems”?

Most universities teach assembly languages, computer architecture and hardware components.

You are in a computing science program, and computing science is not much about the development of hardware components.

Then what?

Page 6: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 6

Objectives

Understand the fundamentals of computer architecture Experience programming through the powerful C programming

language (using GCC - GNU compiler), probably a new programming language to you

Experience programming through IA32 assembly language, another new programming language to you

Experience reliable programming through the understanding of critical relationship between programming and computer architecture

Experience efficient programming through code optimization

Why is one programming language, e.g., Java, not enough in computing science?

Page 7: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 7

Course Contents

C programming language Bit and Boolean operations Use of pointers Use of struct data structure Dynamic memory management ...

Assembly language Introduction to computer systems

The fundamentals of computer architecture How does a computer system work? How is computer architecture related to programming? Code optimization ...

Use of Linux

Page 8: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 8

Lecture

Introduction to computer systems Introduction to C programming language Data representations C: advanced topics Introduction to assembly language – IA32 (Intel Architecture 32) Compiling, linking, loading, and executing Dynamic memory management Code optimization Memory hierarchy, locality, caching Virtual memory (if time permits)

Page 9: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 9

The better knowledge of computer systems, the better programing.Computer System C Programming Language

Computer architectureCPU (Central Processing Unit)IA32 assembly language

Introduction to C language

Compiling, linking, loading, executing

Physical main memoryMMU (Memory Management Unit)

Virtual memory space

Memory hierarchyCache

Dynamic memory management

Better coding – locality

Reliable programming; Efficient programming (code optimization)

Page 10: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 10

Seminar

Use of Linux C programming exercises Exercise questions about computer architecture and programming Explanation of assignments

Page 11: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 11

Textbooks

Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, 2/E, Prentice Hall, 2011 ISBN 10: 0-13-610804-0

Kernighan and Ritchie, The C Programming Language, Prentice Hall, 1988, ISBN 10: 0-13-110362-8 or Schaum Series

Page 12: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 12

Evaluation

Quizzes 19% Programming Assignments 16% Programming Exam 25% Final test 40%

In order to pass the course, students must achieve minimum of 50% on overall quizzes & Assignments, and minimum of 50% on the mid term and final exam

Page 13: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Introduction 13

Questions?

Anything that you want to know more? Any comment? Any question?

Page 14: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 14

Overview – Why C?

Why C? Most system programs are written in C, not even C++, for fast execution. The kernels of most operating systems are written in C. A lot of projects use C.

Pros and cons Fast execution -\ Easy memory management - > Good for system programming Bit operation -/ But a bit complex concepts of pointer, type conversion and memory

allocation

How is C different from Java?

Page 15: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 15

General purpose programming language popularity index From lang-index.sourceforge.net Published at March 2012

Page 16: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 16

Programming language populatiry From langpop.com Published at April 13, 2011

Page 17: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 17

How is C different from Java?

  C Java

Procedural No class Common data: global variables Abstract data type: struct, union

Object oriented Class Common data: instance variables Abstract data type: class

Micro approach Individual utility libraries

Macro approach Utilities include language itself

Reference type variable No reference, but objects include the concept

Call by value; call by reference Call by value; call by reference for objects

Compiling One file at a time, and linking

Compiling Cross-reference

Page 18: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 18

Overview – How a Computer Works

How does a computer system look like? Model from the view of functions: von Neumann architecture

What happens when you turn on a computer system? Can a computer system understand a program written in C or Java? How does a program run in a computer system?

Similar to

Page 19: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 19

Overview – How a Computer Works

What happens when you turn on a computer? Power on, then? -> Electric signal -> CPU will start executing instructions from a particularly fixed address.

BIOS MBR OS

CPU reads one instruction from memory at a time and executes the instruction. This cycle, called instruction cycle, repeats forever.

Fetch and Execution

Page 20: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 20

Overview – How a Computer Works

Can a computer understand a program written in C or Java? How does a program run in a computer?

A program is a collection of data and codes. Compile and link

Load and execute Multi-programming?

Page 21: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 21

Overview – How a Computer Works

What hardware components do we need to run programs in a computer system?

Four major components: CPU Main memory I/O devices

Keyboard Mouse Monitor Hard disk

System buses

Page 22: Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University

TRU-COMP2130 Overview 22

Overview – How a Computer Works

User programs write data into the main memory and read data from the main memory. It is very important to protect OS codes and data stored in the main memory from user programs.

What does this mean? Why is this very important for Operating Systems? How to protect?

By using hardware supports and interrupts

The architectures of computer systems have very close relations with OSes and programs.

We will study CPU, main memory, interrupts, instructions, and ...