CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r Email: hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.

Slides:



Advertisements
Similar presentations
Mutual Exclusion.
Advertisements

CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
CS150 Introduction to Computer Science 1 Professor: Chadd Williams.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
EET 4250: Microcomputer Architecture Fall 2009 William Acosta URL:
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 1 1.
Computer Science 2211b Software Tools and Systems Programming.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
Introduction to Operating Systems J. H. Wang Sep. 18, 2012.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
CS110/CS119 Introduction to Computing (Java)
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
COMP Introduction to Programming Yi Hong May 13, 2015.
CS 162 Discussion Section Week 1 (9/9 – 9/13) 1. Who am I? Kevin Klues Office Hours:
Computer Science 2211b Software Tools and Systems Programming.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
1 Introduction to Operating Systems 9/16/2008 Lecture #1.
James Tam CPSC 203: Introduction To Computers (Independent Study) James Tam.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Tuesday from 12:05-1:05 and Thursday from 11:05-1:05.
Introduction to Databases Computer Science 557 September 2007 Instructor: Joe Bockhorst University of Wisconsin - Milwaukee.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Mutual Exclusion. Readings r Silbershatz: Chapter 6.
CT 1503 Network Operating Systems Instructor: Dr. Najla Al-Nabhan 2014.
Course Information Sarah Diesburg Operating Systems COP 4610.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
LINUX System : Lecture 1 Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
1 CSCI 3120: Operating Systems Summer 2003 Instructor: Kirstie Hawkey Office hours (outside Room 311): Mon: 2:30-3:30, Fri: 10:30-11:30.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
OS, Operating System First Semester, Year 2000 Wannarat Suntiamorntut Department of Computer Engineering, PSUWannarat Suntiamorntut.
Introduction to Operating Systems J. H. Wang Sep. 15, 2010.
Agenda 1. Books & reference material 2. Introduction to the course
Syllabus. Instructor Dr. Hanan Lutfiyya Middlesex College 418 Ext Office Hours: Wednesday 5-6; Thursdays 4-6 or by appointment.
CSCI 330 UNIX and Network Programming Unit I Introduction.
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
Course Overview 1 FCM 710 Architecture of Secure Operating Systems Prof. Shamik Sengupta Office 4210 N
Introduction to Operating Systems J. H. Wang Sep. 13, 2013.
1 10/15/04CS150 Introduction to Computer Science 1 Reading from and Writing to Files Part 2.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
CS 153 Design of Operating Systems Winter 2016 Lecture 7: Synchronization.
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Copyright ©: Nahrstedt, Angrave, Abdelzaher, Caccamo1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
INTE 290 Summer 2015.
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Introduction to Operating Systems
Welcome to SSE3044 Operating Systems!
Course Information Mark Stanovich Principles of Operating Systems
Introduction and Overview
Computer Science 102 Data Structures CSCI-UA
Week 1 Gates Introduction to Information Technology cosc 010 Week 1 Gates
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
CGS 3763 Operating Systems Concepts Spring 2013
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
CSE 451: Operating Systems Autumn 2003 Lecture 7 Synchronization
CSE 451: Operating Systems Autumn 2005 Lecture 7 Synchronization
CSE 451: Operating Systems Winter 2003 Lecture 7 Synchronization
Andy Wang Operating Systems COP 4610 / CGS 5765
EECE.4810/EECE.5730 Operating Systems
Sarah Diesburg Operating Systems CS 3430
CS533 Concepts of Operating Systems Class 1
CS201 – Course Expectations
Presentation transcript:

CS 3305 Course Overview

Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment m Specific office hours will be posted the week that an assignment is due

Course Topics r Course is about what lies under the command line prompts in Linix or the GUI in Windows/MAC. r We will discuss: m Operating systems organized m Process scheduling m Process coordination m Memory management m File systems m “hot topics” (time permitting)

Course Logistics r CS3305 Textbook: Operating System Concepts – 8th Edition Silberschatz, Galvin, and Cagne, Addison-Wesley Inc. (5 th -7 th editions, 9 edition and Java Versions are fine as well). r Lectures Notes m Made available on the course website

Course Evaluation r Evaluation m 1 midterm, 1 final m 4 assignments r There is a heavy programming component based on C/C++ language r Grading is results based i.e., Evaluation is based on an “acceptance test”.

Late Policies and Coupons r Late Penalties m 5 marks a day m Saturday and Sunday count as one day m Assignments more than 5 days will not be accepted r Late Coupons m Three “late coupons” m A coupon gives you a one-day assignment extension m Cannot be used for bonus marks or used retroactively

Assignment Overview (Tentative) r Shell r Linux – add a system call r Threading r Memory Management

Why Study Operating Systems? r I probably will not write one from scratch r I have been writing Java (or C or Python) programs and I didn’t need to know anything about how the OS works r All I need to know are the commands I should submit to the OS to get my program to run or to store my data in a file.

Why Study Operating Systems? r Understanding how operating systems manage CPU, memory can help you be a better programmer. r Example m Structuring a loop m Web servers

OS and Loops Consider the following code segments: int data[128][128]; for (j = 0; j <128; j++) for (i = 0; i < 128;i++) data[i,j] = 0; Does it matter which you use? int data[128][128]; for (i = 0; i <128; i++) for (j = 0; j < 128;j++) data[i,j] = 0;

OS and Loops r Reasoning for answer No? The code segments execute the same number of instructions. r The correct answer: Yes it does matter m One will give you much faster results. m The reason has to do with the way the OS manages its memory

OS and Request Processing r Application: Withdraw money from a bank account r Two requests for withdrawal from the same account comes to a bank from two different ATMs r A thread for each request is created m A thread is a unit of execution m The same program (on the next page is executed)

OS and Request Processing int withdraw(account, amount) { balance = get_balance(account); balance = balance – amount; put_balance(account, balance) return balance } What happens if both requests request that $1000 be withdrawn from the same account? Assume that the account currently has $1000

OS and Request Processing r Both threads will read a balance of $1000 r Both threads will allow for $1000 to be withdrawn balance = get_balance(account) balance = balance – amount 1; balance=get_balance(account); balance = balance – amount; put_balance(account,balance) put_balance(account,balance); Execution sequence ss seen by CPU Thread 1 Thread 2 Thread 1 Switch to Thread 2 Switch to Thread 1

Why Study Operating Systems? r You may object to this example m Why are two requests taking turns using the CPU? m A request comes in, should get executed before the next request r If you did this it would very slow r Why? Well you have to wait until you learn more about operating systems

Why Study Operating Systems? r The example just presented is an example of concurrency r Concurrency leads to interesting programming challenges that were first addressed in operating systems r Today the ability to understand concurrency is important in developing efficient software applications for today’s multi-core machines

Why Study Operating Systems? r The OS code is really large m Windows 8 is rumoured to be between 30 and 80 million lines of code m MAC OS is close to 90 millions lines of code m Linux Debian Release 5 (with all packages) is about 325 million lines of code m Thus the study of OS design is a study of the design of large software systems r Understanding operating systems gives you a leg up in understanding system security

Why Study Operating Systems? r Ok – I’m still never going to write one from scratch. r Probably true r But.. Studying operating systems gives you insight into other areas of computer science m Data structures, concurrency, synchronization, resource management, distributed systems, networks