COMPSCI: Principles of Operating Systems. Lecture 1: Introduction. Anton Burtsev January, 2017

Similar documents
SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

4. The Abstraction: The Process

Operating Systems. Minati De. Lecture 1: Introduction. Department of Mathematics, Indian Institute of Technology Delhi, India.

CS510 Operating System Foundations. Jonathan Walpole

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

Unix API Books. Linux Kernel Books. Assignments and Exams. Grading for CSC 256. Operating Systems 8/31/2018. CSC 256/456 Fall

CS 326: Operating Systems. Lecture 1

Spring 2017 :: CSE 506. Introduction. Nima Honarmand

Introduction. CS3026 Operating Systems Lecture 01

SSE3044: Operating Systems

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

Introduction to System Programming

CS 5460/6460 Operating Systems

Operating Systems. Fall Dongkun Shin, SKKU

CSC 2405: Computer Systems II

CS 550 Operating Systems Spring Operating Systems Overview

CS333 Intro to Operating Systems. Jonathan Walpole

Fall 2017 :: CSE 306. Introduction to. Virtual Memory. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)

Advanced Operating Systems (CS 202)

CPSC 213. Introduction to Computer Systems. The Operating System. Unit 2e

Operating Systems, Spring 2015 Course Syllabus

CSE 153 Design of Operating Systems

Lecture Topics. Announcements. Today: Threads (Stallings, chapter , 4.6) Next: Concurrency (Stallings, chapter , 5.

Introduction to Computer Systems

Multiprogramming. Evolution of OS. Today. Comp 104: Operating Systems Concepts 28/01/2013. Processes Management Scheduling & Resource Allocation

CSC369 Lecture 2. Larry Zhang, September 21, 2015

- Knowledge of basic computer architecture and organization, ECE 445

COS 318: Operating Systems

Introduction to Computer Systems

Welcome to CSE 4300! Spring 2018

Module 3: Operating-System Structures

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

Operating Systems Concepts. CMPUT 379, Winter 2014 Section B1

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Virtual memory Paging

CSE 153 Design of Operating Systems

Operating Systems. Spring Dongkun Shin, SKKU

Chris Riesbeck, Fall Introduction to Computer Systems

CSE 153 Design of Operating Systems Fall 18

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services

THE PROCESS ABSTRACTION. CS124 Operating Systems Winter , Lecture 7

Chapter 3: Operating-System Structures

Running on the Bare Metal with GeekOS

CSC 634: Networks Programming

Roadmap. Tevfik Ko!ar. CSC Operating Systems Spring Lecture - III Processes. Louisiana State University. Virtual Machines Processes

Chapter 2: Operating-System Structures

Lecture 4: Mechanism of process execution. Mythili Vutukuru IIT Bombay

Module 3: Operating-System Structures. Common System Components

Introduction to Computer Systems

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

CSC369 Lecture 2. Larry Zhang

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

COS 318: Operating Systems

Background. IBM sold expensive mainframes to large organizations. Monitor sits between one or more OSes and HW

6. Mechanism: Limited Direct Execution

Today: Computer System Overview (Stallings, chapter ) Next: Operating System Overview (Stallings, chapter ,

An Overview of the BLITZ System

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services

Operating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group

Lecture 4: Memory Management & The Programming Interface

EECS 482 Introduction to Operating Systems

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

Lecture 4: Threads; weaving control flow

Operating Systems: Virtual Machines & Exceptions

Networks and Operating Systems Chapter 11: Introduction to Operating Systems

Operating Systems CS 571

Qualifying exam: operating systems, 1/6/2014

Lecture 2: September 9

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

Chapter 3: Operating-System Structures

Process Time. Steven M. Bellovin January 25,

CS140 Operating Systems

CSC 256/456: Operating Systems. Introduction. John Criswell! University of Rochester

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

A Design for Comprehensive Kernel Instrumentation

Project #1 Exceptions and Simple System Calls

Operating System Review

Operating-System Structures

Chapter 3: Operating-System Structures

143A: Principles of Operating Systems. Lecture 6: Address translation. Anton Burtsev January, 2017

Computer Systems II. First Two Major Computer System Evolution Steps

238P: Operating Systems. Lecture 5: Address translation. Anton Burtsev January, 2018

Inf2C - Computer Systems Lecture 16 Exceptions and Processor Management

Operating System Labs. Yuanbin Wu

CS 326: Operating Systems. CPU Scheduling. Lecture 6

Chapter 2 Operating-System Structures

Chapter 2: Operating-System Structures

Lecture 2 - Fundamental Concepts

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

CS Operating Systems

CSC 4320 Test 1 Spring 2017

143A: Principles of Operating Systems. Lecture 6: Address translation (Paging) Anton Burtsev October, 2017

Operating System Labs. Yuanbin Wu

I/O Devices. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)

HY225 Lecture 12: DRAM and Virtual Memory

CS-736 Midterm: Beyond Compare (Spring 2008)

Embedded Linux Architecture

Transcription:

COMPSCI: Principles of Operating Systems Lecture 1: Introduction Anton Burtsev January, 2017

Class details Undergraduate 22 students Instructor: Anton Burtsev Meeting time: 9:00-9:50am (M, W, F) Discussions: 1:00-1:50am (F) No regular discussion section unless scheduled Feel free to stop by my office with questions (DBH 3066) No TAs Web page http://www.ics.uci.edu/~aburtsev/143a

This course Inspired by MIT 6.828: Operating System Engineering https://pdos.csail.mit.edu/6.828/2016/ We will use xv6 Relatively simple (9K lines of code) Reasonably complete UNIX kernel https://pdos.csail.mit.edu/6.828/2016/xv6.html xv6 comes with a book Adapted for undergraduate students https://pdos.csail.mit.edu/6.828/2016/xv6/book-rev9.pdf And source code printout https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf

Course Book Operating Systems: Three Easy Pieces Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau Free online version http://pages.cs.wisc.edu/~remzi/ostep/

Course organization Lectures Reading Xv6 book + source code OSTEP book Homeworks High level concepts and abstractions Coding real parts of the xv6 kernel Design riddles Understanding design tradeoffs, explaining parts of xv6

Prerequisites Solid C coding skills Xv6 is written in C You need to read, code and debug All homeworks are in C Many questions will require explaining xv6 code Be able to work and code in Linux/UNIX Some assembly skills

What is an operating system?

Goal: Run your code on a piece of hardware Read CPU manual A tiny boot layer Initialize CPU, memory Jump to your code main() This is your OS!

Print out a string On the screen or serial line

A more general interface First device driver

Device drivers Abstract hardware Provide high-level interface Hide minor differences Implement some optimizations Batch requests Examples Console, disk, network interface...virtually any piece of hardware you know

Goal: Want to run two programs What does it mean? Only one CPU Run one, then run another one

Goal: Want to run two programs Exit into the kernel periodically Context switch Save and restore context Essentially registers

What! Two programs, one memory? Linker magic?

Virtual address spaces Illusion of a private memory for each application Keep a description of an address space In one of the registers All normal program addresses are inside the address space OS maintains description of address spaces Switches between them

What if one program fails to release the CPU? It will run forever. Need a way to preempt it. How?

Scheduling Pick which application to run next And for how long Illusion of a private CPU for each task Frequent context switching

What if one faulty program corrupts the kernel? Or other programs?

Isolation Today is done with address spaces in hardware Many issues, e.g. shared device drivers, files, etc. Can it be done in software?

What about communication? Can we invoke a function in a kernel?

What if you want to save some data? Permanent storage But disks are just arrays of blocks E.g., disks wrtie(block_number, block_data) Files High level abstraction for saving data fd = open( contacts.txt ); fpritnf(fd, Name:%s\n, name);

What if you want to send data over the network? Network interfaces Send/receive Ethernet packets (Level 2) Two low level Sockets High level abstraction for sending data

Linux/Windows/Mac

Multiple levels of abstraction Multiple programs Context switching, scheduling, isolation, communication File systems Multiple files, concurrent I/O requests Consistency, caching Network protocols Each has illusion of a private memory and CPU Multiple virtual network connections Memory management

Virtualization

Want to run a Windows application on Linux?

Want to run a Windows application on Linux?

What is the problem? Hardware is not designed to be multiplexed Loss of isolation

Virtual machine Efficient duplicate of a real machine Compatibility Performance Isolation

Trap and emulate

Questions?