CS551 Warm-up Project #2
|
|
- Leslie Singleton
- 5 years ago
- Views:
Transcription
1 CS55 Warm-up Project #2 Bill Cheng
2 Multi-threading Exercise Make sure you are familiar with the pthreads library good source is the book by Nichols, Buttlar, and Farrell Pthreads Programming, O Rielly & Associates, 996 you must learn how to use mutex and condition variables correctly pthread_mutex_lock()/pthread_mutex_unlock() pthread_cond_wait()/pthread_cond_signal()/ pthread_cond_broadcast() you must learn how to handle UNIX signals pthread_sigmask()/sigwait() pthread_setcancelstate() pthread_setcanceltype() pthread_testcancel() 2
3 pthread_sigmask() #include <pthread.h> /* #include <thread.h> */ thread_t user_threadid; sigset_t new; void *handler(), interrupt(); main( int argc, char *argv[] ) { sigemptyset(&new); sigaddset(&new, SIGINT); Look at the man pages of pthread_sigmask() on nunki and try to understand the example there designate child thread to handler SIGINT parent thread blocks SIGINT pthread_sigmask(sig_block, &new, NULL); pthread_create(&user_threadid, NULL, handler, argv[]); pthread_join(user_threadid, NULL); printf("thread handler, %d exited\n",user_threadid); sleep(2); printf("main thread, %d is done\n", thr_self()); } /* end main */ 3
4 struct sigaction act; pthread_sigmask() Child thread example child thread unblocks SIGINT void * handler(char argv[]) { act.sa_handler = interrupt; sigaction(sigint, &act, NULL); pthread_sigmask(sig_unblock, &new, NULL); printf("\n Press CTRL-C to deliver SIGINT\n"); sleep(8); /* give user time to hit CTRL-C */ } void interrupt(int sig) { printf("thread %d caught signal %d\n", thr_self(), sig); } child thread is designated to handle SIGINT, no other thread will get SIGINT 4
5 Queueing Abstraction λ Q S µ S2 µ Ex: line at a bank multiprocessor executing jobs from a shared job queue ER 5
6 λ Q Arrivals & Departures C S µ S2 µ C 2 a i : arrival time d i : departure time s i : service time r i : response (system) time q i : queueing time S S2 r s d s 2 r 2 d 2 Q a a 2 0 t C C 2 6
7 Arrivals & Departures (Cont...) λ Q S µ S2 µ C C 2 C 4 C 3 S S2 r 3 s 3 d 4 d 3 s 4 r 4 q, q 2, q 3 ~ 0 q 4 > 0 q 4 Q a 3 a 4 0 t C C 2 C 3 C 4 7
8 Event Driven Simulation An event queue is a sorted list of events according to timestamps; smallest timestamp at the head of queue Object oriented: every object has a "next event" (what it will do next if there is no interference), this event is inserted into the event queue Execution: remove an event from the head of queue, "execute" the event (notify the corresponding object so it can insert the next event) Insert into the event queue according to timestamp of a new event; insertion may cause additional events to be deleted or inserted Potentially repeatable runs (if the same seed is used to initialize random number generator) 8
9 Event Driven Simulation (Cont...) Ex: 4 objects, A (arrival), Q (passive object, does not generate events), S, S2 Initially: A : [ a, create(c ) ] S : NULL Q : empty S2 : NULL only one event, next event to fire is [ a, create(c ) ] create(c ), Q->enqueue(C ) Q->dequeue(C ), S->serve(C ) A : [ a 2, create(c 2 ) ] S : [ d, destroy(c ) ] Q : empty S2 : NULL min(a 2, d ) = a 2, next event to fire is [ a 2, create(c 2 ) ] create(c 2 ), Q->enqueue(C 2 ) Q->dequeue(C 2 ), S2->serve(C 2 ) A : [ a 3, create(c 3 ) ] S : [ d, destroy(c ) ] Q : empty S2 : [ d 2, destroy(c 2 ) ] 9
10 Event Driven Simulation (Cont...) min(a 3, d, d 2 ) = d, next event to fire is [ d, destroy(c ) ] destroy(c ) A : [ a 3, create(c 3 ) ] S : NULL Q : empty S2 : [ d 2, destroy(c 2 ) ] min(a 3, d 2 ) = a 3, next event to fire is [ a 3, create(c 3 ) ] create(c 3 ), Q->enqueue(C 3 ) Q->dequeue(C 3 ), S->serve(C 3 ) A : [ a 4, create(c 4 ) ] S : [ d 3, destroy(c 3 ) ] Q : empty S2 : [ d 2, destroy(c 2 ) ] min(a 4, d 2, d 3 ) = a 4, next event to fire is [ a 4, create(c 4 ) ] create(c 4 ), Q->enqueue(C 4 ) A : [ a 5, create(c 5 ) ] S : [ d 3, destroy(c 3 ) ] Q : C 4 S2 : [ d 2, destroy(c 2 ) ] etc. 0
11 Event Driven Simulation (Cont...) C C 2 C 4 C 3 S S2 d d 2 d 4 d 3 Q a a 2 a 3 a 4 0 t C C 2 C 3 C 4
12 Time Driven Simulation Every active object is a thread a customer is a passive object, it gets passed around To execute a job for x msec, the thread sleeps for x msec nunki.usc.edu does not run a realtime OS it may not get woken up more than x msec later, and sometimes, a lot more than x msec later you need to decide if the extra delay is reasonable or it is due to a bug in your code Let your machine decide which thread to run next (irreproducible results) Compete for resources (such as Q), must use mutex 2
13 Time Driven Simulation (Cont...) You will need to implement 3 threads (or main thread and 3 child threads) the arrival thread sits in a loop sleeps for an interval, trying to match a given interarrival time (from trace or coin flip) wakes up, creates a customer object, enqueues the customer to Q, and goes back to sleep if the Q was empty before, need to signal or broadcast a queue-not-empty condition two server threads initially blocked, waiting for the queue-not-empty condition to be signaled (cont...) 3
14 Time Driven Simulation (Cont...) two server threads (cont...) when it is unblocked, if Q is not empty, dequeues a customer, sleeps for an interval matching the service time of the customer, eject the customer from the system, check if Q is empty, etc. if there is no work to perform, go wait for the queue-not-empty condition to be signaled <Cntrl+C> arrival thread will stop generating customers and terminate the arrival thread needs to clear out Q server threads must finish serving its current customer must print statistics for all customer seen 4
15 Time Driven Simulation (Cont...) Notation: α i : inter-arrival time for customer i (a i -a i- ), a 0 =0 β i : service time of customer i Initially: A : sleep(α =a ) S : idle Q : empty S2 : idle A wakes up at a : create(c ), Q->enqueue(C ) Q->dequeue(C ), S->serve(C ) A : sleep(α 2 ) S : sleep(β ) Q : empty S2 : idle A wakes up at a +α 2 : create(c 2 ), Q->enqueue(C 2 ) Q->dequeue(C 2 ), S2->serve(C 2 ) A : sleep(α 3 ) S : sleeping... Q : empty S2 : sleep(β 2 ) etc. 5
16 Coin Flipping Uniform distribution probability mass function (pmf), denoted by f(x) Probability Distribution Function (PDF), denoted by F(x) F(x) = f(x)dx = x f(w)dw f(x) = x { 0 x 0 otherwise x F(x) = 0 x < 0 x 0 x x > 6
17 Coin Flipping (Cont...) How do you flip a coin according to this distribution? Think about discrete case: f(x) bucket Add them up: f(x) f(x) x Flip a coin between 0 and 23 r r = drand48()* x 3 r lies between 3 and 3, so we have randomly chosen bucket #2 x 7
18 Coin Flipping (Cont...) Q: What were we doing when we "added them up"? A: We were doing "integration" f(x) Hint: 0 F(x) for any x x r w F(x) can numerically compute w x r = drand48() w =? 8
19 Exponential distribution Coin Flipping (Cont...) m ܵ Ñ ÑÜ Note: inter-arrival time of a Poisson process is Exponentially distributed x ܵ Ü Ýµ Ý ½ x ¼ ÑÜ r w ܵ x r = drand48() w =? 9
20 Calculating Statistics arrival thread timeout (read clock) lock & unlock stdout to print arrival msg Q try lock mutex to enter Q λ S enter Q (read clock) µ unlock mutex lock & unlock stdout to print enter queue msg try lock mutex to leave Q leave Q (read clock) unlock mutex lock & unlock stdout to print leave queue and begin service msgs begin service leave server lock & unlock stdout to print msg overhead? time in Q time in server select()? charge to no one time time between begin service and leave server is the amount of time in select() 20
21 Mean and Standard Deviation Average time for n samples, add up all the time and divide by n Average number of customer at a server same a fraction of time the server is busy 0 Average number of customer at Q time 3 2 time Standard deviation is the squareroot of variance Var[X] = E[X 2 ] - (E[X]) 2 0 2
Lecture 7: Signals and Events. CSC 469H1F Fall 2006 Angela Demke Brown
Lecture 7: Signals and Events CSC 469H1F Fall 2006 Angela Demke Brown Signals Software equivalent of hardware interrupts Allows process to respond to asynchronous external events (or synchronous internal
More informationSystems Programming/ C and UNIX
Systems Programming/ C and UNIX A. Fischer CSCI 4547 / 6647 November 16, 2017 A. Fischer CSCI 4547 / 6647 Systems Programming Lecture 8... 1/20 November 16, 2017 1 / 20 Outline 1 Signals for Threads Signals
More informationCSci 4061 Introduction to Operating Systems. (Advanced Control Signals)
CSci 4061 Introduction to Operating Systems (Advanced Control Signals) What is a Signal? Signals are a form of asynchronous IPC Earlier: Non-blocking I/O and check if it has happened => polling Problem
More informationDeviations are things that modify a thread s normal flow of control. Unix has long had signals, and these must be dealt with in multithreaded
Deviations are things that modify a thread s normal flow of control. Unix has long had signals, and these must be dealt with in multithreaded improvements to Unix. There are actually two fairly different
More informationKilling Zombies, Working, Sleeping, and Spawning Children
Killing Zombies, Working, Sleeping, and Spawning Children CS 333 Prof. Karavanic (c) 2015 Karen L. Karavanic 1 The Process Model The OS loads program code and starts each job. Then it cleans up afterwards,
More informationCS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017
CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 1 Review: Sync Terminology Worksheet 2 Review: Semaphores 3 Semaphores o Motivation: Avoid busy waiting by blocking a process execution
More informationCS307: Operating Systems
CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn
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 informationSystems Programming/ C and UNIX
Systems Programming/ C and UNIX Alice E. Fischer November 22, 2013 Alice E. Fischer () Systems Programming Lecture 12... 1/27 November 22, 2013 1 / 27 Outline 1 Jobs and Job Control 2 Shared Memory Concepts
More informationProcesses. Processes (cont d)
Processes UNIX process creation image-file arg1 arg2 Shell command line example ls -l Equivalent to /bin/ls -l Why? How do you find out where the image file is? Background processes ls -l & Execute a process
More informationSE350: Operating Systems. Lecture 3: Concurrency
SE350: Operating Systems Lecture 3: Concurrency Main Points Thread abstraction What are threads and what is the thread abstraction? Thread life cycle What states does a thread go through? Thread Implementation
More informationCPU Scheduling. Basic Concepts. Histogram of CPU-burst Times. Dispatcher. CPU Scheduler. Alternating Sequence of CPU and I/O Bursts
CS307 Basic Concepts Maximize CPU utilization obtained with multiprogramming CPU Scheduling CPU I/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait CPU burst distribution
More informationChapter 5 CPU scheduling
Chapter 5 CPU scheduling Contents Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Thread Scheduling Operating Systems Examples Java Thread Scheduling
More informationECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Processes and threads
ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part I: Operating system overview: Processes and threads 1 Overview Process concept Process scheduling Thread
More informationSIMULATION OF A SINGLE-SERVER QUEUEING SYSTEM
SIMULATION OF A SINGLE-SERVER QUEUEING SYSTEM Will show how to simulate a specific version of the single-server queuing system Though simple, it contains many features found in all simulation models 1-
More informationOverview. POSIX signals. Generation of signals. Handling signals. Some predefined signals. Real-time Systems D0003E 3/3/2009
Overview Real-time Systems D0003E Lecture 13: More on inter-process communication (Burns & Wellings ch. 8, 11 & 10.6) Posix signals Posix timers timers in cygwin (lab environment) event-loop pattern semaphores
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 informationChapter 5: Process Scheduling
Chapter 5: Process Scheduling Chapter 5: Process Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Thread Scheduling Operating Systems Examples Algorithm
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 Lecture 8 Threads and Scheduling Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ How many threads
More informationYork University Lassonde School of Engineering Department of Electrical Engineering and Computer Science
York University Lassonde School of Engineering Department of Electrical Engineering and Computer Science Midterm EECS 3221.03Z Operating Systems Fundamentals Feb 26, 2015 (14:30-16:00) Section: EECS3221Z
More informationOperating Systems. Operating Systems Summer 2017 Sina Meraji U of T
Operating Systems Operating Systems Summer 2017 Sina Meraji U of T More Special Instructions Swap (or Exchange) instruction Operates on two words atomically Can also be used to solve critical section problem
More informationMidterm - Winter SE 350
Please print in pen: Waterloo Student ID Number: WatIAM/Quest Login UserID: Midterm - Winter 0 - SE 0. Before you begin, make certain that you have one -sided booklet with pages. You have 0 minutes to
More informationCS 167 Midterm Exam. Two Hours; Closed Book; Please Use a Black Pen March 23, 2017
CS 167 Midterm Exam Two Hours; Closed Book; Please Use a Black Pen March 23, 2017 Do all questions. 1. A certain operating system has a synchronization construct known as events. Assume there are two operations
More informationPOSIX Condition Variables ADT
28 POSIX Condition Variables ADT One actual Attributes * 1. CV-list = list ids of thread waiting on CV - Domain: empty-list, list w/ 1 tid,... Two logical Attributes * 1. Boolean Condition C - Condition
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 The Process Concept 2 The Process Concept Process a program in execution
More informationChapter 5: CPU Scheduling
Chapter 5: CPU Scheduling Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating Systems Examples Algorithm Evaluation
More informationInterrupts, Etc. Operating Systems In Depth V 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.
Interrupts, Etc. Operating Systems In Depth V 1 Copyright 2018 Thomas W. Doeppner. All rights reserved. Interrupts User stack frames Kernel stack frames Interrupt handler 1 s frame Interrupt handler 2
More informationChapter 5: CPU Scheduling. Operating System Concepts Essentials 8 th Edition
Chapter 5: CPU Scheduling Silberschatz, Galvin and Gagne 2011 Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating
More informationSynchronization and Semaphores. Copyright : University of Illinois CS 241 Staff 1
Synchronization and Semaphores Copyright : University of Illinois CS 241 Staff 1 Synchronization Primatives Counting Semaphores Permit a limited number of threads to execute a section of the code Binary
More informationChapter 6: CPU Scheduling
Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne Histogram of CPU-burst Times 6.2 Silberschatz, Galvin and Gagne Alternating Sequence of CPU And I/O Bursts 6.3 Silberschatz, Galvin and Gagne CPU
More information( B ) 4. Which is not able to solve the race condition? (A) Test and Set Lock (B) Shared memory (C) Semaphore (D) Monitor
CS 540 - Operating Systems - Final Exam - Name: Date: Monday, May 12, 2003 Part 1: (80 + 8 (bonus) points - 4 points for each problem) ( C ) 1. In an operating system a utility which reads commands from
More informationOperating Systems CS 323 Ms. Ines Abbes
Taibah University College of Community of Badr Computer Science Department Operating Systems CS71/CS72 جامعة طيبة كلية المجتمع ببدر قسم علوم الحاسب مقرر: نظم التشغيل Operating Systems CS 323 Ms. Ines Abbes
More informationCS 537 Lecture 8 Monitors. Thread Join with Semaphores. Dining Philosophers. Parent thread. Child thread. Michael Swift
CS 537 Lecture 8 Monitors Michael Swift Two Classes of Synchronization Problems Uniform resource usage with simple scheduling constraints No other variables needed to express relationships Use one semaphore
More informationCSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song
CSCE 313 Introduction to Computer Systems Instructor: Dezhen Song Programs, Processes, and Threads Programs and Processes Threads Programs, Processes, and Threads Programs and Processes Threads Processes
More informationThreads need to synchronize their activities to effectively interact. This includes:
KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 8 Threads Synchronization ( Mutex & Condition Variables ) Objective: When multiple
More informationCSCE 313: Intro to Computer Systems
CSCE 313 Introduction to Computer Systems Instructor: Dr. Guofei Gu http://courses.cse.tamu.edu/guofei/csce313/ Programs, Processes, and Threads Programs and Processes Threads 1 Programs, Processes, and
More informationMore Shared Memory Programming
More Shared Memory Programming Shared data structures We want to make data structures that can be shared by threads. For example, our program to copy a file from one disk to another used a shared FIFO
More informationWeek 13. Final exam review
Week 13. Final exam review 1. True or false? A. I claim that linked lists have the following advantages over the arrays: They allow insertion in the middle in a constant time They allow access to the element
More informationCS 370 Operating Systems
NAME S.ID. # CS 370 Operating Systems Mid-term Example Instructions: The exam time is 50 minutes. CLOSED BOOK. 1. [24 pts] Multiple choice. Check one. a. Multiprogramming is: An executable program that
More informationPreview. The pause() System Call. The pause() System Call. The signal() System Call 10/18/2017
Preview The pause() System Call The pause() System call The signal() system call Signal set The sigprocmask() system call The sigaction() system call The sigsuspend() system call The abort() system call
More informationIntroduction to parallel computing
Introduction to parallel computing Shared Memory Programming with Pthreads (3) Zhiao Shi (modifications by Will French) Advanced Computing Center for Education & Research Vanderbilt University Last time
More informationCSE 120. Fall Lecture 6: Semaphores. Keith Marzullo
CSE 120 Principles of Operating Systems Fall 2007 Lecture 6: Semaphores Keith Marzullo Announcements Homework #2 out Homework #1 almost graded... Discussion session on Wednesday will entertain questions
More informationCMSC421: Principles of Operating Systems
CMSC421: Principles of Operating Systems Nilanjan Banerjee Assistant Professor, University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/421/ Principles of Operating
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 information1 Introduction. 2 Managing contexts. Green, green threads of home. Johan Montelius HT2018
1 Introduction Green, green threads of home Johan Montelius HT2018 This is an assignment where you will implement your own thread library. Instead of using the operating systems threads you will create
More informationCSci 4061 Introduction to Operating Systems. (Threads-POSIX)
CSci 4061 Introduction to Operating Systems (Threads-POSIX) How do I program them? General Thread Operations Create/Fork Allocate memory for stack, perform bookkeeping Parent thread creates child threads
More informationCondition Variables & Semaphores
Condition Variables & Semaphores Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau) Review: Concurrency Objectives Mutual Exclusion A & B don t run at the same time Solved using locks Ordering
More informationMidterm Exam #1 September 28, 2016 CS162 Operating Systems
University of California, Berkeley College of Engineering Computer Science Division EECS Fall 2016 Anthony D. Joseph Midterm Exam #1 September 28, 2016 CS162 Operating Systems Your Name: SID AND 162 Login:
More informationPre-lab #2 tutorial. ECE 254 Operating Systems and Systems Programming. May 24, 2012
Pre-lab #2 tutorial ECE 254 Operating Systems and Systems Programming May 24, 2012 Content Concurrency Concurrent Programming Thread vs. Process POSIX Threads Synchronization and Critical Sections Mutexes
More informationEPL372 Lab Exercise 2: Threads and pthreads. Εργαστήριο 2. Πέτρος Παναγή
EPL372 Lab Exercise 2: Threads and pthreads Εργαστήριο 2 Πέτρος Παναγή 1 Threads Vs Processes 2 Process A process is created by the operating system, and requires a fair amount of "overhead". Processes
More informationCS 33. Multithreaded Programming IV. CS33 Intro to Computer Systems XXXV 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.
CS 33 Multithreaded Programming IV CS33 Intro to Computer Systems XXXV 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Deviations Signals vs. Cancellation tamed lightning CS33 Intro to Computer
More informationBinary Trees
Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what
More informationECE 598 Advanced Operating Systems Lecture 23
ECE 598 Advanced Operating Systems Lecture 23 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 21 April 2016 Don t forget HW#9 Midterm next Thursday Announcements 1 Process States
More informationSignals. CSC209: Software Tools and Systems Programming. Furkan Alaca & Paul Vrbik
Signals CSC209: Software Tools and Systems Programming Furkan Alaca & Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Week 9 Acknowledgement These slides are built upon material
More informationCS533 Concepts of Operating Systems. Jonathan Walpole
CS533 Concepts of Operating Systems Jonathan Walpole Introduction to Threads and Concurrency Why is Concurrency Important? Why study threads and concurrent programming in an OS class? What is a thread?
More informationQuestion 1 Monitor pseudo-code
CS 76 Intensive Computer Systems Prof. Peter Desnoyers Homework 2 Solutions Spring 2 Question Monitor pseudo-code At a minimum you need to: track how many customers are in the shop, allow customers to
More informationChapter 6: CPU Scheduling. Operating System Concepts 9 th Edition
Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time
More informationCISC2200 Threads Spring 2015
CISC2200 Threads Spring 2015 Process We learn the concept of process A program in execution A process owns some resources A process executes a program => execution state, PC, We learn that bash creates
More informationCondition Variables. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Condition Variables Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu EEE3052: Introduction to Operating Systems, Fall 2017, Jinkyu Jeong (jinkyu@skku.edu)
More information4.8 Summary. Practice Exercises
Practice Exercises 191 structures of the parent process. A new task is also created when the clone() system call is made. However, rather than copying all data structures, the new task points to the data
More informationOverview. Administrative. * HW 1 grades. * HW 2 Due. Topics. * 5.1 What is a Signal? * Dealing with Signals - masks, handlers
Overview Administrative * HW 1 grades * HW 2 Due Topics * 5.1 What is a Signal? * 5.2-3 Dealing with Signals - masks, handlers * 5.4 Synchronization: pause(), sigsuspend() * 5.6 Interaction with other
More informationCSCI 4061: Signals and Signal Handlers
1 CSCI 4061: Signals and Signal Handlers Chris Kauffman Last Updated: Thu Oct 19 12:16:40 CDT 2017 2 Logistics Reading Robbins and Robbins Ch 8.1-8.7, 9.1-2 OR Stevens/Rago Ch 10 Goals Sending Signals
More informationCS510 Operating System Foundations. Jonathan Walpole
CS510 Operating System Foundations Jonathan Walpole The Process Concept 2 The Process Concept Process a program in execution Program - description of how to perform an activity instructions and static
More informationLecture 5: Concurrency and Threads
CS 422/522 Design & Implementation of Operating Systems Lecture 5: Concurrency and Threads Zhong Shao Dept of Computer Science Yale University Acknowledgement: some slides are taken from previous versions
More informationChapter 4 Concurrent Programming
Chapter 4 Concurrent Programming 4.1. Introduction to Parallel Computing In the early days, most computers have only one processing element, known as the Central Processing Unit (CPU). Due to this hardware
More informationCS 105, Spring 2007 Ring Buffer
CS 105, Spring 2007 Ring Buffer April 11, 2007 1 Introduction A ring buffer, also called a circular buffer, is a common method of sharing information between a producer and a consumer. In class, we have
More informationCS107 Handout 26 Spring 2008 May 9, 2008 More Concurrency
CS107 Handout 26 Spring 2008 May 9, 2008 More Concurrency Written by Julie Zelenski Semaphore Patterns One of the latest developments in software engineering is to identify patterns repeated within programs
More informationLecture 4 Threads. (chapter 4)
Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 4 Threads (chapter 4) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The slides here are adapted/modified
More informationSemaphores. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Semaphores Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu EEE3052: Introduction to Operating Systems, Fall 2017, Jinkyu Jeong (jinkyu@skku.edu) Synchronization
More informationCSC209H Lecture 8. Dan Zingaro. March 4, 2015
CSC209H Lecture 8 Dan Zingaro March 4, 2015 Signals you Already Know Like pipes, signals are a form of inter-process communication You ve already sent signals using the shell When you hit ctrl+c to terminate
More information[537] Locks and Condition Variables. Tyler Harter
[537] Locks and Condition Variables Tyler Harter Review: using and designing basic locks Do it. Problem 1 Lock Evaluation How to tell if a lock implementation is good? Lock Evaluation How to tell if a
More informationCS 4410, Fall 2017 Project 1: My First Shell Assigned: August 27, 2017 Due: Monday, September 11:59PM
CS 4410, Fall 2017 Project 1: My First Shell Assigned: August 27, 2017 Due: Monday, September 11th @ 11:59PM Introduction The purpose of this assignment is to become more familiar with the concepts of
More informationProcesses. Overview. Processes. Process Creation. Process Creation fork() Processes. CPU scheduling. Pål Halvorsen 21/9-2005
INF060: Introduction to Operating Systems and Data Communication Operating Systems: Processes & CPU Pål Halvorsen /9-005 Overview Processes primitives for creation and termination states context switches
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 informationMotivation of Threads. Preview. Motivation of Threads. Motivation of Threads. Motivation of Threads. Motivation of Threads 9/12/2018.
Preview Motivation of Thread Thread Implementation User s space Kernel s space Inter-Process Communication Race Condition Mutual Exclusion Solutions with Busy Waiting Disabling Interrupt Lock Variable
More informationCSE 421: Introduction to Operating Systems
Recitation 5: UNIX Signals University at Buffalo, the State University of New York October 2, 2013 About Me 4th year PhD student But TA first time From South Korea Today, We will study... What UNIX signals
More informationCS 167 Final Exam Solutions
CS 167 Final Exam Solutions Spring 2017 Do all questions. 1. You are to write a thread_switch procedure, i.e., a procedure that causes the processor to switch from one thread to another. Its general form
More informationMultitasking. Programmer s model of multitasking. fork() spawns new process. exit() terminates own process
Signals Prof. Jin-Soo Kim( jinsookim@skku.edu) TA JinHong Kim( jinhong.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Multitasking Programmer s model of multitasking
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 Lecture 7 Threads Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ How many processes can a core
More informationSystem Programming. Signals I
Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Introduction 2 3 Signals
More informationMost of the work is done in the context of the process rather than handled separately by the kernel
Process Control Process Abstraction for a running program Manages program s use of memory, cpu time, and i/o resources Most of the work is done in the context of the process rather than handled separately
More informationReal Time Operating Systems and Middleware
Real Time Operating Systems and Middleware POSIX Threads Synchronization Luca Abeni abeni@dit.unitn.it Real Time Operating Systems and Middleware p. 1 Threads Synchronisation All the threads running in
More informationPOSIX / System Programming
POSIX / System Programming ECE 650 Methods and Tools for Software Eng. Guest lecture 2017 10 06 Carlos Moreno cmoreno@uwaterloo.ca E5-4111 2 Outline During today's lecture, we'll look at: Some of POSIX
More informationCS 105, Spring 2015 Ring Buffer
CS 105, Spring 2015 Ring Buffer March 10, 2015 1 Introduction A ring buffer, also called a circular buffer, is a common method of sharing information between a producer and a consumer. In class, we have
More informationProgramming Assignments will be.. All the PAs are continuous 3 major factors that you should consider
Signals Prof. Jin-Soo Kim( jinsookim@skku.edu) TA - Dong-Yun Lee (dylee@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu NOTICE Programming Assignments will be.. All
More informationScheduling. Today. Next Time Process interaction & communication
Scheduling Today Introduction to scheduling Classical algorithms Thread scheduling Evaluating scheduling OS example Next Time Process interaction & communication Scheduling Problem Several ready processes
More informationCS 431 Introduction to Computer Systems Solutions Mid semester exam 2005
CS 431 Introduction to Computer Systems Solutions Mid semester exam 2005 1. Consider the code below. (8 marks) public class Main { private ThreadA a; private ThreadB b; public Main() { a = new ThreadA();
More informationJob Scheduling. CS170 Fall 2018
Job Scheduling CS170 Fall 2018 What to Learn? Algorithms of job scheduling, which maximizes CPU utilization obtained with multiprogramming Select from ready processes and allocates the CPU to one of them
More informationThird Midterm Exam April 24, 2017 CS162 Operating Systems
University of California, Berkeley College of Engineering Computer Science Division EECS Spring 2017 Ion Stoica Third Midterm Exam April 24, 2017 CS162 Operating Systems Your Name: SID AND 162 Login: TA
More informationCOS 318: Midterm Exam (October 23, 2012) (80 Minutes)
COS 318: Midterm Exam (October 23, 2012) (80 Minutes) Name: This exam is closed-book, closed-notes. 1 single-sided 8.5x11 sheet of notes is permitted. No calculators, laptop, palmtop computers are allowed
More informationPreview. What are Pthreads? The Thread ID. The Thread ID. The thread Creation. The thread Creation 10/25/2017
Preview What are Pthreads? What is Pthreads The Thread ID The Thread Creation The thread Termination The pthread_join() function Mutex The pthread_cancel function The pthread_cleanup_push() function The
More informationConcurrent Server Design Multiple- vs. Single-Thread
Concurrent Server Design Multiple- vs. Single-Thread Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Fall 2007, TAIWAN NTUT, TAIWAN 1 Examples Using
More informationSynchronization. Dr. Yingwu Zhu
Synchronization Dr. Yingwu Zhu Synchronization Threads cooperate in multithreaded programs To share resources, access shared data structures Threads accessing a memory cache in a Web server To coordinate
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2019 Lecture 7 Threads Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Amdahls law example: Person
More informationEECS 482 Midterm (Fall 1998)
EECS 482 Midterm (Fall 1998) You will have 80 minutes to work on this exam, which is closed book. There are 4 problems on 9 pages. Read the entire exam through before you begin working. Work on those problems
More informationOperating Systems. Review ENCE 360
Operating Systems Review ENCE 360 High level Concepts What are three conceptual pieces fundamental to operating systems? High level Concepts What are three conceptual pieces fundamental to operating systems?
More informationThreads. CS-3013 Operating Systems Hugh C. Lauer. CS-3013, C-Term 2012 Threads 1
Threads CS-3013 Operating Systems Hugh C. Lauer (Slides include materials from Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum and from Operating System Concepts,
More information( D ) 4. Which is not able to solve the race condition? (A) Test and Set Lock (B) Semaphore (C) Monitor (D) Shared memory
CS 540 - Operating Systems - Final Exam - Name: Date: Wenesday, May 12, 2004 Part 1: (78 points - 3 points for each problem) ( C ) 1. In UNIX a utility which reads commands from a terminal is called: (A)
More informationModeling and Performance Analysis with Discrete-Event Simulation
Simulation Modeling and Performance Analysis with Discrete-Event Simulation Chapter 10 Verification and Validation of Simulation Models Contents Model-Building, Verification, and Validation Verification
More informationTCSS 422: OPERATING SYSTEMS
TCSS 422: OPERATING SYSTEMS OBJECTIVES Introduction to threads Concurrency: An Introduction Wes J. Lloyd Institute of Technology University of Washington - Tacoma Race condition Critical section Thread
More information