Introduction to Systems Programming & Operating Systems CIS 3207 / CIS 5012 Spring, 2017

Similar documents
CIS Introduction to Digital Forensics 12:30pm--1:50pm, Tuesday/Thursday, SERC 206, Fall 2015

Computer Architecture CSC

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

Beginning and Intermediate Algebra, by Elayn Martin-Gay, Second Custom Edition for Los Angeles Mission College. ISBN 13:

CS 3516: Computer Networks

Financial Accounting Concepts and Research

STA2023 Introduction to Statistics (Hybrid) Spring 2013

MAT 122 Intermediate Algebra Syllabus Summer 2016

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

Introduction to Sociology SOCI 1101 (CRN 30025) Spring 2015

Scottsdale Community College Spring 2016 CIS190 Intro to LANs CIS105 or permission of Instructor

Course Syllabus. Alternatively, a student can schedule an appointment by .

HCI 440: Introduction to User-Centered Design Winter Instructor Ugochi Acholonu, Ph.D. College of Computing & Digital Media, DePaul University

Intensive English Program Southwest College

BUS Computer Concepts and Applications for Business Fall 2012

ACC 380K.4 Course Syllabus

Course Specifications

Computer Organization I (Tietokoneen toiminta)

CS 100: Principles of Computing

ACC 362 Course Syllabus

SYLLABUS: RURAL SOCIOLOGY 1500 INTRODUCTION TO RURAL SOCIOLOGY SPRING 2017

SYLLABUS. EC 322 Intermediate Macroeconomics Fall 2012

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

SOUTHWEST COLLEGE Department of Mathematics

Texas A&M University-Central Texas CISK Comprehensive Networking C_SK Computer Networks Monday/Wednesday 5.

Course Syllabus for Math

ECON492 Senior Capstone Seminar: Cost-Benefit and Local Economic Policy Analysis Fall 2017 Instructor: Dr. Anita Alves Pena

Phys4051: Methods of Experimental Physics I

PHO 1110 Basic Photography for Photographers. Instructor Information: Materials:

RL17501 Inventing Modern Literature: Dante, Petrarch, Boccaccio and XIV Century Florence 3 credits Spring 2014

Office Hours: Day Time Location TR 12:00pm - 2:00pm Main Campus Carl DeSantis Building 5136

The University of Texas at Tyler College of Business and Technology Department of Management and Marketing SPRING 2015

General Chemistry II, CHEM Blinn College Bryan Campus Course Syllabus Fall 2011

SOUTHERN MAINE COMMUNITY COLLEGE South Portland, Maine 04106

95723 Managing Disruptive Technologies

General Physics I Class Syllabus

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

COURSE DESCRIPTION PREREQUISITE COURSE PURPOSE

BA 130 Introduction to International Business

Accounting 543 Taxation of Corporations Fall 2014

Math 181, Calculus I

Course Syllabus p. 1. Introduction to Web Design AVT 217 Spring 2017 TTh 10:30-1:10, 1:30-4:10 Instructor: Shanshan Cui

Spring 2015 CRN: Department: English CONTACT INFORMATION: REQUIRED TEXT:

ASTRONOMY 2801A: Stars, Galaxies & Cosmology : Fall term

Data Structures and Algorithms

ACCT 100 Introduction to Accounting Course Syllabus Course # on T Th 12:30 1:45 Spring, 2016: Debra L. Schmidt-Johnson, CPA

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

Course Syllabus Art History II ARTS 1304

Course Syllabus Advanced-Intermediate Grammar ESOL 0352

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

HUMAN DEVELOPMENT OVER THE LIFESPAN Psychology 351 Fall 2013

Syllabus: CS 377 Communication and Ethical Issues in Computing 3 Credit Hours Prerequisite: CS 251, Data Structures Fall 2015

Food Products Marketing

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

COURSE SYLLABUS: CPSC6142 SYSTEM SIMULATION-SPRING 2015

CSCI 333 Java Language Programming Fall 2017 INSTRUCTOR INFORMATION COURSE INFORMATION

CRITICAL THINKING AND WRITING: ENG 200H-D01 - Spring 2017 TR 10:45-12:15 p.m., HH 205

Prerequisite: General Biology 107 (UE) and 107L (UE) with a grade of C- or better. Chemistry 118 (UE) and 118L (UE) or permission of instructor.

Business Analytics and Information Tech COURSE NUMBER: 33:136:494 COURSE TITLE: Data Mining and Business Intelligence

Department of Accounting ACC Fundamentals of Financial Accounting Fall, 2015 Syllabus

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

Course Policies and Syllabus BUL3130 The Legal, Ethical, and Social Aspects of Business Syllabus Spring A 2017 ONLINE

MGMT 3362 Human Resource Management Course Syllabus Spring 2016 (Interactive Video) Business Administration 222D (Edinburg Campus)

Monday/Wednesday, 9:00 AM 10:30 AM

POFI 1301 IN, Computer Applications I (Introductory Office 2010) STUDENT INFORMANTION PLAN Spring 2013

Business Computer Applications CGS 1100 Course Syllabus. Course Title: Course / Prefix Number CGS Business Computer Applications

IST 440, Section 004: Technology Integration and Problem-Solving Spring 2017 Mon, Wed, & Fri 12:20-1:10pm Room IST 202

Human Development: Life Span Spring 2017 Syllabus Psych 220 (Section 002) M/W 4:00-6:30PM, 120 MARB

Fullerton College Business/CIS Division CRN CIS 111 Introduction to Information Systems 4 Units Course Syllabus Spring 2016

ACC : Accounting Transaction Processing Systems COURSE SYLLABUS Spring 2011, MW 3:30-4:45 p.m. Bryan 202

ECD 131 Language Arts Early Childhood Development Business and Public Service

GIS 5049: GIS for Non Majors Department of Environmental Science, Policy and Geography University of South Florida St. Petersburg Spring 2011

BIOH : Principles of Medical Physiology

The Policymaking Process Course Syllabus

ITSC 1301 Introduction to Computers Course Syllabus

HIST 3300 HISTORIOGRAPHY & METHODS Kristine Wirts


Foothill College Summer 2016

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

FINN FINANCIAL MANAGEMENT Spring 2014

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

INTERMEDIATE ALGEBRA Course Syllabus

Required Texts: Intermediate Accounting by Spiceland, Sepe and Nelson, 8E Course notes are available on UNM Learn.

Required Text: Oltmanns, T. & Emery, R. (2014). Abnormal Psychology (8th Edition) ISBN-13: ISBN-10:

Austin Community College SYLLABUS

CS Course Missive

Office Location: LOCATION: BS 217 COURSE REFERENCE NUMBER: 93000

PSYCHOLOGY 353: SOCIAL AND PERSONALITY DEVELOPMENT IN CHILDREN SPRING 2006

MGMT 479 (Hybrid) Strategic Management

Syllabus: INF382D Introduction to Information Resources & Services Spring 2013

Social Media Journalism J336F Unique ID CMA Fall 2012

Instructor Experience and Qualifications Professor of Business at NDNU; Over twenty-five years of experience in teaching undergraduate students.

Cleveland State University Introduction to University Life Course Syllabus Fall ASC 101 Section:

Student Handbook. Supporting Today s Students with the Technology of Tomorrow

Medical Terminology - Mdca 1313 Course Syllabus: Summer 2017

AGN 331 Soil Science Lecture & Laboratory Face to Face Version, Spring, 2012 Syllabus

Records and Information Management Spring Semester 2016

International Environmental Policy Spring :374:315:01 Tuesdays, 10:55 am to 1:55 pm, Blake 131

Syllabus: Introduction to Philosophy

Transcription:

Introduction to Systems Programming & Operating Systems CIS 3207 / CIS 5012 Spring, 2017 Professor: Dr. Eugene Kwatny Office: SERC 324 Phone: 215-204-1679 EMAIL: gkwatny@temple.edu Course Meeting Times: Tuesday & Thursday 12:30 PM - 1:50 PM [Beury Hall, Room 164] Section 1: Laboratory Monday 9:00 AM - 10:50 AM [SERC 204] Section 2: Laboratory Monday 9:00 AM - 10:50 AM [SERC 206] Office Hours: [appointments are encouraged] Tuesday 11:00AM - 12:00 PM Thursday 2:30 PM - 4:30 PM (other times available by appointment) Teaching Assistants: 3207.001 Jiacheng Shang Office hours: TBD Office: SERC 332 Email: jiacheng.shang@temple.edu Office phone #: 215-204-5969 3207.002 Graeme Copeland Office Hours: TBD Email: Graeme Copeland Prerequisites: Grade of C or better in: C+IN SC 1166 or Math 2196, C+IN SC 2107, and C+IN SC 2168. (if any of these courses was taken in Spring 2012 or later, a grade of C- or better is required) o The 'C' programming language will be used for laboratory experiments, and students are expected to have some elementary experience with programming in C. [Online resources for programming in C are available through the class Blackboard site]

Required Textbooks: " Operating Systems: Internals and Design Principles, 8th Edition, William Stallings, Pearson, ISBN-13: 9780133813876, 2015 "Computer Systems - a Programmer's Perspective",2e, Bryant & O'Hallaron, 2011, Prentice Hall [same textbook used in 2107, the 2003 edition is OK] A helpful programming resource for the course: The Linux Programming Interface: A Linux and UNIX System Programming Handbook by Michael Kerrisk, bublished by Published by No Starch Press [see Blackboard Additional Contents ] Grading: Course grade will be determined by : Final Exam (30%) [the final exam will be comprehensive, covering all course material] Midterm Exam (25%) [covers all materials up to the date of the midterm] Laboratory Projects (25%) Quizzes, homework, class participation (20%) (quizzes will generally not be announced in advance and there will be a quiz every 7 to 10 days). Unexcused absences will result in a decrease in the course grade. There is no makeup for missed quizzes and the grade for a missed quiz is 0. The lowest quiz grade will be dropped. We have many projects to complete this semester. If you delay in completing a project, you will end up behind, with greater delay, in each subsequent project. Except for your reading assignments, the lab projects are your primary out of class work. You should have time to complete them. Penalty for late project submission: up to 1 day late, maximum grade of 90% of project value 1 to 2 days late, maximum grade of 80% of project value 2 to 3 days late, maximum grade of 70% of project value 3 to 4 days late, maximum grade of 60% of project value 4 to 5 days late, maximum grade of 50% of project value after the 5th day, the submission will not be accepted and a grade of 0 will be assigned. Aim of Course To introduce the basic concepts of operating systems; with a focus on understanding and evaluating operating systems and the most important computer architectural issues impacting operating system design and implementation. The laboratory portion of the course will be based on experiments and assignments implementing and applying operating system mechanisms and components.

Introduction to the Course CIS 3207 is a course about Systems Programming and about Operating Systems. These are two very related topics. One, operating systems, is concerned with the internal software that transforms or manages the devices and resources that comprise the computer system. The other topic, systems programming, is concerned with writing programs that interact with the operating system services. This semester we will explore the main features and principles of operating systems. In order to pursue this exploration, we will also concern ourselves with computer architecture. We must understand the architecture and devices that make up the computer system to understand software at the level of controlling a computer system,. We will apply these concepts, in particular, to the study of two operating systems that are widely used: Microsoft Windows (actually the Windows NT family) and Linux. In the process, we will study the systems APIs (application programming interfaces) for the two OS'. The 'C' (or C++) programming language will be used for laboratory experiments and students will have to enhance their own C programming capability (beyond the C programming introduced in CIS 2107. The Blackboard 3207 course includes many C programming references and training materials). The Lynda.com course C Essential Training is available through TUPortal and is a valuable resource. Course Topics Overview of operating systems Operating system principles and computer architecture Operating system kernels Processes and threads Concurrency CPU Scheduling and dispatching Memory management and virtual memory Device management File systems Learning Objectives OS/Overview of Operating Systems Describe and explain the objectives and functions of modern operating systems, the tradeoffs inherent in operating system design. OS/Operating System Principles Explain the concept of a logical layer and the benefits of building abstract layers in hierarchical fashion; describe the value of and demonstrate the use of APIs and middleware; contrast kernel and user mode in an operating system; describe the advantages and disadvantages of using interrupt processing; explain the use of device drivers and I/O queues. OS/Concurrency

Describe the need for concurrency within the framework of an operating system; demonstrate the potential run-time problems arising from the concurrent operation of many separate tasks; describe the range of mechanisms that can be employed at the operating system level to realize concurrent systems; explain the different states that a task may pass through and the data structures needed to support the management of many tasks; summarize and apply techniques for achieving synchronization in an operating system; and, describe reasons for using interrupts, dispatching, and context switching to support concurrency in an operating system. OS/Scheduling and Dispatch Compare and contrast the common algorithms used for both preemptive and nonpreemptive scheduling of tasks in operating systems; discuss the types of processor scheduling such as short-term, medium-term, long-term, and I/O; describe the difference between processes and threads; explain and apply thread models and user and kernel level threads; discuss the need for preemption and deadline scheduling. OS/Memory Management Explain memory hierarchy and cost-performance trade-offs; summarize the principles of virtual memory as applied to caching and paging; defend the different ways of allocating memory to tasks, citing the relative merits of each; describe the reason for and use of cache memory (performance and proximity, different dimension of how caches complicate isolation and VM abstraction); and, discuss the concept of thrashing, both in terms of the reasons it occurs and the techniques used to recognize and manage the problem. OS/Virtual Machines Explain the concept of virtual memory and how it is realized in hardware and software; differentiate emulation and isolation; discuss hypervisors and the need for them in conjunction with different types of systems. OS/Device Management Explain the key difference between serial and parallel devices and identify the conditions in which each is appropriate; identify the relationship between the physical hardware and the virtual devices maintained by the operating system; explain buffering and describe strategies for implementing it; differentiate the mechanisms used in interfacing a range of devices; describe the advantages and disadvantages of direct memory access and discuss the circumstances in which its use is warranted; describe memory-mapped I/O. OS/File Systems Describe the choices to be made in designing file systems; compare and contrast different approaches to file organization, recognizing the strengths and weaknesses of each; construction of a file system; summarize how hardware developments have led to changes in the priorities for the design and the management of file systems; summarize the use of journaling and how log-structured file systems enhance fault tolerance.

Content Reading and lecture material from Stallings ( Operating Systems) Chapters 1-12. Reading and lecture material from Bryant & O'Hallaron ('Computer Systems') Chapters 6, 10, 13. Lecture materials and supplemental documents and texts are available through Blackboard. DATES of IMPORTANCE: First class: Tuesday, January 17 Last day to drop (tuition refund available): Monday, January 30. Spring Break (no classes) March 13 March 19 Last day to withdraw (no refund): Wednesday, March 22. Last Class: Thursday April 27. Study Days: Tuesday, May 2 and Wednesday, May 3. Final Exam: Thursday May 4, 10:30 AM - 12:30 AM. Student Responsibilities Student's are responsible for reading all assigned text materials, handouts, and referenced sources. Students are responsible for participating in classroom discussions and discussions carried out electronically though Blackboard or other class facilities. The CIS laboratory computer systems are available for use in homework and laboratory exercises. Access to the computer systems in CIS labs is through Temple University AccessNet username and password. SERC laboratories 204, 206, 357, and 359 have dual boot Windows and Linux systems. We will be using the computer systems in room 357 for in class laboratory assignments, although the same resources are available in each of the CIS SERC labs. (Note that beginning this semester, the TECH Center computers will also be available for work on lab assignments when CIS labs are not available). You are responsible for performing and completing all of the laboratory exercises. This includes becoming familiar with, and being able to use, all of the tools and software that are to be used in these exercises. Much of the source code work in the course will require you to have familiarity with (or become familiar with) the C language and development environments for compiling and building C programs in both Windows and Linux. Reference material for the C Language is available via the CIS 3207 Blackboard site. Students are responsible for taking all quizzes and exams in the course. All work turned in for grading or review by the instructors of the course must be the students own work. The objectives of the course can only be met by your doing all of the work and presenting only your work for grading. Presenting work that is not your own will result in disciplinary action and no credit. Student attendance to each class and each laboratory is Mandatory.

Students who miss the final exam and do not make alternative arrangements with me before the exam, will receive a grade of F. Student and Faculty Academic Rights and Responsibilities Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following http://policies.temple.edu/pdf/99.pdf. Accommodations for Students with Disabilities. Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. I will work with DRS to coordinate reasonable accommodations for all students with documented disabilities. (http://www.temple.edu/studentaffairs/disability/accommodations/). Collaboration and Cheating Policy [Please READ Carefully] We encourage you to discuss the problem sets and programming assignments with your colleagues. We welcome discussions of possible interpretations of questions, solution approaches, and points of confusion. You are also welcome to use existing public libraries in your programming assignments (such as public classes for queues, trees, etc.) You may also look at operating systems code for public domain software such as Linux. Such activities qualify under approved collaboration practices and you are welcome to take advantage of them. You may not look at any course project material relating to any project similar to this course's class projects. For example, you may not look at the work done by a student in past years' courses, and you may not look at similar course projects at other universities. If you are unsure about whether a particular source of external information is permitted, contact the instructor before looking at it. Note that cooperation is not the same thing as cheating. You must understand and generate the solution, and you must not copy all or part of someone else's solution. The project assignments and exams must be the work of the student turning them in. Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Because such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced. It is generally OK to verbally discuss the concepts needed to do projects assignments. These discussions should focus on overall approach and understanding, not the detailed answer to the specific problem. These guidelines will help you keep on the right side of the line: First, other than to the TA and instructor, it is never OK to look at the written work of another person or show another person your written work until after all grading on an

assignment is completed. This includes looking at paper print-outs, sketching solutions on a white board or napkin, or looking at a screen to help debugging. It should go without saying that copying other people's code or solution sets is strictly prohibited. Second, everyone in the class is expected to take appropriate measures for protecting one's work. For example, you should protect your files and printouts from unauthorized access. Note that these guidelines are necessarily generalizations and cannot account for all circumstances. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask. For the in-lab parts of laboratory projects completed in teams, both team members should contribute equally and will be graded individually. The write-ups and out-of-class portions of labs must be completed independently. In summary, when you are turning in an assignment with your name on it; what you turn in must be your work, and yours alone. Cheating will not be tolerated. Cheating, looking at someone else s paper during a quiz or exam will not be tolerated. University policies on scholastic dishonesty will be strictly enforced Incomplete Grade Policy: Incomplete grades will be granted only in rare circumstances and require the approval of the instructor. Students who have not completed all the requirements prior to the last day of class will need to talk with the instructor about how this will be rectified. Resources We will use the Blackboard course management system in this course, http://blackboard.temple.edu or access through the TUPortal (http://tuportal.temple.edu). In order to access Blackboard you must have an Temple AccessNet account (all Temple students have one). Registered students will be automatically enrolled in the CIS 3207 Blackboard course. But this can only happen if you have an AccessNet account and are registered for the course. Until you are registered for the course and have such an account, you cannot access the course materials in Blackboard. Your AccessNet account also gives you login capability for Astro (astro.temple.edu). All materials for the course will be available from Blackboard. This includes a threaded discussion list, class notes and lecture slides. Students will be required to interact with themselves, and the instructor via this discussion list or other tools (e.g., a wiki) provided for the course. Blackboard and the discussion lists are accessed through a web browser. Announcements for the course will be provided via Blackboard. You are expected to visit the Blackboard course for CIS 3207 on a regular basis for updates to lecture notes, slides and other course information. Project and homework assignments are to be submitted through Blackboard in electronic form.

Office visits, Voice Mail and EMAIL are encouraged for communication with the instructor. Last Modified: 11 January 2017