Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 5/8/2017 2 OS Market Shares on All Devices Worldwide Device Shipments by Operating System Year Android iOS/OS X Windows Others 2014 48.61% 11.04% 14.0% 26.34% 2013 38.51% 10.12% 13.98% 37.41% 2012 22.8% 9.6% 15.62% 51.98% http://en.wikipedia.org/wiki/Usage_share_of_o perating_systems OS Market Shares on Desktops and Servers Desktops Windows 7 Windows XP Windows 8.1 Windows 8 Mac OS X 10.10 Windows Vista Mac OS X (other) Mac OS X 10.9 Linux Windows 55.99% 19.15% 10.49% Web server OS Market shares. 3.55% Unixbased 64.2% 67.8% 3.55% Windows 35.9% 32.2% 2.11% Feb 2011 March 2015 1.7% 1.65% 1.53% 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. 5/8/2017 7 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 5/8/2017 8 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 5/8/2017 9 Internet Services: An OS Perspective DNS Servers Datacenter DNS request Reply page Load balancer Service engine Data store Ad Server Complex interaction of multiple components in multiple administrative domains Systems, services, protocols, … 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 performance and 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. 5/8/2017 11 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 5/8/2017 12 Projects Project 0: Shell Linux processes & system calls Project 1: Pthread Synchronization. Nachos Threads Project 2: Nachos Processes& System Calls Project 3A: Nachos virtual memory 5/8/2017 Nachos 9K lines Optional Project 3B: Nachos file systems 13 Rest of fall quarter Process/thread management and synchronization. System calls. Address translation and memory management. Project 2 (Read 2K lines. Write ~500 lines) Virtual memory and file system implementation Project 1 (Read 1K lines. Write ~300 lines) Project 3A and 3B (Read 2K lines. Write ~500 lines)) Process Scheduling. Deadlock. 5/8/2017 14 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 15 170 Class Workload: Heavy Projects (45%) 4 projects with extensive C++/C programming 2-3 persons/group. Exam 1+Exam 2 (45%). Project 3B is optional, and will improve your exam 1 score. 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%) C level [70-79.9] C(>72.5%) B+(>87) C+(>77) 16