CMPT 300: Operating Systems

Slides:



Advertisements
Similar presentations
Etter/Ingber Engineering Problem Solving with C Fundamental Concepts Chapter 1 Engineering Problem Solving.
Advertisements

Chapter 1 An Overview of Computers and Programming Languages.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
Introduction to Computers and Programming - Class 1 1 Introduction to Computers and Programming Professor Avi Rosenfeld.
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
1 Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
Introduction to Computer Systems
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming Course Organization.
Computing Components 01/26/11. Announcements & Reminders Programs 1 due Friday, 9/2/11 What is my late policy? Proxy Codes for Labs  You should be able.
Computer System Overview
Chapter 1: An Overview of Computers and Programming Languages
1-1 ICS102: Introduction To Computing I King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Computer Organization and Assembly language
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages C++ Programming:
Topic 1: Introduction to Computers and Programming
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
CMPT 128: Introduction to Computing Science for Engineering Students
Chapter 1 An Overview of Computers and Programming Languages.
CSE 1340 Introduction to Computing Concepts Class 2.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Chapter 1 Engineering Problem Solving 1. Hardware and Software 2 A computer is a machine designed to perform operations specified with a set of instructions.
CS 1 •This is Computer Science 1. •Who is Professor Adams?
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
What is a Computer? An, electrical machine, that can be programmed to accept data (input), process it into useful information (output) and store it away.
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
1 Operating System Overview. 2 Today’s Objectives Explain the main purpose of operating systems and describe milestones of OS evolution Explain fundamental.
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
Advanced Computer Architecture 0 Lecture # 1 Introduction by Husnain Sherazi.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
EG280 Computer Science for Engineers Fundamental Concepts Chapter 1.
1 Turgay Korkmaz Office: NPB Phone: (210) Fax: (210) web:
The Central Processing Unit (CPU) and the Machine Cycle.
Computer Architecture And Organization UNIT-II General System Architecture.
1 Operating Systems: Principles and Practice Cpr E 308.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
 Introduction to Micro processor Introduction to Micro processor  Microprocessor instruction and opcodes Microprocessor instruction and opcodes  Mnemonics.
Operating System Isfahan University of Technology Note: most of the slides used in this course are derived from those of the textbook (see slide 4)
Computer Organization Instructors Course By: Lecturer: Shimaa Ibrahim Hassan TA: Eng: Moufeda Hussien Lecture: 9:45 Address:
Computing Systems & Programming ECE Fundamental Concepts Chapter 1 Engineering Problem Solving.
CS 1308 Computer Literacy and the Internet. Objectives In this chapter, you will learn about:  The components of a computer system  Putting all the.
 2001 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet and the World Wide Web Outline 1.1Introduction 1.2What.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Overview von Neumann Architecture Computer component Computer function
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 Operating System Overview Tarek Abdelzaher Lawrence Angrave Vikram Adve.
Chapter 1 An Overview of Computers and Programming Languages.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
1 Chapter 1 Background Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Chapter 3 Getting Started. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Objectives To give an overview of the structure of a contemporary.
Topic 2: Hardware and Software
Engineering Problem Solving With C An Object Based Approach
CSCI-235 Micro-Computer Applications
Edexcel GCSE Computer Science Topic 15 - The Processor (CPU)
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Introduction of microprocessor
Chapter 1: An Overview of Computers and Programming Languages
C++ Programming: From Problem Analysis to Program Design
Computer Science I CSC 135.
Topics Introduction Hardware and Software How Computers Store Data
BIC 10503: COMPUTER ARCHITECTURE
Introduction to Computer Programming
ICS103 Programming in C 1: Overview of Computers And Programming
Presentation transcript:

CMPT 300 Introduction to Operating Systems Course Organization

CMPT 300: Operating Systems Wednesday 1:30-2:30 Friday 12:30-2:30 Textbook: Modern Operating Systems, Third edition, Andrew S. Tanenbaum, Prentice Hall © Janice Regan, CMPT 300, May 2010

Class web-site All the information discussed today and more can always be found on the class web-site To find the class web site go to http://www.cs.sfu.ca/CourseCentral/300/jregan Select Course Home pages Select the Homepage for CMPT 300 Course Central is also a useful link to abundant information useful to students taking a computing science course © Janice Regan, CMPT 300, May 2010

http://www.cs.sfu.ca/CourseCentral/300/jregan/index.html © Janice Regan, CMPT 300, May 2010

CMPT 300 Contact Information YOUR TAs © Janice Regan, CMPT 300, May 2010

CMPT 300 Contact Information © Janice Regan, CMPT 300, May 2010

My availability © Janice Regan, CMPT 300, May 2010

Exams Dates, Course Evaluation © Janice Regan, CMPT 300, May 2010

Exams and Evaluation © Janice Regan, CMPT 300, May 2010

Final One 3 hour final examination 35% short answer problems 65% longer problems that utilize several important concepts and require integration of those concepts. A sample examination, including solutions, will be posted two weeks before the final exam © Janice Regan, CMPT 300, May 2010

Quizzes A series of sample quizzes with solutions will be posted on the class website, so you will know what to expect Each quiz is expected to take about 20-30 minutes to answer. Answers should consist of a short concise paragraph of 15-30 ideas explaining a concept or method, a problem or a short piece of code. More detail is given in the solutions Keep in mind that most posted solutions are more extensive than expected quiz answers © Janice Regan, CMPT 300, May 2010

Marking Quizzes On each quiz I will be looking for specific pieces of information You will receive 1/2 – 2 points for each piece of information I am looking for that is in your solution There may be bonus marks available Each quiz will be marked out of 25 The best 5 of 6 quizzes will count toward your final grade © Janice Regan, CMPT 300, May 2010

Assignments, Solutions © Janice Regan, CMPT 300, May 2010

Important Dates © Janice Regan, CMPT 300, May 2010

About assignments At least two weeks before the due date the assignment will be posted on the website Assignments will require you to combine and use many concepts and tools you have learned Solutions to all assignments will be posted Information of proper preparation of assignments and lab problems is available on the class website. The expectations outlined at http://www.cs.sfu.ca/CC/300/jregan/assign.html apply to all assignments and will not be stated on each assignment © Janice Regan, CMPT 300, May 2010

Assignment preparation Assignments should be typed Diagrams should be generated using tools Diagrams should be clearly labeled Clarity is important, Longer may not be better Incorrect information added to a correct answer will result in loss of points © Janice Regan, CMPT 300, May 2010

Collaboration on assignments Assignments will be completed in groups of 1-3 students. You may choose to work in a group or by yourself Each individual or group will submit a single assignment Each individual or group must set up a group on the course information system in order to submit All members in a group will each receive the same grade on the assignment © Janice Regan, CMPT 300, May 2010

Grading Information Assignments should be: submitted electronically using CourSys Bonus points (5%) are available for submitting assignments more than 48 hours early The score you receive will be multiplied by 1.1 No late assignments will be accepted Unofficial grades will be available on the Course Information System Final exam grades will not be released online © Janice Regan, CMPT 300, May 2010

Required Readings, Notes © Janice Regan, CMPT 300, May 2010

Readings and Notes (sample) © Janice Regan, CMPT 300, May 2010

Academic Honesty © Janice Regan, CMPT 300, May 2010

Academic Honesty Read the policy © Janice Regan, CMPT 300, May 2010

CMPT 300 Introduction to Operating Systems Introduction / Review

Hardware and Software A computer is a machine designed to perform operations specified with a set of instructions called a program. Hardware refers to the computer equipment. keyboard, mouse, terminal, hard disk, printer, CPU Software refers to the programs that describe the steps we want the computer to perform. The software that manages the hardware and shares the hardware between different application programs is called the operating system. © Janice Regan, CMPT 300, May 2010

Machine language Each type of processor (like Pentium 4, Athalon, Z80, …) has its own instruction set Each instruction in an instruction set does a single thing like access a piece of data, add two pieces of data, compare two pieces of data … Each instruction is represented by a unique number This # may be different for different instruction sets, but no two instructions in the same instruction set will have the same # © Janice Regan, CMPT 300, May 2010

Machine Language programs In machine language a program is a list of instructions Each instruction is represented by a number Inside the memory of the computer each number is represented in binary (as a constant length string of 1’s and 0’s) The long string of 0’s and 1’s is easy for the computer to understand and very difficult for a Human to read or write © Janice Regan, CMPT 300, May 2010

Assembler Assembler languages make it easier for the programmer. Assembler is easier for humans to read/write The numbers that identify each of the instructions in the instruction set are replaced with mnemonics like ADD, CMP, … The code, written using these mnemonics is written into a text file. © Janice Regan, CMPT 300, May 2010

Assembler Programs The code for an Assembler program is written into a text file. The computer reads 1’s and 0’s not text How do we translate to machine readable form? A computer program called a compiler is used to translate the text file (called a source file) containing the assembler code into machine readable code The compiler writes a binary file containing the machine readable code (called an object file) © Janice Regan, CMPT 300, May 2010

Computer Software: Languages Some Computer Languages Machine language (machine instruction set) assembly language high level languages (Compilers/Interpreters) C, C++, Ada, Fortran, Basic, Java Do YOU know of any others? mathematical computation tools (MATLAB, Mathematica, ...) Application software is written using computer languages. Operating systems are also written using computer languages (often C, or assembler) © Janice Regan, CMPT 300, May 2010

Computer Software: Applications Application Software (Software Tools) Word processors (Microsoft Word, WordPerfect, ...) Spreadsheet programs (Excel, Lotus1-2-3, ...) Computer games Communication software (email, chat, web browser…) Telecommunication software (VOIP, …) Integrated programming environments © Janice Regan, CMPT 300, May 2010

User mode / kernel mode Most application software runs in user mode. Applications have access to a subset of the instruction set that does not include most direct hardware access Operating systems run in kernel mode (supervisor mode) and have access to the complete instruction set, including the instructions used to directly manage the hardware Application software running in user mode can use system calls to access hardware managed by the Operating System User mode programs may perform duties for the OS © Janice Regan, CMPT 300, May 2010

Modes Applications USER MODE KERNEL (OS) SERVICE PROCESSES Application interface (system libraries) Operating System KERNEL MODE Hardware For some operating systems the boundaries between kernel mode and user mode may not be as clearly defined (embedded systems, interpreted systems) © Janice Regan, CMPT 300, May 2010

Memory Hierarchy Different types of memory have different access speeds and costs Faster access speed implies higher cost Greater capacity often implies lower access speed From fastest access to slowest access Registers Cache RAM / ROM Memory Disk Tapes © Janice Regan, CMPT 300, May 2010

Basic computer configuration I/O devices CPU Registers Memory DISK Arithmetic Unit I/O buffers Controller Cache BUS © Janice Regan, CMPT 300, May 2010

Registers in CPU Data registers Accumulator Address registers Control/Status registers Program counter Stack pointer Instruction register Status registers Index register (segment pointer, stack pointer) © Janice Regan, CMPT 300, May 2010

Controller Fetch, Decode, Execute cycle (each instruction) Fetch next instruction: Instruction contains op-code and possibly data Decode op-code Execute op-code (using data if necessary) Instructions access data, moving it from memory (or disk or cache) to/from registers, and between registers Complete arithmetic and logical manipulations of data in registers © Janice Regan, CMPT 300, May 2010

Executing an instruction (1) Examine program counter Fetch instruction indicated by program counter Increment program counter to point at next instruction to be executed Place fetched instruction in instruction register integer N binary digits opcode Address(es) of data instruction © Janice Regan, CMPT 300, May 2010

Executing an instruction (2) Decode the instruction Determine what is to be done If needed load address into an address register opcode Address(es) of data instruction © Janice Regan, CMPT 300, May 2010

Executing an instruction (3) Execute the instruction in the instruction register, may result in one or more of the following Fetch any data from memory (locations given in instruction) and place into the appropriate data registers Place results from a data register or the accumulator into a memory location indicated in the instruction Operate (arithmetic or logical operation) on data in data registers and save the result in the indicated register Control the flow of the program (for example change the value in the program counter register) © Janice Regan, CMPT 300, May 2010

Adding 2 numbers (Z=X+Y) Program counter points to instruction to load value at location X Instruction is fetched into the instruction register, decoded and executed to load the first number into data register A Program counter is incremented and now points to an instruction to load value at location Y Instruction is fetched into the instruction register, decoded and executed to load the second number into data register B Program counter is incremented and now points to an instruction to add the values in data register A and B Instruction is fetched into the instruction register, decoded and executed to add the two numbers and place the result in the accumulator register. Program counter is incremented and now points to an instruction to place the value in the accumulator register into memory location Z Instruction is fetched, decoded and executed to place result in Z © Janice Regan, CMPT 300, May 2010