hw2s04sol - The University of Texas at Dallas

advertisement
CS 6378 Advanced Operating Systems, Spring 2004
Homework 2, Due on March 23, 2004
1. Suppose all processors in the system are assigned priorities that can be used to
totally order the processors. Modify Chandy et al’s edge-chasing algorithm
(Section 7.7.2) so that when a process detects a deadlock, it also knows about the
lowest priority deadlocked process.
2. Show that Byzantine agreement cannot always be reached among four processors,
if 2 of them are faulty.
3. Examine /etc/vfstab of a host in utdallas.edu domain and describe the entries you
found.
Answer:
#device
device
mount
FS
fsck mount mount
#to mount
to fsck
point
type pass at boot options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr
ufs 1
yes fd /dev/fd fd
no /proc /proc proc no
#/dev/dsk/c0t0d0s0
swap no
/dev/md/dsk/d10 /dev/md/rdsk/d10
/
ufs 1
no
logging
/dev/md/dsk/d50 swap no
/dev/md/dsk/d30 /dev/md/rdsk/d30
/var/tmp
ufs 2
yes
logging
/dev/md/dsk/d40 /dev/md/rdsk/d40
/tmp
ufs 2
yes
#swap /tmp tmpfs yes /dev/dsk/c0t14d0s0 /dev/rdsk/c0t14d0s0 /var/audit
logging
ufs
null:/pub/mail actimeo=0
#inca:/tape ro,soft,bg
yes
/var/mail
/tape
nfs
nfs
#/dev/dsk/c0t13d0s0 /dev/dsk/c0t13d0s0 /mnt
-
2
yes
no
ro
yes
ufs
1
The file vfstab is used to specify the table of file system defaults. The file has the
following headings…
device to mount, device to fsck, mount point, FS type, fsck pass, mount at boot,
mount options.
device to mount : specifies the physical device that is to be mounted.
device to fsck : specifies that the device is to be checked for consistency
mount point : specifies the directory under which the device would be available.
FS type : gives the name of the file system eg. ufs, nfs
fsck pass : number used to see if the file system is to be checked
mount at boot : specifies if the system is to be mounted automatically during booting
mount options : specifies the additional options that might be required while mounting.
4. Examine /etc/mnttab of a host in UT Dallas. Describe at least 5 entries (try entries
that are different from one another).
Answer:
{apache:~} cat /etc/mnttab
/dev/md/dsk/d10 /
ufs rw,intr,largefiles,onerror=panic,suid,dev=154000 a
1000787499
/proc /proc proc dev=3640000 1000787344
fd /dev/fd fd rw,suid,dev=3740000 1000787503
mnttab /etc/mnttab mntfs dev=3800000 1000787507
swap /var/run
tmpfs dev=1 1000787508
/dev/md/dsk/d40 /tmp ufs rw,intr,largefiles,onerror=panic,suid,dev=154002 8
1000826979
/dev/dsk/c0t14d0s0
/var/audit
ufs
w,intr,largefiles,onerror=panic,suid,dev=800068
1000826979
/dev/md/dsk/d30 /var/tmp
ufs rw,intr,largefiles,onerror=panic,suid,dev=154001e
1000826979
null:/pub/mail /var/mail
nfs actimeo=0,dev=3880001 1000826989
-hosts /net autofs indirect,nosuid,ignore,nobrowse,dev=38c0001 10008269 91
auto_home
/home autofs indirect,ignore,nobrowse,dev=38c0002 10008269 91
auto_proj
/proj autofs indirect,ignore,nobrowse,dev=38c0003 10008269 91
auto_direct /usr/soft/this autofs direct,ignore,dev=38c0004
10008269 91
auto_direct /usr/soft/that autofs direct,ignore,dev=38c0005
10008269 91
auto_direct /usr/soft/theother/sas autofs direct,ignore,dev=38c0006 1000826991
auto_direct /var/log/httpd autofs direct,ignore,dev=38c0007
10008269 92
auto_direct /var/tex/fonts autofs direct,ignore,dev=38c0008
10008269 92
auto_direct /var/publisher autofs direct,ignore,dev=38c0009
10008269 92
auto_direct /var/pine
autofs direct,ignore,dev=38c000a
10008269 92
-xfn /xfn autofs indirect,ignore,dev=38c000b 1000826992
auto_rg /rg autofs indirect,ignore,nobrowse,dev=38c000c 1000826992
chasm:/export/soft/that /usr/soft/that nfs ro,dev=3880002 1000827011
suburb:/export/home/001 /home/001
nfs dev=3880003 1000827019
-hosts /net/ox/nm
autofs nosuid,ignore,nest,nobrowse,dev=38c000d 10008270 29
-hosts /net/ox/conf autofs nosuid,ignore,nest,nobrowse,dev=38c000e 10008270 29
ox:/nm /net/ox/nm
nfs nosuid,dev=3880004
1000827029
null:/po/pine /var/pine
nfs noquota,dev=3880005 1000827109
chasm:/export/soft/this /usr/soft/this nfs ro,dev=3880006 1000827144
casa1:/export/home/ee /home/ee
nfs dev=3880007 1000827157
casa1:/export/home/cs /home/cs
nfs dev=3880008 1000827214
regex:/export/home/regex
/home/regex nfs dev=388000b 10008272 50
tangled:/info/www/dept/dev-som /home/mgmtdev nfs dev=3882d5e 10047362 04
axon:/export/axon
/home/axon nfs dev=3882fe3 1005059308
casa:/export/misc/planet
/home/planet nfs dev=388327c 10052554 39
casa:/export/proj
/proj/ec
nfs dev=38833d2 1005348955
casa:/export/proj/csshare
/home/csshare nfs dev=38833f2 10053589 83
casa:/export/cad
/home/cad
nfs dev=38833f3 1005359273
{apache:~}
The faculty directories are mounted from casa1 onto /home/cs . Here Sun’s nfs is used
casa1:/export/home/cs /home/cs
nfs dev=3880008 1000827214
Common utility programs and local storage are mounted locally onto /
/dev/md/dsk/d10 /
ufs rw,intr,largefiles,onerror=panic,suid,dev=154000 a
1000787499
Notice that they are of ufs type.
Student directories are mounted from suburb
suburb:/export/home/001 /home/001
nfs dev=3880003
1000827019
Swap partition is mounted locally
swap /var/run
tmpfs dev=1 1000787508
Notice that this partition begins ar the start of the disk since this is used the most .
Also not so common usage by the users and hence is put in mnttab to be mounted by the
automount utility .
auto_proj
/proj autofs indirect,ignore,nobrowse, dev=38c0003 10008269 91
5. Describe how file systems shared by a host in UT Dallas (e.g., apache or sol).
Explain where you found the information and the commands used for sharing file
systems.
Answer:
The file systems used by UTDallas apache are as follows. Apache runs Sun OS 5.8 .
Solaris uses file systems called Network file System(nfs) similar to the Unix File
System( ufs). Apache mounts the user directories from file servers casa, casa1, and
suburb. Df –k helps finding out the free disk blocks.
>> df –k
Filesystem
kbytes used avail capacity Mounted on
/dev/md/dsk/d10
3603758 2824519 743202 80% /
/proc
0
0
0 0% /proc
fd
0
0
0 0% /dev/fd
mnttab
0
0
0 0% /etc/mnttab
swap
4224904
16 4224888 1% /var/run
/dev/md/dsk/d40
3074022 76939 2935603 3% /tmp
/dev/dsk/c0t14d0s0 17410894 4960 17231826 1% /var/audit
/dev/md/dsk/d30
1015679 614 954125 1% /var/tmp
null:/pub/mail
3874300 2707261 1128296 71% /var/mail
chasm:/export/soft/that 154872105 43783450 109539934 29% /usr/soft/that
suburb:/export/home/001 211751936 98112976 112751192 47% /home/001
ox:/nm
426513188 320863269 62998600 84% /net/ox/nm
null:/po/pine
3874300 2707261 1128296 71% /var/pine
chasm:/export/soft/this 154872105 43783450 109539934 29% /usr/soft/this
casa1:/export/home/ee 140499968 97244040 42927544 70% /home/ee
casa1:/export/home/cs 140499968 55175664 84658112 40% /home/cs
regex:/export/home/regex 8807549 8444553 274921 97% /home/regex
tangled:/info/www/dept/dev-som 17404618 15023313 2207259 88% /home/mgmtdev
axon:/export/axon 173478604 22342462 149401356 14% /home/axon
casa:/export/misc/planet 4122262 3596508 484532 89% /home/planet
casa:/export/proj 18489770 18248981 55892 100% /proj/ec
casa:/export/home/ec 86681526 8986153 75094928 11% /home/ec
As can be seen the student directories which are mounted from the file server suburb
suburb:/export/home/001 211751936 98112976 112751192 47% /home/001
More information about these commands can be found by looking at the manuals.
6. Examine the auto_master file of a host in UT Dallas and describe what you found.
Answer:
Auto_master determines the locations of all autofs mount points
{apache:/etc} cat /etc/auto_master
# Master map for automounter
#
/net
-hosts
-nosuid,nobrowse
/home
auto_home
-nobrowse
/proj
auto_proj
-nobrowse
/auto_direct -noquota
+auto_master
/xfn
-xfn
{apache:/etc}
The /net directory specifies that the directories mounted under /net correspond to those of
the NFS as specified by the map key. Hence we cannot browse the directory unless they
are mounted.
The xfn mount is to mount Federated Naming Service (FNS) namespace under the
/xfn
Also /home and /proj cannot be browsed unless the directories exist. They are auto
mounted from the corresponding entries as specified by the map key.
+automaster specifies that the remaining directories are mounted after consulting the NIS
(Network Information Services). NIS provides a common set of files to several Unix
hosts in the same domain. Using NIS files for automounting, system administrators can
ensure that same directories or devices mounted in the same way by all Unix hosts in a
particular domain.
7. Network information service (NIS) is used by Sun Microsystems to share
information (database) among the system in a network. NIS uses a “Master”
server and a set of “slave” or “Replicated” servers. Master-slave relationship is
used to update the database tables. NIS clients can broadcast their query can be
answered by any of the Master/Replicated servers.Execute the command:
"/usr/lib/nis/nisshowcache -v | more" on a utdallas.edu machine. Explain the
output of the command.
Answer:
Cold Start directory:
Name : 'utdallas.edu.'
Type : NIS
Master Server :
Name
: viper.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.16.5.0.111
[2] - tcp, inet, 129.110.16.5.0.111
[3] - -, inet, 129.110.16.5.0.111
Replicate :
Name
: ra.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.16.12.0.111
[2] - tcp, inet, 129.110.16.12.0.111
[3] - -, inet, 129.110.16.12.0.111
Replicate :
Name
: portal.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.20.3.0.111
[2] - tcp, inet, 129.110.20.3.0.111
[3] - -, inet, 129.110.20.3.0.111
Replicate :
Name
: cuarto.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.21.4.0.111
[2] - tcp, inet, 129.110.21.4.0.111
[3] - -, inet, 129.110.21.4.0.111
Time to live : 2:9:4
Default Access rights :
NisSharedCacheEntry[1]:
Name : 'groups_dir.utdallas.edu.'
Type : NIS
Master Server :
Name
: viper.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.16.5.0.111
[2] - tcp, inet, 129.110.16.5.0.111
[3] - -, inet, 129.110.16.5.0.111
Replicate :
Name
: ra.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.16.12.0.111
[2] - tcp, inet, 129.110.16.12.0.111
[3] - -, inet, 129.110.16.12.0.111
Replicate :
Name
: portal.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.20.3.0.111
[2] - tcp, inet, 129.110.20.3.0.111
[3] - -, inet, 129.110.20.3.0.111
Replicate :
Name
: cuarto.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.21.4.0.111
[2] - tcp, inet, 129.110.21.4.0.111
[3] - -, inet, 129.110.21.4.0.111
Time to live : 2:9:3
Default Access rights :
NisSharedCacheEntry[2]:
Name : 'org_dir.utdallas.edu.'
Type : NIS
Master Server :
Name
: viper.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.16.5.0.111
[2] - tcp, inet, 129.110.16.5.0.111
[3] - -, inet, 129.110.16.5.0.111
Replicate :
Name
: ra.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.16.12.0.111
[2] - tcp, inet, 129.110.16.12.0.111
[3] - -, inet, 129.110.16.12.0.111
Replicate :
Name
: portal.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.20.3.0.111
[2] - tcp, inet, 129.110.20.3.0.111
[3] - -, inet, 129.110.20.3.0.111
Replicate :
Name
: cuarto.utdallas.edu.
Public Key : Diffie-Hellman (192 bits)
Universal addresses (3)
[1] - udp, inet, 129.110.21.4.0.111
[2] - tcp, inet, 129.110.21.4.0.111
[3] - -, inet, 129.110.21.4.0.111
Time to live : 8:48:6
Default Access rights :
Active servers:
viper.utdallas.edu. inet tcp 129.110.16.5.211.135 local
viper.utdallas.edu. inet udp 129.110.16.5.181.246 local
The given command when executed in the utdallas machines produces the statements
printed above. It shows the contents of each directory object including information on the
server name and its universal address. The directory object contains names, addresses and
authentication for domain servers.
The NIS+ domain consist of three directory objects
1) utdallas.edu
2) org_dir.utdallas.edu
3) groups_dir.utdallas.edu
(Note : These three are listed in the output)
The cold start directory contains the parent directory object found in
var/nis/NIS_COLD_START for each directory object the “Master” server and the
“replicated” servers are listed. The public key diffie-Hellman(192 bits) is the encryption
used for sending secure-RPC credentials.
Time to live : Displays the time that will be assigned for the next object created in this
shell to live.
A list of active servers is printed at the end.
8. Suggestion: Read on Sun operating systems manuals to learn about the various
distributed file system features in Sun NFS.
9. Consider the following WFG in a distributed system following the OR request
model. Apply the diffusion computation based algorithm. Show the flow of
messages and determine whether a deadlock is present in the system.
Site S1
P2
P1
P3
Site S2
Site S3
P10
P4
P7
P9
P8
P6
P5
Download