68 Pages

lecture2

Course: CS 519, Spring 2002
School: Rutgers
Rating:
 
 
 
 
 

Word Count: 3901

Document Preview

519: CS Lecture 2 Processes, Threads, and Synchronization Assignment 1 Design and implement a threads package (details left out on purpose!) Check the Web page and the newsgroup for further details Groups of 3 students. Anybody still looking for a group? Due 2/12/2001 at 5pm CS 519 2 Operating System Theory Introduction: Von Neuman Model Both text (program) and data reside in memory Execution cycle...

Register Now

Unformatted Document Excerpt

Coursehero >> New Jersey >> Rutgers >> CS 519

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.
519: CS Lecture 2 Processes, Threads, and Synchronization Assignment 1 Design and implement a threads package (details left out on purpose!) Check the Web page and the newsgroup for further details Groups of 3 students. Anybody still looking for a group? Due 2/12/2001 at 5pm CS 519 2 Operating System Theory Introduction: Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode instruction Execute instruction CPU OS is just a program OS text and data reside in memory too Invoke OS functionality through procedure calls Memory CS 519 3 Operating System Theory Execution Mode Most processors support at least two modes of execution for protection reasons Privileged kernelmode Nonprivileged usermode The portion of the OS that executes in kernelmode is called the kernel Access hardware resources Protected from interference by user programs Code running in kernelmode can do anything no protection User code executes in usermode OS functionality that does not need direct access to hardware may run in usermode CS 519 4 Operating System Theory Interrupts and traps Interrupt: an asynchronous event Trap: a synchronous event External events which occur independently of the instruction execution in the processor, e.g. DMA completion Can be masked (specifically or not) Conditionally or unconditionally caused by the execution of the current instruction, e.g. floating point error, trap instruction Each interrupt and trap has an associated interrupt vector Interrupt vector specifies a handler that should be called when the event occurs Interrupt and trap events are predefined (typically as integers) Interrupts and traps force the processor to save the current state of execution and jump to the handler CS 519 5 Operating System Theory Process An "instantiation" of a program System abstraction the set of resources required for executing a program Execution context(s) Address space File handles, communication endpoints, etc. Historically, all of the above "lumped" into a single abstraction More recently, split into several abstractions OS process management: Threads, address space, protection domain, etc. Supports creation of processes and interprocess communication (IPC) Allocates resources to processes according to specific policies Interleaves the execution of multiple processes to increase system utilization CS 519 6 Operating System Theory Process Image The physical representation of a process in the OS A process control structure includes Identification info: process, parent process, user Control info: scheduling (state, priority), resources (memory, opened files), IPC Execution contexts threads An address space consisting of code, data, and stack segments CS 519 7 Operating System Theory Process Address Space A: C B A's activation frame B: ... C() ... C: 8 Operating System Theory OS Code Globals Stack ... B() ... Heap CS 519 Virtual Memory Process addresses are virtual memory addresses Mapping from virtual memory to physical memory Will cover more next time ... Details next lecture Translation: Translation Lookaside Buffer (TLB), page table CS 519 9 Operating System Theory User Mode When running in usermode, a process can only access its virtual memory and processor resources (registers) directly All other resources can only be accessed through the kernel by "calling the system" System call A system call is a call because it looks like a procedure call It's a system call because, in reality, it's a software trap Why is a system call a trap instead of a procedure call? CS 519 10 Operating System Theory User Mode When running in usermode, a process can only access its virtual memory and processor resources (registers) directly All other resources can only be accessed through the kernel by "calling the system" System call A system call is a call because it looks like a procedure call It's a system call because, in actuality, it's a software trap Why is a system call a trap instead of a procedure call? Need to switch to kernel mode CS 519 11 Operating System Theory Mode switching One or several bits in the processor status word (PSW) indicate the current mode of execution Sometimes also the previous mode (Other bits in PSW: interrupt enabled/disabled flags, alignment check bit, arithmetic overflow bit, parity bit, carry bit, etc.) Mode bits can be changed explicitly while in kernelmode but not in usermode The processor status word can be loaded from the interrupt vector along with the address of the interrupt handler Setting of kernel mode bit in the interrupt vector allows interrupt and trap handlers to be "automatically" executed in kernel mode CS 519 12 Operating System Theory System Call In Monolithic OS interrupt vector for trap instruction PC PSW in-kernel file system(monolithic OS) kernel mode trap iret user mode read(....) code for read system call CS 519 13 Operating System Theory Signals OS may need to "upcall" into user processes Signals UNIX mechanism to upcall when an event of interest occurs Potentially interesting events are predefined: e.g., segmentation violation, message arrival, kill, etc. When interested in "handling" a particular event (signal), a process indicates its interest to the OS and gives the OS a procedure that should be invoked in the upcall. CS 519 14 Operating System Theory Signals (Cont'd) When an event of interest occurs the kernel handles the event first, then modifies the process's stack to look as if the process's code made a procedure call to the signal handler. When the user process is scheduled next it executes the handler first From the handler the user process returns to where it was when the event occurred Handler B A B A CS 519 15 Operating System Theory Process Creation How to create a process? System call. In UNIX, a process can create another process using the fork() system call The creating process is called the parent and the new process is called the child The child process is created as a copy of the parent process (process image and process control structure) except for the identification and scheduling state Parent and child processes run in two different address spaces by default no memory sharing Process creation is expensive because of this copying int pid = fork() CS 519 16 Operating System Theory Example of Process Creation Using Fork The UNIX shell is commandline interpreter whose basic purpose is for user to run applications on a UNIX system cmd arg1 arg2 ... argn CS 519 17 Operating System Theory InterProcess Communication Most operating systems provide several abstractions for interprocess communication: message passing, shared memory, etc Communication requires synchronization between processes (i.e. data must be produced before it is consumed) Synchronization can be implicit (message passing) or explicit (shared memory) Explicit synchronization can be provided by the OS (semaphores, monitors, etc) or can be achieved exclusively in usermode (if processes share memory) CS 519 18 Operating System Theory InterProcess Communication More on shared memory and message passing later Synchronization after we talk about threads CS 519 19 Operating System Theory Threads Why limit ourselves to a single execution context? Multiple execution contexts threads All the threads of a process share the same address space and the same resources Each thread contains An execution state: running, ready, etc.. An execution context: PC, SP, other registers A perthread stack For example, have to use select() to deal with multiple outstanding events. Having multiple execution contexts is more natural. Multiprocessor systems CS 519 20 Operating System Theory Process Address Space Revisited OS Code Globals Stack OS Code Globals Stack Stack Heap Heap Operating System Theory (a) Single-threaded address space (b) Multi-threaded address space CS 519 21 Threads vs. Processes Why multiple threads? Can't we use multiple processes to do whatever it is that we do with multiple threads? Operations on threads (creation, termination, scheduling, etc) are cheaper than the corresponding operations on processes Interthread communication is supported through shared memory without kernel intervention Why not? Have multiple other resources, why not execution contexts Sure, but we would need to be able to share memory (and other resources) between multiple processes This sharing is directly supported by threads see later in the lecture This is because thread operations do not involve manipulations of other resources associated with processes CS 519 22 Operating System Theory Process state diagram ready (in memory) swap out swap in suspended (swapped out) CS 519 23 Operating System Theory Thread State Diagram thread scheduling ready dispatch timeout event occurred suspend activate wait for event running process scheduling suspended (swapped out) suspend blocked CS 519 24 Operating System Theory Thread Switching Typically referred to as context switching Context switching is the act of taking a thread off of the processor and replacing it with another one that is waiting to run A context switch takes place when Time quota allocated to the executing thread expires The executing thread performs a blocking system call A memory fault due to a page miss CS 519 25 Operating System Theory Context Switching How to do a context switch? Save state of currently executing thread Very carefully!! Copy all "live" registers to thread control block Need at least 1 scratch register points to area of memory in thread control block that registers should be saved to Copy values of live registers from thread control block to registers Restore state of thread to run next How to get into and out of the context switching code? CS 519 26 Operating System Theory Context Switching OS is just code stored in memory, so ... Call context switching subroutine The subroutine saves context of current thread, restores context of the next thread to be executed, and returns The subroutine returns in the context of another (the next) thread! Eventually, will switch back to the current thread To thread, it appears as if the context switching subroutine just took a long while to return CS 519 27 Operating System Theory Thread Switching (Cont'd) What if switching to a thread of a different process? Context switch to process. Implications for caches, TLB, page table, etc.? Caches Physical addresses: no problem Virtual addresses: cache must either have process tag or must flush cache on context switch Each entry must have process tag or flush TLB on context switch Typically have page table pointer (register) that must be reloaded on context switch Operating System Theory TLB Page table CS 519 28 Process Swapping May want to swap out entire process To swap out a process Thrashing if too many processes competing for resources Suspend all of its threads Must keep track of whether thread was blocked or ready To swap a process back in Copy all of its information to backing store (except for PCB) Copy needed information back into memory, e.g. page table, thread control blocks Restore each thread to blocked or ready Must check whether event(s) has (have) already occurred 29 Operating System Theory CS 519 Threads & Signals (Usual Unix Implementation) A signal is directed to a single thread (we don't want a signal delivered multiple times), but the handler is associated with the process Signals can be ignored/masked by threads. Common strategy: one thread responsible to field all signals (calls sigwait() in an infinite loop); all other threads mask all signals What happens if kernel wants to signal a process when all of its threads are blocked? When there are multiple threads, which thread should the kernel deliver the signal to? OS writes into PCB that a signal should be delivered to the process If one thread is responsible for all signals, it is scheduled to run and fields the signal Otherwise, the next time any thread that does not mask the signal is allowed to run, the signal is delivered to that thread as part of the context switch CS 519 30 Operating System Theory POSIX Threads (Pthreads) API Standard X thread creation and termination pthread_create(&tid,NULL,start_fn,arg); pthread_exit(status)' X X X thread join pthread_join(tid, &status); mutual exclusion pthread_mutex_lock(&lock); pthread_mutex_unlock(&lock); condition variable pthread_cond_wait(&c,&lock); pthread_cond_signal(&c); CS 519 31 Operating System Theory Thread Implementation Kernellevel threads (lightweight processes) Userlevel threads Kernel sees multiple execution contexts Thread management done by the kernel Implemented as a thread library which contains the code for thread creation, termination, scheduling and switching Kernel sees one execution context and is unaware of thread activity Can be preemptive or not CS 519 32 Operating System Theory UserLevel vs. KernelLevel Threads Advantages of userlevel threads Disadvantages of userlevel threads lowcost Performance: thread operations and context switching, since it is not necessary to go into the kernel Flexibility: scheduling can be applicationspecific Portability: userlevel thread library easy to port If a userlevel thread is blocked in the kernel, the entire process (all threads of that process) are blocked Cannot take advantage of multiprocessing (the kernel assigns one process to only one processor) CS 519 33 Operating System Theory UserLevel vs. KernelLevel Threads user-level threads threads thread scheduling user kernel process process scheduling processor threads thread scheduling processor Operating System Theory kernel-level threads process scheduling CS 519 34 UserLevel vs. KernelLevel Threads No reason why we shouldn't have both (e.g. Solaris) Most systems now support kernel threads Userlevel threads are available as linkable libraries user-level threads thread scheduling kernel-level threads thread scheduling processor CS 519 35 Operating System Theory user kernel process scheduling Kernel Support for UserLevel Threads Even kernel threads are not quite the right abstraction for supporting userlevel threads Mismatch between where the scheduling information is available (user) and where scheduling on real processors is performed (kernel) When the kernel thread is blocked, the corresponding physical processor is lost to all userlevel threads although there may be some ready to run. CS 519 36 Operating System Theory Why Kernel Threads Are Not The Right Abstraction user-level threads user-level scheduling user kernel kernel thread kernel-level scheduling physical processor blocked CS 519 37 Operating System Theory Scheduler Activations Kernel allocates processors to processes as scheduler activations Each process contains a userlevel thread system which controls the scheduling of the allocated processors Kernel notifies a process whenever the number of allocated processors changes or when a scheduler activation is blocked due to the userlevel thread running on it The process notifies the kernel when it needs more or fewer scheduler activations (processors) CS 519 38 Operating System Theory UserLevel Threads On Top of Scheduler Activations user-level threads user-level scheduling blocked scheduler activation kernel-level scheduling physical processor blocked active active user kernel CS 519 39 Operating System Theory Thread/Process Operation Latencies Operation Userlevel Threads (s) 34 37 Kernel Threads (s) 948 441 Processes (s) Null fork Signalwait 11,300 1,840 VAX uniprocessor running UNIX-like OS, 1992. CS 519 40 Operating System Theory Synchronization Why synchronization? Problem Example Threads share data Data integrity must be maintained Transfer $10 from account A to account B If was taking snapshot of account balances, don't want to read A and B between the previous two statements CS 519 41 Operating System Theory A A + 10 B B 10 Terminology Critical section: a section of code which reads or writes shared data Race condition: potential for interleaved execution of a critical section by multiple threads Mutual exclusion: synchronization mechanism to avoid race conditions by ensuring exclusive execution of critical sections Deadlock: permanent blocking of threads Livelock: execution but no progress Starvation: one or more threads denied resources Operating System Theory Results are nondeterministic CS 519 42 Requirements for Mutual Exclusion No assumptions on hardware: speed, # of processors Execution of CS takes a finite time A thread/process not in CS cannot prevent other threads/processes to enter the CS Entering CS cannot de delayed indefinitely: no deadlock or starvation CS 519 43 Operating System Theory Synchronization Primitives Most common primitives Mutual exclusion Condition variables Semaphores Monitors Need Semaphores Mutual exclusion and condition variables CS 519 44 Operating System Theory Mutual Exclusion Mutual exclusion used when want to be only thread modifying a set of data items Have three components: Example: transferring $10 from A to B Lock(A) Lock(B) A A + 10 B B 10 Unlock(B) Unlock(A) Function Transfer (Amount, A, B) Lock(Transfer_Lock) A A + 10 B B 10 Unlock(Transfer_Lock) Lock, Unlock, Waiting CS 519 45 Operating System Theory Implementation of Mutual Exclusion Many read/write algorithms for mutual exclusion Simple with a little help from the hardware Atomic readmodifywrite instructions Testandset Fetchandincrement Compareandswap See any OS book Disadvantages: difficult to get correct and not very general CS 519 46 Operating System Theory Atomic ReadModifyWrite Instructions Testandset Fetchandincrement Compareandswap Read a memory location and, if the value is 0, set it to 1 and return true. Otherwise, return false Return the current value of a memory location and increment the value in memory by 1 Compare the value of a memory location with an old value, and if the same, replace with a new value CS 519 47 Operating System Theory Simple Spin Lock Testandset Spin_lock(lock) { while (test-and-set(lock) == 0); } Spin_unlock(lock) { lock = 0; } CS 519 48 Operating System Theory LoadLocked, StoreConditional LoadLinked, StoreConditional (LLSC) Pair of instructions may be easier to implement in hardware Loadlinked (or loadlocked) returns the value of a memory location Storeconditional stores a new value to the same memory location if the value of that location has not been changed since the LL. Returns 0 or 1 to indicate success or failure If a thread is switched out between an LL and an SC, then the SC automatically fails CS 519 49 Operating System Theory What To Do While Waiting? Spinning Blocking Waiting threads keep testing location until it changes value Doesn't work on uniprocessor system OS or RT system deschedules waiting threads Spinning vs. blocking becomes an issue in multiprocessor systems (with > 1 thread/processor) What is the main tradeoff? CS 519 50 Operating System Theory What To Do While Waiting? Spinning Blocking Waiting threads keep testing location until it changes value Doesn't work on uniprocessor system OS or RT system deschedules waiting threads Spinning vs. blocking becomes an issue in multiprocessor systems (with > 1 thread/processor) What is the main tradeoff? Overhead of blocking vs. expected waiting time Operating System Theory CS 519 51 Deadlock Lock A Lock B A B CS 519 52 Operating System Theory Deadlock Lock A Lock B A B CS 519 53 Operating System Theory Deadlock Lock A Lock B A B CS 519 54 Operating System Theory Deadlock (Cont'd) Deadlock can occur whenever multiple parties are competing for exclusive access to multiple resources How can we deal deadlocks? Deadlock prevention Design a system without one of mutual exclusion, hold and wait, no preemption or circular wait (four necessary conditions) To prevent circular wait, impose a strict ordering on resources. For instance, if need to lock variables A and B, always lock A first, then lock B Deny requests that may lead to unsafe states (Banker's algorithm) Running the algorithm on all resource requests is expensive Check for circular wait periodically. If circular wait is found, abort all deadlocked processes (extreme solution but very common) Checking for circular wait is expensive 55 Operating System Theory Deadlock avoidance Deadlock detection and recovery CS 519 Condition Variables A condition variable is always associated with a condition and a lock Typically used to wait for a condition to take on a given value Three operations: cond_wait(lock, cond_var) cond_signal(cond_var) cond_broadcast(cond_var) CS 519 56 Operating System Theory Condition Variables cond_wait(lock, cond_var) cond_signal(cond_var) Release the lock Sleep on cond_var When awaken by the system, reacquire the lock and return If at least 1 thread is sleeping on cond_var, wake 1 up Otherwise, no effect If at least 1 thread is sleeping on cond_var, wake everyone up Otherwise, no effect Operating System Theory cond_broadcast(cond_var) CS 519 57 Producer/Consumer Example Producer lock(lock_bp) while (free_bp.is_empty()) cond_wait(lock_bp, cond_freebp_empty) buffer free_bp.get_buffer() unlock(lock_bp) ... produce data in buffer ... lock(lock_bp) data_bp.add_buffer(buffer) cond_signal(cond_databp_empty) unlock(lock_bp) Consumer lock(lock_bp) while (data_bp.is_empty()) cond_wait(lock_bp, cond_databp_empty) buffer data_bp.get_buffer() unlock(lock_bp) ... consume data in buffer ... lock(lock_bp) free_bp.add_buffer(buffer) cond_signal(cond_freebp_empty) unlock(lock_bp) CS 519 58 Operating System Theory Condition Variables Condition variables are implemented using locks Implementation is tricky because it involves multiple locks and scheduling queue Implemented in the OS or runtime thread systems because they involve scheduling operations Sleep/Wakeup CS 519 59 Operating System Theory Semaphores Synchronized counting variables A semaphore is comprised of: P() An integer value Two operations: P() and V() Decrement value While value < 0, sleep Increments value If there are any threads sleeping, waiting for value to become zero, wakeup 1 thread 60 Operating System Theory V() CS 519 Monitors Semaphores have a few limitations: unstructured, difficult to program correctly. Monitors eliminate these limitations and are as powerful as semaphores A monitor consists of a software module with one or more procedures, an initialization sequence, and local data (can only be accessed by procedures) Only one process can execute within the monitor at any one time (mutual exclusion) Synchronization within the monitor implemented with condition variables (wait/signal) => one queue per condition variable Operating System Theory CS 519 61 Lock and Waitfree Synchronization (or Mutual Exclusion Considered Harmful) Problem: Critical sections Lockfree (aka nonblocking) concurrent objects Waitfree concurrent objects If a process is delayed or halted in a critical section, hard or impossible for other processes to make progress Some process will complete an operation on the object in a finite number of steps Each process attempting to perform an operation on the concurrent object will complete it in a finite number of steps Essential difference between these two? CS 519 62 Operating System Theory Lock and Waitfree Synchronization (or Mutual Exclusion Considered Harmful) Problem: Critical sections Lockfree (aka nonblocking) concurrent objects Waitfree concurrent objects If a process is delayed or halted in a critical section, hard or impossible for other processes to make progress Some process will complete an operation on the object in a finite number of steps Each process attempting to perform an operation on the concurrent object will complete it in a finite number of steps Essential difference between these two? Latter definition guarantees lack of starvation Operating System Theory CS 519 63 Herlihy's Paper What's the point? M. Greenwald and D. Cheriton. The Synergy between Nonblocking Synchronization and Operating System Structure. In Proceedings of OSDI '96, Oct, 1996. Lock and waitfree synchronization can be very useful for building multiprocessor systems; they provide progress guarantees Building lock and waitfree concurrent objects is HARD, so a methodology for implementing these objects is required Lock and waitfree synchronization provide guarantees but can be rather expensive lots of copying CS 519 64 Operating System Theory Single Word Protocol Fetch_and_add_sync(obj: integer, v: integer) returns(integer) success: boolean := false loop exit when success old: integer := obj new: integer := old+v success := compare_and_swap(obj, old, new) end loop return old end Fetch_and_add_sync Lock-free but not wait-free!! Operating System Theory CS 519 65 Small Objects Small object: occupies 1 block (or less) Basic idea of lockfree object implementation 1. 2. 3. 4. Basic idea of waitfree object implementation Allocate a new block Copy object to new block, making sure copy is consistent Modify copied block, i.e. perform operation on copied block Try to atomically replace pointer to old block with new one Same as before, except that processes should announce their operations in a shared data structure Any process in step 3 should perform all previously announced operations, not just its own operations 66 Operating System Theory CS 519 Single Word Protocol Fetch_and_add_sync(obj: integer, v: integer) returns(integer) success: boolean := false loop exit when success old: integer := obj new: integer := old+v // allocate, copy and modify // single word so consistent success := compare_and_swap(obj, old, new) // replace end loop return old end Fetch_and_add_sync Lock-free but not wait-free!! Operating System Theory CS 519 67 Large Objects I'll leave for you to read Basic idea is to make local changes in the data structure using small object protocol Complicated but not different than locking: e.g., if you lock an entire tree to modify some nodes, performance will go down the drain CS 519 68 Operating System Theory
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:

Rutgers - CS - 519
C m om unication in Tightly C ouple S te s d ys mC 519: Ope S rating S mThe yste ory C pute S nce Rutge Unive om r cie , rs rsity Instructor: Thu D. Nguye n TA: Xiaoyan Li S pring 2002Why Paralle Com l puting? Pe rform ! anceComputer Science, R
Rutgers - CS - 519
C 519: Le S cture9 Distribute FileS m d yste sFileS rvice e I m m nte by a use rne proce calle filese r ple e d r/ke l ss d rve A syste m haveoneor se ral filese rs running at thesam tim m ay ve rve e e Two m ls for filese s ode rvice upload/
Rutgers - E - 553
Digital libraries: Economic issuesTefko Saracevic, PhD 2008 Tefko Saracevic1ToC A few definitions &amp; generalities Value of digital libraries Changing economic models Licensing Library consortia Open access Some economic data on digital
Rutgers - E - 553
Di gi ti zati onfr om physi cal to di gi tal worl ds Tefko Sar acevi c1Di gi ti zati on i s not just a pr ocess, but deci si ons, deci si ons, deci si ons r el ated among other s to sel ecti on standar ds best pr acti ces technol ogy and $ $ $
Rutgers - E - 553
Research in digital librariesAs done from human and technological perspectivesTefko Saracevic, PhD 2008 Tefko 1ToC Research orientations Emphasis in DL research Human-oriented DL research Technology-oriented DL research &amp; development (R
Rutgers - E - 553
Keeping up&quot;Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it.&quot;Samuel Johnson (1709-1784) Te S fko arace vic1But what whe wedo not know whe to find it?* * n re And westill want inform ati
Rutgers - E - 553
DI GI TAL LI BRARI ESCourse overviewtefko@scils.rutgers.edu [17:610:553] Online version e553Tefko Saracevic Tefko Saracevic1ToC of this overview First a few mechanics Then description of the course more or less as found in the
Rutgers - E - 530
Guide to exercise 2Brief examples Tefko Saracevic1 Objectives Using fields and different operators Explore federated searching on Dialog called OneSearch Here we will give limited examples the rest is in
Rutgers - E - 530
Principles of Searching syllabus 1Department of Library and Information Science School of Communication, Information and Library Studies Rutgers, The State University of New JerseyPRINCIPLES OF SEARCHING [17:610:530]Online version e530 3 c
Rutgers - E - 530
Principles of Searching e530 ASSIGNMENT FOR UNIT 1 Title Why? Overview of searching and a bit of history Online searching goes back decades. In the late 1960s National Library of Medicine was the first to offer online access to its system called Medl
Rutgers - E - 530
Principles of Searching e530 Term project: selection (first of three actions due on Mon. Feb. 23, 2009) Title Why? Selection of the topic for term project A term project is large, independent and termlong. The purpose of the project is for student
Rutgers - E - 553
Department of Library and Information Science School of Communication, Information and Library Studies Rutgers, The State University of New JerseyDIGITAL LIBRARIES[17:610:553] Online version - e553 3 credits SyllabusTefko Saracevic, PhD Profess
Rutgers - E - 530
PRINCIPLES OF SEARCHING [17:610:530 ] online e530 Tefko Saracevic Schedule for Spring 2009 Rutgers Spring 2009 calendar for graduate students: first day of classes Tue, Jan. 20; last day Mon May 11; Spring break March 14- 22. Week of Spring 2009 Jan
Rutgers - E - 553
Digital Libraries -e553 EXERCISE FOR UNIT 07 Title Why? Digitization Within the framework of unit Digitization, the aim is similar to the previous exercise, namely, to get some practical experiences in digitization and to get you advancing in creatio
Rutgers - E - 553
Digital Libraries e553 EXERCISE FOR UNIT 12 Title Why? Digital libraries: Economic issues Economic issues are not only important, but even critical for digital libraries. Through lecture, assignment and discussions we addressed a number of economic
Rutgers - E - 553
DIGITAL LIBRARIES [17:610:553 ] online e553 Tefko Saracevic Schedule for Spring 2009 Rutgers Spring 2009 calendar for graduate students: first day of classes Tue, Jan. 20; last day Mon May 11; Spring break March 14- 22. Week of Spring 2009 Jan 20 Jan
Rutgers - E - 553
Digital Libraries e553 EXERCISE FOR UNIT 02 Title Why? What is a digital library? a continuation of Exercise 01 The objective is the same, but we are concentrating here on different types o digital libraries. Objective of this exercise is to start
Rutgers - E - 530
Principles of Searching [17:610:530]OUTLINE FOR UNIT 4 Title Why? Information retrieval (IR); interaction in IR Every online database, every search engine, everything that is searched online is based in some way or another on principles developed
Rutgers - E - 553
Digital Libraries -e553 ASSIGNMENT FOR UNIT 12 Title Why? Digital libraries: Economic issues The hand of economics rules digital libraries, sometimes visibly other times invisibly. But it is always there. Libraries, publishers and other stakeholders
Rutgers - E - 553
Digital Libraries e553 ASSIGNEMENT FOR UNIT 03 Title Why? Keeping up As Samuel Johnson said: &quot;Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it.&quot; vigorous mind.&quot;He also said: &quot;Curiosity is one
Rutgers - ITI - 230
Understanding and conceptualizing interaction Recap HCI has moved beyond designing interfaces for desktop machines About extending and supporting all manner of human activities in all manner of places Facilitating user experiences through de
Rutgers - LIS - 553
The Dot-Com Boom&quot;Content is King&quot;Actually comes from the cable TV business, although attributed to Esther Dyson who believed the opposite. The meaning was that what mattered about a website, or an online service, was the available content; this ma
Rutgers - LIS - 558
SearchingMechanical: Linear Sorting Hashing Logical Boolean Best match Intellectual: Strings Fields ConceptsFrom keys to documentsThe mechanical problem: given a set of words (or other things to look for) appearing in a set of documents, how to
Rutgers - LIS - 556
Theft Prevention in LibrariesAmerican Libraries named theft a top priority problem for 2005.Research on the topic?Almost nothing.Why isn't more done?Psychology: Thought that admitting you've been robbed makes you an easy target Cases in poin
Rutgers - LIS - 535
WargamingSimulation methods: pretend you're in the new business, and try to imagine what your competitors might do. Fully automated: SimCity, with business modeling software instead of teenage games. Manual: groups of people role-playing. Value: let
Rutgers - LIS - 582
Government informationWhat is the digital equivalent of the &quot;depository library&quot;? Who should publish government information? How far should FOIA extend? How do we balance security, privacy, and information? (I didn't think this lecture was going to
Rutgers - LIS - 553
International Digital LibrariesUsually fairly routine digitization. Normally designed to show off either the holdings of the library or the local culture or language. Relatively little cooperation. Sometimes material in English; rarely in others.N
Rutgers - LIS - 553
Paying for digital librariesWhy is this hard? New services, but no new money Cost of transition Users not in the community A problem of quantization: Sell by item or sell in bulk? Sell to one reader or to many? Should research be available free?
Rutgers - LIS - 535
ProductsWhat is a possible new product? Same thing cheaper: offshore, new design, new marketing or delivery. Same thing for a new audience: helping the novice tennis player or golfer. Creating some kind of new group or society: coffee bars, team jac
Rutgers - LIS - 558
Digital Rights ManagementTechnologies to protect copyrighted content 1. Broken media 2. Bulk 3. Testing for the printed manual 4. Dongles 5. Flickering 6. Activation/serial number 7. Watermarking 8. Cryptography 9. PalladiumBroken media: the 1980s
Rutgers - LIS - 558
Digital library packagesGreenstone Fedora D-space Open source, internationalism, and courseware. Overall message: only write code if you like it.GreenstoneFrom the University of Waikato, New Zealand. See How to Build a Digital Library by Witten &amp;
Rutgers - LIS - 553
SIZE MATTERS: WEB AND BOOK ARCHIVINGMichael Lesk Internet Archive 116 Sheridan Avenue San Francisco, CA 94129 USA lesk@acm.org www.lesk.comIs it better for a library to be carefully selected or large? Traditionally libraries have prided themselves
Rutgers - LIS - 556
The Cheshire Cat John TennielThis is the back cover. This layout is for a book which is printed on 8.5x11 paper, and so needs a cover on 11x17. You should leave a fairly large margin since you'll have to trim each page by enough to make room for th
Rutgers - LIS - 558
Scientific databasesIncreasing access to raw data Requires more care to administer and to use But it's transforming science by providing data in advanceNot clear whether such databases end up in libraries or in the academic departments where the d
Rutgers - CS - 533
# Refinder3.txt# to change field divider from / to _ in Genia 3.0 POS file# and add _SYM tag to =open(INPUT,&quot;GENIA3_0_pos.txt&quot;);open(OUTPUT,&quot;&gt;genia30pos4.txt&quot;);@lines = &lt;INPUT&gt;;$n=0;while ($lines[$n]) { $_ = $lines[$n]; s/(.*)
Rutgers - MLIS - 512
Heuristic Evaluation (using Nielsen's heuristics) InstructionsPerform a heuristic evaluation of the system assigned. A heuristic evaluation is an informal expert evaluation technique that relies on a series of `heuristics.' The intent is to determin
Rutgers - ITI - 230
Simple experiment Try it yourself. (do not &quot;cheat&quot;) when the next slide comes up as fast as you can Start saying colors (not the words) you see in list of words Say &quot;done&quot; when finished Use timer to time yourself.MLIS 512 Interface Design
Rutgers - ITI - 230
04:547:230(01) (Index: 10636) ITI 230 HCI Lecture #12&quot;Use of Color in Design Bonus Slides&quot;Dr. Jacek Gwizdkahttp:/www.scils.rutgers.edu/~jacekg/teaching/Bonus Strange perceptual effects and visual &quot;tricks&quot; There are many, many ways to
Rutgers - ITI - 230
Cognitive WalkthroughMLIS 512 Interface Design Jacek Gwizdka1The 3 Questions1. 1.Will the correct action be sufficiently evident to the user?i.e.: Will the user know what to do to achieve the task?Will the user notice that the correc
Rutgers - ITI - 230
HCI Course Review Guide (ITI 230: Fall 2008 November 17, 2008) 1. Fundamentals of HCI and UserCentered Design (UCD)1.1. Basic conceptsMost important: the &quot;philosophy&quot; UserCentered Design Textbook Chapter 1 Week 1: HCI? UCD? Interactio
Rutgers - ITI - 230
Restaurant FinderBy Name By Category Breakfast Chinese Japanese Mexican Pizza &amp; Sandwiches Seafood Show AllClick on restaurant to see the menuPizza &amp; SandwichesRestautantGiovanneli's The Hang Out La Familia Neubies Brunswick Pizza Paulie's Pizz
Rutgers - ITI - 230
Prototype: _B_Step #Task Name: _View Bus Schedule_Will the user notice (visibility) that Will the correct action be the correct action is available? sufficiently evident to the user? Will the user see how to do it? Will the user know what to do?
Rutgers - MLIS - 550
17:610:550(2)Information Technologies for Libraries &amp; Information AgenciesFall 2005 (JG)Lab 5: Database Software Use of Microsoft Access.This exercise intends to help you get familiar with basic MS Access functionality (tables &amp; forms). Tasks: 1
Rutgers - CS - 515
CS515, Fall 2005, October 25, 2005A Note about DCG Grammar rules (in our tokenizer)This note is to further explain how our scanner (i.e., tokenizer)works in the Prolog project. What we are using is called a DefiniteClause Grammar to express Pro
Rutgers - CS - 352
CS 352- Network SecurityWhy Network Security? Malicious people share your network Same motivations as traditional world:Peepers, vandals, graffiti-artists, joy riders, thieves, burglars, blackmailers.Problem made more severe the more the
Rutgers - CS - 352
CS352- Link LayerDept. of Computer Science Rutgers UniversityContent Errordetection and correction MAC sub-layer Ethernet Token RingCS352 Fall,20052Error Detection and CorrectionError Detection and Correction Usedon many link ty
Rutgers - CS - 352
Link LayerMidterm 2 topics UDP TCP: Connection establishment Timer computation Slow start Fast recovery/Transmit Self clocking Additive increase/Multiplicative decrease IP Classbased routing CIDR Address forwarding decision rule2
Rutgers - CS - 352
CS 352Network LayerDept. of Computer Science Rutgers UniversityChapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What's inside a router 4.4 IP: Internet Protocol 4.5 Routing algorithms Link
Rutgers - CS - 352
Introduction to Queuing TheoryQueuing theory definitions (Bose) &quot;the basic phenomenon of queueing arises whenever a shared facility needs to be accessed for service by a large number of jobs or customers.&quot; (Wolff) &quot;The primary tool for studyin
Rutgers - CS - 352
CS 352Peer 2 Peer NetworkingCredit slides from J. Pang, B. Richardson, I. Stoica, M. CuencaPeer to Peer Outline Overview Systems: Napster Gnutella Freenet BitTorrent Chord PlanetP2CS352 Fall, 2005Why Study P2P Hugefraction of tr
Rutgers - CS - 352
CS 352 Internet Technology Socket ProgrammingDept. of Computer Science Rutgers University1Abstract Socket Service Asymmetric set-up, circuit abstraction Server is passive, waits for connections Client initiates the connections TCP is free to
Rutgers - CS - 352
CS 352Reliable Data Transfer AlgorithmsDept. of Computer Science Rutgers UniversityThemes End-to-EndReliable transfer Protocols as State machines More Pipelining ABP,Go-back N, Selective repeatcs352 Fall, 20052Reliable Data Transfer
Rutgers - CS - 352
CS 352Introduction to Routers and Switches Richard Martin Rutgers UniversityWhat do they look like?Access routers e.g. ISDN, ADSL Core ATM switch Core router e.g. OC48c POSBasic Architectural Components of an IP RouterRouting Protocols Routi
Rutgers - CS - 352
Congestion Control Congestion ControlToo many packets in part of the networkPerformance Degrades: CongestionNetwork Layer provides congestion control to ensure timely delivery of packets from source to destination Congestion Contro
Rutgers - CS - 352
1. SubnettingConsider a conventional class B network. A network administrator decides to give all subnets in the class B network a sub-net mask of 255.255.248.0. A. (5 points) How many sub-nets can the administrator use if all sub-nets use this mask
Rutgers - CS - 352
1. Routing &amp; ForwardingA company has an Intranet (a network system that runs TCP/IP but does not connect to Internet). The topology of the intranet is described as the figure below.172.28.2.0/24 Network B172.28.1.0/24 Network A Router 2172.28.
Rutgers - CS - 352
Name:CS 352 Midterm 2 Internet Technology Spring 2007 Instructor: Yingying Chen TA: Tuan Phan Time: 120 MinutesName: Student ID: 04/16/2007For TA use only: 1 2 3 4 5 6 7 8 Total Do not open the exam until you are told to begin. Write your name
Rutgers - CS - 352
1. SubnettingConsider a conventional class B network. A network administrator decides to give all subnets in the class B network a sub-net mask of 255.255.248.0. A. (5 points) How many sub-nets can the administrator use if all sub-nets use this mask
Rutgers - CS - 352
0000AAAA, Curve:These are hard limits, A, B+, B, C+, C, D, F, 0001AAAA, &gt;83%, 77%, 70%, 58%, 44%, 35.000%, &lt;35%, 0002AAAA, M1, M2, Part1, Part2, Final, M1%, M2%, Part1%, Part2%, Final%, Overall %, 0003AAAA, Max, 104, 91, 100, 100, 156, Weighted %,
Rutgers - CS - 352
, , 0000AAAA, Midterm I, Midterm II, Homework I, Homework II, Part1, Part1 Notes, Part 2, Part 2 nodes, Final, 12771DA6, 76, 94, 87, 13A09359, 60, 78, 81, 56, Compilation failed (server), 13FF079A, 29, 0, 17ECF96B, 37, 64, 90, 21E92A17, No sub
Rutgers - CS - 352
Summary of Last Lecture Link Layer Services Framing, link access Reliable delivery between adjacent nodesFlow Control Error Detection Error Correction Half-duplex and full-duplex8: Network Security8-1Summary of Last Lecture Error check