UNIX.
- V
UNIX. , , ,
, .
, , -
, , -
. -
, -1, errno,
external. ,
0. -
: ,
. -
, UNIX,
, ,
, -
.
access
______________________________
access(filename,mode)
char *filename;
int mode;
access , ,
(
mode). mode 4 ( ), 2
( ) 1 ( ).
.
acct
______________________________
acct(filename)
char *filename;
acct , filename
, - .
______________________________
unsigned alarm(seconds)
unsigned seconds;
alarm
(seconds). ,
.
400
______________________________
int brk(end_data_seg)
char *end_data_seg;
brk ( )
end_data_seg. -
, sbrk,
.
______________________________
chdir(filename)
char *filename;
chdir ,
filename.
______________________________
chmod(filename,mode)
char *filename;
chmod
mode, (
):
04000
02000
01000 sticky bit
00400
00200
00100
00040
00020
00010
00004
00002
00001
______________________________
chown(filename,owner,group)
char *filename;
int owner,group;
chown -
, owner group.
______________________________
401
chroot(filename)
char *filename;
chroot -
filename.
______________________________
close(fildes)
int fildes;
close , -
open, creat, dup, pipe fcntl, -
fork.
______________________________
creat(filename,mode)
char *filename;
int mode;
creat .
mode , access,
sticky-bit , , umask, . -
-
.
______________________________
dup(fildes)
int fildes;
dup , -
. -
, -
.
______________________________
execve(filename,argv,envp)
char *filename;
char *argv[];
char *envp[];
execve filename,
. argv -
, , envp -
, .
402
______________________________
exit(status)
int status;
exit , 8
.
.
______________________________
fcntl(fildes,cmd,arg)
int fildes,cmd,arg;
fcntl
, fildes.
cmd arg ( -
"/usr/include/fcntl.h"):
F_DUPFD ,
arg
F_SETFD "close-on-exec" -
arg ( exec)
F_GETFD "close-on-exec"
F_SETFL ,
(O_NDELAY - -
-, O_APPEND -
)
F_GETFL ,
struct flock
short l_type; /* F_RDLCK - ,
F_WRLCK - ,
F_UNLCK - */
short l_whence; /* -
-
(0), -
-
(1),
(2) */
long l_start; /* , -
l_whence */
long l_len; /*
. 0, -
l_start
*/
long l_pid; /* , -
*/
long l_sysid; /* -
, */
F_GETLK , -
arg .
, l_type
arg F_UNLCK
403
F_SETLK -
arg.
-1
F_SETLKW
arg.
-
, , -
. , , .
______________________________
fork()
fork . -
-. --
, - .
______________________________
getpid()
getpid .
: getpgrp, ,
, getppid,
, .
______________________________
getuid()
getuid -
. : geteuid, -
, getgid,
, getegid, -
.
______________________________
ioctl(fildes,cmd,arg)
int fildes,cmd;
ioctl -
, fildes. ,
, cmd, -
arg .
______________________________
404
kill(pid,sig)
int pid,sig;
kill , -
pid, , sig.
pid -
- pid
pid = 0 ,
-
pid = -1 -
, -
, -
, ,
-
-
pid < -1 ,
pid
- -
, , -
-
-.
______________________________
link(filename1,filename2)
char *filename1,*filename2;
link filename1 filename2. -
.
______________________________
lseek(fildes,offset,origin)
int fildes,origin;
long offset;
lseek -
fildes .
origin:
0 , -
1
2 , -
______________________________
405
mknod(filename,modes,dev)
char *filename;
int mode,dev;
mknod ,
( " - ") -
modes:
010000
020000 -
040000
060000 -
12 modes ,
chmod. , dev -
.
______________________________
mount(specialfile,dir,rwflag)
char *specialfile,*dir;
int rwflag;
mount , -
specialfile, dir. rwflag
, .
______________________________
#include
#include
#include
msgctl(id,cmd,buf)
int id,cmd;
struct msgid_ds *buf;
, cmd, msgctl -
id, .
msquid_ds :
struct ipc_perm {
ushort uid; /* */
ushort gid; /* */
ushort cuid; /* - */
ushort cgid; /* */
ushort mode; /* */
short pad1; /* */
long pad2; /* */
};
struct msquid_ds {
struct ipc_perm msg_perm; /* ,
*/
406
short pad1[7]; /* */
ushort msg_qnum; /*
*/
ushort msg_qbytes; /*
*/
ushort msg_lspid; /* ,
*/
ushort msg_lrpid; /* ,
*/
time_t msg_stime; /*
*/
time_t msg_rtime; /* -
*/
time_t msg_ctime; /* -
*/
};
:
IPC_STAT , -
id
IPC_SET msg_perm.uid,
msg_perm.gid, msg_perm.mode (9
msg_perm) mgr_qbytes
,
IPC_RMID -
id
______________________________
#include
#include
#include
msgget(key,flag)
key_t key;
int flag;
msgget ,
key. key , -
(IPC_PRIVATE),
. flag
(IPC_CREAT), , -
(IPC_EXCL). , -
, msgget .
______________________________
#include
#include
#include
msgsnd(id,msgp,size,flag)
407
int id,size,flag;
struct msgbuf *msgp;
msgrcv(id,msgp,size,type,flag)
int id,size,type,flag;
struct msgbuf *msgmp;
msgsnd (size)
msgp id. msgbuf -
:
struct msgbuf {
long mtype;
char mtext[];
};
flag IPC_NOWAIT , msgsnd -
,
. IPC_NOWAIT -
, msgsnd .
msgrcv id.
type , ,
; ,
; ,
, ,
type. size
, .
flag MSG_NOERROR, , -
, size, -
. , -
. flag IPC_NOWAIT ,
msgrcv , , -
type , . -
, . msgrcv
( ).
______________________________
nice(increment)
int increment;
nice , -
,
increment. nice -
.
______________________________
#include
open(filename,flag,mode)
char *filename;
int flag,mode;
open -
408
flag. flag
(
):
O_RDONLY
O_WRONLY
O_RDWR
O_NDELAY -
, , -
; -
,
(
, O_WRONLY ), -
O_APPEND
O_CREAT , ; -
(mode) ,
creat; , -
O_TRUNC 0
O_EXCL O_CREAT
, ;
" "
open
.
______________________________
pause()
pause
.
______________________________
pipe(fildes)
int fildes[2];
pipe (,
fildes[0] fildes[1]) .
; .
______________________________
#include
plock(op)
int op;
plock -
op:
409
PROCLOCK
TXTLOCK
DATLOCK
UNLOCK
______________________________
profil(buf,size,offset,scale)
char *buf;
int size,offset,scale;
profil .
buf , ,
. size buf, offset - -
, scale - .
______________________________
ptrace(cmd,pid,addr,data)
int cmd,pid,addr,data;
ptrace
, pid,
cmd:
0 ( )
1,2 , addr -
pid
3 , -
addr
4,5 addr -
6 addr
7 -
8 -
9 - - -
______________________________
read(fildes,buf,size)
int fildes;
char *buf;
int size;
read fildes -
buf size . -
.
open
O_NDELAY, read
410
.
______________________________
#include
#include
#include
semctl(id,num,cmd,arg)
int id,num,cmd;
union semun {
int val;
struct semid_ds *buf;
ushort *array;
} arg;
semctl cmd
id.
GETVAL , -
num
SETVAL , -
num, arg.val
GETPID , -
semop -
, num
GETNCNT , ,
GETZCNT , ,
GETALL
arg.array
SETALL
arg.array
IPC_STAT -
id arg.buf
IPC_SET sem_perm.uid,
sem_perm.gid sem_perm.mode ( 9
sem_perm)
arg.buf
IPC_RMID , id,
num .
semid_ds :
struct semid_ds {
struct ipc_perm sem_perm; /* , -
-
*/
int * pad; /* -
*/
ushort sem_nsems; /* -
*/
time_t sem_otime; /*
*/
411
time_t sem_ctime; /*
*/
};
ipc_perm , msgctl.
______________________________
#include
#include
#include
semget(key,nsems,flag)
key_t key;
int nsems,flag;
semget ,
key. key flag , msgget.
______________________________
semop(id,ops,num)
int id,num;
struct sembuf **ops;
semop , ops,
, id. num -
, ops. sembuf -
:
struct sembuf {
short sem_num; /* */
short sem_op; /* */
short sem_flg; /* */
};
sem_num , -
, sem_flg - .
sem_op :
sem_op >= 0,
sem_op; ,
,
sem_op
0, -
; , -
, -
sem_flg
IPC_NOWAIT, semop ,
. SEM_UNDO,
412
(sem_op
). ,
. semop
.
______________________________
setpgrp()
setpgrp ,
, -
.
______________________________
setuid(uid)
int uid;
setgid(gid)
int gid;
setuid -
.
,
. ,
, uid, setuid -
.
, uid ,
setuid-, exec. setgid
.
______________________________
#include
#include
#include
shmctl(id,cmd,buf)
int id,cmd;
struct shmid_ds *buf;
shmctl -
, id. shmid_ds
:
struct shmid_ds {
struct ipc_perm shm_perm; /* , -
*/
int shm_segsz; /* */
int * pad1; /* -
*/
ushort shm_lpid; /* -
,
413
*/
ushort shm_cpid; /* -
- */
ushort shm_nattch; /* -
*/
short pad2; /* -
*/
time_t shm_atime; /*
*/
time_t shm_dtime; /*
*/
time_t shm_ctime; /*
-
*/
};
:
IPC_STAT buf -
, id
IPC_SET shm_perm.uid,
shm_perm.gid shm_perm.mode (9 -
) -
buf
IPC_RMID ,
id
______________________________
#include
#include
#include
shmget(key,size,flag)
key_t key;
int size,flag;
shmget .
size . key flag
, msgget.
______________________________
#include
#include
#include
shmat(id,addr,flag)
int id,flag;
char *addr;
shmdt(addr)
char *addr;
414
shmat ,
id, . addr
, -
. ,
addr . flag
SHM_RND, .
shmat , .
shmdt , -
addr.
______________________________
#include
signal(sig,function)
int sig;
void (*func)();
signal
. sig :
SIGHUP ""
SIGINT
SIGQUIT
SIGILL
SIGTRAP ,
SIGIOT IOT
SIGEMT EMT
SIGFPE
SIGKILL
SIGBUS
SIGSEGV
SIGSYS
SIGPIPE
SIGALRM
SIGTERM
SIGUSR1 ,
SIGUSR2 ,
SIGCLD
SIGPWR
function :
SIG_DFL . -
, -
SIGPWR SIGCLD.
SIGQUIT, SIGILL, SIGTRAP, SIGIOT, SIGEMT, SIGFPE,
SIGBUS, SIGSEGV SIGSYS,
"core",
SIG_IGN
. -
. , -
SIGILL, SIGTRAP SIGPWR, -
SIG_DFL. SIGKILL
415
.te1 stat
______________________________
stat(filename,statbuf)
char *filename;
struct stat *statbuf;
fstat(fd,statbuf)
int fd;
struct stat *statbuf;
stat () -
. fstat , -
fd. statbuf :
struct stat {
dev_t st_dev; /* , -
*/
ino_t st_ino; /* */
ushort st_mode; /* (. mknod)
(. chmod) */
short st_nlink; /* , */
ushort st_uid; /* */
ushort st_gid; /* */
dev_t st_rdev; /* */
off_t st_size; /* */
time_t st_atime; /* */
time_t st_mtime; /* */
time_t st_ctime; /* */
};
______________________________
stime(tptr)
long *tptr;
stime
, tptr.
00:00:00 1 1970 .
______________________________
sync()
sync (-
) .
______________________________
time(tloc)
416
long *tloc;
time 00:00:00 1
1970 .
______________________________
#include
#include
times(tbuf)
struct tms *tbuf;
times ,
, tbuf
:
struct tms {
time_t tms_utime; /* -
*/
time_t tms_stime; /* -
*/
time_t tms_cutime; /* tms_utime
tms_cutime */
time_t tms_sutime; /* tms_stime
tms_sutime */
};
______________________________
ulimit(cmd,limit)
int cmd;
long limit;
ulimit -
cmd:
1 ( 512 ),
2 -
limit
3 (
)
______________________________
umask(mask)
int mask;
umask ,
(mask), . -
, mask, -
.
417
______________________________
umount(specialfile)
char *specialfile
umount ,
- specialfile.
______________________________
#include
uname(name)
struct utsname *name;
uname , -
:
struct utsname {
char sysname[9]; /* */
char nodename[9]; /* */
char release[9]; /* */
char version[9]; /* */
char machine[9]; /* */
};
______________________________
unlink(filename)
char *filename;
unlink .
______________________________
#include
#include
ustat(dev,ubuf)
int dev;
struct ustat *ubuf;
ustat ,
dev ( ). -
ustat :
struct ustat {
daddr_t f_tfree; /* */
ino_t f_tinode; /* */
char f_fname[6]; /* */
char f_fpack[6]; /* ()
418
*/
};
______________________________
#include
utime(filename,times)
char *filename;
struct utimbuf *times;
utime
, -
times. , -
.
:
struct utimbuf {
time_t axtime; /* */
time_t modtime; /* */
};
00:00:00 1 1970 .
______________________________
wait(wait_stat)
int *wait_stat;
wait
.
wait_stat , , -
. -
16 .
, 8 0, 8
- () exit. -
,
exit . , - -
"core", 0200. -
, 8
wait ,
8 - 0177.
______________________________
write(fd,buf,count)
int fd,count;
char *buf;
write count -
, buf, fd.
419
[Babaoglu 81] Babaoglu, O., and W.Joy, "Converting a Swap-Based System
to do Paging in an Architecture Lacking Page-Referenced Bits",
Proceedings of the 8th Symposium on Operating Systems Principles,
ACM Operating Systems Review, Vol. 15(5), Dec. 1981, pp. 78-86.
[Bach 84] Bach, M.J., and S.J.Buroff, "Multiprocessor UNIX Systems",
AT&T Bell Laboratories Technical Journal, Oct. 1984, Vol. 63, No.
8, Part 2, pp. 1733-1750.
[Barak 80] Barak, A.B. and Aapir, "UNIX with Satellite Processors",
Software - Practice and Experience, Vol. 10, 1980, pp. 383-392.
[Beck 85] Beck, B. and B.Kasten, "VLSI Assist in Building a
Multiprocessor UNIX System", Proceedings of the USENIX Association
Summer Conference, June 1985, pp. 255-275.
[Berkeley 83] UNIX Programmer's Manual, 4.2 Berkeley Software
Distribution, Virtual VAX-11 Version, Computer Science Division,
Department of Electrical Engineering and Computer Science,
University of California at Berkeley, August 1983.
[Birrell 84] Birrell, A.D. and B.J.Nelson, "Implementing Remote
Procedure Calls", ACM Transactions on Computer Systems, Vol. 2,
No. 1, Feb. 1984, pp. 39-59.
[Bodenstab 84] Bodenstab, D.E., T.F.Houghton, K.A.Kelleman, G.Ronkin,
and E.P.Schan, "UNIX Operating System Porting Experiences", AT&T
Bell Laboratories Technical Journal, Vol. 63, No. 8, Oct. 1984,
pp. 1769-1790.
[Bourne 78] Bourne, S.R., "The UNIX Shell", The Bell System Technical
Journal, July-August 1978, Vol. 57, No. 6, Part 2, pp. 1971-1990.
[Bourne 83] Bourne, S.R., The UNIX System, Addison-Wesley, Reading, MA,
1983.
[Brownbridge 82] Brownbridge, D.R., L.F.Marshall, and B.Randell, "The
Newcastle Connection or UNIXes of the World Unite!" in Software -
Practice and Experience, Vol. 12, 1982, pp. 1147-1162.
[Bunt 76] Bunt, R.B., "Scheduling Techniques for Operating Systems",
Computer, Oct. 1976, pp. 10-17.
[Christian 83] Christian, K., The UNIX Operating System, John Wiley &
Sons Inc., New York, NY, 1983.
[Coffman 73] Coffman, E.G., and P.J.Denning, Operating Systems Theory,
Prentice-Hall Inc., Englewood Cliffs, NJ, 1973.
[Cole 85] Cole, C.T., P.B.Flinn, and A.B.Atlas, "An Implementation of an
Extended File System for UNIX", Proceedings of the USENIX
Conference, Summer 1985, pp. 131-149.
[Denning 68] Denning, P.J., "The Working Set Model for Program Behavior,
Communications of the ACM, Volume 11, No. 5, May 1968, pp.
323-333.
[Dijkstra 65] Dijkstra, E.W., "Solution of a Problem in Concurrent
Program Control", CACM, Vol. 8, No. 9, Sept. 1965, p. 569.
[Dijkstra 68] Dijkstra, E.W., "Cooperating Sequential Processes", in
Programming Languages, ed. F.Genuys, Academic Press, New York, NY,
1968.
[Felton 84] Felton, W.A., G.L.Miller, and J.M.Milner, "A UNIX
Implementation for System/370", AT&T Bell Laboratories Technical
Journal, Vol. 63, No. 8, Oct. 1984, pp. 1751- 1767.
[Goble 81] Goble, G.H. and M.H.Marsh, "A Dual Processor VAX 11/780",
Purdue University Technical Report, TR-EE 81-31, Sept. 1981.
[Henry 84] Henry, G.J., "The Fair Share Scheduler", AT&T Bell
Laboratories Technical Journal, Oct. 1984, Vol. 63, No. 8, Part 2,
pp. 1845-1858.
420
[Holley 79] Holley, L.H., R.P421rmelee, C.A.Salisbury, and D. N.Saul,
"VM/370 Asymmetric Multiprocessing", IBM Systems Journal, Vol. 18,
No. 1, 1979, pp. 47-70.
[Holt 83] Holt, R.C., Concurrent Euclid, the UNIX System, and Tunis,
Addison-Wesley, Reading, MA, 1983.
[Horning 73] Horning, J.J., and B.Randell, "Process Structuring",
Computing Surveys, Vol. 5, No. 1, March 1973, pp. 5-30.
[Hunter 84] Hunter, C.B. and E.Farquhar, "Introduction to the NSI16000
Architecture", IEEE Micro, April 1984, pp. 26- 47.
[Johnson 78] Johnson, S.C. and D.M.Ritchie, "Portability of C Programs
and the UNIX System", The Bell System Technical Journal, Vol. 57,
No. 6, Part 2, July-August, 1978, pp. 2021-2048.
[Kavaler 83] Kavaler, P. and A.Greenspan, "Extending UNIX to Local-Area
Networks", Mini-Micro Systems, Sept. 1983, pp. 197-202.
[Kernighan 78] Kernighan, B.W., and D.M.Ritchie, The C Programming
Language, Prentice-Hall, Englewood Cliffs, NJ, 1978.
[Kernighan 84] Kernighan, B.W., and R.Pike, The UNIX Programming
Environment, Prentice-Hall, Englewood Cliffs, NJ, 1984.
[Killian 84] Killian, T.J., "Processes as Files", Proceedings of the
USENIX Conference, Summer 1984, pp. 203-207.
[Levy 80] Levy, H.M., and R.H.Eckhouse, Computer Programming and
Architecture: The VAX-11, Digital Press, Bedford, MA, 1980.
[levy 82] Levy, H.M., and P.H.Lipman, "Virtual Memory Management in the
VAX/VMS Operating System", Computer, Vol. 15, No. 3, March 1982,
pp. 35-41.
[Lu 83] Lu, P.M., W.A.Dietrich, et. al., "Architecture of a VLSI MAP for
BELLMAC-32 Microprocessor", Proc. of IEEE Spring Compcon, Feb. 28,
1983, pp. 213-217.
[Luderer 81] Luderer, G.W.R., H.Che, J.P.Haggerty, P.A.Kirslis, and
W.T.Marshall, "A Distributed UNIX System Based on a Virtual
Circuit Switch", Proceedings of the Eighth Symposium on Operating
Systems Principles, Asilomar, California, December 14-16, 1981.
[Lycklama 78a] Lycklama, H. and D.L.Bayer, "The MERT Operating System",
The Bell System Technical Journal, Vol. 57, No. 6, Part 2,
July-August 1978, pp. 2049-2086.
[Lycklama 78b] Lycklama, H. and C.Christensen, "A Minicomputer Satellite
Processor System", The Bell System Technical Journal, Vol. 57, No.
6, Part 2, July- August 1978, pp. 2103-2114.
[McKusick 84] McKusick, M.K., W.N.Joy, S.J.Leffler, and R.S. Fabry, "A
Fast File System for UNIX", ACM Transactions on Computer Systems,
Vol. 2(3), August 1984, pp. 181-197.
[Mullender 84] Mullender, S.J. and A.S.Tanenbaum, "Immediate Files",
Software - Practice and Experience, Vol. 14(4), April 1984, pp.
365-368.
[Nowitz 80] Nowitz, D.A. and M.E.Lesk, "Implementation of a Dial-Up
Network of UNIX Systems", IEEE Proceedings of Fall 1980 COMPCON,
Washington, D.C., pp. 483-486.
[Organick 72] Organick, E.J., The Multics System: An Examination of Its
Structure", The MIT Press, Cambridge, MA, 1972.
[Peachey 84] Peachey, D.R., R.B.Bunt, C.L.Williamson, and T.B.Brecht,
"An Experimental Investigation of Scheduling Strategies for UNIX",
Performance Evaluation Review, 1984 SIGMETRICS Conference on
Measurement and Evaluation of Computer Systems, Vol. 12(3), August
1984, pp. 158-166.
[Peterson 83] Peterson, James L. and A.Silberschatz, Operating System
Concepts, Addison-Wesley, Reading, MA, 1983.
[Pike 84] Pike, R., "The Blit: A Multiplexed Graphics Terminal", AT&T
Bell Laboratories Technical Journal, Oct. 1984, Vol. 63, No. 8,
Part 2, pp. 1607-1632.
421
[Pike 85] Pike, R., and P.Weinberger, "The Hideous Name", Proceedings of
the USENIX Conference, Summer 1985, pp. 563-568.
[Postel 80] Postel, J. (ed.), "DOD Standart Transmission Control
Protocol", ACM Computer Communication Review, Vol. 10, No. 4, Oct.
1980, pp. 52-132.
[Postel 81] Postel, J., C.A.Sunshine, and D.Cohen, "The ARPA Internet
Protocol", Computer Networks, Vol. 5, No. 4, July 1981, pp.
261-271.
[Raleigh 76] Raleigh, T.M., "Introduction to Scheduling and Switching
under UNIX", Proceedings of the Digital Equipment Computer Users
Society, Atlanta, Ga., May 1976, pp. 867-877.
[Richards 69] Richards, M., "BCPL: A Tool for Compiler Writing and
Systems Programming", Proc. AFIPS SJCC 34, 1969, pp. 557-566.
[Ritchie 78a] Ritchie, D.M. and K.Thompson, "The UNIX Time-Sharing
System", The Bell System Technical Journal, July-August 1978, Vol.
57, No. 6, Part 2, pp. 1905-1930.
[Ritchie 78b] Ritchie, D.M., "A Retrospective", The Bell System
Technical Journal, July-August 1978, Vol. 57, No. 6, Part 2, pp.
1947-1970.
[Ritchie 81] Ritchie, D.M. and K.Thompson, "Some Further Aspects of the
UNIX Time-Sharing System", Mini-Micro Software, Vol. 6, No. 3,
1981, pp. 9-12.
[Ritchie 84a] Ritchie, D.M., "The Evolution of the UNIX Time- sharing
System", AT&T Bell Laboratories Technical Journal, Oct. 1984, Vol.
63, No. 8, Part 2, pp. 1577-1594.
[Ritchie 84b] Ritchie, D.M., "A Stream Input Output System", AT&T Bell
Laboratories Technical Journal, Oct. 1984, Vol. 63, No. 8, Part 2,
pp. 1897-1910.
[Rochkind 85] Rochkind, M.J., Advanced UNIX Programming, Prentice-Hall,
1985.
[Saltzer 66] Saltzer, J.H., Traffic Control in a Multiplexed Computer
System, Ph.D. Thesis, MIT, 1966.
[Sandberg 85] Sandberg, R., D.Goldberg, S.Kleiman, D.Walsh, and B.Lyon,
"Design and Implementation of the Sun Network Filesystem",
Proceedings of the USENIX Conference, Summer 1985, pp. 119-131.
[SVID 85] System V Interface Definition, Spring 1985, Issue 1, AT&T
Customer Information Center, Indianapolis, IN.
[System V 84a] UNIX System V User Reference Manual.
[System V 84b] UNIX System V Administrator's Manual.
[Thompson 74] Thompson, K. and D.M.Ritchie, "The UNIX Time-Sharing
System", Communications of the ACM, Vol. 17, No. 7, July, 1974,
pp. 365-375 ( [Ritchie 78a]).
[Thompson 78] Thompson, K., "UNIX Implementation", The Bell System
Technical Journal, Vol. 57, No. 6, Part 2, July- August, 1978, pp.
1931-1946.
[Weinberger 84] Weinberger, P.J., "Cheap Dynamic Instruction Counting",
The AT&T Bell Laboratories Technical Journal, Vol. 63, No. 6, Part
2, October 1984, pp. 1815-1826.
422
Last-modified: Thu, 12 Feb 1998 07:21:04 GMT