5 -5 args-argc: argc is not set correctly
6 -5 args-argv0: executable name not passed as argv[0]
7 -5 args-multiple: passing multiple arguments fails
8 -5 args-dblspace: using multiple spaces between arguments fails
10 System calls: halt, exec
11 -1 halt: halt system call fails
12 -2 exit: exit system call malfunctions
16 -2 create-normal: create a file in the most normal way
17 -1 create-empty: pass empty string to create system call
18 -1 create-null: pass null pointer to create system call
19 -1 create-bad-ptr: pass invalid pointer to create system call
20 -1 create-long: pass long file name to create system call
21 -1 create-exists: pass name of an existing file to create system call
25 -2 open-normal: open a file in the most normal way
26 -2 open-missing: try to open a file that doesn't exist
27 -1 open-empty: pass empty string to open system call
28 -1 open-null: pass null pointer to open system call
29 -1 open-twice: open the same file twice
33 -2 close-normal: close an open file in the most normal way
34 -2 close-twice: try to close an open file twice
35 -1 close-stdin: try to close stdin
36 -1 close-stdout: try to close stdout
37 -1 close-bad-fd: try to close invalid file descriptor
41 -2 read-normal: read from open file in most normal way
42 -2 read-bad-ptr: pass invalid pointer to read system call
43 -1 read-zero: try to read zero bytes
44 -1 read-stdout: try to read from stdout
45 -1 read-bad-fd: try to read from invalid file descriptor
49 -2 write-normal: write to open file in most normal way
50 -2 write-bad-ptr: pass invalid pointer to write system call
51 -1 write-zero: try to write zero bytes
52 -1 write-stdin: try to write to stdin
53 -1 write-bad-fd: try to write to invalid file descriptor
57 -2 exec-once: call exec/join once
58 -2 exec-multiple: call exec/join multiple times
59 -2 exec-missing: exec of nonexistent file must return -1
60 -1 exec-bad-ptr: pass invalid pointer to exec system call
64 -2 join-simple: join must return proper value
65 -2 join-twice: join a subprocess two times
66 -2 join-killed: join must return -1 if subprocess killed by kernel
67 -1 join-bad-pid: join must return if passed bad pid
73 3. Multiprogramming / Page boundary checking (/50 points)
74 Multiprogramming: Exec'ing two simple programs -30
75 from another program doesn't work
76 Open/Create fails on page boundary -5
77 Read/Write fails on page boundary -5
78 Can close file opened by parent -5
79 Running out of physical memory crashes OS -5
80 Shell test doesn't work with normal page size -5
81 Shell test doesn't work with smaller page size -5
82 Exec/Join tests 0 and 1 fail when we substitute a new
83 bitmap.cc that returns pages in a random order. -5
86 Notes on the shell tests :
88 Large page size echo/matmult test
89 -5 if nothing works no matter what you do
90 -4 if shell works in either case but matmult doesn't work in either case
92 Small page size echo/matmult test
93 -5 if nothing works no matter what you do
94 -4 if shell works in either case but matmult doesn't work in either case