Presentation is loading. Please wait.

Presentation is loading. Please wait.

Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.

Similar presentations


Presentation on theme: "Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview."— Presentation transcript:

1 Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview

2 TRU-COMP2130 Introduction 2 Instructor: Mridula Sharma @ HL 407 Office hour: 12:30-1:30 @ Tue, Thurs and by appointment E-mail: msharma@tru.camsharma@tru.ca 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

3 TRU-COMP327 Overview 3 Lecture Schedule T, TR 2:30 pm - 3:45 pm - HOL 204 Laboratory Schedule Tuesdays 4:00 pm - 4:50 pm - OM 1350 Website Mridulasharma.com

4 Rise of Questions TRU-COMP2130 Introduction 4 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?

5 Objectives TRU-COMP2130 Introduction 5 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?

6 TRU-COMP2130 Introduction 6 C programming language Bit and Boolean operations Use of pointers Use of struct data structure Dynamic memory management File Handling 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

7 TRU-COMP2130 Introduction 7 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)

8 TRU-COMP2130 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

9 TRU-COMP2130 Chip LevelMachine LevelSystem Level - Digital Logic and Digital Systems - Computational Paradigms - Machine Level Representation of Data - Assembly Level Machine Organization - Introduction to C Programming Language - Basic Type Systems - Interfacing and Communication - Memory System Organization and Architecture - Code Optimization

10 Seminar TRU-COMP2130 Introduction 10 Use of Linux C programming exercises Exercise questions about computer architecture and programming Mid terms

11 Textbooks TRU-COMP2130 Introduction 11 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

12 Questions? TRU-COMP2130 Introduction 12 Anything that you want to know more? Any comment? Any question?

13 Overview – Why C? TRU-COMP2130 Overview 13 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?

14 TRU-COMP2130 Overview 14 Programming language populatiry From tiobe.com TIOBE Index for December 2014

15 Comparison TRU-COMP2130 Overview 15 How is C different from Java? CJava 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 variableNo reference, but objects include the concept Call by value; call by referenceCall by value; call by reference for objects Compiling One file at a time, and linking Compiling Cross-reference

16 Overview – How a Computer Works TRU-COMP2130 Overview 16 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

17 Overview – How a Computer Works TRU-COMP2130 Overview 17 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

18 Overview – How a Computer Works TRU-COMP2130 Overview 18 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?

19 Overview – How a Computer Works TRU-COMP2130 Overview 19 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

20 Overview – How a Computer Works TRU-COMP2130 Overview 20 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 making efficient use of programming concepts.


Download ppt "Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview."

Similar presentations


Ads by Google