COP 5611: Operating Systems Instructor: Xiuwen Liu Department of Computer Science Florida State University Outline • Class organization – Syllabus • Review of Classical Operating Systems – That is, operating systems designed on a particular computer • A survey 5/29/2016 COP5611 2 Class organization • Class syllabus • Class web page • Comments – Grading – Academic honor code • Programs you submitted must be your own • While discussions of class materials and assignments are allowed, discussion and copying of solutions is strictly prohibited. – Feedbacks 5/29/2016 COP5611 3 Textbooks • You are required to read the chapters in the textbook • You can skip sections only when specified • You may be tested on the materials in the textbook but not fully covered in the class – I will specify those sections clearly for self studying – The majority on quizzes and exams will be covered in the class 5/29/2016 COP5611 4 Programming Environment • Two programming assignments must be done on either linprog or program – linprog consists of four linux machines – program consists of four Sun workstations – Doing the assignments on other machines is not allowed • You may loose some of your privilege • Your account may be even revoked – Your program will be tested on program; any submitted executable programs must be compiled and run correctly on program 5/29/2016 COP5611 5 Expectations • Expectations now – You are expected to have known the technical issues, design principles, and common solutions in classical operating systems • Expectations after finishing this course – You are expected to understand the technical issues and solutions in distributed operating systems • General expectations – Working hard attitude and enthusiasm toward learning new and difficult topics 5/29/2016 COP5611 6 Overview of the Course • This course focuses on distributed operating systems – Technical issues and solutions • Chapters 5-8 • I think these are the technically most difficult part • We will cover those algorithms in depth – Concepts and main issues • Distributed resource management, security and protection, and fault tolerance and recovery – Practical paradigms • Main differences between this class and undergraduate operating system class 5/29/2016 COP5611 7 Operating System • An operating system is a layer of software on a bare machine that performs two basic functions – Resource management • To manage resources so that they are used in an efficient and fair manner – User friendliness 5/29/2016 COP5611 8 Hardware Advances • Advances in OS are mainly driven by the advances in hardware – Early stage • From 1945 modern computers were invented • Until about 1985, computers were large and expensive • They were operated mainly independently and used for scientific computation by experts – Modern stage • Powerful microprocessors • Advanced network technology – The amount of improvement over the half century is truly staggering and totally unprecedented • A price/performance gain about 1012 5/29/2016 COP5611 9 A Comparison for Fun • Suppose that cars had improved at the same rate during the same time period, how much would this car cost today? 5/29/2016 COP5611 10 A Brief History 5/29/2016 COP5611 11 Genesis of Modern OS 5/29/2016 COP5611 12 von Neumann Architecture 5/29/2016 COP5611 13 S1 bus Dest bus S2 bus C o n t r o l ALU A B R0, r1,... C (registers) ia(PC) u n i t IR psw... MAR MDR Memory MAR memory address register MDR memory data register IR instruction register Major Components of an OS 5/29/2016 COP5611 15 Design Approaches • A good operating system design must separate policies from mechanisms – Policies refer to what should be done – Mechanisms refer to how it should be done – The separation contributes greatly to flexibility • Policies make use of underlying mechanisms and are likely to change 5/29/2016 COP5611 16 The Layered Approach • In this approach the OS is divided into several layers – The functions are vertically apportioned into these layers – Each layer has well-defined functionality and input-output interfaces with the two adjacent layers 5/29/2016 COP5611 17 Structure of THE Operating Systems 5/29/2016 COP5611 18 Depiction of Windows XP Architecture 5/29/2016 COP5611 19 The Kernel Approach • In this approach, a kernel is a collection of primitive facilities over which the rest of operating system is built, using the functions provided by the kernel – This approach provides considerable flexibility because the policy and optimization decisions are not made at the kernel level 5/29/2016 COP5611 20 Components of a Linux System -This is often called monolithic kernel - The kernel is a big monolithic kernel consisting of all the services provided by the operating systems 5/29/2016 COP5611 21 A Typical Microkernel OS 1.11 5/29/2016 COP5611 22 The Virtual Machine Approach • In this approach, a virtual machine software on the bare hardware gives the illusion that all machine hardware is at the sole disposal of each user – A user can run a single-user OS on this virtual machine – A user can also run other operating systems 5/29/2016 COP5611 23 Why Advanced Operating Systems • Most efforts before 1980 were focused on socalled classical operating systems – Stand-alone computers with a single processor • With the availability of cheap powerful microprocessors and significant advances in communication technology, a few powerful computers can provide an enormous computing power with lower cost – This raises many technical issues that were not presented in classical operating systems 5/29/2016 COP5611 24 Survey • This survey consists of a few questions – The purpose is to give me a better knowledge of your background so that I may do a better job – It will not be used for any grading • Next time we will talk about Chapter 4 regarding distributed operating systems 5/29/2016 COP5611 25