datafile: contains 2 lines, 1440bytes.
=============This line is the border, not part of the datafile ================
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
0123456789012345678901234567890123456789012345678901234567890123456789012345678
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
01234567890123456789012345678901234567890123456789012345678901234567890123456789
0123456789012345678901234567890123456789012345678901234567890123456789012345678
=============This line is the border, not part of the datafile ================
In the following output, the cache and block size is set to:
BLOCK_SIZE = 20 bytes
CACHE_SIZE = 15 blocks
Error checks: our program should check for non-existent files, empty files, and directory files.
Part I: FIFO
*****************************% make
gcc -c fifo_cache.c
gcc -c cache.c
gcc -o fifo_cache fifo_cache.o cache.o
% fifo_cache
Enter file name:test.dat
Starting seek address:0
Number of bytes:53
An error message should be printed stating either "File not found" or "User does not have permission to access this file"
% fifo_cache
Enter file name:data1
Starting seek address:0
Number of bytes:53
An error message should be printed stating that there is no valid data in this file
% fifo_cache
Enter file name:dir1
Starting seek address:0
Number of bytes:53
An error message should be printed stating that you cannot read from a directory
% fifo_cache
Enter file name:datafile
Starting seek address:0
Number of bytes:53
"/n/m/31/cs620/assigns/data-3/datafile" block 0, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 1, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 13 bytes from
disk:
0123456789012
"/n/m/31/cs620/assigns/data-3/datafile" block 1, 15 bytes from
cache:
567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 0, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 1, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 5, 10 bytes from
disk:
0123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 7, 10 bytes from
disk:
0123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 8, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 9, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 10, 5 bytes from
disk:
01234
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 11 bytes from
cache:
90123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 5, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 6, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 7, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 8, 18 bytes from
cache:
012345678901234567
"/n/m/31/cs620/assigns/data-3/datafile" block 10, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 11, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 12, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 13, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 14, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 15, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 16, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 17, 10 bytes from
disk:
0123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from
disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 19 bytes from
disk:
0123456789012345678
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 20 bytes from
cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 5, 16 bytes from
disk:
0123456789012345
[PART II] LRU Replacement Scheme
*****************************% make
gcc -c lru_cache.c
gcc -c cache.c
gcc -o lru_cache lru_cache.o cache.o
% lru_cache
Enter file name:test.dat
Starting seek address:0
Number of bytes:53
An error message should be printed stating either "File not found" or "User does not have permission to access this file"
% lru_cache
Enter file name:data1
Starting seek address:0
Number of bytes:53
An error message should be printed stating that there is no valid data in this file
% lru_cache
Enter file name:dir1
Starting seek address:0
Number of bytes:53
An error message should be printed stating that you cannot read from a directory
% lru_cache
Enter file name:datafile
Starting seek address:0
Number of bytes:53
"/n/m/31/cs620/assigns/data-3/datafile" block 0, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 1, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 13 bytes from disk:
0123456789012
"/n/m/31/cs620/assigns/data-3/datafile" block 1, 15 bytes from cache:
567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 0, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 1, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 5, 10 bytes from disk:
0123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 7, 10 bytes from disk:
0123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 8, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 9, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 10, 5 bytes from disk:
01234
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 11 bytes from cache:
90123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 5, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 6, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 7, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 8, 18 bytes from cache:
012345678901234567
"/n/m/31/cs620/assigns/data-3/datafile" block 10, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 11, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 12, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 13, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 14, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 15, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 16, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 17, 10 bytes from disk:
0123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from disk:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 19 bytes from
cache:
0123456789012345678
"/n/m/31/cs620/assigns/data-3/datafile" block 2, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 3, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 4, 20 bytes from cache:
01234567890123456789
"/n/m/31/cs620/assigns/data-3/datafile" block 5, 16 bytes from
cache:
0123456789012345