#include int main(void) { const int page_size = 16; const int start_va = 100; const int n = 10; const int elem_size = 4; int hits = 0; int misses = 0; int prev_vpn = -1; printf("Simulating sequential array accesses with page size %d\n", page_size); printf("Array of %d ints starting at VA %d\n\n", n, start_va); for (int i = 0; i < n; i++) { int va = start_va + i * elem_size; int vpn = va / page_size; int is_hit = (vpn == prev_vpn); if (is_hit) { hits++; } else { misses++; } printf("a[%d] VA=%d VPN=%d %s\n", i, va, vpn, is_hit ? "HIT" : "MISS"); prev_vpn = vpn; } printf("\nHits: %d Misses: %d Hit rate: %.0f%%\n", hits, misses, 100.0 * hits / n); return 0; }