introduction to computer systems - androbenchcsl.skku.edu/uploads/sse2030f12/0-sse2030.pdf · 2012....

28
SSE2030: Introduction to Computer Systems Jin-Soo Kim ([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

Upload: others

Post on 13-Mar-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

SSE2030:

Introduction to

Computer Systems

Jin-Soo Kim ([email protected])

Computer Systems Laboratory

Sungkyunkwan University

http://csl.skku.edu

Page 2: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

2 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Introduction

Schedule

• 12:00 – 13:15 (Mon) 15:00 – 16:15 (Wed)

• Lecture room #400126 (Semiconductor Bldg.)

Course homepage

• http://csl.skku.edu/SSE2030F12/

Page 3: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

3 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

About Me

Jin-Soo Kim

• Professor @ CE & SSE & SW Dept.

• Computer Systems Laboratory

• Office: 산학협력센터 #85566 (5th floor)

• Email: [email protected]

• URL: http://csl.skku.edu/jinsoo

• Tel: 031-299-4593

• Office hours: Monday & Wednesday

• The best way to contact me is by email.

Page 4: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

4 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

System Software Track

문제해결방법 자료구조및 알고리즘

컴퓨터그래픽스* 인공지능*

논리회로 컴퓨터시스템

개론 컴퓨터구조

프로그래밍 언어와컴파일러

멀티코어시스템

논리회로설계실험 마이크로프로세서 컴퓨터

네트워크 이동컴퓨팅

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

실험 시스템

운영체제 임베디드시스템

설계 임베디드시스템

실습

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

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

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

객체지향시스템 설계*

이산수학§

Page 5: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

5 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Course Outline (1)

Goal:

How does the computer system work?

or

How does your program run?

Page 6: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

6 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Course Outline (2)

Computer systems

Page 7: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

7 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Course Outline (3)

Computer systems internals

CPU Mem I/O Devices

Operating Systems

Hardware

Software

Architecture

Application

Page 8: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

8 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Course Outline (4)

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 9: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

9 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Course Plan

Introduction to computer systems

• Operating systems

• Compilers, linkers, and loaders

• Assembly languages

• Operating systems

• Performance optimizations

Advanced programming

• Basic Unix system programming

• Network programming

• Concurrent programming using processes and threads

• Assembly programming

Page 10: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

10 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Course Components

Lectures

• Concepts

• Backgrounds

Projects

• The heart of this course!

• Provide in-depth understanding of an aspect of systems

• Intensive C/Assembly programming on Linux platform

• Design, implementation, measurement, optimization

Page 11: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

11 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Lectures

Topics

• An introduction to Unix

• Processes and files

• Network programming

• Concurrent programming

• Representing and manipulating data

• Assembly programming

• Linking

• Processor architecture

• Memory hierarchy

Page 12: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

12 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Projects (1)

Basic Unix system calls

• File I/O

• Process management

• Inter-Process Communication (IPC)

Concurrent programming

• Processes

• Threads

Network programming

• Sockets

Assembly programming (x86)

Page 13: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

13 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Projects (2)

Policies

• There will be 5+ programming assignments

• Each project must be done individually

• We will divide you into 4 project groups – One TA is assigned to each project group

– There is an official Lab. class once a week

• Lab. class – TA explains a project assignment

– TA instructs basic things to know to solve the problem

– You discuss with other students on the problem

– TA evaluates your code

Page 14: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

14 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Projects (3)

Evaluation

• Your solution will be evaluated in the following ways: – Demonstration

– Oral tests

– Documentation

– Your progress

• You should be able to answer any questions on basic system architecture, design decisions, and implementation details

• Always pay attention to – Performance issues

– Documentation

Page 15: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

15 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Projects (4)

TAs

• 김형준 (박1): Head TA

• 김제민 (석2)

• 이진혁 (석1)

• 손효봉 (학4)

Contacting TAs

• During Lab. class

• E-mail, phone, office, MSN, KakaoTalk, etc.

Page 16: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

16 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Prerequisites

C programming skills (GEDD07)

Basic knowledge of Unix/Linux systems

ICE2001: Logic circuits

SSE2029: Data structures and algorithms or ICE2002: Data structures

Page 17: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

17 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Textbook

Computer Systems: A Programmer’s Perspective

• Randal E. Bryant and David R. O’Hallaron, Second Edition,

Prentice-Hall, Inc. 2010.

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

Page 18: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

18 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

References (1)

C Programming

• C Programming Language

B. Kernighan and D. Ritchie, Second Edition,

Prentice Hall, 1988.

Page 19: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

19 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

References (2)

Programming in Unix

• Advanced Programming in the UNIX Environment W. Richard Stevens and Stephen A. Rago, Second Edition, Addison-Wesley, 2005.

Page 20: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

20 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

References (3)

Programming in Linux

• Advanced Linux Programming Mark L. Mitchell, Jeffrey Oldham, and Alex Samuel, New Riders Publishing, 2001. Downloadable at http://www.advancedlinuxprogramming.com

Page 21: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

21 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

References (4)

Network Programming

• UNIX Network Programming Volume 1: The Sockets Networking API W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff, Third Edition, Addison-Wesley, 2003.

Page 22: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

22 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

References (5)

Threads Programming

• Programming with POSIX Threads David R. Butenhof, Addison-Wesley, 1997.

• POSIX Threads Programming LLNL Tutorial at https://computing.llnl.gov/tutorials/pthreads/

Page 23: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

23 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

References (6)

Assembly Programming

• The Art of Assembly Language Programming,

Randall Hyde,

http://webster.cs.ucr.edu/

• Intel Architectures Software Developer’s Manual,

Volume 1: Basic Architecture

Volume 2: Instruction Set Reference

Volume 3: System Programming Guide

http://www.intel.com/products/processor/manuals/index.htm

Page 24: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

24 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Class Policies (1)

Grading Policy (subject to change)

• Class attendance (10%)

• Exams (30%)

• Projects (60%)

Page 25: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

25 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Class Policies (2)

Class Attendance Policy

• If you miss one or both of exams, you will fail this course.

• Do not be late! You should be present in the lecture room when I take class attendance.

• You can miss the class up to “four” times without any penalty. – For unexcused absences and for excused absences as well

• There will be a bonus for students who attend all the classes.

Page 26: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

26 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Class Policies (3)

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 and report to dept. chair

• Ask helps to your TA if you experience any difficulty!

Page 27: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

27 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Final Remark

It will be tough and challenging

But, this course is NOT intended to torture you.

You will gain systems-level perspective and programming skills.

SSE2030 serves as a foundation for the following courses:

• Operating systems, Computer architecture

• Programming languages/compilers

• Microprocessor systems, Embedded systems

• Computer networks, and many more…

Page 28: Introduction to Computer Systems - AndroBenchcsl.skku.edu/uploads/SSE2030F12/0-sse2030.pdf · 2012. 9. 3. · Programming in Unix •Advanced Programming in the UNIX Environment W

28 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim ([email protected])

Any Questions?