Advanced Operating Systems (CS 202)

Slides:



Advertisements
Similar presentations
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Advertisements

INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
OS Spring’03 Introduction Operating Systems Spring 2003.
Figure 1.1 Interaction between applications and the operating system.
Lecture 1: Introduction CS170 Spring 2015 Chapter 1, the text book. T. Yang.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
CS 162 Discussion Section Week 1 (9/9 – 9/13) 1. Who am I? Kevin Klues Office Hours:
CS 1308 Computer Literacy and the Internet. Introduction  Von Neumann computer  “Naked machine”  Hardware without any helpful user-oriented features.
1 Introduction to Operating Systems 9/16/2008 Lecture #1.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Operating Systems and Systems Programming CS162 Teaching Staff.
Processes Introduction to Operating Systems: Module 3.
Welcome to CPS 210 Graduate Level Operating Systems –readings, discussions, and programming projects Systems Quals course –midterm and final exams Gateway.
Operating Systems CSE 411 Revision and final thoughts Revision and final thoughts Dec Lecture 33 Instructor: Bhuvan Urgaonkar.
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
Major OS Components CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
CS 162 Discussion Section Week 2. Who am I? Prashanth Mohan Office Hours: 11-12pm Tu W at.
Chapter 2 Operating System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Introduction to Operating Systems Concepts
Introduction to Computing Systems
Operating System Overview
COMPSCI 110 Operating Systems
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Module 3: Operating-System Structures
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Resource Management IB Computer Science.
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Chapter 1: A Tour of Computer Systems
Course Introduction Dr. Eggen COP 6611 Advanced Operating Systems
Operating System Structure
CS703 - Advanced Operating Systems
KERNEL ARCHITECTURE.
Operating Systems and Systems Programming
CGS 3763 Operating Systems Concepts Spring 2013
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
Memory Physical and Virtual
Operating Systems : Overview
Multithreaded Programming
Chapter 2: Operating-System Structures
Introduction to Operating Systems
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Operating Systems : Overview
OS Components and Structure
Operating Systems : Overview
CS510 Operating System Foundations
Introduction to OS (concept, evolution, some keywords)
Chapter 2 Operating System Overview
Today’s agenda ~10min: file system (UNIX) ~1hr: final review + Q&A
CSE 153 Design of Operating Systems Winter 2019
Introduction to OS (concept, evolution, some keywords)
Chapter 2: Operating-System Structures
Operating System Concepts
Operating System Concepts
An Introduction to Operating Systems
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

Advanced Operating Systems (CS 202) Presenter today: Khaled N. Khasawneh Instructor: Nael Abu-Ghazaleh Jan, 9, 2016

Today Course organization and mechanics Introduction to OS

What is this course about? How has the role of the operating system evolved over time? How does the past inform the present? What are the principles that underlie Operating Systems? What are current and future trends in OS? Make it real: projects to get some experience with OS development Get you ready to do Systems research

Some topics we will cover Operating Systems models and how they evolved Monolithic kernels, micro-kernels, … extensibility, protection, performance How do these models influence current OS organizations Virtualization, containers, kernel modules, … Concurrency: Synchronization and Scheduling Multicore OS File systems: Sequential, networked, distributed, internet scale Other advanced topics

Class format For every topic: Research papers: Some overview Discuss research papers Research papers: Critique for some required papers (1 paper most weeks) Additional papers discussed in class You are responsible for required papers and material discussed in class

Questions to keep in mind while reading papers What are the primary goals (hypothesis)? 2 sentence elevator pitch Why did the authors do what they did the way they did? Understand motivation for design What were the driving forces for the paper at the time it was written? What parts still hold? What parts don’t? How did they experiment to support their ideas?

Reading Research Papers Guidelines for reading papers Make sure to identify authors’ goals and assumptions. Not always directly stated. Look for high-level takeaways. Follow a multi-pass reading strategy Pass1: Get overview. Pass2: Read details and make notes. Pass3: Re-read details to evaluate. Think how techniques used are applicable today. Identify extensions.

Projects Projects (2-3, depending on how I break them up) Will also give you an option of a research project in place of the final exam Often not directly connected to the research topics we discuss Primary goal is to improve systems-building skills

Class Logistics TA: Bashar Romanous Office hours and contact information on the class website. Class website: http://www.cs.ucr.edu/~nael/cs202 Piazza website will be up soon

Course Logistics Projects Reading and critiquing papers Attendance Asking/answering questions Mid-term Final 35% 20% 20% 25%

Course Material I assume you know undergraduate material If you need background, I suggest: OS, 3 easy pieces: http://pages.cs.wisc.edu/~remzi/OSTEP/ Its free! Its excellent! Most material from published research papers

Pre-requisites May recap basics of OS, but if so it will be quick To do well, you must have had undergrad OS or equivalent preparation Architecture, networks, distributed systems courses are also a plus.

Questions? Schedule will be posted incrementally on course website which will go live tomorrow http://www.cs.ucr.edu/~nael/cs202 Watch out for course announcements on http://ilearn.ucr.edu

Situation We all have multiple applications running on our smart phone or computer Written by programmers that don’t know each other They all just magically work – how?? Goal today: get you ready to discuss OS structure, our first topic

Computing Systems – a hierarchy of abstractions Computing systems are a series of abstractions Impossible to think about a system from electrons to application in one shot What are some abstraction layers we have from transistors to applications? This class: OS level abstractions

What is an OS? Directly has access to underlying hardware Applications Operating System Hardware Directly has access to underlying hardware Hides hardware complexity Offers nice abstractions to the applications through system calls Manage the hardware on behalf of one or more applications Ensures that applications are isolated and protected from each other

Getting more technical What is an OS? A piece of software that abstracts and arbitrates a computing systems A manager in a shop Directs resources Controls CPUs, memory, devices… Enforces working policies Fairness, resource limits, … Simplifies complex tasks Abstracts hardware; offers system calls

Abstraction and Arbitration OS offers abstractions and arbitration Example of arbitration? Allocate memory or CPU time Arbitrate access to a shared device Examples of abstractions? Files, sockets, process, thread, …

Abstractions, mechanisms, policies Memory management example Abstraction: memory page Mechanisms: allocate, map to a process, deallocate Policies: page replacement, LRU, LFU, …

Design principles Separation of mechanism and policy Implement flexible mechanisms to support many policies Policies must optimize for the common case Where will the OS be used? What will the user want to execute?

Hardware and Resources Good understanding of the hardware is essential to understanding OS What hardware? Smart phone/tablets? Desktops? Servers? Computing clusters? Cloud? How different are these?

They are not that different! CPU chip Register file ALU System bus Memory bus Main memory Bus interface I/O bridge I/O bus Expansion slots for other devices such as network adapters. USB controller Graphics adapter Disk controller Mouse Keyboard Monitor Disk

How does the OS interact with the hardware? Has protected access to hardware resources Arbitrates among competing requests Receives and handles events from the hardware

Catering to Applications Provide resource needs of an application CPU, memory, device access When applications launch, the OS loads the program from file into memory Allocates memory for code, data, heap and stack Can the application ask for more resources? Yes, it receives additional requests and provides resources as needed OS also reacts to events in the system Gets out of the way as fast as possible

CPU management Abstractions Program: static entity Process: program in execution Unit of resource allocation and one thread of execution

Memory management Abstractions: Address space for each processor OS implements these abstractions using the available hardware support Paging, segmentation, TLBs, caches…

Storage/file system Abstraction: Files and directories Others possible: e.g., object store Implemented in a variety of different ways Traditional file system: mapping of files to storage Network file system Distributed FS Internet scale FS

Conclusions Today was a quick overview of the role of an OS Goal is to get you ready to discuss OS organization and evolution, our first topic First reading assignment out this evening. We did not discuss any implementation details You should know from undergraduate OS But please read on your own if you do not remember