CSC 2400 Computer Systems Week 1 Goals and

  • Slides: 25
Download presentation
CSC 2400: Computer Systems Week 1 – Goals and Introduction Prof. Michael Robson

CSC 2400: Computer Systems Week 1 – Goals and Introduction Prof. Michael Robson

Outline q Syllabus q Introductions q Background survey q What is a computer system?

Outline q Syllabus q Introductions q Background survey q What is a computer system?

Syllabus www. csc. villanova. edu/~mprobson/courses/csc 2400/

Syllabus www. csc. villanova. edu/~mprobson/courses/csc 2400/

Syllabus Questions q Find a partner (or two) q Review the syllabus q Find

Syllabus Questions q Find a partner (or two) q Review the syllabus q Find three (or more) questions about the course - What’s on the syllabus - What’s not on the syllabus

Academic Integrity Code Collaboration is encouraged in this course while exploring the path to

Academic Integrity Code Collaboration is encouraged in this course while exploring the path to a solution. However, when the time comes to write the solution, discussions and references to Internet resources are no longer appropriate. All submitted work must be your own, as per Villanova’s academic integrity code (excerpt here): “Anyone who hands in work that is not his or her own, or who cheats on a test, or plagiarizes a paper, is not learning, is receiving credit dishonestly and is, in effect, stealing from other students. As a consequence, it is crucial that students do their own work. Students who use someone else's work or ideas without saying so, or who otherwise perform dishonestly in a course, are cheating. ”

Introductions

Introductions

Background Survey

Background Survey

CSC 2400 Survey q Familiar with Unix - Yes or No q Familiar with

CSC 2400 Survey q Familiar with Unix - Yes or No q Familiar with C++ - Yes or No q Can compute the sum of all integers from 1 to 100 - Yes or No q Comformtable convering from binary to decimal - Yes or No

What is a computer system?

What is a computer system?

BIG Questions q What is a computer? q What is a computer system? q

BIG Questions q What is a computer? q What is a computer system? q What do computers do? q How do they do it? q Are computers intelligent? q What will computers be like in the future?

What is a Computer? Do a survey on campus Numerous “correct” answers q Oxford

What is a Computer? Do a survey on campus Numerous “correct” answers q Oxford dictionary: - an electronic device for storing and processing data, typically in binary form, according to instructions given to it in a variable program q Cambridge dictionary: - an electronic device that can store large amounts of information and be given sets of instructions to organize and change it very quickly

What Do Computers Do? Computers Execute Instructions. That’s all!

What Do Computers Do? Computers Execute Instructions. That’s all!

What Kind of Instructions? Strictly speaking, computers only understand machine language (binary machine code).

What Kind of Instructions? Strictly speaking, computers only understand machine language (binary machine code). 00101100100101100101110100101100010111010010110010010110010010110010111010010110001011101001011010010110010010110010111010010110001011101 Data plus Instructions

Compilation Stages count = 0; while (n > 1) { count++; if (n &

Compilation Stages count = 0; while (n > 1) { count++; if (n & 1) n = n*3 + 1; else n = n/2; } . loop: . else: High level language mov ECX, 0 0000000000000000 cmp jle add mov and je mov add add jmp EDX, 1. endloop ECX, 1 EAX, EDX EAX, 1. else EAX, EDX, EAX EDX, 1. endif 0110001101010111 sar. endif: jmp. endloop: 0000000000000000 0010101110101101000111011101 0010111010011100 1101001000111100 1101000001111101001110101001 1101000011111110 1101000101000010 EDX, 1. loop Assembly language Machine language

Building and Running • To build an executable $ gcc program. c –o xprogram

Building and Running • To build an executable $ gcc program. c –o xprogram • Result o. Complete executable binary file o. Machine language 1001011101001011000101110100101100100 1011010010111010010110001011101001011 00100101100101110100101100010111010 01011001001011001011101001011000101 11010010110010010110100 • To run: $. /xprogram

How Do Computers Do It? q You’ve got to know assembly q Chances are,

How Do Computers Do It? q You’ve got to know assembly q Chances are, you’ll never write in assembly - Compilers are much better & more patient than we are q Understanding assembly is key to understanding how computers work - Behavior of programs in presence of bugs - Tuning program performance

What is a Computer System? q Wikipedia: - the combination of hardware and software

What is a Computer System? q Wikipedia: - the combination of hardware and software which forms a complete, working computer q Cambridge dictionary: - a complete computer including the operating system (=main software) and equipment that makes it work

Computer System q Computer system = hardware + system software q Computer systems hardware

Computer System q Computer system = hardware + system software q Computer systems hardware is comprised of 5 basic elements, as described by the Von Neumann architecture model (1945): CPU

A Typical Computer System • One or more CPUs • Device controllers connect through

A Typical Computer System • One or more CPUs • Device controllers connect through common bus • Shared access to main memory Managing all these components requires a layer of software: the operating system

Operating System Runs Things Web Browser Music Player User Programs System Calls Operating System

Operating System Runs Things Web Browser Music Player User Programs System Calls Operating System (OS) HARDWARE q Users and programs can’t directly access the hardware - OS provides a simpler, more powerful interface - OS services can be accessed via system calls

Major Course Goal q GOAL: Understand how computers work - Look under the hood

Major Course Goal q GOAL: Understand how computers work - Look under the hood - Language tour: High-level language (C) → assembly language - q → machine language (IA-32) Service tour: application → Linux operating system Byproduct: “Programming in the large” - Become better programmers

Course Feature: C q Why C instead of Java? q C supports our goal

Course Feature: C q Why C instead of Java? q C supports our goal better - C is a lower-level language (closer to assembly) - Linux is written in C

Course Feature: Linux q Why Linux instead of Microsoft Windows? q Linux is good

Course Feature: Linux q Why Linux instead of Microsoft Windows? q Linux is good for education and research - open-source and well-specified q Linux is good for programming - Linux (which is a variant of Unix) has GNU, a rich opensource programming environment Linux == Unix for our purposes

Programming Environment • Linux machines felix. csc. villanova. edu, helix. csc. villanova. edu •

Programming Environment • Linux machines felix. csc. villanova. edu, helix. csc. villanova. edu • Unix machines csgate. csc. villanova. edu, tanner. csc. villanova. edu Network File System SSH tanner csgate SSH helix felix Any lab, or your own PC/Mac/Linux Computer SSH

Getting Started q Check out course web site now http: //www. csc. villanova. edu/~mprobson/courses/csc

Getting Started q Check out course web site now http: //www. csc. villanova. edu/~mprobson/courses/csc 2400/ q Subscribe to the zy. Book – Programming in C - Instructions in the syllabus q First assignment posted online