Welcome to CS 241 Systems Programming at Illinois

Similar documents
Welcome to CS 241 Systems Programming at Illinois

Introduction to Computer Systems

Introduction to Computer Systems

EECE.2160: ECE Application Programming Spring 2017

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization using C

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CMSC433 - Programming Language Technologies and Paradigms. Introduction

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

Introduction to Computer Systems

PC Applications IT102 estart Fall 2014

CSE 240 Introduction to Computer Architecture

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

CMSC 341. Shawn Lupoli (substituting for Nilanjan Banerjee) UMBC CMSC 341 Intro 1

CSE 344 JANUARY 3 RD - INTRODUCTION

Introduction to Computer Systems

CS 326: Operating Systems. Lecture 1

CSc 2310 Principles of Programming (Java) Jyoti Islam

CSC 261/461 Database Systems. Fall 2017 MW 12:30 pm 1:45 pm CSB 601

CIS* Programming

CSC 280 Operating System Principles

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

EECE.2160: ECE Application Programming Spring 2019

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

COMP 321: Introduction to Computer Systems

CS 0449 Intro to Systems Software Fall Term: 2181

WELCOME TO CS 16! Enrollment status: 117/ Problem Solving with Computers-I

378: Machine Organization and Assembly Language

CSC 256/456: Operating Systems. Introduction. John Criswell! University of Rochester

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

Spring 2017 :: CSE 506. Introduction. Nima Honarmand

Advanced Programming Concepts. CIS 15 : Spring 2007

Introduction to Computer Systems

CSE 333 Lecture 1 - Systems programming

Syllabus of ENPM 691: Secure Programming in C

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0

ECE573 Introduction to Compilers & Translators

Chris Riesbeck, Fall Introduction to Computer Systems

CSE 333 Lecture 1 - Systems programming

CPSC 213. Introduction to Computer Systems. Introduction. Unit 0

Introduction to Computer Systems

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

CSC 443: Web Programming

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

CSC 111 Introduction to Computer Science (Section C)

EE3315 Internet Technology EE3315 Internet Technology Overview Slide 1

Announcements. 1. Forms to return today after class:

Introduction & Logistics

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

Web Programming Fall 2011

CS503 Advanced Programming I CS305 Computer Algorithms I

Overview of the Class

C Programming for Engineers Introduction

Welcome to... CS113: Introduction to C

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Introduction to Information Technology ITP 101x (4 Units)

CSE 240 Introduction to Computer Architecture

CSCE 441 Computer Graphics Fall 2018

Introduction to Computation and Problem Solving

TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013

CS120 Computer Science I. Instructor: Jia Song

Advanced Programming CMPS 109

EECS 482 Introduction to Operating Systems

ECE 3574: Applied Software Design

Central Washington University Department of Computer Science Course Syllabus


CS240: Programming in C

programming exercises.

Practical Programming Methodology

CMSC 132: Object-Oriented Programming II. Administrivia

Computer Science Technology Department

CS 150 Introduction to Computer Science 1

Web Programming Spring 2010

CPSC 427: Object-Oriented Programming

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

Welcome. Orientation to online CPS102 Computer Science 2 (Java 2)

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CISC 3130 Data Structures Spring 2018

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

CS 106B, Lecture 1 Introduction to C++

Announcements. Course syllabus Tutorial/lab signup form (due 4pm today) Lecture 1 notes Homework 1 Initial assessment

Computer Science 210: Data Structures

CSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1

CSC209. Software Tools and Systems Programming.

This handbook contains directions on using tools and resources in WebAccess at CSM.

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Programming Languages and Techniques (CIS120)

Welcome to Solving Problems with Computers I

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

FOUNDATIONS OF INFORMATION SYSTEMS MIS 2749 COURSE SYLLABUS Fall, Course Title and Description

CPSC 341 OS & Networks. Introduction. Dr. Yingwu Zhu

CS 375 UNIX System Programming Spring 2014 Syllabus

Syllabus CSCI 405 Operating Systems Fall 2018

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

:11 PM. This course will have a significant project component. Lecture time will be used primarily for:

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

Transcription:

Welcome to CS 241 Systems Programming at Illinois Marco Caccamo & Brighten Godfrey Copyright : University of Illinois CS 241 Staff 1

The Team Marco Caccamo Office: 4118 SC (office hours: Friday 11.50-12.50) Brighten Godfrey TAs Office: 3211 SC (office hours TBA) Zhongbo Chen, Rajath Subramanyam, Yang Xu, Fan Yang Discussion Sections 8 sessions (Thursdays 9, 10, 12, 1, 2, 3, 4, 5) All sections in SC 0220 Copyright : University of Illinois CS 241 Staff 2

News and Email Announcements and discussions: Piazza https://piazza.com/class#spring2014/cs241 All class questions This is your one-stop help-line! Will get answer < 24 hours e-mail cs241help-sp14@cs.illinois.edu Only for personal questions not postable on Piazza Copyright : University of Illinois CS 241 Staff 3

Are you trying to enroll, but cs241 is full? Stephen Herzog (smherzog@illinois.edu) handles the waiting list. Email him if you need to enroll. Hopefully, some space will open up within 1 week. Cs241 staff can NOT solve this problem. Copyright : University of Illinois CS 241 Staff 4

The Textbook (optional) Introduction to Systems Concepts and Systems Programming University of Illinois Custom Edition Copyright 2007 Pearson Custom Publishing ISBN 0-536-48928-9 Taken from: Operating Systems: Internals and Design Principles, Fifth Edition, by William Stallings UNIX Systems Programming: Communication, Concurrency, and Threads, by Kay A. Robbins and Steven Robbins Computer Systems: A Programmer's Perspective, by Randal E. Bryant and David R. O'Hallaron Copyright : University of Illinois CS 241 Staff 5

Your CS 241 Mission Come to class MWF, 11-11:50am Attend 1 discussion section per week Study posted class lectures (textbook optional) Reading assignments posted on webpage Programming assignments (8) 45% Longer MPs are worth a little more Midterm 25% Monday, March 10 th time: TBD Final 30% Check university calendar Copyright : University of Illinois CS 241 Staff 6

MPs submission policy and regrades Check the syllabus for details at: https://courses.engr.illinois.edu/cs241/syllabus.html Copyright : University of Illinois CS 241 Staff 7

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 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

What is cheating in a programming class? At a minimum Copying code Copying pseudo-code Copying flow charts Consider Did some one else tell you how to do it? Does this mean I can t help my friend? No, but don t solve their problems for them Not cheating Discussing high-level approaches Discussing MP requirements, C language, tools Helping each other with debugging Discussing how you worked through a particular problem Copyright : University of Illinois CS 241 Staff 9

Getting The Most Out Of Any Class Get the big picture Why are we doing this? Why is it important? Understand the basic principles If you know how to apply them, you can work out the details Learn why things work a certain way Automatic vs. manual, elegant vs. ad hoc, solved problem vs. open Think about the costbenefit trade-offs Performance vs. correctness, development time vs. benefit Copyright : University of Illinois CS 241 Staff 10

Getting The Most Out Of This Class Attend the lectures (they will be video recorded too: link will be shared asap!) Pay attention to the discussions Ask questions, and participate Do the exercises in class Start the assignment the day it is handed out, not the day it is due Copyright : University of Illinois CS 241 Staff 11

What is systems programming? Copyright : University of Illinois CS 241 Staff 12

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: a system of one or more connected computers and associated software Search engines, social networks, databases, Internet In this class, we learn how to design and code their software Copyright : University of Illinois CS 241 Staff 13

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 14

What is an operating system and why do I need one? What do we have? Set of common resources My Computer Hardware Network Copyright : University of Illinois CS 241 Staff 15

What is an operating system and why do I need one? What do we have? Set of common resources What do we need? My Computer Hardware Network Copyright : University of Illinois CS 241 Staff 16

What is an operating system and why do I need one? Application Software What do we have? Firefox Set of common resources What do we need? Second Life Yahoo Chat GMail A clean way to allow applications to use these resources! Hardware Network Copyright : University of Illinois CS 241 Staff 17

Application Requirements Application Software Firefox Read/write Hardware Network Copyright : University of Illinois CS 241 Staff 18

Two Applications? Application Software Firefox Second Life Read/write Display Hardware Network Copyright : University of Illinois CS 241 Staff 19

Managing More Applications? Application Software Firefox Second Life Yahoo Chat Read/write Display Store Hardware Network Copyright : University of Illinois CS 241 Staff 20

We need help! Application Software Firefox Second Life Yahoo Chat GMail Read/write Display Store Send/receive Hardware Network Copyright : University of Illinois CS 241 Staff 21

Approach: Find Common Functions Application Software Firefox Second Life Yahoo Chat GMail Read/write Display Store Send/receive Hardware Network Copyright : University of Illinois CS 241 Staff 22

Delegate Common Functions Application Software Firefox Second Life Yahoo Chat GMail Operating System Read/Write Standard Output Device Control File System Communication Hardware Network Copyright : University of Illinois CS 241 Staff 23

Export a Standard Interface Application Software Firefox Second Life Yahoo Chat GMail Operating System Read/Write Standard Operating System Interface Standard Output Device Control File System Communication Hardware Network Copyright : University of Illinois CS 241 Staff 24

Goal: Increase Portability Application Software Firefox Second Life Yahoo Chat GMail Standard Operating System Interface Operating System Read/Write Machine Independent Standard Output Device Control File System Communication Hardware Machine Specific Network Copyright : University of Illinois CS 241 Staff 25

Machine Independent = Portable Application Software Firefox Second Life Yahoo Chat GMail Machine Independent Standard Operating System Interface Operating System Read/Write Standard Output Device Control File System Communication Portable Copyright : University of Illinois CS 241 Staff 26

OS Runs on Multiple Platforms Application Software Firefox Second Life Yahoo Chat GMail Machine Independent Standard Operating System Interface Operating System Read/Write Standard Output Device Control File System Communication Machine Specific Hardware Network Copyright : University of Illinois CS 241 Staff 27

OS Runs on Multiple Platforms Application Software Firefox Second Life Yahoo Chat GMail Machine Independent Standard Operating System Interface Operating System Read/Write Standard Output Same Interface! Device Control File System Communication Machine Specific Hardware Network Copyright : University of Illinois CS 241 Staff 28

POSIX The UNIX Interface Standard Application Software Firefox Second Life Yahoo Chat GMail Unix Read/Write Standard Output POSIX Standard Interface Device Control File System Communication Copyright : University of Illinois CS 241 Staff 29

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 30

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 31

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 32

Course Outline Week 1-2: Nuts & bolts Manipulate pointers and memory Use UNIX system calls from within C programs MP0: Baby-steps in C (to be released today!) MP1: working with C pointers & strings Week 3-4: Memory Understand memory allocation and virtualization MP2: malloc (+contest!) Copyright : University of Illinois CS 241 Staff 33

Course outline Week 5-6: Parallelism Create and manage processes and threads Control scheduling of proc./threads MP3: Shell MP4: Multithreaded sorting Week 7-11: Cooperating parallelism Communicating & sharing resources between proc./threads MP5: Parallel make MP6: MapReduce Copyright : University of Illinois CS 241 Staff 34

Course outline Week 12-13: Networking Use communication protocols (TCP/IP) and interfaces (Sockets) Write distributed multi-threaded apps that talk across a network MP7: Web server (*) Week 14: Additional OS concepts I/O and file systems Copyright : University of Illinois CS 241 Staff 35

Complete Schedule See class webpage http://courses.engr.illinois.edu/cs241/ Schedule is dynamic Check regularly for updates Slides will be posted by the night before class Bring a print out of the slides to class Some class material may not be in slides Examples may be worked out in class Copyright : University of Illinois CS 241 Staff 36

Your to-do List Visit the class webpage Check out all the info Especially schedule, grading policy, homework & MP hand-in instructions, and resources Familiarize yourself with Piazza Find a reference to refresh your C programming skills http://www.lysator.liu.se/c/bwk-tutor.html Copyright : University of Illinois CS 241 Staff 37