System Model (i.e. what to buy and configure) We look at three models Workstations (zero cost soln) Clusters (aka NOW aka COW, aka LAMP, aka Beawolf, aka pool) Hybrid--likely "winner" Workstation model Connect workstations in department via LAN Includes personal workstations and public ones Often have file servers The workstations can be diskless Tannenbaum seems to like this Most users don't Not so popular anymore (disks are cheap) Maintenence is easy Must have some startup code in rom If have disk on workstation can use it for 1. Paging and temp files 2. 1 + (some) system executables 3. 2 + file caching 4. full file system Case 1 is often called dataless Just as easy to (software) maintain as diskless Still need startup code in rom Serious reduction in load on network and file servers Case 2 Reduces load more and speeds up program start time Adds maintenance since new releases of programs must be loaded onto the workstations HOMEWORK 12-7, 12-8 Case 3 Can have very few executables permanently on the disk Must keep the caches consistent Not trivial for data files with multiple writers This issue comes up for NFS as well and is discussed (much) later Should you cache whole files or blocks? Case 4 You can work if just your machine is up Lose location transparancy Most maintenance Using Idle workstations Early systems did this manually via rsh Still used today Newer systems like Condor (Univ Wisc ?) try to automate this How find idle workstations? Idle = no mouse or keybd activity and low load avg Workstation can announce it is idle and this is recorded by all Job looking for machine can inquire Must worry about race conditions HOMEWORK 12-10 Some jobs want a bunch of machines so look for many idle machines Can also have centralized soln, processor server Usual tradeoffs What about local environment? Files on servers are no problem Requests for local files must be sent home ... but not needed for tmp files Syscalls for mem or proc mgt probably need to be executed on the remote machine Time is a bit of a mess unless have time synchronized by a system like ntp If program is interactive, must deal with devices mouse, keybd, display HOMEWORK 12-11 What if machine becomes non-idle (i.e. owner returns)? Detect presence of user. Kill off the guest processes. Helpful if made checkpoints (or ran short jobs) Erase files, etc. Some NYU research unifies this entire evacuation procedure with other failures (transaction oriented). Could try to migrate the guest processes to other hosts but this must be very fast or the owner will object (at least I would). Goal is to make owner not be aware of your presence. May not be possible since you may have paged out his basic environment (shell, editor, X server, window manager) that s/he left running when s/he stopped using the machine.