General information Course web page:

Slides:



Advertisements
Similar presentations
Chapter 2 Machine Language.
Advertisements

Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Systems Software.
General information Course web page: html Office hours:- Prof. Eyal.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Computing Components 01/26/11. Announcements & Reminders Programs 1 due Friday, 9/2/11 What is my late policy? Proxy Codes for Labs  You should be able.
Operating Systems Concepts Professor Rick Han Department of Computer Science University of Colorado at Boulder.
Table 1. Software Hierarchy Levels.. Essential Tools An assembler is a program that converts source-code programs into a machine language (object file).
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
Computer Organization and Assembly language
Topic 1: Introduction to Computers and Programming
Processor Types And Instruction Sets Barak Perelman CS147 Prof. Lee.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
Course: Introduction to Computers
1 Presentation on System Programming Course Code:- CM5G Subject Teacher :- Mr. Pankaj M Ughade Dept :- Computer Technology G. H. Raisoni polytechnic college,
Computer Architecture Lecture 01 Fasih ur Rehman.
Introduction COMP104: Fundamentals and Methodology.
Computer Organization
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
Computer Systems Organization CS 1428 Foundations of Computer Science.
Microprocessor Dr. Rabie A. Ramadan Al-Azhar University Lecture 2.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
Computer Architecture And Organization UNIT-II General System Architecture.
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
Development of Computers. Hardware 1. Original concept: Charles Babbage 1840’s 2. 4 basic components of a computer system: input store mill output (Now:
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
Representation of Data - Instructions Start of the lesson: Open this PowerPoint from the A451 page – Representation of Data/ Instructions How confident.
Algorithms in Programming Computer Science Principles LO
Introduction and Overview Winter 2013 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
General information Course web page: Prof. Eyal Shimony (course coordinator)‏ Prof. Eyal Shimony (course.
A computer consists of five functionally independent main parts.
INC 161 , CPE 100 Computer Programming
Computer Organization and Architecture Lecture 1 : Introduction
Topic 2: Hardware and Software
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Chapter 1: An Overview of Computers and Programming Languages
Topics Introduction Hardware and Software How Computers Store Data
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Microprocessor Systems Design I
System Programming and administration
Computer System and Programming
Review of computer processing and the basic of Operating system
Chapter 2 – Computer hardware
Lecture 1 Runtime environments.
CSCI/CMPE 3334 Systems Programming
Programming COMP104: Fundamentals and Methodology Introduction.
Operating Systems and Systems Programming
Number Representations and Basic Processor Architecture
Computer Science I CSC 135.
Assembly Language for Intel-Based Computers
Topics Introduction Hardware and Software How Computers Store Data
Ghifar Parahyangan Catholic University August 22, 2011
A primer on Computers and Programs
CMP 131 Introduction to Computer Programming
Lecture 1 – pp 1 – 44 C++ program design by Cohoon & Davidson
Introduction to Microprocessor Programming
Principles of Programming Languages
Introduction to Computer Systems
Lecture 1 Runtime environments.
The Von Neumann Machine
Course Outline for Computer Architecture
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
A Top-Level View Of Computer Function And Interconnection
Computer Architecture Assembly Language
Computer Applications -Generic Elective
ICS103 Programming in C 1: Overview of Computers And Programming
Dr. Clincy Professor of CS
Presentation transcript:

General information Course web page: http://www.cs.bgu.ac.il/~caspl142 Instructors: Prof. Eyal Shimony (course coordinator)‏ Office hours: Wed. 12-14 (for now) Building 37 (Alon High-Tech), Room 216 Prof. Ehud Gudes TAs: Tamir Grossinger, Marina Sadetsky Lab TAs: Ehud Apsel, Achiya Elyasaf, Jumana Nassour, Majid Kassis, Liat Cohen, Benny Lutati. Lior Fiegalevich, Avraham Hayoun, Daniel Zatulovsky, Mark Abashkin, Syllabus: (see web page)‏

Goals and Expectations Architecture and Assembly Language Computer organization: Basic Principles Case study: 80X86 Computer architecture: Principles Assembly and machine language HANDS ON experience: 80X86 Integration and applications SP lab Low-level systems-related programming via hands- on experience Really understanding data Learning how to RTFM

SP Lab Issues Programming in C: understanding code and data (including pointers). Binary files: data structures in files, object code, executable files (ELF). System calls: process handling, input and output. Direct system calls. Low-level issues in program developement: debugging, patching, hacking. Done through: Reasoning/exploration from basic principles. Implementation of small programs (in C). Interacting with Linux OS / systems services.

IMPORTANT Lessons At the end of the course, Only REALLY need to KNOW* two things: 1) How to RTFM 2) There is no magic** * KNOW: in "intelligent agent behaviour consistent with knowledge" meaning. ** Ref: Pug the magician

Why Bother? Why bother? All software today is in JAVA or some other HLL anyway? Essential for understanding (lower level of) COMPILERS, LINKERS, OS. Architecture has impact on performance. Writing a program for better PERFORMANCE, even in a HLL, requires understanding computer architecture. Some EMBEDDED CPUs: only assembly language available Some code (part of the OS) STILL done in assembly language. Better understanding of security aspects. Viruses and anti-viruses. Reverse engineering, hacking, and patching. Everything is data.

Role of Course in Curriculum Understanding of PHYSICAL implementations of structures from data-structures course. Can be seen as high-level of ``Digital Systems'' course. Understanding of computer operation at the subsystem level. Leads up to ``Compilers'‘ and “Operating Systems” as an ``enabling technology'‘ Compilers course - compilers use assembly language or machine code as end product. Systems programming – the programmer’s interface to the OS.

Course outline LECTURES (including SPlab (*))‏ *Introduction to course and labs (week 1)‏ Basic architecture and LOW-LEVEL programming issues. (weeks 1-7)‏ *Linux system services, shell (Week 8)‏ Assembly programming (weeks 9-10)‏ *ELF format, linking/loading (week 11)‏ Advanced LOW-LEVEL prog. (wks 12-14)‏ Intro to communication (weeks 14-15)‏ LABS: Simple C programs (weeks 1-6)‏ System calls (weeks 6-7)‏ Command interpreter (weeks 8-11)‏ Handling ELF files (weeks 12-14)‏

Programmer's View of Computing To program a computer: Write a program in a source language (e.g. C)‏ COMPILER converts program into MACHINE CODE or ASSEMBLY LANGUAGE ASSEMBLER converts program into MACHINE CODE (object code file)‏ LINKER links OBJECT CODE modules into EXECUTABLE file LOADER loads EXECUTABLE code into memory to be run Advanced issues modify simplified model: Dynamic linking/loading Virtual memory

Program Execution Basics (von-Neumann Architecture)‏ Computer executes a PROGRAM stored in MEMORY. Basic scheme is - DO FOREVER: FETCH an instruction (from memory). EXECUTE the instruction. This is the FETCH-EXECUTE cycle. More complicated in REAL machines (e.g. interrupts). FETCH EXECUTE

Block Diagram of a Computer CENTRAL PROCESSING UNIT (CPU)‏ MEMORY INPUT-OUTPUT (I/O)‏

Data Representation Basics Bit - the basic unit of information: (true/false) or (1/0) Byte - a sequence of (usually) 8 bits Word - a sequence of bits addressed as a SINGLE ENTITY by the computer (in various computers: 1, 4, 8, 9, 16, 32, 36, 60, or 64 bits per word)‏ Character 6-8 bits (ASCII), 2 bytes, etc. Instructions? BYTE 32 BIT WORD WORD HALF WORD 2 WORDS BYTE

Refined Block Diagram CONTROL 32 / ADDRESS DATA 32 MEMORY INPUT-OUTPUT CENTRAL PROCESSING UNIT (CPU)‏ MEMORY INPUT-OUTPUT (I/O)‏ CONTROL 32 / ADDRESS DATA 32 DEVICE

Basic Principles: Address Space Physical (meaningful) addresses CTRL RD/~WR ADDR / K W MEMORY DATA IN/OUT WORD 2n-1 ADDR. SPACE WORD 2K -1 PHYSICAL MEMORY ! WORD 0