160 likes | 200 Views
CS170: Operating Systems. Fall 2015, 4 units http://www.cs.ucsb.edu/~cs170. Course Information. Instructor: Tao Yang www.cs.ucsb.edu/~tyang Office hours: TR 1:45-2:45 (or stop by). TA: Daniel Kudrow (dkudrow@cs), Varun Kulkarni Somashekhar (varun@umail).
E N D
CS170: Operating Systems Fall 2015, 4 units http://www.cs.ucsb.edu/~cs170
Course Information • Instructor: Tao Yang • www.cs.ucsb.edu/~tyang • Office hours: TR 1:45-2:45 (or stop by). • TA: Daniel Kudrow (dkudrow@cs), Varun Kulkarni Somashekhar (varun@umail). • Grading: Roman Kazarin (rkazarin@umail) • Text Book: • Operating Systems: Principles and Practice (Second Edition).by Thomas Anderson and Michael Dahlin. Recursive Books Ltd. 2014 • Recommended: Operating System Concepts Essential. Or Operating System Concepts by the same authors
OS Market Shares on All Devices http://en.wikipedia.org/wiki/Usage_share_of_operating_systems
OS Market Shares on Desktops and Servers Web server OS Market shares. W3Techs.com http://en.wikipedia.org/wiki/Usage_share_of_operating_systems
OS History: How Linux, Andriod, iOS, and Windows are related?
OS History: How Linux, Andriod, iOS, and Windows are related? • Because of the cost of developing an OS from scratch, most modern OSes have a long lineage: • Multics AT&T Unix BSD Unix Ultrix, SunOS, NetBSD,… • Mach (micro-kernel) + BSD NextStep XNU Apple OSX, iphone iOS • Linux Android OS • CP/M QDOS MS-DOS Windows 3.1 NT 95 98 2000 XP Vista 7 8 phone … • Linux RedHat, Ubuntu, Fedora, Debian, Suse,… J. Kubiatowicz CS162 UCB
Course Info • Design and implementation of operating systems. • Class projects • Linux/Unix system calls on process and Pthreads • Extend an operating system on a virtual machine. • Focus: process/thread management, code loading/execution, multiprogramming, virtual memory, and file systems/disk storage. • Need to have a CSIL account • Prerequisite: • Algorithms/data structure, computer architectures • C/C++ programming. Experience with Linux.
Why this course? • Myself • CS faculty since 1993. Ask Jeeves/Ask.com. • Research in parallel distributed systems and information retrieval. • Built large-scale web search at Ask.com • Why do I teach this course? • Exciting • System/OS experience is critical for many applications • Share my academic/industry experience • Help everybody to learn
What will you learn? • Operating system concepts • How to program an operating system • Program execution & multiprogramming • Process/thread management • Memory management • File system implementation (disk). • Impact on your job or advanced studies • Interpret performance behavior and optimize software that uses CPU/memory/disk • Adapt technology evolution: • New OS, new devices/platform
Internet Services: An OS Perspective DNS Servers Datacenter DNS request Reply page Service engine • Complex interaction of multiple components in multiple administrative domains • Systems, services, protocols, … Data store Load balancer Ad Server
Challenges/OS Issues in Internet Systems • Data intensive • Hundreds of terabytes/petabytes of data partitioned and replicated in many machines. • Management of memory, disk storage, CPU • High performanceand availability • Response time < 1 sec. • High throughput (thousands of requests per second) • Fault tolerant • Infrastructure Cost: • Huge computer clusters/data center+networking expense. • OS resource/efficiency optimization.
Topics/Schedule • Weeks 1 and 2 lectures: • Introduction to OS and Process/Thread Management. Nachos/Pthreads • Action: • Join Piazza class discussion group (linked from ~cs170 homepage) • Review Project 0 and form a 2-3 person group • ~250 lines of C code • Due on April 10
Projects Project 0: Shell Linux processes & system calls Project 1: Pthread Synchronization. Nachos Threads Nachos 9K lines Project 2: Nachos Processes& System Calls Optional Project 3B: Nachos file systems Project 3A: Nachos virtual memory
Rest of fall quarter • Process/thread management and synchronization. System calls. • Project 1 (Read 1K lines. Write ~300 lines) • Address translation and memory management. • Project 2 (Read 2K lines. Write ~500 lines) • Virtual memory and file system implementation • Project 3A and 3B (Read 2K lines. Write ~500 lines)) • Process Scheduling. Deadlock.
Discussion Sections • Apr 6: Review Linux system calls. Project 0 sample code/Makefile • April 10 (Proj 0 deadline) • Apr 13: Review Pthreads and synchronization. Project 1 sample code. • Apr 20 Project 1. MIPS Assembly. • April 23 (Proj 1 deadline) • Apr 27: Project 2. • May 6 (Proj 2 deadline). • May 4. Exercise review for Exam 1 • May 7 or 12 (Exam 1) • May 11: Project 3A. Memory management • May 18: Project 3B. File systems. • May 20 (Proj 3A). June 1 (Proj 3B). • June 1. Exercise review for final exam
170 Class Workload: Heavy • Projects (45%) • 4 projects with extensive C++/C programming • Project 3B is optional, and will improve your exam 1 score. • 2-3 persons/group. • Exam 1+Exam 2 (45%). • You can boost Exam 1 with Project 3B or with Exam 2 • Exercises and participation (10%) • Not curved (tentatively): • A level [90-100] A (>92.5%) • B level [80-89.9] B (>82.5%) B+(>87) • C level [70-79.9] C(>72.5%) C+(>77)