introduction and overview summer 2014 comp 2130 introduction to computer systems computing science...
TRANSCRIPT
Introduction and Overview
Summer 2014
COMP 2130 Introduction to Computer Systems
Computing ScienceThompson 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
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
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
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?
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?
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
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)
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)
TRU-COMP2130 Introduction 10
Seminar
Use of Linux C programming exercises Exercise questions about computer architecture and programming Explanation of assignments
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
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
TRU-COMP2130 Introduction 13
Questions?
Anything that you want to know more? Any comment? Any question?
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?
TRU-COMP2130 Overview 15
General purpose programming language popularity index From lang-index.sourceforge.net Published at March 2012
TRU-COMP2130 Overview 16
Programming language populatiry From langpop.com Published at April 13, 2011
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
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
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
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?
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
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 ...