ì Computer Systems and Networks ECPE 170 – Jeff Shafer – University of the Pacific Introduction
2 A Modern Computer – iPad Air “2” Computer Systems and Networks Spring 2017
3 Applications Computer Systems and Networks Spring 2017
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 ì Computer Systems and Networks Spring 2017
5 Software - Operating System ì Apple iOS – Used in iPads, iPhones, iPods, Apple TV Variant of Mac OS X operating system used on ì traditional 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? ì Computer Systems and Networks Spring 2017
6 Software - Compilers / Interpreters 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? Computer Systems and Networks Spring 2017
7 Hardware https://www.ifixit.com/Teardown/iPad+Air+2+Teardown/30592 Computer Systems and Networks Spring 2017
8 Hardware Apple A8X 64-bit Processor NFC Controller RAM (2GB) Audio NAND Flash Memory (16+ GB) Motion Computer Systems and Networks Spring 2017
9 iPad Air “2” Processor ì Apple A8X Processor Clock speed – 1.5GHz ì What do these mean? 3 cores ì 2GB RAM ì ì What does a processor do? Executes machine language instructions ì ì Machine language? How does the processor execute the instructions? ì Computer Systems and Networks Spring 2017
10 Microarchitecture Computer Systems and Networks Spring 2017
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 in ì the Semiconductor Industry: http://www.scribd.com/doc/53 742174/Reverse-Engineering Computer Systems and Networks Spring 2017
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) • Computer Systems and Networks Spring 2017
13 SEM Cross-Section of (older) Apple A5 Computer Systems and Networks Spring 2017
14 Digital Logic Transistor Memory cell Computer Systems and Networks Spring 2017
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 Computer Systems and Networks Spring 2017
16 The Computer Level Hierarchy ì Level 6: The User Level – “Angry Birds” User Level Program execution and user interface level ì High-Level Language ì Level 5: High-Level Language Level – “Objective C” Assembly Programming languages like C++, Java, Python, … ì ì Level 4: Assembly Language Level – “ARM Assembly” Program directly at this level, or … ì Use a compiler/interpreter to process/convert high- ì level code Computer Systems and Networks Spring 2017
17 The Computer Level Hierarchy ì Level 3: System Software Level - “iOS” User Level Controls active programs and manages system ì High-Level resources Language Assembly language instructions often pass through ì Assembly Level 3 without modification System ì Level 2: Machine Level Instruction Set Architecture (ISA) Level ì Machine Instructions are particular to the architecture of the ì specific machine (i.e. Intel processors, ARM processors, IBM processors…) Computer Systems and Networks Spring 2017
18 The Computer Level Hierarchy These levels are too hardware-oriented for ECPE 170… User Level ì Level 1: Control Level High-Level Decodes and executes instructions and moves data ì Language through the system Assembly ECPE 173 – Computer Organization & Architecture ì System ì Level 0: Digital Logic Level Digital circuits, gates and wires implement the ì Machine mathematical logic of all other levels Control ECPE 71 – Digital Design ì ECPE 174 – Advanced Digital Design Digital Logic Computer Systems and Networks Spring 2017
19 ì Course Overview Computer Systems and Networks Spring 2017
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 ì Computer Systems and Networks Spring 2017
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 ì Computer Systems and Networks Spring 2017
22 C Programming Language C 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! Computer Systems and Networks Spring 2017
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!” Computer Systems and Networks Spring 2017
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 ì Computer Systems and Networks Spring 2017
25 Discussion ì 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 ß ì Computer Systems and Networks Spring 2017
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 Shafer” ì software configuration Computer Systems and Networks Spring 2017
27 Discussion ì What is a Virtual Machine? Is this the same thing as a Java virtual machine? ì ì How is it different from dual booting? ì Which comes first, the virtual machine, or the OS? Answer: It depends! ì Typical desktop install: hosted virtualization ì Typical server install: bare-metal virtualization ì Computer Systems and Networks Spring 2017
28 Recommended Hosted Virtualization technique for ECPE 170 Computer Systems and Networks Spring 2017
29 Bare-Metal Virtualization More efficient, but not as easy to install. The virtual machine monitor acts like an operating system itself! Computer Systems and Networks Spring 2017
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, …) Computer Systems and Networks Spring 2017
31 Version Control Who here has used a version control ì system before? What system? ì Where at? ì What purpose? ì Computer Systems and Networks Spring 2017
32 Questions? ì Questions? ì Concerns? Computer Systems and Networks Spring 2017
33 ì Course Mechanics Computer Systems and Networks Spring 2017
34 Websites Main website (syllabus, schedule) • http://ecs-network.serv.pacific.edu/ecpe-170 Canvas website (gradebook) • http://canvas.pacific.edu Bitbucket.org (version control) • http://bitbucket.org Computer Systems and Networks Spring 2017
35 Textbook ì No official textbook Optional reference books ì (useful for this class and beyond) The C Programming ì Language, 2 nd Edition Please suggest useful online ì or print references throughout the semester Computer Systems and Networks Spring 2017
Recommend
More recommend