sse2030: introduction to computer systems -...
TRANSCRIPT
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
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
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
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.
SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 5
System Software Track (~2015)
문제해결방법 자료구조및알고리즘 컴퓨터그래픽스* 인공지능*
논리회로 컴퓨터시스템개론 컴퓨터구조 프로그래밍
언어와컴파일러 멀티코어시스템
논리회로설계실험 마이크로프로세서 컴퓨터네트워크 이동컴퓨팅
공학수학1 마이크로프로세서실험
시스템운영체제
임베디드시스템설계
임베디드시스템실습
전자기학1 디지털시스템 SoC설계
기초전기회로1 기초전기회로2 소프트웨어공학* 시스템시뮬레이션
기초전기회로실험 정보보호개요*데이터베이스*
객체지향시스템설계*
이산수학§
SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 6
System Software Track (2016~)
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)
◆
선형대수학
◆
◇
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?
SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong ([email protected]) 9
Computer Systems
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
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
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
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
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
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
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
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
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
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
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)
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!
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, …