SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터...

23
SWE3004: Operating Systems Jin-Soo Kim ([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

Transcript of SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터...

Page 1: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

SWE3004:

Operating Systems

Jin-Soo Kim ([email protected])

Computer Systems Laboratory

Sungkyunkwan University

http://csl.skku.edu

Page 2: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

2SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Introduction

▪ Schedule

• 13:30 – 14:45 (Monday), 12:00 – 13:15 (Wednesday)

• Lecture room #400112, Semiconductor Bldg.

#85777, Corporate Collaboration Center Bldg.

▪ Course homepage

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

• Lecture slides, announcements, exam scores, projects, …

• Don’t waste your time in i-Campus

Page 3: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

3SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

About me

▪ Jin-Soo Kim (김진수)

• Professor @ SW & CE & SSE Dept.

• Computer Systems Laboratory

• Operating systems, storage systems, embedded systems,

distributed systems, …

• Email: [email protected]

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

• Tel: 031-299-4593

• Office: Corp. Collaboration Center #85566 (5th floor)

• Office hours: Monday & Wednesday

• The best way to contact me is by email

Page 4: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

4SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

What is an OS?

▪ Computer systems internals

CPU MemI/O Devices

Operating Systems

Hardware

Software

Architecture

Application

System calls

Page 5: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

5SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Why do we learn OS?

▪ To graduate?

▪ To make a new hardware up and running

▪ To make a better OS or system

• Functionality

• Performance/Cost

• Reliability

• Energy efficiency

▪ To design OS-aware hardware

▪ To understand computer systems better

▪ Just for fun!

Page 6: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

6SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Where are we now?

소프트웨어학과전공핵심 전공일반 실험실습 교양∙기초

프로그래밍기초와실습(C)

(3)

컴퓨터개론 (2)

자료구조개론

디지털논리회로

창의적공학설계(3)

(공대과목)

시스템프로그램

알고리즘개론

컴퓨터구조개론

소프트웨어세미나 (1)

데이터베이스개론

운영체제

프로그래밍언어

소프트웨어공학개론

컴퓨터네트웍개론

정보보호개론

인공지능개론

컴파일러설계

컴퓨터그래픽스개론

인간컴퓨터상호작용(CSE-C/L)

시스템시뮬레이션

개론

임베디드소프트웨어

개론

멀티코어컴퓨팅

임베디드시스템

프로젝트 (3)

운영체제프로젝트 (3)

네트워크프로젝트 (3)

소프트웨어실습1 (2)

(Java)

소프트웨어실습2 (2)(Unix)

소프트웨어실습3 (2)(Mobile)

소프트웨어실습4 (2)(Web)

논리회로설계실험 (2)

마이크로프로세서(ICE-C/L)

1학년

1학기 2학기

2학년

1학기 2학기

3학년

1학기 2학기

4학년

1학기 2학기

5학년

1학기 2학기

공학컴퓨터프로그래밍(C++)

(3)

오토마타

컴퓨터그래픽스

프로젝트 (3)

인공지능프로젝트 (3)

소프트웨어특강1

소프트웨어특강2

확률과랜덤프로세스

문제해결기법(CSE-C/L)

데이터베이스프로젝트 (3)

소프트웨어공학프로젝트

(3)

오픈소스SW실습 (2)

데이터통신(ICE-C/L)

Page 7: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

7SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Prerequisites

▪ Courses

• System Programming or equivalents:

SWE2001, CSE2003, or SSE2030

• Unix System Programming Experiment or equivalents:

SWE2007, CSE3044, or SSE2033

• Computer Architecture: SWE3005 or ICE3003

▪ Required skills

• Fluent C programming

• Intel x86 architecture & assembly programming

• Basic knowledge of Unix/Linux systems

• Reading a large, complex program

Page 8: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

8SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Textbook

▪ Operating Systems:

Three Easy Pieces

• Remzi H. Arpaci-Dusseau and

Andrea C. Arpaci-Dusseau

• Arpaci-Dusseau Books

• December 2016 (Version 0.92)

• Available (with several options) at

http://ostep.org

• Read Remzi’s great article at http://from-a-to-remzi.blogspot.com/2014/01/the-case-for-free-online-books-fobs.html

Page 9: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

9SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Why Three Pieces?

“… as Operating Systems are

about half as hard as Physics. ”

Chap. 1

A Dialogue on the Book

Page 10: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

10SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Old Textbook

▪ Operating System Concepts

• Avi Silberschatz, Peter B. Galvin,

and Greg Gagne

• 9th Edition, 2014

• John Wiley & Sons, Inc.

• http://www.os-book.com

Page 11: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

11SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Reference: General OS

▪ Modern Operating Systems

• Andrew S. Tanenbaum

• Fourth Edition, 2014

• Pearson

Page 12: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

12SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Reference: Linux

▪ Linux Kernel Development

• Robert Love

• Third Edition, 2010

• Pearson Education, Inc.

Page 13: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

13SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Reference: Windows

▪ Windows Internals (Part 1 & Part 2)

• Mark E. Russinovich,

David A. Solomon, and

Alex Ionescu

• Sixth Edition, 2012

• Microsoft Press

Page 14: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

14SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Reference: Solaris

▪ Solaris Internals

• Richard McDougall and

Jim Mauro

• Sun Microsystems, 2001

Page 15: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

15SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Reference: Computer Systems

▪ 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: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

16SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Course Plan

▪ Lectures

• General operating system concepts

• Case study: Linux, xv6

▪ Hands-on projects

• Using xv6 instructional OS

Page 17: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

17SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Lectures: Topics

▪ Virtualization

• Processes

• CPU scheduling

• Virtual memory

▪ Concurrency

• Threads

• Synchronization

▪ Persistence

• Storage

• File systems

Page 18: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

18SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Projects: xv6

▪ A teaching OS developed by MIT

• Port of the Sixth Edition Unix (v6) in ANSI C

• Runs on multi-core x86 systems

▪ Why moving on to xv6 (from Pintos)?

• Code inherited from a real, historical OS!

• Includes working user-level programs and libraries

• Easier to install on modern Linux systems

• Easier to extend

• Easier to understand modern OSes such as Linux

Page 19: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

19SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Project Plan

▪ We are preparing 4 ~ 5 projects

▪ These will be individual projects

▪ You can use up to 5 slip days

▪ Weekly lab session

• A separate class with a TA (mandatory)

• Project announcement

• Q & A

• Hints & helps

• Code review

• Oral tests, …

Page 20: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

20SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Grading Policy

▪ Class attendance: 10%

▪ Exams: 35%

• Midterm: 15%

• Final: 20%

▪ Projects: 55%

▪ Subject to change

▪ TA: Kisik Jeong (정기식)

• E-mail: kisik.jeong at csl.skku.edu

• Office: Corp. Collaboration Center #85533

Page 21: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

21SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Class Attendance Policy

▪ If you miss any 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 excused absences as well

▪ There will be a (small) bonus for students who attend

all the classes (subject to change)

Page 22: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

22SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

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 23: SWE3004: Operating Systems - AndroBenchcsl.skku.edu/uploads/SWE3004S17/0-swe3004.pdf설계 컴퓨터 그래픽스개론 인간컴퓨터 상호작용 (CSE-C/L) 시스템 시뮬레이션

23SWE3004: Operating Systems | Spring 2017 | Jin-Soo Kim ([email protected])

Summary

▪ Understanding OS is essential for a broad spectrum

of computer systems

• Embedded systems, Cloud computing, Distributed systems,

▪ It will be a (very) tough semester! Use your time

wisely

▪ Please make sure if you’re ready to take this course

▪ Happy hacking!