CS399 New Beginnings. Jonathan Walpole

Similar documents
CS 333 Introduction to Operating Systems Class 2 OS-Related Hardware & Software The Process Concept

CS 333 Introduction to Operating Systems. Class 2 OS-Related Hardware & Software The Process Concept

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole

CS 333 Introduction to Operating Systems. Class 1 - Introduction to OS-related Hardware and Software

CS 333 Introduction to Operating Systems. Class 1 - Introduction to OS-related Hardware and Software

Major Requirements of an OS

CS399 New Beginnings. Jonathan Walpole

Jan 20, 2005 Lecture 2: Multiprogramming OS

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS510 Operating System Foundations. Jonathan Walpole

Mon Sep 17, 2007 Lecture 3: Process Management

PROCESS MANAGEMENT. Operating Systems 2015 Spring by Euiseong Seo

Processes. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Processes. Sanzheng Qiao. December, Department of Computing and Software

Operating System Support

CS333 Intro to Operating Systems. Jonathan Walpole

CS450/550 Operating Systems

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

THE PROCESS ABSTRACTION. CS124 Operating Systems Winter , Lecture 7

Process a program in execution; process execution must progress in sequential fashion. Operating Systems

CS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University

Lecture 2 - Fundamental Concepts

2 Processes. 2 Processes. 2 Processes. 2.1 The Process Model. 2.1 The Process Model PROCESSES OPERATING SYSTEMS

CS510 Operating System Foundations. Jonathan Walpole

Address spaces and memory management

Objectives and Functions Convenience. William Stallings Computer Organization and Architecture 7 th Edition. Efficiency

What is an Operating System? A Whirlwind Tour of Operating Systems. How did OS evolve? How did OS evolve?

Roadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - III Processes. Louisiana State University. Processes. September 1 st, 2009

Computer Systems II. First Two Major Computer System Evolution Steps

Segmentation (Apr 5 and 7, 2005)

Processes. CS3026 Operating Systems Lecture 05

CS399 New Beginnings. Jonathan Walpole

Processes and Tasks What comprises the state of a running program (a process or task)?

Chapter 8: Virtual Memory. Operating System Concepts Essentials 2 nd Edition

ENGR 3950U / CSCI 3020U Midterm Exam SOLUTIONS, Fall 2012 SOLUTIONS

Architecture and OS. To do. q Architecture impact on OS q OS impact on architecture q Next time: OS components and structure

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

Chapter 9: Virtual Memory. Operating System Concepts 9 th Edition

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 26

Memory Management. To improve CPU utilization in a multiprogramming environment we need multiple programs in main memory at the same time.

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

CSE 120. Translation Lookaside Buffer (TLB) Implemented in Hardware. July 18, Day 5 Memory. Instructor: Neil Rhodes. Software TLB Management

Operating Systems CS 571

Operating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst

Process Description and Control. Chapter 3

12: Memory Management

CS450/550 Operating Systems

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 18

Processes The Process Model. Chapter 2. Processes and Threads. Process Termination. Process Creation

Lecture 4: Memory Management & The Programming Interface

Introduction to Operating Systems. Chapter Chapter

OS Assignment I. The result is a smaller kernel. Microkernels provide minimal process and memory management, in addition to a communication facility.

OPERATING SYSTEMS. After A.S.Tanenbaum, Modern Operating Systems, 3rd edition. Uses content with permission from Assoc. Prof. Florin Fortis, PhD

CSE 380 Computer Operating Systems. Instructor: Insup Lee. University of Pennsylvania Fall 2003

CS370 Operating Systems

System Call. Preview. System Call. System Call. System Call 9/7/2018

Processes. Process Management Chapter 3. When does a process gets created? When does a process gets terminated?

Killing Zombies, Working, Sleeping, and Spawning Children

CS 3733 Operating Systems:

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

CSE 4/521 Introduction to Operating Systems. Lecture 15 Virtual Memory I (Background, Demand Paging) Summer 2018

CS307: Operating Systems

Modeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems

Lecture 13: Address Translation

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Memory and multiprogramming

Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems

Misc. Third Generation Batch Multiprogramming. Fourth Generation Time Sharing. Last Time Evolution of OSs

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

Processes. CSE 2431: Introduction to Operating Systems Reading: Chap. 3, [OSC]

Processes and Threads. Processes and Threads. Processes (2) Processes (1)

PROCESSES. Jo, Heeseung

Processes. Jo, Heeseung

Processes & Threads. Today. Next Time. ! Process concept! Process model! Implementing processes! Multiprocessing once again. ! More of the same J

Chapter 9: Virtual Memory

Chapter 4 Memory Management. Memory Management

IT 540 Operating Systems ECE519 Advanced Operating Systems

Disciplina Sistemas de Computação

Architectural Support for Operating Systems

Process. Heechul Yun. Disclaimer: some slides are adopted from the book authors slides with permission

Chapter 8: Virtual Memory. Operating System Concepts

Physical memory vs. Logical memory Process address space Addresses assignment to processes Operating system tasks Hardware support CONCEPTS 3.

o Reality The CPU switches between each process rapidly (multiprogramming) Only one program is active at a given time

Topic 18: Virtual Memory

High Performance Computing Lecture 11. Matthew Jacob Indian Institute of Science

Processes The Process Model. Chapter 2 Processes and Threads. Process Termination. Process States (1) Process Hierarchies

Memory management. Requirements. Relocation: program loading. Terms. Relocation. Protection. Sharing. Logical organization. Physical organization

Brief tour of hardware

Memory Hierarchy. Goal: Fast, unlimited storage at a reasonable cost per bit.

To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Process Description and Control. Chapter 3

Chapter 6: Demand Paging

Basic Memory Management. Basic Memory Management. Address Binding. Running a user program. Operating Systems 10/14/2018 CSC 256/456 1

Solution to the. Gaming Parlor. Programming Project

Basic Memory Management

Memory Management. Chapter 4 Memory Management. Multiprogramming with Fixed Partitions. Ideally programmers want memory that is.

Chapter 3: Processes. Operating System Concepts 8th Edition,

Transcription:

CS399 New Beginnings Jonathan Walpole

OS-Related Hardware & Software The Process Concept 2

Lecture 2 Overview OS-Related Hardware & Software - complications in real systems - brief introduction to memory protection, relocation, virtual memory and I/O The process abstraction - process scheduling - process states - process hierarchies - process-related system calls in Unix 3

Recap from Class 1 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 among applications? 4

Real World Complexity Our simple model applies, but real systems have more complexity - Pipelined CPUs - Superscalar CPUs - Multi-level memory hierarchies - Virtual memory - Complexity of devices and buses 5

Pipelined CPUs Fetch unit Decode unit Execute unit Execution of current instruction performed in parallel with decode of next instruction and fetch of the one after that 6

Superscalar CPUs Fetch unit Decode unit Execute unit Fetch unit Decode unit Holding buffer Execute unit Execute unit 7

What does this mean for the OS? Pipelined CPUs - more complexity in capturing the state of a running application - more expensive to suspend and resume applications Superscalar CPUs - even more complexity in capturing state of a running application - even more expensive to suspend and resume applications - support from hardware is useful ie. precise interrupts More details, but fundamentally the same task The BLITZ CPU is not pipelined or superscalar and has precise interrupts 8

The memory hierarchy 2GHz processor à 0.5 ns clock cycle Data/instruction cache access time à 0.5ns 10 ns This is where the CPU looks first! Memory this fast is very expensive! Size: too small for whole program Main memory access time à 60 ns Slow, but cheap Size 1GB+ Magnetic disk à 10 ms, 200+ Gbytes 9

Managing the Memory Hierarchy Movement of data from main memory to cache - Cache lines loaded on demand automatically - Placement and replacement policy fixed by hardware Movement of data from cache to main memory affected by OS - Instructions for flushing the cache - Used to maintain consistency of main memory Movement of data among lower levels of the memory hierarchy is under direct control of the OS - Virtual memory page faults and file system calls 10

Memory Hierarchy Challenges How do you keep the contents of memory consistent across layers of the hierarchy? How do you allocate space at layers of the memory hierarchy fairly across different applications? How do you hide the latency of the slower subsystems, such as main memory and disk? 11

Other Memory-Related Issues How do you protect one application s area of memory from that of another application? How do you relocate an application in memory? - How does the programmer know where the program will ultimately reside in memory? 12

Memory Protection & Relocation Memory protection the basic ideas Virtual vs physical addresses - Address range in each application starts at 0 - Applications use virtual addresses, but hardware and OS translate them automatically into physical addresses Base register concept - Get the CPU to interpret address indirectly via a base register - Base register holds starting, or base address - Add base value to address to get a real address before main memory is accessed Relocation is simple - Just change the base register value! 13

Paged virtual memory The same basic concept, but... - Supports non-contiguous allocation of memory - Allows processes to grow and shrink dynamically - Requires hardware support for page-based address translation Sometimes referred to as a memory management unit (MMU) or a translation lookaside buffer (TLB) Much more on this later... 14

I/O Devices Monitor Bus A simplified view of a computer system" 15

Structure of a Pentium System 16

Program-Device Interaction Devices vs device controllers vs device drivers - Device drivers are part of the OS (ie. software) - Programs call the OS which calls the device driver - Device drivers interact with device controllers using special IO instructions or by reading/writing controller registers that appear as memory locations - Device controllers are hardware that communicate with device drivers via interrupts 17

Device to Program Interaction 18

Types of Interrupt Timer interrupts - Allows OS to regain control of the CPU - One way to keep track of time I/O interrupts - Keyboard, mouse, disks, network, etc Program generated (traps & faults) - Address translation faults (page fault, TLB miss) - Programming errors: seg. faults, divide by zero, etc. - System calls like read(), write(), gettimeofday() 19

System calls System calls are the mechanism by which programs invoke the OS Implemented via a TRAP instruction Example UNIX system calls: open(), read(), write(), close()! kill(), signal()! fork(), wait(), exec(), getpid()! link(), unlink(), mount(), chdir()! setuid(), getuid(), chown()! 20

System Call Implementation User-level code" Library code" Process usercode! {...! read (file, buffer, n);! }...!! Procedure read(file, buff, n)! {...! read(file, buff, n)! }...!! _read:! LOAD r1, @SP+2! LOAD r2, @SP+4! LOAD r3, @SP+6! TRAP Read_Call! 21

Read(fd,nbytes,buffer) System Call 22

Disks and File Storage Manipulating the disk device is complicated - hide some of the complexity behind disk controller, disk device driver Disk blocks are not a very user-friendly abstraction for storage - contiguous allocation may be difficult for large data items - how do you manage administrative information? One application should not (automatically) be able to access another application s storage - OS needs to provide a file system 23

File Systems File system - an abstraction above disk blocks 24

The Process Concept 25

The Process Concept Process a program in execution Program - description of how to perform an activity instructions and static data values Process - a snapshot of a program in execution - memory (program instructions, static and dynamic data values) - CPU state (registers, PC, SP, etc) - operating system state (open files, accounting statistics etc) 26

Process Address Space Each process runs in its own virtual memory address space that consists of: - Stack space used for function and system calls - Data space variables (both static and dynamic allocation) - Text the program code (usually read only) stack Address space data text Invoking the same program multiple times results in the creation of multiple distinct address spaces 27

Switching Among Processes Program instructions operate on operands in memory and (temporarily) in registers Memory Prog1 Code Prog1 Data Prog2 Code Prog2 Data Load A1, R1 Load A2, R2 Add R1, R2, R3 Store R3, A3 CPU ALU SP PC Prog2 State Prog1 has CPU Prog2 is suspended 28

Switching Among Processes Saving all the information about a process allows a process to be temporarily suspended and later resumed Memory Prog1 Code Prog1 Data Prog1 State Prog2 Code Prog2 Data Prog2 State CPU ALU SP PC OS suspends Prog1 29

Switching Among Processes Saving all the information about a process allows a process to be temporarily suspended and later resumed Memory Prog1 Code Prog1 Data Prog1 State Prog2 Code Prog2 Data Prog2 State CPU ALU SP PC OS resumes Prog2 30

Switching Among Processes Program instructions operate on operands in memory and in registers Memory Prog1 Code Prog1 Data Prog2 Code Prog2 Data Load A1, R1 Load A2, R2 Sub R1, R2, R3 Store R3, A3 CPU ALU SP PC Prog1 State Prog2 has CPU Prog1 is suspended 31

The Process Abstraction Multiprogramming of four programs in the same address space Conceptual model of 4 independent, sequential processes Only one program active at any instant 32

The Scheduler Lowest layer of process-structured OS - handles interrupts & scheduling of processes Sequential processes only exist above that layer 33

Process States 34

How Are Processes Created? Events that cause process creation: System startup Initiation of a batch job User request to create a new process Execution of a process creation system call from another process 35

Process Hierarchies Parent process creates child process - each process is assigned a unique identifying number or process ID (PID) - system calls for communicating with and waiting for child processes Child processes can create their own child processes - UNIX calls this hierarchy a "process group 36

How Do Processes Terminate? Conditions that terminate processes: - Normal exit (voluntary) - Error exit (voluntary) - Fatal error (involuntary) - Killed by another process (involuntary) 37

Process Creation in UNIX All processes have a unique process id v getpid(), getppid() system calls allow processes to get their information Process creation v fork() system call creates a copy of a process and returns in both processes (parent and child), but with a different return value v exec() replaces an address space with a new program Process termination, signaling v signal(), kill() system calls allow a process to be terminated or have specific signals sent to it 38

Process Creation Example csh (pid = 22) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } 39

Process Creation Example csh (pid = 22) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } csh (pid = 24) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } 40

Process Creation Example csh (pid = 22) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } csh (pid = 24) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } 41

Process Creation Example csh (pid = 22) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } csh (pid = 24) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } 42

Process Creation Example csh (pid = 22) pid = fork() if (pid == 0) { // child exec(); } else { // parent wait(); } ls (pid = 24) //ls program main(){ //look up dir } 43

Process Creation (fork) Fork creates a new process by copying the calling process The new process has its own - Memory address space (copied from parent) Instructions (same program as parent!) Data Stack - Register set (copied from parent) - Process table entry in the OS 44

Before Next Class Do the reading for next week s class Finish project 1 Introduction to BLITZ 45