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

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

CSE3008: Operating Systems. Computer Systems Laboratory Sungkyunkwan University

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

Spring 2017 :: CSE 506. Introduction. Nima Honarmand

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

Operating Systems CS 571

Welcome to CSE 4300! Spring 2018

:11 PM. This course will have a significant project component. Lecture time will be used primarily for:

Introduction to Unix. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

Processes & Threads. Recap of the Last Class. Microkernel System Architecture. Layered Structure

Andrew S. Tanenbaum, Operating Systems, Design and Implementation, (Second Edition), Prentice Hall.

Operating Systems Course Overview

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

CS420: Operating Systems. OS Services & System Calls

Syllabus CSCI 405 Operating Systems Fall 2018

Operating Systems (ECS 150) Spring 2011

Course and Unix Intro

SSE3044: Operating Systems

Operating Systems, Spring 2015 Course Syllabus

Welcome to CS 241 Systems Programming at Illinois

CSci 5103 Operating Systems. Jon Weissman. Administrivia

Processes & Threads. Recap of the Last Class. Layered Structure. Virtual Machines. CS 256/456 Dept. of Computer Science, University of Rochester

Introduction to Computer Systems

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

COURSE OVERVIEW & OPERATING SYSTEMS CONCEPT Operating Systems Design Euiseong Seo

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

Lecture 2 Operating System Structures (chapter 2)

Introduction. Operating Systems. Introduction. Introduction. Introduction

Operating Systems ( )

CS 375 UNIX System Programming Spring 2014 Syllabus

Introduction to UNIX

CS370 Operating Systems

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

Chris Riesbeck, Fall Introduction to Computer Systems

EECS 482 Introduction to Operating Systems

CSC209H Lecture 1. Dan Zingaro. January 7, 2015

Chapter 2: Operating-System Structures

CSE 410: Systems Programming

Chapter 2: Operating-System Structures

More on Synchronization and Deadlock

Process and Its Image An operating system executes a variety of programs: A program that browses the Web A program that serves Web requests

Introduction to Computer Systems

Operating Systems ( )

Chapter 1: Introduction. What is an Operating System? Overview Course (contd.) How do I spend my time? Computer System Components

CS30002: Operating Systems. Arobinda Gupta Spring 2017

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

San Jose State University College of Science Department of Computer Science CS185C, NoSQL Database Systems, Section 1, Spring 2018

CSC 280 Operating System Principles

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

CS307: Operating Systems

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Introduction to Computer Systems

Operating Systems Concepts. CMPUT 379, Winter 2014 Section B1

Operating System Labs. Yuanbin Wu

Operating Systems Overview. Chapter 2

Chapter 2: Operating-System

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

CSC Operating Systems Spring Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. January 17 th, 2007.

Announcements. Operating System Structure. Roadmap. Operating System Structure. Multitasking Example. Tevfik Ko!ar

CSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Welcome to CS 241 Systems Programming at Illinois

Introduction to Computer Systems

Roadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - VII CPU Scheduling - II. Louisiana State University

Roadmap. Multilevel Queue Scheduling. Multilevel Queue. Example of Multilevel Feedback Queue. Multilevel Feedback Queue. Tevfik Ko!

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Advanced Programming CMPS 109

LINUX System Administration. Perspectives, Practices and Expectations

EEL 4930/5934 Advanced Systems Programming - Spring 2017

Introduction to Computer Systems

Operating Systems ( )

Operating Systems ( )

Learning Outcomes. Processes and Threads. Major Requirements of an Operating System. Processes and Threads

CSC116: Introduction to Computing - Java

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

CS 470G Introduction to Operating Systems

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Operating System Labs. Yuanbin Wu

COS 318: Operating Systems. Introduction

CSC 2405: Computer Systems II

Chapter 2: Operating-System Structures

CSC116: Introduction to Computing - Java

CSCI455: Introduction to Programming System Design

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CSCI 201L Syllabus Principles of Software Development Spring 2018

Chapter 2: Operating-System Structures

Processes and Threads

What is an Operating System? Signals, Processes, & Threads. Resource Sharing. Resource Abstraction ... Operating Systems 10/20/2010

CSci Introduction to Operating Systems. Administrivia, Intro

programming exercises.

NETW3005 Operating Systems Lecture 1: Introduction and history of O/Ss

CS 390 Chapter 2 Homework Solutions

I/O Systems and Storage Devices

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

ECE397A Operating Systems. Chapter 1: Introduction

Chapter 2. OS Overview

Transcription:

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

Logistics 2

Course Instructors Instructor TA Name: John Criswell! Email: criswell@cs! Office: CSB 717! Office Hours: 4:00-5:00 Wednesdays Name: To Be Announced! Email: To Be Announced! Office: To Be Announced! Office Hours: To Be Announced! 3

About Me Research Interests:! Computer Security! Operating Systems! Compilers! Trusted Operating Systems: Solaris and AIX! Protect OS kernel from memory safety attacks! Protect applications from OS kernels 4

Prerequisites CSC 252 or equivalent! C/C++ programming experience on Unix systems 5

Recommended Textbooks Concepts! Modern Operating Systems by Andrew Tanenbaum! Operating System Concepts by Silberschatz et al.! Linux Kernel Internals! Understanding the Linux Kernel by Bovet and Cesati! Professional Linux Kernel Architecture by Mauerer! Linux Kernel Development by Love! Unix API! Advanced Programming in the UNIX Environment by Stevens and Rago 6

Additional Resources Books available online via the library! The Design and Implementation of the FreeBSD Operating System! Papers available on the Internet! Links will be provided on course web page or Blackboard 7

Grading for Undergraduates Five (5) programming assignments: 50%! Five (5) written homework assignments: 10%! Midterm exam: 20%! Final exam: 20% 8

Grading for Graduates Five (5) programming assignments: 50%! Five (5) written homework assignments: 10%! Midterm exam: 15%! Final exam: 15%! One end-of-term survey paper: 10% 9

Programming Assignments Take a look at the internals of a real OS kernel! Modify Linux kernel internals! Fun!! Challenging!! Start early! 10

Late Policy Late assignments and homework are not accepted! Waived for good reasons (e.g., illness, family emergency)! Instructor may request documentation (e.g., doctor s note)! Other exceptions by consent of the instructor! E.g., graduate student attending a conference 11

Regrade Requests Must be submitted in writing! Due within one week of receiving returned, graded assignment 12

Academic Honesty All homework should be done individually! All programming assignments should be done individually (unless the assignment states otherwise)! No sharing of code! Discussion of approaches/kernel APIs okay 13

Course Website http://www.cs.rochester.edu/courses/256/fall2014! Basic course information!! Lecture slides!! and fun for the whole family! 14

Blackboard Programming Assignments!! Homeworks!! and more fun, but just for enrolled students! 15

The Basics 16

Why Study Operating Systems? Concepts applicable to other types of software! Multi-threaded applications! Web browsers! Network servers 17

Why Study Operating Systems? Understand the inner workings of an OS kernel! Learn to use OS features correctly and efficiently! Learn to develop code that runs within OS kernel! Learn to design and develop an OS 18

Computer-System Architecture 19

What Is an Operating System? Software that abstracts the computer hardware! Hides messy details of underlying hardware! Present resource abstractions that are easy to use! Extends or virtualizes underlying machines! Manages resources! Coordinates sharing between different users and programs! Examples: processors, disks, networks, timers, mice 20

Perspectives of the Computer cut save send print malloc() fork() open() read- startdisk printer push-bits-into-nic Application Software System Software Application Software System Software Application Software System Software Hardware Hardware Hardware 21

Abstractions Processes! fork, execve, waitpid, exit, kill! Files! open, close, read, write, seek! Directories! creat, unlink, link, mkdir, rmdir, mount, umount! Inter-process communication (IPC)! pipe, socket, System V IPC (msg, shm, sem) 22

Reasons for Abstractions Reduce functional complexity! Provide single abstraction over multiple devices! Resource sharing 23

Objectives when Sharing Resources Efficiency!! Fairness!! Security/protection 7/2/14 CSC 2/456 17 24

How Did We Get Here? 25

History: Batch Systems Computers were large and expensive! Shared within an organization! Operator loaded programs for execution! Multi-tasking! When waiting for I/O, start another job! 26

History: Time Sharing Systems Batch systems had! Multi-tasking! Shared resources (e.g., disk)! Hook up a bunch of monitors and keyboards! Multi-tasking == people use the computer simultaneously! 27

History: Workstations and Microcomputers Smaller cheaper systems for just one person! Multi-tasking provided convenience! Windowing system! Xerox PARC! Mac OS 1.0! Protection provided more stability! Mac OS X, Windows NT, Linux 28

Examples of Modern Operating Systems Unix family (evolving since 1969)! Mac OS X, FreeBSD, Solaris, Linux! Windows family (evolving since 1989)! Windows NT, 2000, 7, and 8! Mobile operating systems! Most based on the Unix family 29

History: Mobile Systems Smaller versions of desktops, but! Finite power (i.e., battery)! Limited memory! Higher reliability demands 30

Are operating systems done yet? 31

No! Adapting to changes in hardware (e.g., multicore)! Adapting to new uses! Cloud computing! Reliability (most commercial OSes poorly designed)! Security! Can OS help protect applications?! Can we protect the OS from attackers? 32

Other System Software Microkernels! Exokernels! Virtual Machines! Extensible operating systems! Real time and embedded operating systems! Safe language operating systems! And still evolving 33

On to the first assignment 34

Programming Assignment #1 Available via Blackboard!! Completely outside the OS kernel! Build a shell (command interpreter)! Support foreground and background processes! Support pipes! Support controlling terminal! Due Sept. 18! 35

Credits Parts of the lecture slides contain original work from Gary Nutt, Andrew S. Tanenbaum, Dave O Hallaron, Randal Bryant, Kai Shen, and Sandhya Dwarkadas. The slides are intended for the sole purpose of instruction of operating systems at the University of Rochester. All copyrighted materials belong to their original owner(s). 36