Dr Markus Hagenbuchner CSCI319. Distributed Systems Chapter 3 - Processes
|
|
- Jean Fields
- 5 years ago
- Views:
Transcription
1 Dr Markus Hagenbuchner CSCI319 Distributed Systems Chapter 3 - Processes CSCI319 Chapter 3 Page: 1
2 Processes Lecture notes based on the textbook by Tannenbaum Study objectives: 1. Understand the requirement of client side and server side processes. 2. Explain the differences between threads and processes. 3. Explain the purpose of virtualization. 4. Explain the role and mechanisms of code migration. CSCI319 Chapter 3 Page: 2
3 Process Usage in Nondistributed Systems In general, the various processes running on the same system do not share the address space. Address space separation between processes is enforced by the OS. Therefore, if two processes on the same system need to communicate with each other, then this cannot be done directly. Communication needs to be achieved via the OS. One process can only do one thing at a time. It is very hard to have a process handle more than one task at a time (i.e., dealing with multiple client requests concurrently by a single server side process). CSCI319 Chapter 3 Page: 3
4 Process Usage in Nondistributed Systems Interprocess Communication (IPC) between processes in a nondistributed system results in context switching in the OS: Also, creating multiple processes requires a new (protected) address space, and stack. CSCI319 Chapter 3 Page: 4
5 Thread Implementation Threads are lightwight processes (LWP) which share the address space of the parent process. Threads are available through OS support as kernel-level lightweight processes, and user-level threads. A thread can be seen as an execution pointer, each with its own stack. Therefore, there are several execution pointers when executing code using multiple threads. This often requires synchronization between threads. Thread synchronization is done in user space. The programmer has to take care of this. CSCI319 Chapter 3 Page: 5
6 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } Execution pointer: points at the segment currently being executed. CSCI319 Chapter 3 Page: 6
7 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } CSCI319 Chapter 3 Page: 7 of 40
8 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } CSCI319 Chapter 3 Page: 8 of 40
9 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } CSCI319 Chapter 3 Page: 9 of 40
10 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } CSCI319 Chapter 3 Page: 10 of 40
11 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } CSCI319 Chapter 3 Page: 11 of 40
12 Example: single thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x; foo(7); cout << done ; return 1; } One instruction is executed at a time. CSCI319 Chapter 3 Page: 12 of 40
13 Example 2: Multiple threads void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x, id; id = pthread_create(foo(7)); cout << done ; return 1; } Note: The syntax of pthread_create has been simplified for illustration purposes. Please refer to the documentation of the pthread_create function for the complete syntax. CSCI319 Chapter 3 Page: 13 of 40
14 Example: multiple thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x, id; id = pthread_create(foo, 7); cout << done ; return 1; } Ask OS to create a new execution pointer. Tell OS where the execution pointer is to start. Note: for sake of simplicity, the syntax is not correct here. CSCI319 Chapter 3 Page: 14 of 40
15 Example: multiple thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x, id; id = pthread_create(foo, 7); cout << done ; return 1; } Two execution pointers work in parallel at their own pace and within the same program. CSCI319 Chapter 3 Page: 15 of 40
16 Example: multiple thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x, id; id = pthread_create(foo, 7); cout << done ; return 1; } Program terminates when the parent thread terminates. Thus, thread synchronization is needed to allow other thread to complete its task as well. CSCI319 Chapter 3 Page: 16 of 40
17 Example: multiple thread void foo(int d){ int r; r = * d * d / 4; cout << r; } int main(){ int x, id; id = pthread_create(foo, 7); cout << done ; pthread_join(id); return 1; } Here, pthread_join forces the parent to wait for the termination of the child-thread. CSCI319 Chapter 3 Page: 17 of 40
18 Example: multiple thread The use of pthread_join in the previous example ensures that the value of r will be printed to the screen. However, since the two threads work at their own pace and hence, there is no guarantee that done will be printed after the value of r. Thread synchronization through mutexes or semaphores is needed to provide a guaranteed execution order. Thread synchronization is particularly important when several threads access the same resource. This is shown in an example as follows: CSCI319 Chapter 3 Page: 18 of 40
19 Example: multiple thread Another example illustrating the need for thread synchronization: int global = 0; void foo(int d){ global = * d * d / 4; } int main(){ int x, id; id = pthread_create(foo, 7); cout << global; pthread_join(id); return 1; } What will cout print? CSCI319 Chapter 3 Page: 19
20 Multithreaded Programming Advantages of multi-threaded programming: Parallelism Create threads on the fly Memory sharing allows fast communication between threads. Disadvantages of multi-threaded programming: Thread synchronization is difficult. Debugging, and algorithm development is more time consuming. We will learn thread synchronization during the lab classes. CSCI319 Chapter 3 Page: 20
21 Next: A look at Virtualization Reasons to consider virtualization in Distributed Systems: Software often outlives hardware In Grid computing: allows more readily implementation of security mechanisms, standardization of (virtual) hardware platform, etc. Replication, code migration, etc. is greatly simplified CSCI319 Chapter 3 Page: 21
22 Virtualization in Distributed Systems Virtualization is achieved as a layer which mimics hard or software interfaces. Example: Compare the general organization between a program, interface, and system in a non-virtualized system (a), with the organization of virtualizing the interface of system A on top of system B illustrated in (b). CSCI319 Chapter 3 Page: 22
23 Architectures of Virtual Machines (1) Note that interfaces between system components (soft- and hardware) can be at different levels: 1. An interface between the hardware and software consisting of machine instructions that can be invoked by any program. 2. An interface between the hardware and software, consisting of machine instructions that can be invoked only by privileged programs, such as an operating system. CSCI319 Chapter 3 Page: 23
24 Architectures of Virtual Machines (2) Interfaces at different levels (cont.) 3. An interface consisting of system calls as offered by an operating system. 4. An interface consisting of library calls generally forming what is known as an application programming interface (API). In many cases, the aforementioned system calls are hidden by an API. CSCI319 Chapter 3 Page: 24
25 Architectures of Virtual Machines (3) The various interfaces offered by computer systems can be illustrated as in the following:. CSCI319 Chapter 3 Page: 25
26 Architectures of Virtual Machines (4) Compare the previous with the interfaces in a virtual machine. Example 1: A process virtual machine called runtime system, with multiple instances of (application, runtime) combinations: CSCI319 Chapter 3 Page: 26
27 Architectures of Virtual Machines (5) Interfaces in a virtual machine (cont.). Example 2: A virtual machine monitor, with multiple instances of (applications, operating system) combinations: CSCI319 Chapter 3 Page: 27
28 Next: Anatomy of Clients and Servers 1.) The organization of clients 2.) The organization of Servers The requirements for client side processes differ vastly from server side processes. We will now look at some of those differences (i.e., communication and role). CSCI319 Chapter 3 Page: 28
29 Networked User Interfaces (1) In a DS a client needs to have means to interact with a (remote) server. This is generally achieved through the middleware. Hence, the middleware is a communication facilitator in DS providing application independent communication protocols. CSCI319 Chapter 3 Page: 29
30 Networked User Interfaces (2) It is rare to use application specific protocols in DS (can you explain why?). Though there are notable exceptions CSCI319 Chapter 3 Page: 30
31 Networked User Interfaces (3) The XWindows system * uses the later of the two communication approaches (application specific communication protocols). But why? Lets have a look at the working of an XWindows systems. Unlike MS-Windows, Xwindows has been designed from ground-up to work in a distributed computing environment. For example, Xwindows allows for a cost-efficient deployment in computing labs as is illustrated in the following: * Xwindows is often simply called after its communication protocol X CSCI319 Chapter 3 Page: 31
32 Example: The XWindow System The basic organization of the X Window System. Here, X is an application level protocol. This allows for X-applications and the X-kernel to not necessarily reside on the same machine. Thus, while X in itself is an application, it also acts as a middleware for X-applications and the X-kernel. CSCI319 Chapter 3 Page: 32
33 Anatomy of Clients and Servers (1) 1.) The organization of clients 2.) The organization of Servers CSCI319 Chapter 3 Page: 33
34 Anatomy of Clients and Servers (2) Servers side processes often need to handle several client requests concurrently. Thus, a main difference to client side processes is the number of requests that need to be handled. But one process can only process one (or very few) client requests concurrently. Hence, we must create additional processes to handle client requests as needed. But how can this be realized efficiently? Threads are a solution. But how to organize threads? Two popular strategies: daemons, and superservers CSCI319 Chapter 3 Page: 34
35 General Design Issues (1) An example: Client-to-server binding using a daemon. A fixed number of server threads is created at startup time by a parent process called deamon. Each client is then assigned to a dedicated and available server thread. CSCI319 Chapter 3 Page: 35
36 General Design Issues (2) Another solution: Client-to-server binding using a superserver. Here, server threads are created on demand, and then destroyed when the work is done. CSCI319 Chapter 3 Page: 36
37 Interactive slide (1) What is the main disadvantage of the deamon strategy and of the super server strategy? Deamon: If there are N server threads then no more than N clients can be served at any one time. Super server: Creating (and destroying) threads on demand creates an overhead (it is slower than the deamon strategy). Apache combines both approaches: There is a fixed number of idle threads created ahead of time. Therefore, there is always an idle thread ready to serve a new client. While clients are served, additional threads are created to maintain the number of idle threads. CSCI319 Chapter 3 Page: 37
38 Interactive slide (1) What is the main disadvantage of the deamon strategy and of the super server strategy? Deamon: If there are N server threads then no more than N clients can be served at any one time. Thus, there is a hard-limit which cannot be exceeded. Super server: Creating (and destroying) threads on demand creates an overhead (it is slower than the deamon strategy). Apache (web server) combines both approaches: There is a fixed number of idle threads created ahead of time. Therefore, there is always an idle thread ready to serve a new client. While clients are served, additional threads are created to maintain the number of idle threads. CSCI319 Chapter 3 Page: 38
39 Server Clusters (1) Threads are always created on the same machine on which the parent process resides. There is a limit to how much work a multi-threaded application can do within a single computing node (limited by the speed of the system itself; CPU, memory, etc). Multiple computing nodes are needed for large scale applications. For example, by engaging a cluster of computing nodes. It becomes necessary to dispatch an incoming task to one (or more) available computing nodes. CSCI319 Chapter 3 Page: 39
40 Server Clusters (2) An example illustrating a larger scale solution by using cluster: The general organization of a three-tiered server cluster. CSCI319 Chapter 3 Page: 40
41 Server Clusters (3) A closer look at how communication takes place: Server assignment through TCP handoff. The principle is illustrated as follows: CSCI319 Chapter 3 Page: 41
42 Interactive slide What is a TCP-handoff? What advantages does the TCP-handoff strategy have? CSCI319 Chapter 3 Page: 42
43 Interactive slide What is a TCP-handoff? Modify the content of the transport layer to mimic a response from another machine. Thus, the server can pretend that a response message was sent by the switch. What advantages does the TCP-handoff strategy have? Transparency: Client does not know which of the computing nodes created the response message. Client is made to believe that the switch responded. Scalability: Response messages do not need to be routed through the switch. CSCI319 Chapter 3 Page: 43
44 Server Clusters (4) Switch needs to decide which server is to handle the client request. Common dispatcher strategies: 1. Load balancing: Aim is that all nodes in the cluster are used equally. 2. Maximize resource utilization: Use one node until its capabilities are exhausted before dispatching tasks to another node. This effectively maximizes the number of idle nodes. 3. Route optimization: Assign a task to a node which is located closest to the client. CSCI319 Chapter 3 Page: 44
45 Processes tend to contain static code. Environmental changes often require the rebuilding of a process. A way to avoid such situation is through Code Migration This is commonly applied in DS. Some of the more wellknown ways to achieve this are: use of libraries, plugins. CSCI319 Chapter 3 Page: 45
46 Code migration Some advantages of code migration: Can allow the moving of a (possibly running) process from one machine to another (i.e. to achieve load balancing) Allows the utilization of a central code repository (for many servers) to improve system consistency. Can help to minimize development costs (i.e. through modularization, and code re-use) More flexible to environmental changes (i.e. new protocols, plugins, layout of forms, etc. can be changed on the fly ) Also: Allows code execution where data resides. CSCI319 Chapter 3 Page: 46
47 Migrating Code Example: The principle of dynamically configuring a client to communicate to a server. The client first fetches the necessary software, and then invokes the server. CSCI319 Chapter 3 Page: 47
48 Models for Code Migration Possible alternatives for code migration are as follows: CSCI319 Chapter 3 Page: 48
49 Models for Code Migration (2) Mobility of code refers to the level of binding between code and hardware. Therefore, weak mobility refers to code that has a weak binding to hardware. It does not mean that the movability of this code is weak. In weak mobility, it is possible to transfer only the code along with some initialization data. Example: Java applets. In strong mobility the execution segment needs to be transferred as well. Allows us to move a running process to another machine. Strong mobility is much more flexible than weak mobility but also much harder to implement. CSCI319 Chapter 3 Page: 49
50 Migration and Local Resources When migrating code, binding to resources may require consideration (i.e. access to a database, file, interface). A scheme to help identify suitable strategies to maintain such bindings has been proposed by Fugetta. CSCI319 Chapter 3 Page: 50
51 Interactive slide With reference to resource bindings when migrating code, what do the terms Unattached, Fastened, Fixed, by identifier, by value, by type refer to? CSCI319 Chapter 3 Page: 51
52 Interactive slide With reference to resource bindings when migrating code, what do the terms Unattached, Fastened, Fixed, by identifier, by value, by type refer to? Unattached: A resource is only attached to one machine of process. Fastened: File is part of a larger collection (i.e. web site, DB) Fixed: Bound to a machine, cannot be moved (i.e. gfx card) By identifier: I.e. a URL or an FTP file. By value: I.e. a library binding (path to library file may differ) By type: Type of a resource. I.e. Monitor, printer, keyboard. CSCI319 Chapter 3 Page: 52
53 Migration in Heterogeneous Systems Migration in heterogenous systems can be achieved in virtualized systems (i.e. moving an entire virtual machine) Three ways to handle migration (which can be combined): Pushing memory pages to the new machine and resending the ones that are later modified during the migration process. Stopping the current virtual machine; migrate memory, and start the new virtual machine. Letting the new virtual machine pull in new pages as needed, that is, let processes start on the new virtual machine immediately and copy memory pages on demand. CSCI319 Chapter 3 Page: 53
54 Summary on Processes Processes and threads Virtual Machines Client / Server design Distributed servers Code migration CSCI319 Chapter 3 Page: 54
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 3 Processes
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 3 Processes Context Switching Processor context: The minimal collection of values stored in the
More informationDistributed Information Processing
Distributed Information Processing 7 th Lecture Eom, Hyeonsang ( 엄현상 ) Department of Computer Science & Engineering Seoul National University Copyrights 2017 Eom, Hyeonsang All Rights Reserved Outline
More information殷亚凤. Processes. Distributed Systems [3]
Processes Distributed Systems [3] 殷亚凤 Email: yafeng@nju.edu.cn Homepage: http://cs.nju.edu.cn/yafeng/ Room 301, Building of Computer Science and Technology Review Architectural Styles: Layered style, Object-based,
More informationDistributed Systems Principles and Paradigms
Distributed Systems Principles and Paradigms Chapter 03 (version February 11, 2008) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.
More informationVerteilte Systeme (Distributed Systems)
Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 4: Operating System Support Processes and
More informationLecture 7: February 10
CMPSCI 677 Operating Systems Spring 2016 Lecture 7: February 10 Lecturer: Prashant Shenoy Scribe: Tao Sun 7.1 Server Design Issues 7.1.1 Server Design There are two types of server design choices: Iterative
More informationDr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication
Dr Markus Hagenbuchner markus@uow.edu.au CSCI319 SIM Distributed Systems Chapter 4 - Communication CSCI319 Chapter 4 Page: 1 Communication Lecture notes based on the textbook by Tannenbaum Study objectives:
More informationDistributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum
Distributed Systems (3rd Edition) Maarten van Steen and Tanenbaum Edited by Ghada Ahmed, PhD Fall 2017 Processes: Threads Introduction to threads Introduction to threads Basic idea We build virtual processors
More informationProcesses and More. CSCI 315 Operating Systems Design Department of Computer Science
Processes and More CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating Systems Concepts,
More informationTypes of Virtualization. Types of virtualization
Types of Virtualization Emulation VM emulates/simulates complete hardware Unmodified guest OS for a different PC can be run Bochs, VirtualPC for Mac, QEMU Full/native Virtualization VM simulates enough
More informationConcepts of Distributed Systems 2006/2007
Concepts of Distributed Systems 2006/2007 Processes Johan Lukkien 1 Programme Introduction & overview Communication Distributed OS & Processes Synchronization Security Consistency & replication Naming
More informationModule 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication
Module 4: Processes Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication Operating System Concepts 4.1 Process Concept An operating system executes
More informationModule 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication
Module 4: Processes Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication 4.1 Process Concept An operating system executes a variety of programs: Batch
More informationCSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018
CSE 4/521 Introduction to Operating Systems Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 Overview Objective: To explore the principles upon which
More informationProcess Characteristics
Threads 1 Chapter 4 2 Process Characteristics We ve mentioned a process as having two characteristics Unit of resource ownership: processes have their own dedicated memory address space processes temporarily
More informationAgenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2
Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process
More informationCS 475. Process = Address space + one thread of control Concurrent program = multiple threads of control
Processes & Threads Concurrent Programs Process = Address space + one thread of control Concurrent program = multiple threads of control Multiple single-threaded processes Multi-threaded process 2 1 Concurrent
More informationMultithreaded Programming
Multithreaded Programming The slides do not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. September 4, 2014 Topics Overview
More informationChapter 4: Processes. Process Concept
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Silberschatz, Galvin and Gagne
More informationOPERATING SYSTEM. Chapter 4: Threads
OPERATING SYSTEM Chapter 4: Threads Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples Objectives To
More informationExercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads
Exercise (could be a quiz) 1 2 Solution CSE 421/521 - Operating Systems Fall 2013 Lecture - IV Threads Tevfik Koşar 3 University at Buffalo September 12 th, 2013 4 Roadmap Threads Why do we need them?
More informationCSE 4/521 Introduction to Operating Systems
CSE 4/521 Introduction to Operating Systems Lecture 5 Threads (Overview, Multicore Programming, Multithreading Models, Thread Libraries, Implicit Threading, Operating- System Examples) Summer 2018 Overview
More informationChapter 4: Processes
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Silberschatz, Galvin and Gagne
More informationUNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called
More informationChapter 5: Processes & Process Concept. Objectives. Process Concept Process Scheduling Operations on Processes. Communication in Client-Server Systems
Chapter 5: Processes Chapter 5: Processes & Threads Process Concept Process Scheduling Operations on Processes Interprocess Communication Communication in Client-Server Systems, Silberschatz, Galvin and
More informationCS Lecture 3! Threads! George Mason University! Spring 2010!
CS 571 - Lecture 3! Threads! George Mason University! Spring 2010! Threads! Overview! Multithreading! Example Applications! User-level Threads! Kernel-level Threads! Hybrid Implementation! Observing Threads!
More informationProcesses. Process Concept
Processes These slides are created by Dr. Huang of George Mason University. Students registered in Dr. Huang s courses at GMU can make a single machine readable copy and print a single copy of each slide
More informationOperating Systems 2 nd semester 2016/2017. Chapter 4: Threads
Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition
More informationProcesses and Threads
TDDI04 Concurrent Programming, Operating Systems, and Real-time Operating Systems Processes and Threads [SGG7] Chapters 3 and 4 Copyright Notice: The lecture notes are mainly based on Silberschatz s, Galvin
More informationThreads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits
CS307 What is a thread? Threads A thread is a basic unit of CPU utilization contains a thread ID, a program counter, a register set, and a stack shares with other threads belonging to the same process
More informationI.-C. Lin, Assistant Professor. Textbook: Operating System Concepts 8ed CHAPTER 4: MULTITHREADED PROGRAMMING
I.-C. Lin, Assistant Professor. Textbook: Operating System Concepts 8ed CHAPTER 4: MULTITHREADED PROGRAMMING Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading
More informationCS420: Operating Systems
Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing
More informationProcesses & Threads. Recap of the Last Class. Microkernel System Architecture. Layered Structure
Recap of the Last Class Processes & Threads CS 256/456 Dept. of Computer Science, University of Rochester Hardware protection kernel and user mode System components process management, memory management,
More informationChapter 3: Processes. Operating System Concepts 8th Edition,
Chapter 3: Processes, Administrivia Friday: lab day. For Monday: Read Chapter 4. Written assignment due Wednesday, Feb. 25 see web site. 3.2 Outline What is a process? How is a process represented? Process
More informationMotivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4
Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell
More informationENGR 3950U / CSCI 3020U Midterm Exam SOLUTIONS, Fall 2012 SOLUTIONS
SOLUTIONS ENGR 3950U / CSCI 3020U (Operating Systems) Midterm Exam October 23, 2012, Duration: 80 Minutes (10 pages, 12 questions, 100 Marks) Instructor: Dr. Kamran Sartipi Question 1 (Computer Systgem)
More informationThreads. Threads (continued)
Threads A thread is an alternative model of program execution A process creates a thread through a system call Thread operates within process context Use of threads effectively splits the process state
More informationDiagram of Process State Process Control Block (PCB)
The Big Picture So Far Chapter 4: Processes HW Abstraction Processor Memory IO devices File system Distributed systems Example OS Services Process management, protection, synchronization Memory Protection,
More informationComputer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications
Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications concurrently on all computers in the cluster. Disadvantages:
More informationCS370 Operating Systems Midterm Review
CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between
More informationProcesses and Threads
Processes and Threads Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Based on original slides by Silberschatz, Galvin
More informationProcess Description and Control
Process Description and Control 1 Process:the concept Process = a program in execution Example processes: OS kernel OS shell Program executing after compilation www-browser Process management by OS : Allocate
More informationChapter 4: Threads. Chapter 4: Threads
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationProcess. Program Vs. process. During execution, the process may be in one of the following states
What is a process? What is process scheduling? What are the common operations on processes? How to conduct process-level communication? How to conduct client-server communication? Process is a program
More informationLast Class: CPU Scheduling. Pre-emptive versus non-preemptive schedulers Goals for Scheduling: CS377: Operating Systems.
Last Class: CPU Scheduling Pre-emptive versus non-preemptive schedulers Goals for Scheduling: Minimize average response time Maximize throughput Share CPU equally Other goals? Scheduling Algorithms: Selecting
More informationFrom Processes to Threads
From Processes to Threads 1 Processes, Threads and Processors Hardware can interpret N instruction streams at once Uniprocessor, N==1 Dual-core, N==2 Sun s Niagra T2 (2007) N == 64, but 8 groups of 8 An
More informationLecture Contents. 1. Overview. 2. Multithreading Models 3. Examples of Thread Libraries 4. Summary
Lecture 4 Threads 1 Lecture Contents 1. Overview 2. Multithreading Models 3. Examples of Thread Libraries 4. Summary 2 1. Overview Process is the unit of resource allocation and unit of protection. Thread
More informationParallelism Marco Serafini
Parallelism Marco Serafini COMPSCI 590S Lecture 3 Announcements Reviews First paper posted on website Review due by this Wednesday 11 PM (hard deadline) Data Science Career Mixer (save the date!) November
More informationPROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8
PROCESSES AND THREADS THREADING MODELS CS124 Operating Systems Winter 2016-2017, Lecture 8 2 Processes and Threads As previously described, processes have one sequential thread of execution Increasingly,
More informationMultithreading. Reading: Silberschatz chapter 5 Additional Reading: Stallings chapter 4
Multithreading Reading: Silberschatz chapter 5 Additional Reading: Stallings chapter 4 Understanding Linux/Unix Programming, Bruce Molay, Prentice-Hall, 2003. EEL 602 1 Outline Process and Threads Multithreading
More informationProcesses and Threads. Processes: Review
Processes and Threads Processes and their scheduling Threads and scheduling Multiprocessor scheduling Distributed Scheduling/migration Lecture 3, page 1 Processes: Review Multiprogramming versus multiprocessing
More informationOperating System. Chapter 4. Threads. Lynn Choi School of Electrical Engineering
Operating System Chapter 4. Threads Lynn Choi School of Electrical Engineering Process Characteristics Resource ownership Includes a virtual address space (process image) Ownership of resources including
More informationChapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin
More informationSMD149 - Operating Systems
SMD149 - Operating Systems Roland Parviainen November 3, 2005 1 / 45 Outline Overview 2 / 45 Process (tasks) are necessary for concurrency Instance of a program in execution Next invocation of the program
More information! How is a thread different from a process? ! Why are threads useful? ! How can POSIX threads be useful?
Chapter 2: Threads: Questions CSCI [4 6]730 Operating Systems Threads! How is a thread different from a process?! Why are threads useful?! How can OSIX threads be useful?! What are user-level and kernel-level
More informationCS 261 Fall Mike Lam, Professor. Threads
CS 261 Fall 2017 Mike Lam, Professor Threads Parallel computing Goal: concurrent or parallel computing Take advantage of multiple hardware units to solve multiple problems simultaneously Motivations: Maintain
More informationMultiprocessors 2007/2008
Multiprocessors 2007/2008 Abstractions of parallel machines Johan Lukkien 1 Overview Problem context Abstraction Operating system support Language / middleware support 2 Parallel processing Scope: several
More informationChapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne
Chapter 4: Threads Silberschatz, Galvin and Gagne Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Linux Threads 4.2 Silberschatz, Galvin and
More informationProcess Characteristics. Threads Chapter 4. Process Characteristics. Multithreading vs. Single threading
Process Characteristics Threads Chapter 4 Reading: 4.1,4.4, 4.5 Unit of resource ownership - process is allocated: a virtual address space to hold the process image control of some resources (files, I/O
More informationThreads Chapter 4. Reading: 4.1,4.4, 4.5
Threads Chapter 4 Reading: 4.1,4.4, 4.5 1 Process Characteristics Unit of resource ownership - process is allocated: a virtual address space to hold the process image control of some resources (files,
More information!! How is a thread different from a process? !! Why are threads useful? !! How can POSIX threads be useful?
Chapter 2: Threads: Questions CSCI [4 6]730 Operating Systems Threads!! How is a thread different from a process?!! Why are threads useful?!! How can OSIX threads be useful?!! What are user-level and kernel-level
More informationChapter 4: Threads. Operating System Concepts 9 th Edit9on
Chapter 4: Threads Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads 1. Overview 2. Multicore Programming 3. Multithreading Models 4. Thread Libraries 5. Implicit
More informationThreads Chapter 5 1 Chapter 5
Threads Chapter 5 1 Chapter 5 Process Characteristics Concept of Process has two facets. A Process is: A Unit of resource ownership: a virtual address space for the process image control of some resources
More informationProcesses. Operating System Concepts with Java. 4.1 Sana a University, Dr aimen
Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Sana a University, Dr aimen Process Concept
More informationThe Big Picture So Far. Chapter 4: Processes
The Big Picture So Far HW Abstraction Processor Memory IO devices File system Distributed systems Example OS Services Process management, protection, synchronization Memory Protection, management, VM Interrupt
More informationChapter 3: Process-Concept. Operating System Concepts 8 th Edition,
Chapter 3: Process-Concept, Silberschatz, Galvin and Gagne 2009 Chapter 3: Process-Concept Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Silberschatz, Galvin
More informationHigh Performance Computing Course Notes Shared Memory Parallel Programming
High Performance Computing Course Notes 2009-2010 2010 Shared Memory Parallel Programming Techniques Multiprocessing User space multithreading Operating system-supported (or kernel) multithreading Distributed
More informationChapter 4: Multithreaded Programming. Operating System Concepts 8 th Edition,
Chapter 4: Multithreaded Programming, Silberschatz, Galvin and Gagne 2009 Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues 4.2 Silberschatz, Galvin
More informationChapter 1: Distributed Information Systems
Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier
More informationEI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)
EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) Dept. of Computer Science & Engineering Chentao Wu wuct@cs.sjtu.edu.cn Download lectures ftp://public.sjtu.edu.cn User:
More informationSprite (contd) Code and Process Migration
Sprite (contd) Sprite process migration Facilitated by the Sprite file system State transfer Swap everything out Send page tables and file descriptors to receiver Demand page process in Only dependencies
More informationPage 1. Analogy: Problems: Operating Systems Lecture 7. Operating Systems Lecture 7
Os-slide#1 /*Sequential Producer & Consumer*/ int i=0; repeat forever Gather material for item i; Produce item i; Use item i; Discard item i; I=I+1; end repeat Analogy: Manufacturing and distribution Print
More informationConfiguring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved.
Configuring the Oracle Network Environment Objectives After completing this lesson, you should be able to: Use Enterprise Manager to: Create additional listeners Create Oracle Net Service aliases Configure
More informationDiscussion CSE 224. Week 4
Discussion CSE 224 Week 4 Midterm The midterm will cover - 1. Topics discussed in lecture 2. Research papers from the homeworks 3. Textbook readings from Unit 1 and Unit 2 HW 3&4 Clarifications 1. The
More informationPhxSQL: A High-Availability & Strong-Consistency MySQL Cluster. Ming
PhxSQL: A High-Availability & Strong-Consistency MySQL Cluster Ming CHEN@WeChat Why PhxSQL Highly expected features for MySql cluster Availability and consistency in MySQL cluster Master-slaves replication
More informationThe Big Picture So Far. Chapter 4: Processes
The Big Picture So Far HW Abstraction Processor Memory IO devices File system Distributed systems Example OS Services Process management, protection, synchronization Memory Protection, management, VM Interrupt
More informationIntroduction to PThreads and Basic Synchronization
Introduction to PThreads and Basic Synchronization Michael Jantz, Dr. Prasad Kulkarni Dr. Douglas Niehaus EECS 678 Pthreads Introduction Lab 1 Introduction In this lab, we will learn about some basic synchronization
More informationChapter 4: Threads. Chapter 4: Threads
Chapter 4: Threads Silberschatz, Galvin and Gagne 2009 Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads 4.2
More informationGustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2
Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design
More informationIntroduction to OpenOnload Building Application Transparency and Protocol Conformance into Application Acceleration Middleware
White Paper Introduction to OpenOnload Building Application Transparency and Protocol Conformance into Application Acceleration Middleware Steve Pope, PhD Chief Technical Officer Solarflare Communications
More informationThreading and Synchronization. Fahd Albinali
Threading and Synchronization Fahd Albinali Parallelism Parallelism and Pseudoparallelism Why parallelize? Finding parallelism Advantages: better load balancing, better scalability Disadvantages: process/thread
More informationRoadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - III Processes. Louisiana State University. Processes. September 1 st, 2009
CSC 4103 - Operating Systems Fall 2009 Lecture - III Processes Tevfik Ko!ar Louisiana State University September 1 st, 2009 1 Roadmap Processes Basic Concepts Process Creation Process Termination Context
More informationChapter 4: Threads. Operating System Concepts 9 th Edition
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationCS 3305 Intro to Threads. Lecture 6
CS 3305 Intro to Threads Lecture 6 Introduction Multiple applications run concurrently! This means that there are multiple processes running on a computer Introduction Applications often need to perform
More informationChapter 4: Threads. Operating System Concepts 9 th Edition
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationAnnouncements/Reminders
Announcements/Reminders Class news group: rcfnews.cs.umass.edu::cmpsci.edlab.cs377 CMPSCI 377: Operating Systems Lecture 5, Page 1 Last Class: Processes A process is the unit of execution. Processes are
More informationProcess Description and Control
Process Description and Control B.Ramamurthy 1/28/02 B.Ramamurthy 1 Introduction The fundamental task of any operating system is process management. OS must allocate resources to processes, enable sharing
More informationLast time: introduction. Networks and Operating Systems ( ) Chapter 2: Processes. This time. General OS structure. The kernel is a program!
ADRIAN PERRIG & TORSTEN HOEFLER Networks and Operating Systems (252-0062-00) Chapter 2: Processes Last time: introduction Introduction: Why? February 12, 2016 Roles of the OS Referee Illusionist Glue Structure
More information5 Distributed Objects: The Java Approach
5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having
More informationAdaptive Cluster Computing using JavaSpaces
Adaptive Cluster Computing using JavaSpaces Jyoti Batheja and Manish Parashar The Applied Software Systems Lab. ECE Department, Rutgers University Outline Background Introduction Related Work Summary of
More informationCS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University
CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 Process creation in UNIX All processes have a unique process id getpid(),
More informationOutline. CS4254 Computer Network Architecture and Programming. Introduction 2/4. Introduction 1/4. Dr. Ayman A. Abdel-Hamid.
Threads Dr. Ayman Abdel-Hamid, CS4254 Spring 2006 1 CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science Department Virginia Tech Threads Outline Threads (Chapter
More informationThreads. CS3026 Operating Systems Lecture 06
Threads CS3026 Operating Systems Lecture 06 Multithreading Multithreading is the ability of an operating system to support multiple threads of execution within a single process Processes have at least
More informationProcesses. CS3026 Operating Systems Lecture 05
Processes CS3026 Operating Systems Lecture 05 Dispatcher Admit Ready Queue Dispatch Processor Release Timeout or Yield Event Occurs Blocked Queue Event Wait Implementation: Using one Ready and one Blocked
More informationCHAPTER 2: PROCESS MANAGEMENT
1 CHAPTER 2: PROCESS MANAGEMENT Slides by: Ms. Shree Jaswal TOPICS TO BE COVERED Process description: Process, Process States, Process Control Block (PCB), Threads, Thread management. Process Scheduling:
More informationOperating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group
Operating Systems (2INC0) 20/19 Introduction (01) Dr. Courtesy of Prof. Dr. Johan Lukkien System Architecture and Networking Group Course Overview Introduction to operating systems Processes, threads and
More informationChapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads
Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a
More informationDISTRIBUTED COMPUTER SYSTEMS
9/17/15 DISTRIBUTED COMPUTER SYSTEMS PROCESSES AND THREADS Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Heavy Weight Processes Threads and Thread Implementation
More informationProcess Concept. Chapter 4: Processes. Diagram of Process State. Process State. Process Control Block (PCB) Process Control Block (PCB)
Chapter 4: Processes Process Concept Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems An operating system
More informationChapter 4: Processes
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating
More information