Lecture 1 Page 1 CS 111 Summer 2014 Introduction CS 111 Operating System Principles Peter Reiher.

Slides:



Advertisements
Similar presentations
Lecture 19 Page 1 CS 111 Online Protecting Operating Systems Resources How do we use these various tools to protect actual OS resources? Memory? Files?
Advertisements

Lecture 12 Page 1 CS 111 Online Devices and Device Drivers CS 111 On-Line MS Program Operating Systems Peter Reiher.
Computer Systems/Operating Systems - Class 8
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.
Concurrent Processes Lecture 5. Introduction Modern operating systems can handle more than one process at a time System scheduler manages processes and.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
CS 300 – Lecture 22 Intro to Computer Architecture / Assembly Language Virtual Memory.
OS Spring’03 Introduction Operating Systems Spring 2003.
Computer Organization and Architecture
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
03/05/2008CSCI 315 Operating Systems Design1 Memory Management Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Lecture 1 Page 1 CS 111 Online Introduction to the Course Purpose of course and relationships to other courses Why study operating systems? Major themes.
Lecture 1 Page 1 CS 111 Online Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 1 Page 1 CS 111 Winter 2014 Introduction CS 111 Operating System Principles Peter Reiher.
Operating Systems Lecture 2 Processes and Threads Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Lecture 1 Page 1 CS 111 Summer 2013 Introduction CS 111 Operating System Principles Peter Reiher.
Lecture 11 Page 1 CS 111 Online Memory Management: Paging and Virtual Memory CS 111 On-Line MS Program Operating Systems Peter Reiher.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Processes Introduction to Operating Systems: Module 3.
Lecture 2 Page 1 CS 111 Online System Services for OSes One major role of an operating system is providing services – To human users – To applications.
Lecture 2 Page 1 CS 111 Online Operating System Basics CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
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 CSE 411 CPU Management Sept Lecture 10 Instructor: Bhuvan Urgaonkar.
Lecture 10 Page 1 CS 111 Summer 2013 File Systems Control Structures A file is a named collection of information Primary roles of file system: – To store.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Data Structures and Algorithms in Java AlaaEddin 2012.
Lecture9 Page 1 CS 236 Online Operating System Security, Con’t CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
Lecture 4 Page 1 CS 111 Online Modularity and Memory Clearly, programs must have access to memory We need abstractions that give them the required access.
Course Book Course Objective - The student will be able to describe various operating system concepts as they are applied to memory, process, file system.
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.
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Introduction to Operating Systems Concepts
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher
Protecting Memory What is there to protect in memory?
Outline Paging Swapping and demand paging Virtual memory.
Chapter 2: System Structures
Operating System Structure
Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher
Modularity and Memory Clearly, programs must have access to memory
Main Memory Management
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Lecture Topics: 11/1 General Operating System Concepts Processes
Chapter 2: Operating-System Structures
Outline Chapter 2 (cont) OS Design OS structure
Prof. Leonardo Mostarda University of Camerino
System calls….. C-program->POSIX call
CSE 153 Design of Operating Systems Winter 2019
Instructor: Xiuwen Liu Department of Computer Science
Chapter 2: Operating-System Structures
COMP755 Advanced Operating Systems
Presentation transcript:

Lecture 1 Page 1 CS 111 Summer 2014 Introduction CS 111 Operating System Principles Peter Reiher

Lecture 1 Page 2 CS 111 Summer 2014 Outline Administrative materials Why study operating systems?

Lecture 1 Page 3 CS 111 Summer 2014 Administrative Issues Instructor and TA Load and prerequisites Web site, syllabus, reading, and lectures Exams, homework, projects Grading Academic honesty

Lecture 1 Page 4 CS 111 Summer 2014 Instructor: Peter Reiher UCLA Computer Science department faculty member Long history of research in operating systems Office: 3532F Boelter Hall – Office hours: TTh 1-2 – Often available at other times

Lecture 1 Page 5 CS 111 Summer 2014 TA ??? Lab sessions Fridays from AM, in Geology 4660 Office hours to be announced

Lecture 1 Page 6 CS 111 Summer 2014 Instructor/TA Division of Responsibilities Instructor handles all lectures, readings, and tests – Ask me about issues related to these TA handles projects – Ask him about issues related to these Generally, instructor won’t be involved with project issues – So direct those questions to the TA

Lecture 1 Page 7 CS 111 Summer 2014 Web Site What’s there: – Schedules for reading, lectures, exams, projects – Copies of lecture slides (Powerpoint) – Announcements – Sample midterm and final problems

Lecture 1 Page 8 CS 111 Summer 2014 Prerequisite Subject Knowledge CS 32 Introduction to Computer Science II – Objects, data structures, queues, stacks, tables, trees CS 33 Introduction to Computer Organization – Assembly language, registers, memory – Linkage conventions, stack frames, register saving CS 35 Software Construction Laboratory – Fundamental software tools used in handling complex systems

Lecture 1 Page 9 CS 111 Summer 2014 Course Format Two weekly (average 20 page) reading assignments – Mostly from the primary text – A few supplementary articles available on web Two weekly lectures Midterm and final exams Four (10-25 hour) team projects – Exploring and exploiting OS features One design project (10-25 hours) – Working off one of the team projects

Lecture 1 Page 10 CS 111 Summer 2014 Course Load Reputation: THE hardest undergrad CS class – Fast pace through much non-trivial material – Summer schedule only increases the pace Expectations you should have – lectures4-6 hours/week – reading3-6 hours/week – projects3-20 hours/week – exam study5-15 hours (twice) Keeping up (week by week) is critical – Catching up is extremely difficult

Lecture 1 Page 11 CS 111 Summer 2014 Primary Text for Course Saltzer and Kaashoek: Principles of Computer Systems Design – Background reading for most lectures Supplemented with web-based materials

Lecture 1 Page 12 CS 111 Summer 2014 Course Grading Basis for grading: – 1 midterm exam25% – Final exam30% – Projects45% I do look at distribution for final grades – But don’t use a formal curve All scores available on MyUCLA – Please check them for accuracy

Lecture 1 Page 13 CS 111 Summer 2014 Midterm Examination When: end of the 4th week (in recitation section) Scope: All lectures up to the exam date – Approximately 60% lecture, 40% text Format: – Closed book – essay questions, most with short answers Goals: – Test understanding of key concepts – Test ability to apply principles to practical problems

Lecture 1 Page 14 CS 111 Summer 2014 Final Exam When: Last day of 8 th week (recitation section) Scope: Entire course Format: – 6-8 hard multi-part essay questions – You get to pick a subset of them to answer Goals: – Test mastery of key concepts – Test ability to apply key concepts to real problems – Use key concepts to gain insight into new problems

Lecture 1 Page 15 CS 111 Summer 2014 Lab Projects Format: – 4 regular projects – 2 mini-projects – May be done solo or in teams Goals: – Develop ability to exploit OS features – Develop programming/problem solving ability – Practice software project skills Lab and lecture are fairly distinct – Instructor cannot help you with projects – TA can’t help with lectures, exams

Lecture 1 Page 16 CS 111 Summer 2014 Design Problems Each lab project contains suggestions for extensions Each student is assigned one design project from among the labs – Individual or two person team Requires more creativity than labs – Usually requires some coding Handled by the TA

Lecture 1 Page 17 CS 111 Summer 2014 Late Assignments & Make-ups Labs – Due dates set by TA – TA also sets policy on late assignments Exams – Only possible with prior consent of the instructor – Be careful of the exam dates! – If you miss it, you’re out of luck

Lecture 1 Page 18 CS 111 Summer 2014 Academic Honesty It is OK to study with friends – Discussing problems helps you to understand them It is OK to do independent research on a subject – There are many excellent treatments out there But all work you submit must be your own – Do not write your lab answers with a friend – Do not copy another student's work – Do not turn in solutions from off the web – If you do research on a problem, cite your sources I decide when two assignments are too similar – And I forward them immediately to the Dean If you need help, ask the instructor

Lecture 1 Page 19 CS 111 Summer 2014 Academic Honesty – Projects Do your own projects – Work only with your team-mate – If you need additional help, ask the TA You must design and write all your own code – Other than cooperative work with your team-mate – Do not ask others how they solved the problem – Do not copy solutions from the web, files or listings – Cite any research sources you use Protect yourself – Do not show other people your solutions – Be careful with old listings

Lecture 1 Page 20 CS 111 Summer 2014 Academic Honesty and the Internet You might be able to find existing answers to some of the assignments on line Remember, if you can find it, so can we It IS NOT OK to copy the answers from other people’s old assignments – People who tried that have been caught and referred to the Office of the Dean of Students ANYTHING you get off the Internet must be treated as reference material – If you use it, quote it and reference it

Lecture 1 Page 21 CS 111 Summer 2014 Introduction to the Course Purpose of course and relationships to other courses Why study operating systems? Major themes & lessons in this course

Lecture 1 Page 22 CS 111 Summer 2014 What Will CS 111 Do? Build on concepts from other courses – Data structures, programming languages, assembly language programming, network protocols, computer architectures,... Prepare you for advanced courses – Data bases and distributed computing – Security, fault-tolerance, high availability – Computer system modeling, queueing theory Provide you with foundation concepts – Processes, threads, virtual address space, files – Capabilities, synchronization, leases, deadlock

Lecture 1 Page 23 CS 111 Summer 2014 Why Study Operating Systems? Few of you will actually build OSs But many of you will: – Set up, configure, manage computer systems – Write programs that exploit OS features – Work with complex, distributed, parallel software – Work with abstracted services and resources Many hard problems have been solved in OS context – Synchronization, security, integrity, protocols, distributed computing, dynamic resource management,... – In this class, we study these problems and their solutions – These approaches can be applied to other areas

Lecture 1 Page 24 CS 111 Summer 2014 Why Are Operating Systems Interesting? They are extremely complex – But try to appear simple enough for everyone to use They are very demanding – They require vision, imagination, and insight – They must have elegance and generality – They demand meticulous attention to detail They are held to very high standards – Performance, correctness, robustness, – Scalability, extensibility, reusability They are the base we all work from

Lecture 1 Page 25 CS 111 Summer 2014 Recurring OS Themes View services as objects and operations – Behind every object there is a data structure Separate policy from mechanism – Policy determines what can/should be done – Mechanism implements basic operations to do it – Mechanisms shouldn’t dictate or limit policies – Must be able to change policies without changing mechanisms Parallelism and asynchrony are powerful and necessary – But dangerous when used carelessly

Lecture 1 Page 26 CS 111 Summer 2014 More Recurring Themes An interface specification is a contract – Specifies responsibilities of producers & consumers – Basis for product/release interoperability Interface vs. implementation – An implementation is not a specification – Many compliant implementations are possible – Inappropriate dependencies cause problems Modularity and functional encapsulation – Complexity hiding and appropriate abstraction

Lecture 1 Page 27 CS 111 Summer 2014 What Is An Operating System? Many possible definitions One is: – It is low level software... – That provides better abstractions of hardware below it – To allow easy, safe, fair use and sharing of those resources

Lecture 1 Page 28 CS 111 Summer 2014 What Does an OS Do? It manages hardware for programs – Allocates hardware and manages its use – Enforces controlled sharing (and privacy) – Oversees execution and handles problems It abstracts the hardware – Makes it easier to use and improves s/w portability – Optimizes performance It provides new abstractions for applications – Powerful features beyond the bare hardware

Lecture 1 Page 29 CS 111 Summer 2014 What Does An OS Look Like? A set of management & abstraction services – Invisible, they happen behind the scenes Applications see objects and their services – CPU supports data-types and operations Bytes, shorts, longs, floats, pointers,... Add, subtract, copy, compare, indirection,... – So does an operating system, but at a higher level Files, processes, threads, devices, ports,... Create, destroy, read, write, signal,... An OS extends a computer – Creating a much richer virtual computing platform Supporting richer objects, more powerful operations

Lecture 1 Page 30 CS 111 Summer 2014 Where Does the OS Fit In? Operating System System Call Interface Hardware Standard instruction set Privileged instruction set (arithmetic, logical, copy, test, flow-control operations,... ) System Services/Libraries Application Binary Interface (e.g. string, random #s, encryption, graphics...) Applications Software (e.g. word processor, compiler, VOIP program,...)

Lecture 1 Page 31 CS 111 Summer 2014 What’s Special About the OS? It is always in control of the hardware – Automatically loaded when the machine boots – First software to have access to hardware – Continues running while apps come & go It alone has complete access to hardware – Privileged instruction set, all of memory & I/O It mediates applications’ access to hardware – Block, permit, or modify application requests It is trusted – To store and manage critical data – To always act in good faith If the OS crashes, it takes everything else with it – So it better not crash...

Lecture 1 Page 32 CS 111 Summer 2014 What Functionality Is In the OS? As much as necessary, as little as possible – OS code is very expensive to develop and maintain Functionality must be in the OS if it... – Requires the use of privileged instructions – Requires the manipulation of OS data structures – Must maintain security, trust, or resource integrity Functions should be in libraries if they... – Are a service commonly needed by applications – Do not actually have to be implemented inside OS But there is also the performance excuse – Some things may be faster if done in the OS

Lecture 1 Page 33 CS 111 Summer 2014 Where To Offer a Service? Hardware, OS, library or application? Increasing requirements for stability as you move through these options Hardware services rarely change OS services can change, but it’s a big deal Libraries a bit more dynamic Applications can change services much more readily

Lecture 1 Page 34 CS 111 Summer 2014 Another Reason For This Choice Who uses it? Things literally everyone uses belong lower in the hierarchy – Particularly if the same service needs to work the same for everyone Things used by fewer/more specialized parties belong higher – Particularly if each party requires a substantially different version of the service

Lecture 1 Page 35 CS 111 Summer 2014 The OS and Speed One reason operating systems get big is based on speed It’s faster to offer a service in the OS than outside it – If it involves processes communicating, working at app level requires scheduling and swapping them – The OS has direct access to many pieces of state and system services – The OS can make direct use of privileged instructions Thus, there’s a push to move services with strong performance requirements down to the OS

Lecture 1 Page 36 CS 111 Summer 2014 The OS and Abstraction One major function of an OS is to offer abstract versions of resources – As opposed to actual physical resources Essentially, the OS implements the abstract resources using the physical resources – E.g., processes (an abstraction) are implemented using the CPU and RAM (physical resources) – And files (an abstraction) are implemented using disks (a physical resource)

Lecture 1 Page 37 CS 111 Summer 2014 Why Abstract Resources? The abstractions are typically simpler and better suited for programmers and users – Easier to use than the original resources E.g., don’t need to worry about keeping track of disk interrupts – Compartmentalize/encapsulate complexity E.g., need not be concerned about what other executing code is doing and how to stay out of its way – Eliminate behavior that is irrelevant to user E.g., hide the sectors and tracks of the disk – Create more convenient behavior E.g., make it look like you have the network interface entirely for your own use

Lecture 1 Page 38 CS 111 Summer 2014 Common Types of OS Resources Serially reusable resources Partitionable resources Sharable resources

Lecture 1 Page 39 CS 111 Summer 2014 Serially Reusable Resources Used by multiple clients, but only one at a time – Time multiplexing Require access control to ensure exclusive use Require graceful transitions from one user to the next – A switch that totally hides the fact that the resource used to belong to someone else Examples: printers, bathroom stalls

Lecture 1 Page 40 CS 111 Summer 2014 Partitionable Resources Divided into disjoint pieces for multiple clients – Spatial multiplexing Needs access control to ensure: – Containment: you cannot access resources outside of your partition – Privacy: nobody else can access resources in your partition Examples: disk space, dormitory rooms

Lecture 1 Page 41 CS 111 Summer 2014 Shareable Resources Usable by multiple concurrent clients – Clients do not have to “wait” for access to resource – Clients don’t “own” a particular subset of resource May involve (effectively) limitless resources – Air in a room, shared by occupants – Copy of the operating system, shared by processes May involve under-the-covers multiplexing – Cell-phone channel (time and frequency multiplexed) – Shared network interface (time multiplexed)

Lecture 1 Page 42 CS 111 Summer 2014 General OS Trends They have grown larger and more sophisticated Their role has fundamentally changed – From shepherding the use of the hardware – To shielding the applications from the hardware – To providing powerful application computing platform They still sit between applications and hardware Best understood through services they provide – Capabilities they add – Applications they enable – Problems they eliminate

Lecture 1 Page 43 CS 111 Summer 2014 Another Important OS Trend Convergence – There are a handful of widely used OSs – New ones come along very rarely OSs in the same family (e.g., Windows or Linux) are used for vastly different purposes – Making things challenging for the OS designer Most OSs are based on pretty old models – Linux comes from Unix (1970s vintage) – Windows from the early 1980s

Lecture 1 Page 44 CS 111 Summer 2014 A Resulting OS Challenge We are basing the OS we use today on an architecture designed years ago We can make some changes in the architecture But not too many – Due to compatibility – And fundamental characteristics of the architecture Requires OS designers and builders to shoehorn what’s needed today into what made sense yesterday

Lecture 1 Page 45 CS 111 Summer 2014 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking about – Users – Service providers – Application developers – OS developers

Lecture 1 Page 46 CS 111 Summer 2014 For the End Users, Reliability Performance Upwards compatibility in releases Support for differing hardware – Currently available platforms – What’s available in the future Availability of key applications Security

Lecture 1 Page 47 CS 111 Summer 2014 Reliability Your OS really should never crash – Since it takes everything else down with it But also need dependability in a different sense – The OS must be depended on to behave as it’s specified – Nobody wants surprises from their operating system – Since the OS controls everything, unexpected behavior could be arbitrarily bad

Lecture 1 Page 48 CS 111 Summer 2014 Performance A loose goal The OS must perform well in critical situations But optimizing the performance of all OS operations not always critical Nothing can take too long But if something is “fast enough,” adding complexity to make it faster not worthwhile

Lecture 1 Page 49 CS 111 Summer 2014 Upward Compatibility People want new releases of an OS – New features, bug fixes, enhancements – Security patches to protect from malware People also fear new releases of an OS – OS changes can break old applications What makes the compatibility issue manageable? – Stable interfaces

Lecture 1 Page 50 CS 111 Summer 2014 Stable Interfaces Designers should start with well specified Application Interfaces – Must keep them stable from release to release Application developers should only use committed interfaces – Don’t use undocumented features or erroneous side effects

Lecture 1 Page 51 CS 111 Summer 2014 APIs Application Program Interfaces – A source level interface, specifying: Include files, data types, constants Macros, routines and their parameters A basis for software portability – Recompile program for the desired architecture – Linkage edit with OS-specific libraries – Resulting binary runs on that architecture and OS An API compliant program will compile & run on any compliant system

Lecture 1 Page 52 CS 111 Summer 2014 ABIs Application Binary Interfaces – A binary interface, specifying Dynamically loadable libraries (DLLs) Data formats, calling sequences, linkage conventions – The binding of an API to a hardware architecture A basis for binary compatibility – One binary serves all customers for that hardware E.g. all x86 Linux/BSD/MacOS/Solaris/… May even run on Windows platforms An ABI compliant program will run (unmodified) on any compliant system

Lecture 1 Page 53 CS 111 Summer 2014 For the Service Providers, Reliability Performance Upwards compatibility in releases Platform support (wide range of platforms) Manageability Total cost of ownership Support (updates and bug fixes) Flexibility (in configurations and applications) Security

Lecture 1 Page 54 CS 111 Summer 2014 For the Application Developers, Reliability Performance Upwards compatibility in releases Standards conformance Functionality (current and roadmap) Middleware and tools Documentation Support (how to...)

Lecture 1 Page 55 CS 111 Summer 2014 For the OS Developers, Reliability Performance Maintainability Low cost of development – Original and ongoing

Lecture 1 Page 56 CS 111 Summer 2014 Maintainability Operating systems have very long lives – Solaris, the “new kid on the block,” came out in 1993 Basic requirements will change many times Support costs will dwarf initial development This makes maintainability critical Aspects of maintainability: – Understandability – Modularity/modifiability – Testability

Lecture 1 Page 57 CS 111 Summer 2014 Critical OS Abstractions One of the main roles of an operating system is to provide abstract services – Services that are easier for programs and users to work with What are the important abstractions an OS provides?

Lecture 1 Page 58 CS 111 Summer 2014 Abstractions of Memory Many resources used by programs and people relate to data storage – Variables – Chunks of allocated memory – Files – Database records – Messages to be sent and received These all have some similar properties

Lecture 1 Page 59 CS 111 Summer 2014 The Basic Memory Operations Regardless of level or type, memory abstractions support a couple of operations – WRITE(name, value) Put a value into a memory location specified by name – value < - READ(name) Get a value out of a memory location specified by name Seems pretty simple But going from a nice abstraction to a physical implementation can be complex

Lecture 1 Page 60 CS 111 Summer 2014 An Example Memory Abstraction A typical file We can read or write the file We can read or write arbitrary amounts of data If we write the file, we expect our next read to reflect the results of the write – Coherence If there are several reads/writes to the file, we expect each to occur in some order – With respect to the others

Lecture 1 Page 61 CS 111 Summer 2014 Abstractions of Interpreters An interpreter is something that performs commands Basically, the element of a computer (abstract or physical) that gets things done At the physical level, we have a processor That level is not easy to use The OS provides us with higher level interpreter abstractions

Lecture 1 Page 62 CS 111 Summer 2014 Basic Interpreter Components An instruction reference – Tells the interpreter which instruction to do next A repertoire – The set of things the interpreter can do An environment reference – Describes the current state on which the next instruction should be performed Interrupts – Situations in which the instruction reference pointer is overriden

Lecture 1 Page 63 CS 111 Summer 2014 An Example Interpreter Abstraction A CPU It has a program counter register indicating where the next instruction can be found – An instruction reference It supports a set of instructions – Its repertoire It has contents in registers and RAM – Its environment

Lecture 1 Page 64 CS 111 Summer 2014 Abstractions of Communications Links A communication link allows one interpreter to talk to another – On the same or different machines At the physical level, wires and cables At more abstract levels, networks and interprocess communication mechanisms Some similarities to memory abstractions – But also differences

Lecture 1 Page 65 CS 111 Summer 2014 Basic Communication Link Operations SEND(link_name, outgoing_message_buffer) – Send some information contained in the buffer on the named link RECEIVE(link_name, incoming_message_buffer) – Read some information off the named link and put it into the buffer Like WRITE and READ, in some respects

Lecture 1 Page 66 CS 111 Summer 2014 An Example Communications Link Abstraction A Unix-style socket SEND interface: – send(int sockfd, const void *buf, size_t len, int flags) – The sockfd is the link name – The buf is the outgoing message buffer RECEIVE interface: – recv(int sockfd, void *buf, size_t len, int flags) – Same parameters as for send

Lecture 1 Page 67 CS 111 Summer 2014 Some Other Abstractions Actors – Users or other “active” entities Virtual machines – Collections of other abstractions Protection environments – Security related, usually Names Not a complete list Not everyone would agree on what’s distinct