24 Pages

ECE344-Lecture8-Synchronization

Course: ECE 344, Fall 2011
School: University of Toronto
Rating:
 
 
 
 
 

Word Count: 1205

Document Preview

8: Lecture Synchronization David Lie ECE344 University of Toronto 1 Overview Need for synchronization Different synchronization primitives Locks Conditional Variables Semaphores Common Synchronization Problems Deadlocks, Livelock, starvation Tradeoffs with implementing synchronization ECE344: Operating Systems 2 Concurrent Programming Programming with two or more cooperating threads Threads can...

Register Now

Unformatted Document Excerpt

Coursehero >> Canada >> University of Toronto >> ECE 344

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
8: Lecture Synchronization David Lie ECE344 University of Toronto 1 Overview Need for synchronization Different synchronization primitives Locks Conditional Variables Semaphores Common Synchronization Problems Deadlocks, Livelock, starvation Tradeoffs with implementing synchronization ECE344: Operating Systems 2 Concurrent Programming Programming with two or more cooperating threads Threads can cooperate by Sharing data (shared address space) Global and heap variables are shared (not locals) Using messages (send and receive using bounded buffer) Can be implemented using shared variables Generally, more expensive but more robust ECE344: Operating Systems 3 Concurrent Programming Issues: There can be requirements on the ordering of operations between the threads: Race Conditions Two threads T1 and T2 read and update the same variable Access to the threads must be exclusive (i.e. One at a time) Synchronization T1 initializes a variable, T2 runs after variable is initialized Ordering between T1 and T2 must be enforced ECE344: Operating Systems 4 Race Conditions A race condition exists in a program when the result of program execution depends on the interleaving of operations between the threads Definition: A linearizable sequence is a sequence of operations that has the same result if the operations happened atomically. Any sequence that is not linearizable is a race ECE344: Operating Systems 5 Race Condition Bugs Data race: Two threads performs access on a shared variable simultaneously and at least one performs a write Note that not all race conditions are bugs. Some race conditions can also benign. Examples? ECE344: Operating Systems 6 Common Race Conditions Atomicity violation: 2 or more operations should not be interrupted but another thread operates between them in a non-linearizable way. ECE344: Operating Systems 7 Common Race Conditions Ordering violation: There is a ordering constraint on operations between two or more threads, but this constraint is violated. Example? ECE344: Operating Systems 8 How Should Race Conditions be Avoided? Certain interleavings will lead to incorrect results, so we need a way to prevent these interleavings Option 1: No interleavings. Disable interrupts and every thread runs to completion before the next one stops. Option 2: Coordinate among threads by preventing some threads from running at certain times. This is called synchronization. ECE344: Operating Systems 9 Synchronization 3 types of synchronization primitives: Mutex Locks Conditional Variables Semaphores ECE344: Operating Systems 10 Critical Sections and Mutual Exclusion A critical section is a piece of code that needs to execute atomically E.g., Read, modify, write is a critical section Mutual exclusion is a requirement that only one thread access a critical section at a time All other threads are forced to wait on entry When a thread leaves critical section, others can enter If mutual exclusion can be ensured for every critical section, then there will be no atomicity violations! ECE344: Operating Systems 11 Mutual Exclusion Requirements 1. No two threads simultaneously in critical section 2. No thread running outside its critical section may block another thread Why is this bad? 3. No thread must wait forever to enter its critical section Why is this bad? 4. No constraints or assumption on the speed that thread execute Threads can execute at any rate relative to each other Thread execution can switch to another thread at any time. ECE344: Operating Systems 12 Mutex Lock Abstraction A mutex lock (or simply a lock) is a tool for guaranteeing mutual exclusion. It has two operations: lock(mutex) Acquire the lock if it is free Otherwise wait (or sleep) until it can be acquired Lock is now acquired unlock(mutex) Release the lock If there are waiting threads wake up one of them Lock is now free ECE344: Operating Systems 13 Using a Mutex Lock // variables located in shared address space int i; struct lock *i_lock; while() { lock(i_lock); // section; i critical = i + 1; unlock(i_lock); // remainder section; } while() { lock(i_lock); // critical section; i = i + 1; unlock(i_lock); // remainder section; } Thread 1 Thread 2 ECE344: Operating Systems 15 Implementing Mutex Locks Naive implementation: lock(boolean *l) { while (*l == TRUE) ; // no-op *l = TRUE; } unlock(boolean *l) { *l = FALSE; } Lock and unlock are critical sections themselves They access the Mutex shared data structure In this case, the Mutex is a pointer to a boolean We are back to the same problem! Next, we discuss four different solutions ECE344: Operating Systems 16 Implementation 1: Interrupt Disabling Use interrupt disabling to lock processor Once interrupts are disabled, no other thread is able to run, so thread runs atomically lock_i() { disable_interrupts } unlock_i() { enable_interrupts } In practice, the implementation of unlock_i() will set the interrupt level to its value before the call to lock_i() Suppose interrupts are enabled and lock is called twice Then two unlocks are needed to enable interrupts What is the problem with this implementation? ECE344: Operating Systems 17 Implementation 2: Spin Locks Problems: Only for kernel: interrupts cannot be disabled in user mode On multi-processors, interrupts disabled only on local processor No way to disable interrupts across all processors at once Prevents all threads from entering critical section, only one lock Cant declare different locks for different variables Need hardware support! ECE344: Operating Systems 18 Implementation 2: Spin Locks Hardware provides atomic operations Various primitives: Atomic Test, Set and Lock, Compare and Swap, etc Available to user mode Atomic instructions can help implement mutex locks ECE344: Operating Systems 19 Test-and-Set-Lock Instruction Tset instruction operates on an integer with two values 0 = FALSE = not locked 1 = TRUE = locked int tset(int *lock) { // atomic in hardware int old = *lock; *lock = TRUE; return old; } Semantics If returned value is FALSE, lock is acquired If returned value is TRUE, some one else has lock So try again later ECE344: Operating Systems 20 Using test and set lock_s(int *l) { while (tset(l)) ; // no-op } unlock_s(int *l) { *l = FALSE; } Threads wait in a tight loop, keeping processor busy This kind of mutex lock is called a spin lock How can we improve this implementation? ECE344: Operating Systems 21 Implementation 3: Yielding Locks Previous solution: busy waiting, polling or spinning Threads consume processor cycles to detect when the lock has become free! On a single processor system, this time is completely wasted. Why? How about blocking a thread instead of busy waiting One option is to use the thread_yield() call Yield voluntarily gives up current time slice At user level, requires yield() system call ECE344: Operating Systems 22 Implementing Yielding Locks lock_s(int *l) { while (tset(l)) thread_yield(); } unlock_s(int *l) { *l = FALSE; } This mutex is a yielding lock It is no longer busy waiting Are there any problems with this solution? ECE344: Operating Systems 23 Implementation 4: Blocking Locks Previous solution is not spinning, but it is still polling Even better would just have the thread_sleep until the lock is free When lock is released, call thread_wake on all threads sleeping on the lock These primitives access shared lists: thread_wakeup() removes from sleep list and adds element to ready list thread_sleep() adds to sleep list They must be performed in a critical section Requires locking while we are trying to implement a lock! How should this problem be solved? ECE344: Operating Systems 24 Using a Previous Solution Solution 1 or 2 work correctly but dont block Use them to access the shared ready list For uniprocessors Disable interrupts inside thread_sleep and thread_wakeup For multi-processors Use spin locks inside thread_sleep and thread_wakeup OS161 Lab 1 requires you to implement blocking locks ECE344: Operating Systems 25
Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

University of Toronto - ECE - 344
Lecture 9: SynchronizationDavid LieECE344University of Toronto1Overview Need for synchronization Different synchronization primitives Locks Conditional Variables Semaphores Common Synchronization Problems Deadlocks, Livelock, starvation Trade
University of Toronto - ECE - 344
Lecture 10: SynchronizationDavid LieECE344University of Toronto1Overview Need for synchronization Different synchronization primitives Locks Conditional Variables Semaphores Common Synchronization Problems Deadlocks, Livelock, starvation Trad
University of Toronto - ECE - 344
Lecture 11: Unix System Calls and PosixThreadsDavid LieECE344University of Toronto1Overview Process-related Unix system calls Posix threadsECE344: Operating Systems2Process-related Unix System Calls Unix provides process-related system calls f
University of Toronto - ECE - 344
Lecture 12: Memory ManagementDavid LieECE344University of Toronto1Outline Introduction to memory management Fragmentation Paging Hardware Support Virtual Memory Translation Page Tables Linear, Multi-level and inverted Page Tables Memory Resou
University of Toronto - ECE - 344
Lecture 13: Memory ManagementDavid LieECE344University of Toronto1Outline Introduction to memory management Fragmentation Paging Hardware Support Virtual Memory Translation Page Tables Linear, Multi-level and inverted Page Tables Memory Resou
University of Toronto - ECE - 344
Lecture 14: Memory ManagementDavid LieECE344University of Toronto1Outline Introduction to memory management Fragmentation Paging Hardware Support Virtual Memory Translation Page Tables Linear, Multi-level and inverted Page Tables Memory Resou
University of Toronto - ECE - 344
Lecture 15: Memory ManagementDavid LieECE344University of Toronto1Overview The TLB Miss Handler: Page Fault Handler Swap Handler Managing the Swap Area Paging issues and Performance Putting it all together. VM and OS events: Process Creation,
University of Toronto - ECE - 344
Lecture 16: Memory ManagementDavid LieECE344University of Toronto1Overview The TLB Miss Handler: Page Fault Handler Swap Handler Managing the Swap Area Paging issues and Performance Putting it all together. VM and OS events: Process Creation,
University of Toronto - ECE - 344
Lecture 17: Memory ManagementDavid LieECE344University of Toronto1Overview The TLB Miss Handler: Page Fault Handler Swap Handler Managing the Swap Area Paging issues and Performance Putting it all together. VM and OS events: Process Creation,
University of Toronto - ECE - 344
Lecture 18: Page Replacement AlgorithmsDavid LieECE344University of Toronto1OverviewIntroductionPage replacement algorithmsLocal vs. global page replacementPage bufferingThrashingECE344: Operating Systems2Introduction We have seen that OS al
University of Toronto - ECE - 344
Lecture 19: Page Replacement AlgorithmsDavid LieECE344University of Toronto1OverviewIntroductionPage replacement algorithmsLocal vs. global page replacementPage bufferingThrashingECE344: Operating Systems2Least Recently Used (LRU) A refineme
University of Toronto - ECE - 344
Lecture 20: SchedulingDavid LieECE344University of Toronto1OverviewPurpose of schedulingScheduling AlgorithmsMultiprocessor IssuesModern SystemsECE344: Operating Systems2Purpose of Scheduling OS scheduler decides when a thread should be run
University of Toronto - ECE - 344
Lecture 21: SchedulingDavid LieECE344University of Toronto1OverviewPurpose of schedulingScheduling AlgorithmsMultiprocessor IssuesModern SystemsECE344: Operating Systems2Static Priority Scheduling Each thread is assigned a priority when it is
University of Toronto - ECE - 344
Lecture 22: File SystemsDavid LieECE344University of Toronto1Outline File Systems Overview of file system Disk Basics File system design Consistency and crash recovery Sharing files Unix file system Disks Disk scheduling algorithms Redundan
University of Toronto - ECE - 344
Lecture 23: File SystemsDavid LieECE344University of Toronto1Outline File Systems Overview of file system Disk Basics File system design Consistency and crash recovery Sharing files Unix file system Disks Disk scheduling algorithms Redundan
University of Toronto - ECE - 344
Lecture 24: File SystemsDavid LieECE344University of Toronto1Outline File Systems Overview of file system Disk Basics File system design Consistency and crash recovery Sharing files Unix file system Disks Disk scheduling algorithms Redundan
University of Toronto - ECE - 344
Lecture 25: File SystemsDavid LieECE344University of Toronto1Outline File Systems Overview of file system Disk Basics File system design Consistency and crash recovery Sharing files Unix file system Disks Disk scheduling algorithms Redundan
University of Toronto - ECE - 344
Lecture 26: VirtualizationDavid LieECE344University of Toronto1System Virtualization Operating systems virtualize the CPU and devices so that youcan run multiple, independent processes: Each process is isolated, it believes it has exclusive access
University of Toronto - ECE - 344
Lecture 27: VirtualizationDavid LieECE344University of Toronto1Memory Virtualization Another challenge with VMM implementation is virtualizing theMMU: VMM needs to use MMU to isolate different guest OSs fromeach other Guest OSs need to use MMU t
University of Toronto - ECE - 344
Lab 0: OverviewDavid LieECE344University of Toronto1Lab Goals Get familiar with OS161 Learn to build and install a kernel and test environment Get familiar with tools: Cscope: source code navigation Subversion: versioning and collaboration GDB:
University of Toronto - ECE - 344
Lab 1: OverviewDavid LieECE344University of Toronto1Overview Review 3 synchronization types: Locks Semaphores Conditional Variables What is deadlock? Overview of synch.h Tips on DebuggingECE344: Operating Systems2
University of Toronto - ECE - 344
Lab 2: OverviewDavid LieECE344University of Toronto1Overview Some notes: How to use splhigh/splx Explanation of system callsECE344: Operating Systems2Splhigh/Splx These disable interrupts Think of this as a global lock for all threads. Everyt
University of Toronto - ECE - 344
Lab 2.1: OverviewDavid LieECE344University of Toronto1Function call flowsys_execvsys_forkthread_forkmd_forkentrymd_usermodemips_usermodeECE344: Operating Systems2Md_usermode vs md_forkentrySets up processor for going back to userspace for a
University of Toronto - ECE - 344
Lab 3.0: OverviewDavid LieECE344University of Toronto1Primer Look at kern/arch/mips/include/tlb.h: Description of the TLB interface0xc000000KSEG0 Understand memory layout of MIPS0x8000000 Look at kern/arch/mips/include/vm.h KUSEG: user progra
University of Toronto - ECE - 344
Lab 3.1: OverviewDavid LieECE344University of Toronto1Tasks Major Task: Implement as_copy() so you can support fork() Minor Task Implement sbrk()ECE344: Operating Systems2Implementing as_copy() As_copy() in dumbvm just does a keep copy of the
University of Toronto - ECE - 344
Lab 3.2: OverviewDavid LieECE344University of Toronto1TasksMajor Task: Implement SwappingMinor Task Performance counters and tuningECE344: Operating Systems2Implementing SwapOverview: In your coremap allocation function, you should currently
University of Toronto - CSC - 326
CSC326 Programming Languages (Lec1)CSC326 Programming Languages (Lec 1)iCSC326 Programming Languages (Lec1)iiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Programming Languages (Lec1)iiiContents1Agenda12Goal13Whats
University of Toronto - CSC - 326
CSC326 Python Imperative Core (Lec2)CSC326 Python Imperative Core (Lec 2)iCSC326 Python Imperative Core (Lec2)iiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Python Imperative Core (Lec2)iiiContents1Agenda12Invoking Py
University of Toronto - CSC - 326
CSC326 Python SequencesiCSC326 Python SequencesCSC326 Python SequencesiiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Python SequencesiiiContents1Agenda12while Statement13Sequence Overview24String25Lists46Dict
University of Toronto - CSC - 326
CSC326 Array Programming ParadigmiCSC326 Array Programming ParadigmCSC326 Array Programming ParadigmiiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Array Programming ParadigmiiiContents1Agenda12Array Programming Language
University of Toronto - CSC - 326
CSC326 Persistent ProgrammingiCSC326 Persistent ProgrammingCSC326 Persistent ProgrammingiiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Persistent ProgrammingiiiContents1Agenda12Persistent Programming13File14File na
University of Toronto - CSC - 326
CSC326 Object Oriented ProgrammingiCSC326 Object Oriented ProgrammingCSC326 Object Oriented ProgrammingiiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Object Oriented ProgrammingiiiContents1Agenda12Classes and Objects13
University of Toronto - CSC - 326
CSC326 Meta ProgrammingiCSC326 Meta ProgrammingCSC326 Meta ProgrammingiiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Meta ProgrammingiiiContents1Agenda12Class Factory13Meta Class14Decorator25Misuse of Decorators
University of Toronto - CSC - 326
CSC326 Functional ProgrammingiCSC326 Functional ProgrammingCSC326 Functional ProgrammingiiREVISION HISTORYNUMBERDATE1.02011-09DESCRIPTIONNAMEJZCSC326 Functional ProgrammingiiiContents1Agenda12Eliminating if13Eliminating Sequential S
Northwestern - PHYSICS - 102
Bernard WenSept. 23, 2010BP: A False FaadeAs one of the worlds largest energy companies, (Who We Are) BP is constantlyunder public scrutiny, so it is easy for the company to advertize a false faade of socialresponsibility. Its homepage is inundated w
University of Texas - EE - 351K
EE 351K Probability, Statistics, and Random ProcessesInstructor:S.ShakkottaiHomework 1 SolutionsProblem 1and P (A B ).SPRING 2012shakkott@ece.utexas.eduWe are given that P (A) = 0.6, P (B c ) = 0.45, and P (A B ) = 0.85. Determine P (B )Solution :
University of Texas - EE - 351K
EE 351K Probability, Statistics, and Random ProcessesInstructor:S.ShakkottaiHomework 1SPRING 2012shakkott@ece.utexas.eduProblem 1and P (A B ).We are given that P (A) = 0.6, P (B c ) = 0.45, and P (A B ) = 0.85. Determine P (B )Problem 2Let A and
University of Texas - EE - 351K
EE 351K Probability, Statistics, and Random ProcessesInstructor:S. ShakkottaiHomework 2 SolutionsSPRING 2012shakkott@ece.utexas.eduProblem 1A hard disk storing information in binary form has been corrupted, so it can only be read withbit errors. Du
University of Texas - EE - 351K
EE 351K Probability, Statistics, and Random ProcessesInstructor:S. ShakkottaiHomework 2SPRING 2012shakkott@ece.utexas.eduProblem 1A hard disk storing information in binary form has been corrupted, so it can only be read withbit errors. Due to error
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 3 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1Count the number of distinguishable ways in which you can arrange the letters in the words:(a) children(b) bookkeeperSol:
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 3FALL 2011sanghavi@mail.utexas.eduDue: September 22th in classProblem 1Count the number of distinguishable ways in which you can arrange the letters in the words:(a) children
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 4 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1There are n multiple-choice questions in an exam, each with 5 choices. The student knows the correctanswer to k of them, an
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 4FALL 2011sanghavi@mail.utexas.eduDue: September 29th in classProblem 1There are n multiple-choice questions in an exam, each with 5 choices. The student knows the correctans
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 5 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1Let Y be a random variable with probability density function (PDF) 1 + y, 1 y 0,y,0 < y 1,fY (y ) =0,otherwise.Find(
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 5FALL 2011sanghavi@mail.utexas.eduDue: October 13th in classProblem 1Let Y be a random variable with probability density function (PDF) 1 + y, 1 y 0,y,0 < y 1,fY (y ) =0,
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 6 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1(a) A re station is to be located at a point a along a road of length A, 0 < A < . If res willoccur at points uniformly cho
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 6FALL 2011sanghavi@mail.utexas.eduDue: October 20th in classProblem 1(a) A re station is to be located at a point a along a road of length A, 0 < A < . If res willoccur at po
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 7 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1Let X1 , X2 , . . . be independent random variables that are uniformly distributed over [1.1]. For each of thefollowing cas
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESFALL 2011Instructor: Sujay Sanghavisanghavi@mail.utexas.eduHomework 7Due: October 27th in classFocus: Limit Theorems, MAP Rule (Section 5.1-5.4, 8.1-8.2 in Textbook)Problem 1Let X1 , X2 , . . . be independent
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 8 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1Nefeli, a student in a probability class, takes a multiple-choice test with 10 questions and 3 choices perquestion. For eac
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESFALL 2011Instructor: Sujay Sanghavisanghavi@mail.utexas.eduHomework 8Due: November 2nd, 4:00pm (dropping it to mailbox @ENS 431)Focus: Bayesian Inference (Section 8.1-8.5 in Textbook)Problem 1Nefeli, a student
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 9 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1The parameter of an exponential random variable has to be estimated from one sample. What is the MLestimator? Is it unbiase
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 9Focus: ML Estimation (Chapter 9.1 in Textbook)FALL 2011sanghavi@mail.utexas.eduDue: November 22th in classProblem 1The parameter of an exponential random variable has to be
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 10 SolutionFALL 2011sanghavi@mail.utexas.eduProblem 1A radar works by transmitting a pulse, and seeing if there is an echo. Ideally, an echo means object ispresent, and no ech
University of Texas - EE - 351K
EE 351K PROBABILITY & RANDOM PROCESSESInstructor: Sujay SanghaviHomework 10Focus: Classical Statistical Inference (Chapter 9 in Textbook)FALL 2011sanghavi@mail.utexas.eduDue: December 5th @ ENS 428Problem 1A radar works by transmitting a pulse, an
University of Texas - EE - 319K
University of Texas - EE - 319K
1/11EE 319K Fall 2010 Final ExamRamesh YerraballiFull N ame(eid) :Duration: 3 hoursThis is a closed book exam; You may use your calculators; Write answers within the space (box)provided after each of the questions. There are 11 questions on the test
University of Texas - EE - 319K
1/11EE 319K Fall 2010 Final ExamRamesh YerraballiFull N ame(eid) :Duration: 3 hoursThis is a closed book exam; You may use your calculators; Write answers within the space (box)provided after each of the questions. There are 11 questions on the test
University of Texas - EE - 319K
1/11EE 319K Spring 2010 Final ExamRamesh YerraballiTThFull Name:Duration: 75 minutesThis is a closed book exam; You may use your calculators; Write answers within the spaceprovided after each of the questions. There are 7 questions on the test, rea
University of Texas - EE - 319K
1/11EE 319K Spring 2010 Final ExamRamesh YerraballiTThFull Name:Duration: 75 minutesThis is a closed book exam; You may use your calculators; Write answers within the spaceprovided after each of the questions. There are 7 questions on the test, rea
University of Texas - EE - 319K
1/11EE 319K Spring 2011 Final ExamRamesh YerraballiTThFull Name(eid):BME: Yes/NoDuration: 3 hoursThis is a closed book exam; You may use your calculators; Write answers within the space (box) providedafter each of the questions. There are 9 questi