140 likes | 147 Views
This course explores the theory and practical aspects of operating systems, including Linux customization, systems programming, and the importance of systems administration. Topics covered include process management, CPU scheduling, synchronization, file systems, and more.
E N D
Course Information Sarah Diesburg Operating Systems CS 3430
Class Info • Sarah Diesburg (diesburg@cs.uni.edu) • Office: 311 ITTC • Office hours: MWF 9:00-10:00am, 1:00-2:00pm, and by appointments • Class website: eLearning • Lecture MWF 2:00pm-2:50pm in ITTC 322
Why Study Operating Systems? • The OS is the largest and the most complicated software running on most machines • Where can I use it? • Software engineering • Database design and implementation • Network design and implementation • Distributed computing
Course Structure • Theory • What pieces does an OS need? How do they work? Why are they important? How does design come into play? • Hands-on work • Linux familiarity • Operating system customization • Systems Programming • Any programming that involves the operating system, hardware, or middlewear between user apps and hardware
Why Use Linux? • Linux is open source • We actually have access to the kernel code and can change it • Much of the Internet runs on UNIX/Linux! • Wonderful time to get some experience
Linux Share • Desktop/laptop – Linux 1.73% • Mobile Devices – Android 79% • Servers – Linux 66.8% • Supercomputers – Linux 98% Source: http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers
Why care about Systems Programming? • Operating Systems • Storage, networking, virtualization • Storage and Databases • High-performance and fault tolerance • Compilers • Optimizing languages, creating better ones • Large-scale Distributed Systems • Used by websites or SaaS. Services do things that need drivers that offer OS services.
Why care about Systems Programming? • GPU Computing • Understanding of parallel computing, resource management, and computer architecture • Embedded Computing • Internet of Things (IoT), smartphones • Being a “Better” Systems Administrator • Write better scripts, choose better drivers, pick better hardware, optimize services, etc.
Learning Objectives • Operating system concepts • Process management, CPU scheduling, synchronization, caching, file systems, and so on • Programming skills • User-level shell • Kernel module • Synchronization primitives (threads and mutexes) • File system • Drivers
Course Material • Lecture notes (posted at the class website) • Optional textbook: • Silberschatz, Galvin, Gagne, Operating System Concepts Essentials, 2nd Edition
Class Grading • Six components • Projects (with Lab 0) 47% • Homework over Lectures 8% • Exam 1 12.5% • Exam 2 12.5% • Final Exam 20% • Extra Credit ??
Late Submission Policy • Late project solutions will incur a 10% deduction each day the project is late • Project solutions received after two days from the original due date will receive 0 points • For example, a project solution submitted anytime on the Monday after the original due date of Friday will receive 0 points • Homeworks cannot be late
Academic Honesty • Discussing assignments is good, but copying code or answers is not. • You are responsible for being familiar with UNI’s Academic Ethics Policies (http://www.uni.edu/pres/policies/301.shtml) • All cases found will result in a letter to the provost
Academic Honesty • Any copied code from a current or previous class member may result in a zero grade for the assignment up to an F for the course • All code will be checked with a plagiarism checker against current and previous submissions • Both the supplier and the receiver of copied code will receive the same punishment