Top Banner
SSE2030: Introduction to Computer Systems Jin-Soo Kim ([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu
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.

Mar 13, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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?