CS 0449 Intro to Systems Software Fall Term: 2181

Similar documents
CS 241 Data Organization using C

EECE.2160: ECE Application Programming Spring 2017

CSC 111 Introduction to Computer Science (Section C)

ESET 349 Microcontroller Architecture, Fall 2018

CS 241 Data Organization. August 21, 2018

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

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

Syllabus CSCI 405 Operating Systems Fall 2018

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

AE Computer Programming for Aerospace Engineers

A: 90% - 100% B: 80% - <90% C: 70% - <80% D: 60% - <70% F: < 60% Important Dates:

CHEM 31A (90285): General Chemistry Fall 2013

Sprint 2017, Sul Ross State University

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

INF 315E Introduction to Databases School of Information Fall 2015

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

ESET 369 Embedded Systems Software, Fall 2017

Introduction to Computer Systems

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

Internet Web Technologies ITP 104 (2 Units)

EECE.2160: ECE Application Programming Spring 2019

Introduction to Information Technology ITP 101x (4 Units)

Business Information System Analysis and Design Fall 2017

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

Course and Unix Intro

Computer Science Technology Department

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

Web Programming Fall 2011

CS 211 Programming I for Engineers

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

You must pass the final exam to pass the course.

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

CSE3008: Operating Systems. Computer Systems Laboratory Sungkyunkwan University

ISM 324: Information Systems Security Spring 2014

CS 375 UNIX System Programming Spring 2014 Syllabus

TEACHING & ASSESSMENT (T & A) PLAN College of Economics Management and Information Systems Department of Information Systems

CS Computer Science I

INFS 2150 (Section A) Fall 2018

Course Syllabus. Course Information

CS/SE 153 Concepts of Compiler Design

CS 3270 Mobile Development for Android Syllabus

CISC 3130 Data Structures Fall 2018

CS120 Computer Science I. Instructor: Jia Song

CSCE 441 Computer Graphics Fall 2018

San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

Computer Science Technology Department

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

Introduction to Data Structures

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

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

CPSC 4600 Biometrics and Cryptography Fall 2013, Section 0

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

IST359 - INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

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

FORM I: SUMMARY PAGE FOR PROPOSAL # CSCI

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

CHEM 31A (90366): General Chemistry Fall 2011

Course and Contact Information. Course Description. Course Objectives

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

Advanced Topics in Database Systems Spring 2016

Course and Contact Information. Course Description. Course Objectives

Survey of Programming Languages Dr. R. M. Siegfried 407 Science (516) (not for homework submission)

IS Spring 2018 Database Design, Management and Applications

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

STUDENT GUIDELINES FOR THE COMMUNICATION RESEARCH EXPERIENCE PROGRAM (C-REP) AUTUMN 2016

Division of Engineering, Computer Programming, and Technology

CISC 3130 Data Structures Spring 2018

Digital Forensics ITP 375 (3 Units)

Advanced Programming CMPS 109

Course Title: Computer Networking 2. Course Section: CNS (Winter 2018) FORMAT: Face to Face

ITP489 In-Memory DBMS for Real Time Analytics

Introduction to Computer Systems

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

Developing Web Applications and Services Course Syllabus Fall 2015

X

CS 3030 Scripting Languages Syllabus

Computer Science 1321 Course Syllabus

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET

Operating Systems, Spring 2015 Course Syllabus

CoSci 487 SYLLABUS Introduction to Networks

ITP454 Enterprise Resource Planning, Design, and Implementation

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

When does RDBMS representation make sense When do other representations make sense. Prerequisites: CS 450/550 Database Concepts

Enterprise Network Design ITP 499 (3 Units)

CS 235AM, Mobile Application Development: Android Spring 2016

ISATI 231: Windows Client (4 credits) Spring 2018 Mon, Tue, Wed, Thu, 13:10-14:40, MTB 105

San José State University Department of Computer Science CS166, Information Security, Section 1, Fall, 2018

Murach's HTML and CSS3 3 rd Edition By Boehm, Anne Fresno, Calif Publisher: Mike Murach & Associates, 2015 ISBN-13:

CPSC 5157G Computer Networks

Cleveland State University

University of North Texas ACCT 4100 (3 hours) Accounting Systems. Section Time Place 001 TR 12:30 1:50 p.m. Busi R 6:30-9:20 Busi 231

ECONOMICS 5317: CONTEMPORARY GOVERNMENT AND BUSINESS RELATIONS

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

CSCI 201L Syllabus Principles of Software Development Spring 2018

SYLLABUS BIOLOGY 1107: Principles of Biology I Fall Semester Section 001: (9:05-9:55AM, Mon, Wed and Fri) Bldg.: Laurel Hall, Room 102

Marshall University MTH 100 Syllabus

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

Transcription:

CS 0449 Intro to Systems Software Fall Term: 2181 Class Recitation Recitation Recitation Time: 11:00am 12:15pm 03:00pm 03:50pm 10:00am 10:50am 09:00am 09:50am Days: TH T W F Number 19730 20024 19731 27127 Room: G30 BENDM 6110 SENSQ 5505 SENSQ 5505 SENSQ Instructor: Wonsun Ahn Jinpeng Zhou Akhil Yendluri Jinpeng Zhou Webpage: http://www.cs.pitt.edu/~wahn/teaching/cs449/ Class Recitation Recitation Recitation Time: 4:00pm 5:15pm 11:00am 11:50am 02:00pm 02:50pm 01:00pm 01:50pm Days: TH M M F Number 11578 27122 11580 11579 Room: 107 LAWRN 5505 SENSQ 5505 SENSQ 5502 SENSQ Instructor: Wonsun Ahn Akhil Yendluri Akhil Yendluri Akhil Yendluri Webpage: http://www.cs.pitt.edu/~wahn/teaching/cs449/ Contact Information Instructor: Wonsun Ahn Grading TA: Swarupa Vaishampayan Office: 6115 SENSQ Office: 6506 SENSQ Email: wahn@pitt.edu Email: ssv12@pitt.edu Office Hours: Tue 1:30 3:00 PM Thu 12:30 1:30 PM Office Hours: Mon 12:15 2:15 PM Wed 11:30 1:30 PM Recitation TA: Akhil Yendluri Recitation TA: Jinpeng Zhou Office: 6506 SENSQ Office: 6150 SENSQ Email: aky13@pitt.edu Email: jiz150@pitt.edu Office Hours: Wed 11:30 1:30 PM Fri 2:30 4:30 PM Office Hours: Wed 10:00 12:00 PM Fri 10:00 12:00 PM Description A Computer System is comprised of both hardware and software working in concert to accomplish useful work. In this course, we will explore the issues of programming a real computer system by examining 1

the abstractions, interfaces, and design decisions that influence the way that software runs. This includes the role the Operating System has in communication and resource management. The perspective we will take is one of the lifecycle of a program from implementation to execution. The simple act of compiling and running a program, a sequence of events we often take for granted, is a complex interaction of many different components that work together to manage the computer s resources and perform the desired task. Together, these components form a working computer system. Prerequisites Before enrolling in this course, you need to have completed CS 0445 Data Structures and have completed or be currently enrolled in CS 0447 Computer Organization and Assembly Language Programming. If you have any questions about the prerequisite material for the course, please ask at the beginning of the term. Course Purposes and Goals This course begins with the creation of executable programs in the C programming language. We will then explore the resultant program as it as stored on disk and as it is loaded for execution. Next, we will examine the interactions between our code and the code provided via libraries or the operating system to facilitate common, low-level tasks. Finally, we will look at the abstractions and resource management undertaken by the OS and its drivers to facilitate communication and hardware interaction. The goals of the course are: Learning C programming. C is the most common language used for systems software. Exploring the layout of an executable program s code and data both as stored on disk and loaded into memory. Interacting with the abstractions that libraries and the operating system provide. Implementing our own abstractions, and manage hardware resources through device drivers. Textbooks [REQUIRED TEXT] Oualline, Steve. Practical C Programming. O Reilly, Sebastopol, CA, 1997. ISBN: 1-56592-306-5 You may substitute instead (but you re responsible for the appropriate readings): Kernighan, Brian W. and Ritchie, Dennis M. C Programming Language. 2nd Ed. Prentice Hall PTR, 1988. 2

ISBN: 0-13110-362-8 [ONLINE REQUIRED TEXTS] There are three additional textbooks that are available online in PDF form that we will refer to throughout the term. Links can be found on the course website. Class Policies Exams: There will be two midterms and a final. The exams will be closed book/notes. Cheating on exams will not be tolerated. Anyone caught cheating will be given a zero for the test and reported to the department following University procedures. Projects: There will be 5 out-of-class assignments given. These are to be completed in the given time (no extensions will be given without a valid excuse. LATE WORK IS NOT ACCEPTED. Contact me before the deadline for clarifications.) These are meant to be your own work; anyone found to be collaborating will be disciplined in accordance to University policy. Cheating means (but is not limited to): using code from previous terms, other universities, your friends, finding it on the Internet, getting help from unapproved forums, or outsourcing it. We will be using Moss, a tool from Stanford for determining inappropriate collaboration. Labs and Quizzes: Attending recitation is an important part of this course. In recitation you will be able to work in a structured setting while completing small tasks (Labs). Concepts from class will be expanded upon and tested with unannounced quizzes. Participation: Attendance will not be taken, but in a small class, any absence will be noticed. Several unexcused missed classes will adversely affect your grade. Grading Your grade will be based upon 3 exams, 5 projects, labs and quizzes (the lowest one of which will be dropped), and participation: The scale for the term will be: First Midterm 15% Second Midterm 15% Final Exam 15% 5 Projects 40% (8% each) Labs and Quizzes 10% Participation 5% Total 100% 3

Percentage 100 95 90 89 85 80 79 75 70 69 65 60 < 60 Letter A+ A A- B+ B B- C+ C C- D+ D D- F Disability Resources and Services: If you have a disability for which you are requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 216 William Pitt Union, (412) 648-7890, as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course. Academic Integrity Students are expected to comply with the University of Pittsburgh s Policy on Academic Integrity. Any student suspected of violating this obligation for any reason during the semester will be required to participate in the procedural process as outlined in the University Guidelines on Academic Integrity. For further information see: http://www.pitt.edu/~provost/ai1.html Term Schedule The daily topics are subject to change depending on our pace. They are there to assist you in the readings so you can focus on those concepts prior to class. The textbooks are indicated as follows: Practical C Course text Misurda CS 0449: Introduction to Systems Software (online) ALP Advanced Linux Programming (online) LDD3 Linux Device Drivers, 3 rd edition (online) Week 1: 8/29/2017-8/31/2017 READINGS: Practical C, Chapters 1-4, 6, 8, 11 Intro to the Course C Programming o Data Types and Representation o Operators & Bitwise Manipulation o Control Flow Week 2: 9/5/2017-9/7/2017 READINGS: Practical C, Chapters 5, 7, 9 4

C Programming (continued) o Arrays o Strings o Functions Week 3: 9/12/2017-9/14/2017 FRIDAY, SEPTEMBER 8, 2017: Fall term add/drop period ends READINGS: Practical C, Chapters 10, 12-14, 17; Misurda, Chapter 1 C Programming (continued) o Scope vs. Lifetime o Pointers o I/O! Console! Files Week 4: 9/19/2017-9/21/2017 READINGS: Practical C, Chapters 15-23 C Programming (continued) o Memory management! malloc/free o Structures, and Unions THURSDAY, SEPTEMBER 28, 2017: First Midterm Exam Review for first midterm exam Week 5: 9/26/2017-9/28/2017 READINGS: Misurda, Chapters 2-3 Week 6: 10/3/2017-10/5/2017 Program Representation Linking o Static o Dynamic Libraries, archives, shared objects Executable file formats 5

READINGS: Misurda, Chapters 4-6 Week 7: 10/10/2017-10/12/2017 TUESDAY, OCTOBER 10, 2017: No class, follow your Monday schedule! X86 assembly & calling conventions Data Representation o Globals, constants o o Activation Records Arrays and Structures Week 8: 10/17/2017-10/19/2017 READINGS: Misurda, Chapter 7; ALP Chapters 3, 8 Processes and Memory Management Week 9: 10/24/2017-10/26/2017 FRIDAY, OCTOBER 27, 2017: Withdrawal Deadline (For W grade) READINGS: LDD3, Chapters 1-2 Interaction with Operating System o interrupts (int 0x80, int 3) o calling convention/abi Syscalls Signal Handling Week 10: 10/31/2017-11/2/2017 THURSDAY, NOVEMBER 2, 2017: Second Midterm Exam Fork System Call & Processes Review for second midterm exam READINGS: Practical C, Chapters 7,10,18 Linux Device Drivers Multi-file Development o Providing an interface/api o Header files o Makefiles Week 11: 11/7/2017-11/9/2017 6

READINGS: Misurda, Chapter 8; ALP, Chapter 3 Finish up makefiles Communication and Networking o Berkley Sockets o Pipes o Shared Memory READINGS: Misurda, Chapter 9 Week 12: 11/14/2017-11/16/2017 Week 13: 11/21/2017-11/23/2017 THURSDAY, NOVEMBER 24, 2017: Thanksgiving Break, University Closed Finish up networking Threading o User vs. Kernel Threading o Scheduling/yield/sleep o pthreads READINGS: Misurda, Chapter 10 Week 14: 11/28/2017-11/30/2017 Finish up threading Deadlocks/Synchronization READINGS: Prepare for the final exam Review for the final exam Week 15: 12/5/2017-12/7/2017 Finals Week Final Exam (TH 11:00am 12:15pm Class): Thursday, December 14, 2017, from 8:00am 9:50am Final Exam (TH 04:00pm 05:15pm Class): Friday, December 15, 2017, from 12:00pm 1:50pm 7

8