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

Post on 13-Mar-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SSE2030:

Introduction to

Computer Systems

Jin-Soo Kim (jinsookim@skku.edu)

Computer Systems Laboratory

Sungkyunkwan University

http://csl.skku.edu

2 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Introduction

Schedule

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

• Lecture room #400126 (Semiconductor Bldg.)

Course homepage

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

3 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

About Me

Jin-Soo Kim

• Professor @ CE & SSE & SW Dept.

• Computer Systems Laboratory

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

• Email: jinsookim@skku.edu

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

• Tel: 031-299-4593

• Office hours: Monday & Wednesday

• The best way to contact me is by email.

4 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

System Software Track

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

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

논리회로 컴퓨터시스템

개론 컴퓨터구조

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

멀티코어시스템

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

네트워크 이동컴퓨팅

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

실험 시스템

운영체제 임베디드시스템

설계 임베디드시스템

실습

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

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

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

객체지향시스템 설계*

이산수학§

5 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Course Outline (1)

Goal:

How does the computer system work?

or

How does your program run?

6 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Course Outline (2)

Computer systems

7 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Course Outline (3)

Computer systems internals

CPU Mem I/O Devices

Operating Systems

Hardware

Software

Architecture

Application

8 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

9 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

10 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

11 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Lectures

Topics

• An introduction to Unix

• Processes and files

• Network programming

• Concurrent programming

• Representing and manipulating data

• Assembly programming

• Linking

• Processor architecture

• Memory hierarchy

12 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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)

13 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

14 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

15 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Projects (4)

TAs

• 김형준 (박1): Head TA

• 김제민 (석2)

• 이진혁 (석1)

• 손효봉 (학4)

Contacting TAs

• During Lab. class

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

16 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Prerequisites

C programming skills (GEDD07)

Basic knowledge of Unix/Linux systems

ICE2001: Logic circuits

SSE2029: Data structures and algorithms or ICE2002: Data structures

17 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

18 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

References (1)

C Programming

• C Programming Language

B. Kernighan and D. Ritchie, Second Edition,

Prentice Hall, 1988.

19 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

References (2)

Programming in Unix

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

20 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

21 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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.

22 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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/

23 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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

24 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Class Policies (1)

Grading Policy (subject to change)

• Class attendance (10%)

• Exams (30%)

• Projects (60%)

25 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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.

26 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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!

27 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

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…

28 SSE2030: Introduction to Computer Systems | Fall 2012| Jin-Soo Kim (jinsookim@skku.edu)

Any Questions?

top related