SSE2030: Introduction to Computer Systems -...

22
SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) SSE2030: Introduction to Computer Systems Spring 2018 Jinkyu Jeong ([email protected] ) Computer Systems Laboratory Sungkyunkwan University http:// csl.skku.edu

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

Page 1: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected])

SSE2030: Introduction to Computer Systems

Spring 2018

Jinkyu Jeong ([email protected])Computer Systems Laboratory

Sungkyunkwan Universityhttp://csl.skku.edu

Page 2: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 3: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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: [email protected]– 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

Page 4: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 4

(Awesome) TAs

• Seokha Shin (���)– Email: [email protected]– Office: #400509, Semiconductor Bldg.

• Donghyun Kim (���)– Email: [email protected]– Office: #400509, Semiconductor Bldg.

Page 5: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 5

System Software Track (~2015)

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

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

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

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

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

시스템운영체제

임베디드시스템설계

임베디드시스템실습

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

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

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

객체지향시스템설계*

이산수학§

Page 6: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 6

System Software Track (2016~)

Page 7: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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)

선형대수학

Page 8: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 8

Goal of this Course

How does the computer system work?

or

How does your C program run?

Page 9: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 9

Computer Systems

Page 10: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 10

Computer Systems Internals

CPU MemI/O Devices

Operating Systems

Hardware

Software

Architecture

ApplicationSystem calls

Page 11: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 12: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 13: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 14: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 15: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 16: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 16

References: C

• The C Programming Language

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

– Second Edition, 1998– Prentice-Hall

Page 17: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 18: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 19: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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

Page 20: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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)

Page 21: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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!

Page 22: SSE2030: Introduction to Computer Systems - csl.skku.educsl.skku.edu/uploads/SSE2030S18/0-sse2030.pdf · SSE2030:Introduction to Computer Systems, Spring 2018, Jinkyu Jeong(jinkyu@skku.edu)

SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 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, …