SSE2030: Introduction to Computer Systems -...

Post on 17-Sep-2019

9 views 0 download

Transcript of SSE2030: Introduction to Computer Systems -...

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems

Spring 2018

Jinkyu Jeong (jinkyu@skku.edu)Computer Systems Laboratory

Sungkyunkwan Universityhttp://csl.skku.edu

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 2

Introduction

• Schedule– 16:30 – 17:45 (Monday), 15:00 – 16:15 (Wednesday)– Lecture room #400126, Semiconductor Bldg.

• Course homepage– http://csl.skku.edu/SSE2030S18/– Lecture slides, announcements, programming

assignments, exam scores, …– Don’t waste your time in i-Campus

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 3

About Me

• Jinkyu Jeong– Assistant professor @ SSE and SW Dept.– Computer Systems laboratory– Research area• Operating systems, storage systems, mobile systems,

machine virtualization, …– Email: jinkyu@skku.edu– URL: http://csl.skku.edu/People/Jinkyu– Tel: 031-290-7692– Office: Semiconductor bldg. #400510 (5th floor)– Office hours: Monday & Wednesday– Email contact is preferred

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 4

(Awesome) TAs

• Seokha Shin (���)– Email: seokha.shin@csl.skku.edu– Office: #400509, Semiconductor Bldg.

• Donghyun Kim (���)– Email: wadong100@gmail.com– Office: #400509, Semiconductor Bldg.

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 5

System Software Track (~2015)

문제해결방법 자료구조및알고리즘 컴퓨터그래픽스* 인공지능*

논리회로 컴퓨터시스템개론 컴퓨터구조 프로그래밍

언어와컴파일러 멀티코어시스템

논리회로설계실험 마이크로프로세서 컴퓨터네트워크 이동컴퓨팅

공학수학1 마이크로프로세서실험

시스템운영체제

임베디드시스템설계

임베디드시스템실습

전자기학1 디지털시스템 SoC설계

기초전기회로1 기초전기회로2 소프트웨어공학* 시스템시뮬레이션

기초전기회로실험 정보보호개요*데이터베이스*

객체지향시스템설계*

이산수학§

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 6

System Software Track (2016~)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 7

System Software Track (2018~)1학년 2학년 3학년 4학년

1학기 2학기 1학기 2학기 1학기 2학기 1학기 2학기

전자기학1

논리회로

공학수학1

디지털시스템설계

SoC설계

문제해결방법 컴퓨터그래픽스

인공지능개론이산수학

컴파일러설계

멀티코어시스템

컴퓨터네트웍개론

데이터베이스

프로그래밍기초와실습

공학컴퓨터프로그래밍

정보보호개요

마이크로프로세서실험

마이크로프로세서

임베디드시스템설계

임베디드시스템실습

창의적공학설계

논리회로설계실험

성균프레시맨세미나

시스템시뮬레이션개론

소프트웨어공학개론

반도체현장실습1

마이크로전자회로1

반도체물리

신호와시스템

시스템SW실습2

시스템SW실습1

시스템SW실습3

컴퓨터구조개론

기계학습개론

운영체제프로젝트

데이터베이스프로젝트

반도체캡스톤설계

기초전기회로2

컴퓨터시스템개론

공학수학2

시스템운영체제

◆◆

◇◇

자료구조및알고리즘

◇◆

기초전기회로1 (=전기회로1)

선형대수학

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 8

Goal of this Course

How does the computer system work?

or

How does your C program run?

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 9

Computer Systems

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 10

Computer Systems Internals

CPU MemI/O Devices

Operating Systems

Hardware

Software

Architecture

ApplicationSystem calls

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 11

Levels of Abstraction

Operating system

Architecture

Programming languages & compilers

Data structures & algorithms

Application programs

Microarchitecture

Hardware description languages

Digital logic

VLSI layout

Processing, Fabrication

Chemistry, Physics

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 12

Course Plan

• Program structure and assembly programming– Data types: integers, floating points, complex data types– Arithmetic and logical operations– Control flow

• Running programs– Processor architecture– Memory hierarchy– Linking– Operating systems– Performance optimizations

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 13

Course Components

• Lectures– Backgrounds– Concepts

• Projects– The heart of this course!– Provide in-depth understanding of an aspect of systems– C/Assembly programing on Linux platform– Design, implementation, measurement, optimization– Each project must be done individually

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 14

Prerequisites

• Courses– Basis and Practice in Programming or equivalents– Logic circuits: ICE2001– Data structures and algorithms or equivalents:

SSE2029 or ICE2002

• Required skills– C programming – Basic knowledge of Unix/Linux systems

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 15

Textbook

• Computer Systems: A Programmer’s Perspective

– Randal E. Bryant and David R. O’Hallaron

– Third Edition, 2015– Pearson Education, Inc.

– http://csapp.cs.cmu.edu

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 16

References: C

• The C Programming Language

– Brian W. Kernighan andDennis M. Ritchie(a.k.a K&R book)

– Second Edition, 1998– Prentice-Hall

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 17

References: x86 Assembly• x86-64 Assembly Language Programming with Ubuntu– Ed Jorgensen– Version 1.0.34– March 2016– http://www.egr.unlv.edu/~ed/

• The Art of Assembly Language Programming– Randall Hyde– http://webster.cs.ucr.edu

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 18

Reference: x86 Architecture

• Intel Architectures Software Developer’s Manual

– Volume 1: Basic Architecture– Volume 2: Instruction Set Reference– Volume 3: System Programming Guide

– https://software.intel.com/en-us/articles/intel-sdm

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 19

Grading Policy

• Grading system– Class attendance: 10%– Exams: 50%• Midterm: 20%• Final: 30%– Projects: 40%– Subject to change

• Class attendance policy– If you miss any of the exams, you will fail this course– No lateness is allowed– Up to four absences will be tolerated

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 20

Class Attendance Policy

• Each of you will have a designated seat (aka �����).– Take a seat you like this Wednesday (3/7) and that seat

will be yours for the first half of the semester.– We will do the same thing after the midterm.– Instructor reserves the right to reassign seats as

necessary.

• TA will check the attendance by marking empty seats– Don’t be late; he may check the attendance at the

beginning of the class (or at any random time)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 21

Cheating Policy

• What is cheating?– Copying another student’s solution (or one from the

Internet) and submitting it as your own– Allowing another student to copy your solution

• What is NOT cheating?– Helping others use systems or tools– Helping others with high-level design issues– Helping others debug their code

• Penalty for cheating– Severe penalty on the grade (F) and report to dept. chair– Ask helps to your TA if you experience any difficulty!

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu) 22

Summary• This course was sometimes known to be tough, but it

won’t in this semester J

• You will gain systems-level perspective, which is required whether or not you are on the system software track

• SSE2030 serves as a foundation for upcoming courses:– System Software Experiment 2 (SSE2033)– Computer architecture, Operating systems– Programming languages/compilers– Microprocessor systems, Embedded systems, …