CS 333 Introduction to Operating Systems Class 1 - Introduction to OS-related Hardware and Software Jonathan Walpole Computer Science Portland State University.

Slides:



Advertisements
Similar presentations
1 (Review of Prerequisite Material). Processes are an abstraction of the operation of computers. So, to understand operating systems, one must have a.
Advertisements

Computer Organization and Architecture
CS4315A. Berrached:CMS:UHD1 Operating Systems and Computer Organization Chapter 4.
Computer System Overview
Chapter 6 Limited Direct Execution
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
Architectural Support for OS March 29, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
CS 333 Introduction to Operating Systems Class 1 - Introduction to OS-related Hardware and Software Jonathan Walpole Computer Science Portland State University.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
CSE 513 Introduction to Operating Systems Class 1 - History and Intro to OS-related Hardware and Software Jonathan Walpole Dept. of Comp. Sci. and Eng.
1 CS 333 Introduction to Operating Systems Class 2 – OS-Related Hardware & Software The Process Concept Jonathan Walpole Computer Science Portland State.
OS Spring’03 Introduction Operating Systems Spring 2003.
Computer System Organization S H Srinivasan
Operating Systems CS208. What is Operating System? It is a program. It is the first piece of software to run after the system boots. It coordinates the.
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
CS 333 Introduction to Operating Systems Class 1 - Introduction to OS-related Hardware and Software Jonathan Walpole Computer Science Portland State University.
CS 333 Introduction to Operating Systems Class 1 - Introduction to OS-related Hardware and Software Jonathan Walpole Computer Science Portland State University.
OS Spring’04 Introduction Operating Systems Spring 2004.
1 CSC 2405: Computer Systems II Spring 2012 Dr. Tom Way.
System Calls 1.
Protection and the Kernel: Mode, Space, and Context.
CSC 501 Lecture 2: Processes. Process Process is a running program a program in execution an “instantiation” of a program Program is a bunch of instructions.
CS333 Intro to Operating Systems
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Overview of Hardware.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Lecture 14 Today’s topics MARIE Architecture Registers Buses
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE.
CS333 Intro to Operating Systems Jonathan Walpole.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
1 CSE451 Architectural Supports for Operating Systems Autumn 2002 Gary Kimura Lecture #2 October 2, 2002.
Computer Architecture 2 nd year (computer and Information Sc.)
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
Operating System 1 COMPUTER SYSTEM OVERVIEW Achmad Arwan, S.Kom.
Operating Systems 1 K. Salah Module 1.2: Fundamental Concepts Interrupts System Calls.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
Concurrency, Processes, and System calls Benefits and issues of concurrency The basic concept of process System calls.
Stored Program A stored-program digital computer is one that keeps its programmed instructions, as well as its data, in read-write,
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
CS4315A. Berrached:CMS:UHD1 Operating Systems and Computer Organization Chapter 4.
Structure and Role of a Processor
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Chapter 6 Limited Direct Execution Chien-Chung Shen CIS/UD
1.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 1: Introduction What Operating Systems Do √ Computer-System Organization.
Introduction to Operating Systems Concepts
Processes and threads.
Operating Systems CMPSC 473
Jonathan Walpole Computer Science Portland State University
IB Computer Science Topic 2.1.1
Jonathan Walpole Computer Science Portland State University
Lecture Topics: 11/1 General Operating System Concepts Processes
Architectural Support for OS
Operating Systems Lecture 3.
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
CSE 451: Operating Systems Autumn 2001 Lecture 2 Architectural Support for Operating Systems Brian Bershad 310 Sieg Hall 1.
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Computer System Overview
Architectural Support for OS
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment. Phone:
Presentation transcript:

CS 333 Introduction to Operating Systems Class 1 - Introduction to OS-related Hardware and Software Jonathan Walpole Computer Science Portland State University 1

About the instructor  Instructor - Jonathan Walpole  Professor at PSU since 2004, OGI 1989 – 2004  Research Interests: Operating System Design, Parallel and Distributed Computing Systems  2

About CS 333  Goals of the class  understand the basic concepts of operating systems designing & building operating systems, not using them!  gain some practical experience so its not just words!  Expectations  reading assignments should be read before class  active participation in class discussions  no cheating! 3

Grading  Exams  Mid-term - 25%  Final - 25%  Coursework  Project – 50% 4

Text books “Operating Systems Concepts: Essentials” by Silberschatz, Galvin, Gagne “The BLITZ System” by Harry Porter 5

The project  You will read, understand and write real operating system code!  We will be using the BLITZ system, written by Harry Porter  About BLITZ  CPU emulator, assembler, high-level language, operating system, and debugging environment  Simple enough to understand in detail how everything works!  Realistic enough to understand in detail how everything works!  Runs on the departmental Sun machines (cs.pdx.edu), plus Macs and x86/Linux 6

Administrative  Class web site   Find my website from the faculty listing on the department website. Follow teaching link to current classes  Class mailing list   Project 0  read the class web site  join the class mailing list  Project 1  due next week!  see class web site for project assignments 7

Class 1 - Introduction to OS-related Hardware and Software 8

Overview  What is an Operating System?  A review of OS-related hardware 9

What is an operating system?  Operating system --“a program that controls the execution of application programs and implements an interface between the user of a computer and the computer hardware”  Narrow view of a computer and OS Traditional computer with applications running on it (e.g. PCs, Workstations, Servers)  Broad view of a computer and OS Anything that needs to manage resources (e.g. router OS, embedded system, cell phone OS...) 10

Two key OS functions  Abstract Machine  Hides complex details of the underlying hardware  Provides common API to applications and services  Simplifies application writing  Resource Manager  Controls accesses to shared resources CPU, memory, disks, network,...  Allows for global policies to be implemented 11

Why is abstraction important?  Without OSs and abstract interfaces, application writers must program all device access directly  load device command codes into device registers  handle initialization, recalibration, sensing, timing etc for physical devices  understand physical characteristics and layout  control motors  interpret return codes … etc  Applications suffer severe code bloat!  very complicated maintenance and upgrading  no portability  writing this code once, and sharing it, is how OS began! 12

Providing abstraction via system calls Operating System Video Card CPU Monitor Printer Disk Memory Network Application 13

Providing abstraction via system calls Operating System Video Card CPU Monitor Printer Disk Memory Network Application System Calls: read(), open(), write(), mkdir(), kill()... Device Mgmt File System Network Comm. Process Mgmt Protection Security 14

OS as a resource manager  Allocating resources to applications across space and time  time sharing a resource (scheduling)  space sharing a resource (allocation)  Making efficient use of limited resources  improving utilization  minimizing overhead  improving throughput/good put  Protecting applications from each other  enforcement of boundaries 15

Problems an OS must solve  Time sharing the CPU among applications  Space sharing the memory among applications  Space sharing the disk among users  Time sharing access to the disk  Time sharing access to the network 16

More problems an OS must solve  Protection  of applications from each other  of user data from other users  of hardware/devices  of the OS itself!  The OS is just a program! It needs help from the hardware to accomplish these tasks!  When an application is running, the OS is not running!  When the OS is not running, it can’t do anything! 17

Overview  What is an Operating System?  A review of OS-related hardware 18

Instruction sets  A CPU’s instruction set defines what it can do  different for different CPU architectures  all have load and store instructions for moving items between memory and registers Load a word located at an address in memory into a register Store the contents of a register to a word located at an address in memory  many instructions for comparing and combining values in registers and putting result into a register  Look at the Blitz instruction set which is similar to a SUN SPARC instruction set 19

Basic anatomy on a CPU  Program Counter (PC) 20

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction 21

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction  Instruction Register (IR) 22

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction  Instruction Register (IR)  Holds the instruction currently being executed 23

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction  Instruction Register (IR)  holds the instruction currently being executed  General Registers (Reg. 1..n) 24

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction  Instruction Register (IR)  holds the instruction currently being executed  General Registers (Reg. 1..n)  hold variables and temporary results 25

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction  Instruction Register (IR)  holds the instruction currently being executed  General Registers (Reg. 1..n)  hold variables and temporary results  Arithmetic and Logic Unit (ALU) 26

Basic anatomy on a CPU  Program Counter (PC)  Holds the memory address of the next instruction  Instruction Register (IR)  holds the instruction currently being executed  General Registers (Reg. 1..n)  hold variables and temporary results  Arithmetic and Logic Unit (ALU)  performs arithmetic functions and logic operations 27

Basic anatomy on a CPU  Stack Pointer (SP) 28

Basic anatomy on a CPU  Stack Pointer (SP)  holds memory address of a stack with a frame for each active procedure’s parameters & local variables 29

Basic anatomy on a CPU  Stack Pointer (SP)  holds memory address of a stack with a frame for each active procedure’s parameters & local variables  Processor Status Word (PSW) 30

Basic anatomy on a CPU  Stack Pointer (SP)  holds memory address of a stack with a frame for each active procedure’s parameters & local variables  Processor Status Word (PSW)  contains various control bits including the mode bit which determines whether privileged instructions can be executed at this time 31

Basic anatomy on a CPU  Stack Pointer (SP)  holds memory address of a stack with a frame for each active procedure’s parameters & local variables  Processor Status Word (PSW)  contains various control bits including the mode bit which determines whether privileged instructions can be executed  Memory Address Register (MAR)  contains address of memory to be loaded from/stored to  Memory Data Register (MDR)  contains memory data loaded or to be stored 32

Program execution  The Fetch/Decode/Execute cycle  fetch next instruction pointed to by PC  decode it to find its type and operands  execute it  repeat  At a fundamental level, fetch/decode/execute is all a CPU does, regardless of which program it is executing 33

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory 34

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 35

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 36

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 37

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 38

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 39

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 40

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 41

Fetch/decode/execute cycle PC MDR IR MAR Reg. n Reg. 1 … ALU CPU Memory While (1) { Fetch instruction from memory Execute instruction (Get other operands if necessary) Store result } 42

The OS is just a program!  The OS is a sequence of instructions that the CPU will fetch/decode/execute  How can the OS cause application programs to run?  How can the OS switch the CPU to run a different application and later resume the first one?  How can the OS maintain control?  In what ways can application code try to seize control indefinitely (ie. cheat)?  And how can the OS prevent such cheating?  How can applications programs cause the OS to run? 43

How can the OS invoke an application? 44

How can the OS invoke an application?  Somehow, the OS must load the address of the application’s starting instruction into the PC  The computer boots and begins running the OS OS code must be loaded into memory somehow fetch/decode/execute OS instructions OS requests user input to identify application “file” OS loads application file (executable) into memory OS loads the memory address of the application’s starting instruction into the PC CPU fetches/decodes/executes the application’s instructions 45

How can OS guarantee to regain control?  What if a running application doesn’t make a system call and hence hogs the CPU?  OS needs interrupts from a timer device!  OS must register a future timer interrupt before it hands control of the CPU over to an application  When the timer interrupt goes off the interrupt hardware jumps control back into the OS at a pre- specified location called an interrupt handler  The interrupt handler is just a program (part of the OS)  The address of the interrupt handler’s first instruction is placed in the PC by the interrupt h/w 46

What if the application tries to cheat?  What stops the running application from disabling the future timer interrupt so that the OS can not take control back from it?  Disabling interrupts must be a privileged instruction which is not executable by applications  The CPU knows whether or not to execute privileged instructions based on the value of the mode bit in the PSW!  Privileged instructions can only be executed when the mode bit is set  disabling interrupts  setting the mode bit!  Attempted execution in non-privileged mode generally causes an interrupt (trap) to occur 47

What other ways are there to cheat?  What stops the running application from modifying the OS?  Specifically, what stops it from modifying the timer interrupt handler to jump control back to the application? 48

What other ways are there to cheat?  What stops the running application from modifying the OS?  Memory protection!  Memory protection instructions must be privileged  They can only be executed with the mode bit set …  Why must the OS clear the mode bit before it hands control to an application? 49

How can applications invoke the OS?  Why not just set PC to an OS instruction address and transfer control that way? 50

How can applications invoke the OS?  Special instruction causes a trap / interrupt  Trap instruction changes PC to point to a predetermined OS entry point instruction and simultaneously sets the mode bit  application calls a library procedure that includes the appropriate trap instruction  fetch/decode/execute cycle begins at a pre- specified OS entry point called a system call  CPU is now running in privileged mode  Traps, like interrupts, are hardware events, but they are caused by the executing program rather than a device external to the CPU 51

How can the OS switch to a new application?  To suspend execution of an application simply capture its memory state and processor state  preserve all the memory values of this application  copy values of all CPU registers into a data structure which is saved in memory  restarting the application from the same point just requires reloading the register values 52

Recap  Why do we need a timer device?  Why do we need an interrupt mechanism?  Why do we need privileged instructions?  Why are system calls different to procedure calls?  How are system calls different to interrupts?  Why is memory protection necessary?  How can the OS switch from one application to another? 53

What to do before next class  Reading for today’s class  Reading for class 2  Assignment 0 – read class web page and join class list  Start project 1 – Introduction to BLITZ 54