The OS 502 Project. 2 OS 502 Project Outline Architecture of the Simulator Environment Z502 Hardware Organization and Architecture Generic Operating System.

Slides:



Advertisements
Similar presentations
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Advertisements

User-Mode Linux Ken C.K. Lee
Chapter 3 Process Description and Control
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 3 Operating System Organization.
CSC 501 Lecture 2: Processes. Von Neumann Model Both program and data reside in memory Execution stages in CPU: Fetch instruction Decode instruction Execute.
Architectural Support for OS March 29, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
1 CS318 Project #3 Preemptive Kernel. 2 Continuing from Project 2 Project 2 involved: Context Switch Stack Manipulation Saving State Moving between threads,
The Operating System Project Start Here Version 4.10: September 2014.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
1 CS 333 Introduction to Operating Systems Class 2 – OS-Related Hardware & Software The Process Concept Jonathan Walpole Computer Science Portland State.
1 Process Description and Control Chapter 3. 2 Process Management—Fundamental task of an OS The OS is responsible for: Allocation of resources to processes.
Home: Phones OFF Please Unix Kernel Parminder Singh Kang Home:
OS Spring’03 Introduction Operating Systems Spring 2003.
Computer System Organization S H Srinivasan
1 Process Description and Control Chapter 3 = Why process? = What is a process? = How to represent processes? = How to control processes?
Threads CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
Process Description and Control A process is sometimes called a task, it is a program in execution.
ThreadsThreads operating systems. ThreadsThreads A Thread, or thread of execution, is the sequence of instructions being executed. A process may have.
Chapter 2: Computer-System Structures
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Process Description and Control Chapter 3. Major Requirements of an OS Interleave the execution of several processes to maximize processor utilization.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Protection and the Kernel: Mode, Space, and Context.
Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
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.
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
Chapter 3 Process Description and Control
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.
Multithreading in Java Project of COCS 513 By Wei Li December, 2000.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: Operating-System Structures.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
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.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
Processes and Process Control 1. Processes and Process Control 2. Definitions of a Process 3. Systems state vs. Process State 4. A 2 State Process Model.
Lecture Topics: 10/29 Architectural support for operating systems –timers –kernel mode –system calls –protected instructions.
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 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.
The Operating System Project Start Here Version 4.20: September 2015.
Process Description and Control Chapter 3. Source Modified slides from Missouri U. of Science and Tech.
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.
Bootable Programs Building an O/S. Basic Requirements of any O/S Respond to interrupts (all kinds) Preserve user environment Protect users and self from.
Managing Processors Jeff Chase Duke University. The story so far: protected CPU mode user mode kernel mode kernel “top half” kernel “bottom half” (interrupt.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
The OS 215 Project. 2 OS 215 Project Outline Architecture of the Simulator Environment Z215 Hardware Organization and Architecture Generic Operating System.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Processes and Threads Chapter 3 and 4 Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
Interrupts and exceptions
Process Management Process Concept Why only the global variables?
Protection and OS Structure
CS 6560: Operating Systems Design
Day 08 Processes.
Day 09 Processes.
CS 3305 System Calls Lecture 7.
Intro to Processes CSSE 332 Operating Systems
OS Virtualization.
Structure of Processes
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
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.
Outline Operating System Organization Operating System Examples
Architectural Support for OS
CS 502 Spring 99 WPI MetroWest/Southboro Campus
Presentation transcript:

The OS 502 Project

2 OS 502 Project Outline Architecture of the Simulator Environment Z502 Hardware Organization and Architecture Generic Operating System Structure The Test Suite –Phase 1 Tests –Phase 2 Tests

3 Simulator Environment Native Hardware Platform (IA-32, PA-RISC, Sun Workstation, etc.) Native Operating System (Windows NT, HP-UX, Solaris, etc.) Z502 Hardware Simulator (z502.c) OS 502 Operating System (base.c, scheduler_printer.c) OS 502 Test Suite (test.c) test0test1atest1btest1xtest2atest2b... All elements inside the heavy box are in a single process, running a single thread of execution. All I/O devices of the Z502 are simulated entities. This includes the timer device and the disk devices. Try to treat the Z502 Hardware Simulator as a “black box” and use the Z502 architecture specification instead.

4 Z502 Architecture Dual-Mode architecture –User mode (see A.4) High level language, augmented with –Z502 General Purpose Registers –Macros for simplifying reentrant programs –Systems Calls, provided as macros (do not rewrite!) Z502 “Programs” are written as C functions taking a void parameter and having a void return. Example Program: void test0( void ) { SELECT_STEP { STEP( 0 ) printf(“This is test 0”); GET_TIME_OF_DAY( &Z502_REG_1 ); STEP( 1 ) printf(“Time of day is %d\n”, Z502_REG_1); TERMINATE_PROCESS( -1, &Z502_REG_9 ); STEP( 2 ) printf(“Error: Test should be terminated, but isn’t\n”); break; }

5 Z502 Architecture (cont.) –User Mode (cont.) Address space for user programs is divided into –C code “program” memory for instructions and for local variables. This, for all intents and purposes, is not constrained in size. –User “data” memory, referenced through a virtual address space, and called MEMORY, and accessed from user space through the MEM_XXXX macros. No programs in phase 1 access this user memory. –Kernel Mode Instruction set includes C language instructions, plus –access to all the Z502 registers –access to Z502 physical memory (MEMORY) –access to the privileged instructions of the Z502 instruction set I/O primitives memory primitives context switching primitives –These are all available through provided macros

6 Z502 Registers and Vectors

7 Interruption Handling by the Z502 Interruption Sources –Interrupts TIMER_INTERRUPT from the delay timer DISK_INTERRUPT from disk 1, 2,... –Faults INVALID_MEMORY fault CPU_ERROR fault PRIVILEGED_INSTRUCTION fault –Traps SOFTWARE_TRAP for each system call –TO_VECTOR contains an address for each category of interruption source.

8 Interruption Handling In os_init (the OS boot code), the OS sets values for each of the entries in TO_VECTOR. On the Z502, there is a total enumeration of all interruptions (exceptions) SOFTWARE_TRAP CPU_ERROR INVALID_MEMORY PRIVILEGED_INSTRUCTION TIMER_INTERRUPT DISK_INTERRUPT DISK_INTERRUPT + 1 … LARGEST_STAT_VECTOR_INDEX

9 Z502 Hardware Actions on Interruption Let the interruption number (called exception in Appendix A) be x. User registers are saved in Z502 Hardware Context Hardware sets –STAT_VECTOR[SV_ACTIVE][x] = TRUE –STAT_VECTOR[SV_VALUE][x] = interruption specific info Execution mode is set to kernel Hardware begins execution at Interrupt, Fault, or Trap entry point as defined by TO_VECTOR Note that INTERRUPT_MASK is not set to TRUE. The operating system must do this if that is the desired mode of operation.

10 OS Responsibilities on an Interruption On Entry –Mask interrupts (if desired) –Clear the Interruption Source set STAT_VECTOR[SV_ACTIVE][x] to FALSE –Determine the cause of the interruption and process accordingly On Exit –Unmask interrupts (if not already done). –For Interrupts, simply return –For traps and faults, ultimately exit the OS by performing a context switch (even if that switches back to the original process). This operation restores the user registers from the Z502 Hardware Context and sets the execution mode back to user.

11 Interruption Causes Use STAT_VECTOR[SV_VALUE][x] to determine an interruption cause and influence processing: –For SOFTWARE_TRAP, value is the system call number. Use this to enter a switch statement to process system calls. –For CPU_ERROR, value is given by error codes (see table in Appendix A) –For INVALID_MEMORY, value is virtual memory page causing the fault –For PRIVILEGED_INSTRUCTION, value is 0 –For all interrupts (timer and disk), value is given by error codes (where one of the possibilities is ERR_SUCCESS)

12 Z502 Hardware Context The context is the state of the executing CPU, essentially its registers. The Hardware context is essentially a register set, plus an entry address. The OS only deals with the handle to a context. Typically this is stored in the process control block. Z502 Operations for manipulating contexts –Z502_MAKE_CONTEXT(handle, start address, kernel flag) –Z502_DESTROY_CONTEXT(handle) –Z502_SWITCH_CONTEXT(save/destroy flag, handle)

13 Operating System Structure Organize into functional areas –What are the functional areas of the Operating System? –What are the abstract data types required? –Class participation, putting together an OS structure… Next steps (Milestone 3) –Strawman functional spec for each module defined in the block diagram. –For each module set of interrelations with other OS modules portions of the Z502 interface being invoked by the module Set of system calls realized within the module –For system calls Categorization by module Attributes: blocking vs. non-blocking, save/destroy context

14 Milestone 4: test0 Code given previously. Nearly the simplest user program possible. Requirements –Core OS os_init –TO_VECTOR trap_handler –System call switch –Process Management module os_create os_terminate –Timer module os_get_time

15 The Test Suite: Phase 1 Test1a: Add SLEEP, requires timer multiplexing and interrupt handling, infrastructure for multiple processes. Test1b: Interface tests to CREATE_PROCESS Test1c: Multiple instances of test1a; demonstration of FCFS scheduling (by using same priorities) Test1d: Likewise for different priorities Test1e: Suspend/Resume interface test Test1f: Suspend/Resume on real scheduling Test1g: Change Priority interface test Test1h: Change Priority on real scheduling Test1k: Misc. error tests