36
Instructor: Brighten Godfrey Copyright ©: University of Illinois CS 241 Staff 1 Welcome to CS 241 Systems Programming at Illinois

Welcome to CS 241 Systems Programming at Illinois

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Welcome to CS 241 Systems Programming at Illinois

Instructor: Brighten Godfrey

Copyright ©: University of Illinois CS 241 Staff 1

Welcome to CS 241 Systems Programming at Illinois

Page 2: Welcome to CS 241 Systems Programming at Illinois

The Team

  Brighten Godfrey   Office: 3211 SC   Office hour this week: Fri 1:30 – 2:30   [email protected]

  TAs   Wade Fagen, Farhana Ashraf, Matt Trower,

Yunlong Gao   Discussion Sections

  8 sessions (Thursdays 9, 10, 12, 1, 2, 3, 4, 5)   All sections in SC 0220   Please move out of the 11:00 a.m. session 2

Page 3: Welcome to CS 241 Systems Programming at Illinois

News and Email

  Piazza for announcements and discussions   http://www.piazza.com/illinois/cs241   This is your one-stop help-line!   Will get answer < 24 hours

  Email   [email protected]   Only for personal questions not postable on

Piazza

Copyright ©: University of Illinois CS 241 Staff 3

Page 4: Welcome to CS 241 Systems Programming at Illinois

The Textbook

  Introduction to Systems Concepts and Systems Programming   University of Illinois Custom Edition   ISBN 0-536-48928-9

  Taken from:   Operating Systems: Internals and Design

Principles, Fifth Edition (Stallings)   UNIX™ Systems Programming: Communication,

Concurrency, and Threads (Robbins & Robbins)   Computer Systems: A Programmer's

Perspective (Bryant & O'Hallaron) Copyright ©: University of Illinois CS 241 Staff 4

Page 5: Welcome to CS 241 Systems Programming at Illinois

Course components

  Come to class   MWF, 11-11:50am   Please participate actively

  Attend 1 discussion section per week   Read textbook (assignments posted on webpage)   Homework (1) 3%   Programming assignments (8) 47%   Midterm: March 6, 7-9pm 20%   Final: time & date TBA 30%

Copyright ©: University of Illinois CS 241 Staff 5

Page 6: Welcome to CS 241 Systems Programming at Illinois

Deadlines

  Homework   Deadlines are strict   Late submissions will not be considered

  MPs   Please respect posted deadlines to ensure quick

grading   Late MPs will be penalized 2% for each late hour

(rounded off to the higher hour)   No submissions past 24 hours

Copyright ©: University of Illinois CS 241 Staff 6

Page 7: Welcome to CS 241 Systems Programming at Illinois

Regrades

  Considered if you were graded incorrectly   Within one week of posting of grades for a quiz,

homework, MP or exam   Regrades must be submitted in writing on a

separate piece of paper   Please do not write on your exam or homework

Copyright ©: University of Illinois CS 241 Staff 7

Page 8: Welcome to CS 241 Systems Programming at Illinois

Academic Honesty

  Your work in this class must be your own.   If students are found to have cheated (e.g., by

copying or sharing answers during an examination or sharing code for the project), all involved will at a minimum receive grades of 0 for the first infraction and will be reported to the academic office.

  Further infractions will result in failure in the course and/or recommendation for dismissal from the university.

  Department honor code: https://wiki.engr.illinois.edu/display/undergradProg/Honor+Code

Copyright ©: University of Illinois CS 241 Staff 8

Page 9: Welcome to CS 241 Systems Programming at Illinois

Cheating vs. collaborating

  Cheating   Copying code, pseudo-code, flow charts   Writing someone else’s code line by line

  Not cheating   Discussing high-level approaches   Discussing MP requirements, C language, tools   Helping each other with debugging

  Consider   Did some one else tell you how to do it?

Copyright ©: University of Illinois CS 241 Staff 9

Page 10: Welcome to CS 241 Systems Programming at Illinois

What is systems programming?

Copyright ©: University of Illinois CS 241 Staff 10

Page 11: Welcome to CS 241 Systems Programming at Illinois

What is a system?

sys·tem Noun /’sistəәm/ 1. A set of connected things or parts forming a larger and more complex whole. 2. An integrated set of elements that accomplish a defined objective  Examples: Computer systems, economic system, ecosystem, social systems, digestive system, …

 Computer systems: collections of programs   Search engines, social networks, databases, Internet   In this class, we learn how to design and implement

computer systems Copyright ©: University of Illinois CS 241 Staff 11

Page 12: Welcome to CS 241 Systems Programming at Illinois

Challenges in building computer systems

  Sharing resources among programs   Preventing interference from malicious/

incorrect programs   Coordinating operations of multiple

programs   Communicating information between

programs

Copyright ©: University of Illinois CS 241 Staff 12

Page 13: Welcome to CS 241 Systems Programming at Illinois

Interactions

“What we are concerned with here is the fundamental interconnectedness of all things.”

– Dirk Gently

Copyright ©: University of Illinois CS 241 Staff 13

Page 14: Welcome to CS 241 Systems Programming at Illinois

My Computer

What is an operating system and why do I need one?

  What do we have?   Set of common resources

Copyright ©: University of Illinois CS 241 Staff 14

Hardware Network

Page 15: Welcome to CS 241 Systems Programming at Illinois

My Computer

What is an operating system and why do I need one?

  What do we have?   Set of common resources

  What do we need?

Copyright ©: University of Illinois CS 241 Staff 15

Hardware Network

Page 16: Welcome to CS 241 Systems Programming at Illinois

What is an operating system and why do I need one?

  What do we have?   Set of common resources

  What do we need?   A clean way to allow applications to use

these resources!

Copyright ©: University of Illinois CS 241 Staff 16

Hardware Network

Firefox Second Life Yahoo Chat GMail

Application Software

Page 17: Welcome to CS 241 Systems Programming at Illinois

Application Requirements

Copyright ©: University of Illinois CS 241 Staff 17

Firefox

Application Software

Hardware Network

Rea

d/w

rite

Page 18: Welcome to CS 241 Systems Programming at Illinois

Two Applications?

Copyright ©: University of Illinois CS 241 Staff 18

Firefox Second Life

Application Software

Hardware Network

Rea

d/w

rite

Dis

play

Page 19: Welcome to CS 241 Systems Programming at Illinois

Managing More Applications?

Copyright ©: University of Illinois CS 241 Staff 19

Firefox Second Life Yahoo Chat

Application Software

Hardware Network

Dis

play

Rea

d/w

rite Stor

e

Page 20: Welcome to CS 241 Systems Programming at Illinois

We need help!

Copyright ©: University of Illinois CS 241 Staff 20

Firefox Second Life Yahoo Chat GMail

Application Software

Hardware Network

Dis

play

Rea

d/w

rite Stor

e Send/receive

Page 21: Welcome to CS 241 Systems Programming at Illinois

Approach: Find Common Functions

Copyright ©: University of Illinois CS 241 Staff 21

Firefox Second Life Yahoo Chat GMail

Application Software

Hardware Network

Dis

play

Stor

e Send/receive Rea

d/w

rite

Rea

d/w

rite

Page 22: Welcome to CS 241 Systems Programming at Illinois

Delegate Common Functions

Copyright ©: University of Illinois CS 241 Staff 22

Firefox Second Life Yahoo Chat GMail

Application Software

Operating System

Network Hardware

Read/Write Standard Output

Device Control

File System Communication

Page 23: Welcome to CS 241 Systems Programming at Illinois

Export a Standard Interface

Copyright ©: University of Illinois CS 241 Staff 23

Firefox Second Life Yahoo Chat GMail

Application Software

Operating System

Network Hardware

Read/Write Standard Output

Device Control

File System Communication

Standard Operating System Interface

Page 24: Welcome to CS 241 Systems Programming at Illinois

One goal: Increase portability

Copyright ©: University of Illinois CS 241 Staff 24

Firefox Second Life Yahoo Chat GMail

Application Software

Network Hardware

Read/Write Standard Output

Device Control

File System Communication

Operating System

Standard Operating System Interface

Machine Independent

Machine Specific

Page 25: Welcome to CS 241 Systems Programming at Illinois

Machine Independent = Portable

Copyright ©: University of Illinois CS 241 Staff 25

Firefox Second Life Yahoo Chat GMail

Application Software

Read/Write Standard Output

Device Control

File System Communication

Operating System

Standard Operating System Interface

Port

able

Mac

hine

Inde

pend

ent

Page 26: Welcome to CS 241 Systems Programming at Illinois

OS Runs on Multiple Platforms

Copyright ©: University of Illinois CS 241 Staff 26

Firefox Second Life Yahoo Chat GMail

Application Software

Network Hardware

Read/Write Standard Output

Device Control

File System Communication

Operating System

Standard Operating System Interface

Mac

hine

Inde

pend

ent

Mac

hine

Spe

cific

Page 27: Welcome to CS 241 Systems Programming at Illinois

Mac

hine

Inde

pend

ent

Mac

hine

Spe

cific

OS Runs on Multiple Platforms

Copyright ©: University of Illinois CS 241 Staff 27

Firefox Second Life Yahoo Chat GMail

Application Software

Network Hardware

Read/Write Standard Output

Device Control

File System Communication

Operating System

Standard Operating System Interface

Same Interface!

Page 28: Welcome to CS 241 Systems Programming at Illinois

POSIX The UNIX Interface Standard

Copyright ©: University of Illinois CS 241 Staff 28

Firefox Second Life Yahoo Chat GMail

Application Software

Read/Write Standard Output

Device Control

File System Communication

Unix

POSIX Standard Interface

Page 29: Welcome to CS 241 Systems Programming at Illinois

Big goal: modularity

  Modularity: Decomposition of a large task into smaller reusable components with well-known interfaces between them

  Advantages   Simplicity   Portability   Re-use common functions   Abstraction: hide details of implementation

Copyright ©: University of Illinois CS 241 Staff 29

Page 30: Welcome to CS 241 Systems Programming at Illinois

Course Questions

  What are the right abstractions and interfaces to let pieces of a system work together smoothly?

  …and how do I use them?   What goes on “behind the scenes” in interfaces I’ve

been using?   Memory, files, network, …

  How do we tame the complexity of a big system?   “Systems programming” is a lot more than just

programming!

Copyright ©: University of Illinois CS 241 Staff 30

Page 31: Welcome to CS 241 Systems Programming at Illinois

Course objectives

  By the end of this course, you should be able to:   Identify the basic components of an operating system   Describe their purpose   Explain the “black box” abstract interface and how they

function “inside the box”

  Use the system effectively   Write, compile, debug, and execute C programs   Correctly use system interfaces provided by UNIX (or a

UNIX-like operating system)

  Build your own large, multi-process, networked applications

Copyright ©: University of Illinois CS 241 Staff 31

Page 32: Welcome to CS 241 Systems Programming at Illinois

Course outline

  Week 1-2: Nuts & bolts   Manipulate pointers and memory   Use UNIX system calls from within C programs   MP1: working with C pointers & strings

  Week 3-4: Memory   Understand memory allocation and virtualization   MP2: malloc (+contest!)

32

Page 33: Welcome to CS 241 Systems Programming at Illinois

Course outline

  Week 5-6: Parallelism   Create and manage processes and threads   Control scheduling of proc./threads   MP3: Shell   MP4: Multithreaded sorting   MP5: Scheduling algorithm simulator

  Week 7-11: Cooperating parallelism   Communicating & sharing resources between

proc./threads   MP6: Parallel make   MP7: MapReduce 33

Page 34: Welcome to CS 241 Systems Programming at Illinois

Course outline

  Week 12-13: Networking   Use communication protocols (TCP/IP) and

interfaces (Sockets)   Write distributed multi-threaded apps that talk

across a network   MP8: Web server (*)

  Week 14: Additional OS concepts   I/O and file systems

Copyright ©: University of Illinois CS 241 Staff 34

Page 35: Welcome to CS 241 Systems Programming at Illinois

Complete schedule

  See class webpage (tomorrow)   http://www.cs.illinois.edu/class/cs241

  Schedule is dynamic   Check regularly for updates

  Slides generally posted by morning of class

  But some class material will not be in slides

Copyright ©: University of Illinois CS 241 Staff 35

Page 36: Welcome to CS 241 Systems Programming at Illinois

What comes next

  Switch out of 11am discussion section   Visit the class webpage

  Especially schedule, grading policy, homework & MP hand-in instructions, and resources

  http://www.cs.illinois.edu/class/cs241   Familiarize yourself with Piazza   Refresh your C programming skills

  http://www.lysator.liu.se/c/bwk-tutor.html   Homework released tonight   Next lecture: fun with C

Copyright ©: University of Illinois CS 241 Staff 36