Computer Systems and Networks. ECPE 170 University of the Pacific

Similar documents
Computer Architecture. Fall Dongkun Shin, SKKU

Computer Organization & Assembly Language Programming (CSE 2312)

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I

Introduction to Data Structures

EECS 678: Introduction to Operating Systems. Heechul Yun

CS 326: Operating Systems. Lecture 1

CS240: Programming in C

COSC 115A: Introduction to Web Authoring Fall 2014

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design

CIS 086 : Week 1. Web Development with PHP and MySQL

Introduction to ASIC Design

ESET 349 Microcontroller Architecture, Fall 2018

ENCM 501 Winter 2017 Assignment 3 for the Week of January 30

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck)

CSC 170 Introduction to Computers and Their Applications. Computers

Operating Systems Concepts. CMPUT 379, Winter 2014 Section B1

COSC 115: Introduction to Web Authoring Fall 2013

Course Syllabus. NTM 2415 Cisco TCP/IP Routing Protocols & Router Configuration Cisco Networking Academy Cisco Semesters 1 & 2 Online Spring 2015

ECE 250 / CPS 250 Computer Architecture. Introduction

US Technology Informational Meeting

Introduction CPS343. Spring Parallel and High Performance Computing. CPS343 (Parallel and HPC) Introduction Spring / 29

IT 280 Study Guide Winter Don Colton Brigham Young University Hawai i

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software.

Intro to Computer Science. Introductory Class

ENCM 501 Winter 2015 Assignment 3 for the Week of February 2

CMPE 152 Compiler Design

CSc 2310 Principles of Programming (Java) Jyoti Islam

Slide Set 8. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

Instructors. ECE 152 Introduction to Computer Architecture. Undergrad Teaching Assistants. Course Website. Textbook.

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

CS 2630 Computer Organization. What did we accomplish in 8 weeks? Brandon Myers University of Iowa

CompTIA A Exam 2 (Course & Labs) Course Outline. CompTIA A Exam 2 (Course & Labs) 05 Oct

Resource Virtualization and the Enterprise

Class Hours: Saturday Monday Address: 9000 Overland Ave., Culver City, CA :00 p.m. 4:15 p.m. Location: Building and room number

Syllabus of ENPM 691: Secure Programming in C

Four Components of a Computer System

EE 109 Unit 12 Computer Organization

iphone Development Setup Instructions Nikhil Yadav Pervasive Health Fall 2011

CSE 333 Lecture 1 - Systems programming

Spring Modern Computer Science in a Unix Like Environment CIS c

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

Contents Slide Set 9. Final Notes on Textbook Chapter 7. Outline of Slide Set 9. More about skipped sections in Chapter 7. Outline of Slide Set 9

ECPE / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Android Forensics: Investigation, Analysis And Mobile Security For Google Android PDF

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CSci Introduction to Operating Systems. Administrivia, Intro

Syllabus -- CIS Computer Maintenance / A+ Certification

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

Introduction to Computer Systems

Computer Architecture. Introduction. Lynn Choi Korea University

Instructor. ECE 152 Introduction to Computer Architecture. Course Website. Undergrad Teaching Assistants

Wake Technical Community College Computer Technologies Division Syllabus

ENCM 339 Fall 2017: Editing and Running Programs in the Lab

Basic Concepts COE 205. Computer Organization and Assembly Language Dr. Aiman El-Maleh

CS 2630 Computer Organization. What did we accomplish in 15 weeks? Brandon Myers University of Iowa

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

CS 241 Data Organization using C

IT 220 Course Notes. Don Colton Brigham Young University Hawaii

CMPE 152 Compiler Design

Programming. Introduction to the course

Developing Applications for ios

Advanced Programming Concepts. CIS 15 : Spring 2007

Agenda. Old School CS61c. Agenda. New School CS61c 8/26/10. CS 61C: Great Ideas in Computer Architecture (Machine Structures)

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

Course Outline. Pearson: CompTIA A Cert Guide (Course & Labs) Pearson: CompTIA A Cert Guide (Course & Labs)

CELLSENSE-AN ACCURATE GSM POSITIONING SYSTEM BASED ON ANDROID

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

Course Outline. Pearson: CompTIA A Cert Guide (Course & Labs) Pearson: CompTIA A Cert Guide (Course & Labs)

Instructors: Randy H. Katz David A. PaHerson hhp://inst.eecs.berkeley.edu/~cs61c/fa10. Fall Lecture #1. Agenda

Scientific Computing: Lecture 1

IT Quick Reference Guides How to Find Your MAC Address

Topic 1: Introduction

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

CSE 141: Computer Architecture. Professor: Michael Taylor. UCSD Department of Computer Science & Engineering

INF 315E Introduction to Databases School of Information Fall 2015

Unit 4 Part A Evaluating & Purchasing a Computer. Computer Applications

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

Linux and scripting. Fontys Venlo Software Engineering series LINUX. Ir. Pieter van den Hombergh

IT 252 Computer Organization and Architecture. Introduction. Chia-Chi Teng

CE 435 Embedded Systems Spring 2018

Overview of the ECE Computer Software Curriculum. David O Hallaron Associate Professor of ECE and CS Carnegie Mellon University

EECE 321: Computer Organization

EECS 678: Introduction to Operating Systems. Heechul Yun

CS-3410 Systems Programming Spring 2013

Word Intermediate ( ) Independent Study

Object-Oriented Programming Fall Robert Grimm, New York University

Exam4 Reminders & Frequently Asked Questions

CPSC 427a: Object-Oriented Programming

Introduction to Parallel Computing

Programming Languages and Techniques (CIS120)

LO CompTIA A+ : (Exam ) Course Outline Sep 2018

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Welcome to! 4DN4! Advanced Internet Communications"

EE 109 Unit 12 Computer Organization. A Few Big Ideas 1. A Few Big Ideas 2 A BRIEF SUMMARY. Clocking or enables are necessary to say

CS 3030 Scripting Languages Syllabus

Transcription:

ECPE 170 University of the Pacific Introduction

2 A Modern Computer

3 Applications

4 Application Angry Birds Written in a high level language (Objective C) What resources does Angry Birds need to run? (i.e. what does the Angry Birds executable file need to execute?) Hardware Processor(s) Run program, display graphics, Memory Store programs, store data I/O Touch screen, storage, network, 3 axis gyro, Software Operating system

5 Software Operating System Apple ios Used in ipads, iphones, ipods, Apple TV Variant of Mac OS X operating system used on traditional i Macs What are some jobs of this operating system? Manage hardware Manage applications (multitasking) Written in high level languages C, C++, Objective C (varies by component) Can we run this code directly on the processor?

6 Software Compilers / Interpreters t These are programs that build other programs! Goal: Convert high level languages into machine code that can be directly executed by hardware Examples Apple Xcode Microsoft Visual Studio What s the difference between a compiler and interpreter?

7 Hardware http://www.ifixit.com/teardown/ipad 3 4G Teardown/8277/1

8 Hardware Touchscreen controller RAM Touchscreen controller Wi Fi / Bluetooth Power management Touchscreen controller A5X Processor Power management Flash memory 3G / 4G Modem

9 ipad 3 Processor Apple A5X Processor Clock speed 1GHz Quad core 1GB RAM What do these mean? What does a processor do? Executes machine language instructions Machine language? How does the processor execute the instructions?

10 Microarchitecture t

11 How Does It Work? Apple won t tell us trade secret! Experts can dissolve (with acid), burn, or grind off outer protective layers of chip and then peer inside: Need a really good microscope! Reverse Engineering gin the Semiconductor Industry: http://www.scribd.com/doc/53 742174/Reverse Engineering

12 Can see this level of detail with your own eyes Divided into logic blocks with different functions: Processor Cache memory Memory Controller Video (GPU)

13 SEM Cross Section of Apple A5

14 Digital it Logic Memory cell Transistor

15 Transistors You can still make assumptions at this level that the transistor is either on (1) or off (0) But below this are analog circuits

16 The Computer Level Hierarchy User Level High Level Language Assembly Level 6: The User Level Angry Birds Program execution and user interface level Level 5: High Level Language Level Objective C Programming languages like C++, Java, Python, Level 4: Assembly Language Level ARM Assembly Program directly at this level, l or Use a compiler/interpreter to process/convert highlevel code

17 The Computer Level Hierarchy User Level High Level Language Assembly System Machine Level 3: System Software Level ios Controls active programs and manages system resources Assembly language instructions often pass through Level 3 without modification Level 2: Machine Level Instruction Set Architecture (ISA) Level Instructions are particular to the architecture of the specific machine (i.e. Intel processors, ARM processors, IBM processors )

18 The Computer Level Hierarchy User Level High Level Language Assembly These levels are too hardware oriented for ECPE 170 Level 1: Control Level Decodes and executes instructions i and moves data through the system ECPE 173 Computer Organization & Architecture System Level 0: Digital Logic Level Digital circuits, gates and wires implement the mathematical logic of all other levels Machine g, g p Control Digital Logic ECPE 71 Digital Design ECPE 174 AdvancedDigital Design

19 Course Overview

20 Motivating Question What do you, as a programmer, need to know about the underlying system (software and hardware) to write more efficient code? Role of the tools Compiler, assembler, linker, profiler Role of the operating system and its efficient usage Assembly programming (using the CPU efficiently) Memory hierarchy and its impact on performance

21 Course Goals Present a complete view of how computer systems are constructed From the CPU assembly programming level to the user application level Understand the relationship between computer software and hardware Lay the foundation for future courses Advanced digital design / VLSI Operating systems Computer networking Application development

22 C Programming Language Why not Python, Java, Ruby, Perl, PHP,? High level languages (especially interpreted, managed code ) )try to hide the underlying machine from you ECPE 170 wants to reveal the underlying machine to you!

23 Linux Course will be taught 100% in Linux Did you have to choose Linux for ECPE 170? No, not really, but Too many Pacific graduates were escaping without a working knowledge! Feedback from co op employers and graduates: More Linux/Unix skills please!

24 Linux Who here has used a Linux desktop/laptop/server before? Who here has used a Linux device before? I d be surprised if it isn t everyone Android runs a Linux kernel Amazon Kindle runs a Linux kernel TiVO runs a Linux kernel

25 Discussioni What is open source? What is an operating system kernel? Is the kernel everything you need from an OS? What is Linux? What is Ubuntu Linux? (RedHat? Debian? ) Show family tree of distributions

26 Virtual Machine Course will be taught 100% from a virtual machine booting Linux that you install! Couldn t you just give us remote access to a server someplace that is already configured? Yes, but By installing it yourself you will have the skills to use it again in the future No mysterious Professor Hughes software configuration

27 Discussioni What is a Virtual Machine? Is this the same thing as a Java virtual machine? How is it different from dual booting? Which h comes first, the virtual machine, or the OS? Answer: It depends! Typical desktop install: hosted virtualization Typical server install: bare metal virtualization

28 Recommended technique for ECPE 170 Hosted Virtualization ti

29 Bare Metal Mtl Virtualization ti More efficient, but not as easy to install. The virtual machine monitor acts like an operating system itself!

30 Version Control Course will use version control! Only way to get lab code or turn in assignments Did you have to mandate VCS for ECPE 170? No, not really, but Too many Pacific graduates were avoiding learning this on their own! Feedback from co op employers and graduates: Only n00bs work without version control! Used everywhere: Source code of all kinds! (C++, Python, Matlab, VHDL/Verilog, )

31 Version Control Who here has used a version control system before? What system? Where at? What purpose?

32 Questions? Questions? Concerns?

33 Course Mechanics

34 Wbit Websites Main website (syllabus, schedule) http://ecs network network.serv.pacific.edu/ecpe edu/ecpe 170 Sakai website (gradebook) http://pacific.rsmart.com/ Bitbucket.org (version control) http://bitbucket.org

35 Textbook No official textbook Optional reference books (useful for this class and beyond) The C Programming Language, 2 nd Edition See MIPS Run, 2 nd Edition Please suggest useful online or print references throughout the semester

36 Grading 30% Exams 15% Mid term exam 15% Final exam 70% Labs Points assigned to each lab will vary based on complexity Each lab begins as an in class activity Unfinished work becomes homework/project Lb Labs are large assume h the usual amount of homework/projects for a 4 credit class Tip: The best students last semester started the labs outside of class, and finished them as an in class activity

37 Honor Code All assignments are submitted individually Encouraged datiiti Activities Collaborating with your classmates (asking questions, solving problems together) Searching for solutions online Provided code copied does not exceed 25% of total assignment length Provided you clearly document this copy in your source code and lab report What did you copy? Where did it come from?

38 Honor Code Risky Activities Having your classmates type on your computer or assignment file Forbidden Activities Copying someone s work verbatim (classmate or otherwise) Copying someone s s work and obfuscating its source

39 Lb Lab Topics 1. Linux 2. Version Control 3. C Programming 4. C Programming Project 5. Performance Measurement 6. Performance Optimization i i (Compiler and programmer techniques) 7. Performance Optimization Project 8. Performance Optimization (Memory systems) 9. Endianness 10. Assembly Programming 1 (MIPS) 11. Assembly Programming 2 12. Network Programming g( (Python)

40 Class Time The goal * in designing this course: 100% 75% 50% 25% 0% Me Talking * Actual time in any specific class may vary You Doing (Hands on activities)

41 Lab 1 Linux

42 Homework Before the next class 1. Skim Virtual Machine Setup tutorial instructions on website http://ecs network.serv.pacific.edu/ecpe 170/tutorials/vm / _ setup 2. Decide on what computer system you want to use for this class 3. Download all software Virtual machine installer (VMWare Player) Linux.iso image (installer) 64 bit version

43 Next Class Linux Installfest t Tutorial Day Objectives Follow the Virtual Machine Setup tutorial from website to install Linux Debug individual problems if needed Verify OS works Email me screenshot as proof of success

44 Next Class Linux Installfest t I want you to be comfortable as professionals working independently to solve problems If you complete the Virtual Machine Setup tutorial independently (and email me a screenshot by Thursday morning), you don t need to attend Thursday s class. Sleep in! (Or come help out). I will still be here to answer all questions and solve problems

45 Next Class Linux Installfest t Warning: Don t skip class Thursday, and then tell me Tuesday at Lab #1 that your OS doesn t work!

46 Lb Lab 1 Linux The first lab is next Tuesday Topic: Linux Crash course in command line usage Lab 1: Pre Lab Show me the working command prompt in your Linux install. Hopefully you will have this done by end of class Thursday Pre Labs are always due at the start of the lab (in this case, next Tuesday)

47 Bi Bring Laptop! Every class bring your laptop

48 Bi Bring Laptop! Every class bring your laptop!

49 Bi Bring Laptop! Every class bring your laptop!! (*) Maybe not this one, but you get the idea

50 Bi Bring Laptop! Every class bring your laptop!! Just assume we ll do at least some lab activity in class unless it s been made crystal tlclear in advance that t a day will be all lecture/discussion instead

51 Bi Bring Laptop! No laptop? Let s try installing Linux to a USB stick and dual boot the classroom computers. See me after class to sign out hardware

52 Questions? Questions? Concerns?