CPS 110/EE 153 Course Intro. The operating system (OS) is the interface between user applications and the hardware. An OS implements a sort of virtual.

Slides:



Advertisements
Similar presentations
What is an Operating System?
Advertisements

Threads, SMP, and Microkernels
Introduction CSCI 444/544 Operating Systems Fall 2008.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
1 CS 333 Introduction to Operating Systems Class 2 – OS-Related Hardware & Software The Process Concept Jonathan Walpole Computer Science Portland State.
Figure 1.1 Interaction between applications and the operating system.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
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.
Lecture 1: Introduction CS170 Spring 2015 Chapter 1, the text book. T. Yang.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
Operating Systems.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Processes Part I Processes & Threads* *Referred to slides by Dr. Sanjeev Setia at George Mason University Chapter 3.
Tanenbaum 8.3 See references
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Protection and the Kernel: Mode, Space, and Context.
Systems Security & Audit Operating Systems security.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
1 Operating System Overview Chapter 2 Advanced Operating System.
CPS 210: Operating Systems. The operating system (OS) is the interface between user applications and the hardware. An OS implements a sort of virtual.
Chapter 1. Introduction What is an Operating System? Mainframe Systems
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
Threads and Concurrency. A First Look at Some Key Concepts kernel The software component that controls the hardware directly, and implements the core.
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Race Conditions Defined 1. Every data structure defines invariant conditions. defines the space of possible legal states of the structure defines what.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Operating System 2 Overview. OPERATING SYSTEM OBJECTIVES AND FUNCTIONS.
Scott Ferguson Section 1
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.
Introduction to Operating Systems and Concurrency.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Lecture on Central Process Unit (CPU)
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Lecture 1: Network Operating Systems (NOS) An Introduction.
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.
Chapter 2 Operating System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Introduction to Operating Systems Concepts
CPS 110/EE 153 Course Intro.
Chapter 1: Introduction
CS490 Windows Internals Quiz 2 09/27/2013.
Operating Systems and Systems Programming
Lecture Topics: 11/1 General Operating System Concepts Processes
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
CS510 Operating System Foundations
Outline Operating System Organization Operating System Examples
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Lecture Topics: 11/1 Hand back midterms
Presentation transcript:

CPS 110/EE 153 Course Intro

The operating system (OS) is the interface between user applications and the hardware. An OS implements a sort of virtual machine that is easier to program than the raw hardware. Operating Systems: The Big Picture [McKinley] physical machine interface User Applications Operating System Architecture virtual machine interface

The OS and the Hardware The OS is the “permanent” software with the power to: control/abstract/mediate access to the hardware CPUs and memory I/O devices so user code can be: simpler device-independent portable even “transportable” I/O Bus Memory Bus Processor Cache Main Memory Disk Controller Disk Graphics Controller Network Interface Graphics Network interrupts I/O Bridge

The OS and User Applications The OS defines a framework for users and their programs to coexist, cooperate, and work together safely, supporting: concurrent execution/interaction of multiple user programs shared implementations of commonly needed facilities “The system is all the code you didn’t write.” mechanisms to share and combine software components Extensibility: add new components on-the-fly as they are developed. policies for safe and fair sharing of resources physical resources (e.g., CPU time and storage space) logical resources (e.g., data files, programs, mailboxes)

Overview of OS Services Storage: primitives for files and virtual memory control devices and provide for the “care and feeding” of the memory system hardware and peripherals Protection and security set boundaries that limit damage from faults and errors establish user identities, priorities, and accountability access control for logical and physical resources Execution: primitives to create/execute programs support an environment for developing and running applications Communication: “glue” for programs to interact

The Four Faces of Your Operating System service provider The OS exports commonly needed facilities with standard interfaces, so that programs can be simple and portable. executive/bureaucrat/juggler The OS controls access to hardware, and allocates physical resources (memory, disk, CPU time) for the greatest good. caretaker The OS monitors the hardware and intervenes to resolve exceptional conditions that interrupt smooth operation. cop/security guard The OS mediates access to resources and grants or denies each request.

Other Useful Metaphors 1. Phone systems Defines an infrastructure for users to call each other and talk. - doesn’t dictate who you call; doesn’t dictate what you say - supports services not imagined by creators, e.g., 900 numbers 2. Government Sets rules and balances demands from a diverse community. Users/subjects want high levels of service with low taxes. 3. Transportation Wide range of choices for a wide range of user goals and needs. - race car: simple interface to powerful technology…goes fast…crashes hard. - cadillac: makes choices automatically…comfortable…no fun to drive. - SUV: runs on any terrain…rolls over bumps in the road…burns gas…but gas is cheap.

Studying Operating Systems This course deals with “classical” operating systems issues: the services and facilities that operating systems provide; OS implementation on modern hardware; (and architectural support for modern operating systems) how hardware and software evolve together; the techniques used to implement software systems that are: large and complex, long-lived and evolving, concurrent, performance-critical.

The World Today Internet LAN/SAN Network LAN/SAN Network Clusters mobile devices Internet appliances desktop clients Database/ File Server

The Big Questions 1. How to divide function/state/trust across components? reason about flow of data and computation through the system 2. What abstractions/interfaces are sufficiently: powerful to meet a wide range of needs? efficient to implement and simple to use? versatile to enable construction of large/complex systems? 3. How can we build: reliable systems from unreliable components? trusted systems from untrusted components? unified systems from diverse components? coherent systems from distributed components?

Classical View: The Questions The basic issues/questions in this course are how to: allocate memory and storage to multiple programs? share the CPU among concurrently executing programs? suspend and resume programs? share data safely among concurrent activities? protect one executing program’s storage from another? protect the code that implements the protection, and mediates access to resources? prevent rogue programs from taking over the machine? allow programs to interact safely?

Memory and the CPU 0 2n2n code library OS data OS code Program A data Data Program B Data registers CPU R0 Rn PC main memory x x

A First Look at Some Key Concepts kernel The software component that controls the hardware directly, and implements the core privileged OS functions. Modern hardware has features that allow the OS kernel to protect itself from untrusted user code. thread An executing stream of instructions and its CPU register context. virtual address space An execution context for thread(s) that provides an independent name space for addressing some or all of physical memory. process An execution of a program, consisting of a virtual address space, one or more threads, and some OS kernel state.

The Kernel The kernel program resides in a well-known executable file. The “machine” automatically loads the kernel into memory (boots) on power-on or reset. The kernel is (mostly) a library of service procedures shared by all user programs, but the kernel is protected: User code cannot access internal kernel data structures directly. User code can invoke the the kernel only at well-defined entry points (system calls). Kernel code is like user code, but the kernel is privileged: Kernel has direct access to all hardware functions, and defines the machine entry points for interrupts and exceptions.

A Protected Kernel 0 2n2n code library OS data OS code Program A data Data Program B Data registers CPU R0 Rn PC main memory x x mode Mode register bit indicates whether the CPU is running in a user program or in the protected kernel. Some instructions or data accesses are only legal when the CPU is executing in kernel mode.

Threads A thread is a schedulable stream of control. defined by CPU register values (PC, SP) suspend: save register values in memory resume: restore registers from memory Multiple threads can execute independently: They can run in parallel on multiple CPUs... - physical concurrency …or arbitrarily interleaved on a single CPU. - logical concurrency Each thread must have its own stack.

The Problem of Concurrency

Making It Concrete It is best to learn the general concepts of systems from a careful study of particulars. Microsoft Windows and NT (Windows 2000)? Unix or Sun Microsystem’s Solaris? MacOS? Linux or *BSD? Java? Nope: we will use “Nachos”.

Course Materials for CPS 110 The Nachos instructional OS Nachos Project Guide Nutt: Operating Systems: A Modern Perspective (1998) source for the basic (testable) course material loosely follows the lectures, but with different perspective and different emphasis Other readings on the course web page Birrell: An Introduction to Programming with Threads.

Nachos Projects Labs 1-3: concurrency and synchronization race conditions with processes and threads implementing/using synchronization for safe concurrent code Lab 4: protected kernel with multiprogramming OS kernel with system calls, memory allocation, virtual address translation, protection Lab 5: I/O and inter-process communication Labs 6-7: virtual memory page faults and demand loading page replacement and page cache management

Overview of Nachos Labs 1-3 In the thread assignments, you build and test the kernel’s internal primitives for processes and synchronization. Think of your program as a “real” kernel doing “real basic” things. boot and initialize run main(), parse arguments, initialize machine state run a few tests create multiple threads to execute some kernel code shut down...runs native, directly on the host machine. Kernel only; no user programs (until Lab 4)

What To Do Next 1. Form teams of four. (2-5) 2. Look at the course web and the Nachos Project Guide. 3. Get the textbook and thumb through it. 4. Install and build the Nachos release. Determine where your source code will reside. Set up ACLs so your team and my TAs can access your code. Optional: set up version control (e.g., CVS). Report any problems.