CS 3307: OPERATING SYSTEMS 2
True or False: A power loss or system crash both present major challenges to a file system attempting to update persistent data structures.
Select one:
True
False
The correct answer is 'True'.
Question 2
In this method an additional back pointer is added to every block in the system; for example, each data block has a reference to the inode to which it belongs. When accessing a file, the file system can determine if the file is consistent by checking if the forward pointer (e.g., the address in the inode or direct block) points to a block that refers back to it.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: Backpointer-based consistency
Question 3
In this method when updating the disk, before over writing the structures in place, first write down a little note (somewhere else on the disk, in a well-known location) describing what you are about to do. Writing this note is the "write ahead" part, and we write it to a structure that we organize as a "log"; hence, write.
Select one:
a. Journaling
b. File system checker
c. FSCK
d. Super block
The correct answer is: Journaling
Question 4
This method is run before the file system is mounted and made available (assumes that no other file-system activity is on-going while it runs); once finished, the on disk file system should be consistent and thus can be made accessible to users.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: FSCK
Question 5
True or False: Inodes are organized in an array and placed on disk at a random location (or locations).
Select one:
True
False
The correct answer is 'False'.
Question 6
The checkpoint region (CR) is defined as:
Select one:
a. Unknown location to begin file lookups
b. Region used to store checkpoints
c. Fixed and known location on disk to begin a file lookup
d. Checkpoints for time hacks
The correct answer is: Fixed and known location on disk to begin a file lookup
Question 7
Log-structured File Systems are based on all the following except:
Select one:
a. Memory sizes had stabilized
b. File systems were not RAID-aware
c. Existing file systems perform poorly on many common workloads
d. Memory sizes were growing
The correct answer is: Memory sizes had stabilized
Question 8
True or False: Garbage in the file system is created when LFS leaves older versions of file structures all over the disk, scattered throughout the disk.
Select one:
True
False
The correct answer is 'True'.
Question 9
The primary mechanism used by modern storage systems to preserve data integrity is called the checksum. Some common functions used to compute the checksum are all except:
Select one:
a. Cyclical redundancy check (CRC)
b. Forward error correction and detection
c. XOR-based
d. Addition
The correct answer is: Forward error correction and detection
Question 10
The first failure mode of interest is called a misdirected write. This arises in disk and RAID controllers which write the data to disk correctly, except in the wrong location. A method to address this error is called:
Select one:
a. Cyclical redundancy check (CRC)
b. Zettabyte File System (ZFS)
c. Disk scrubbing
d. Physical identifier (physical ID)
The correct answer is: Physical identifier (physical ID)
Thread 0 holds the lock (i.e., it has called sem wait() but not yet called sem post()), and another thread (thread 1, say) tries to enter the critical section by calling sem wait(). In this case thread 1 must wait (putting itself to sleep and relinquishing the processor)?
Select one:
a. thread 1will find that the value of the semaphore is -1
b. thread 1will find that the value of the semaphore is 1
c. thread 1will find that the value of the semaphore is 0
d. thread 1will find that the value of the semaphore is 2
The correct answer is: thread 1will find that the value of the semaphore is 0
Question 2
Imagine two producers (Pa and Pb) both calling into put() at roughly the same time. Assume producer Pa gets to run first, and just starts to fill the first buffer entry (fill = 0 at line f1). Before Pa gets a chance to increment the fill counter to 1, it is interrupted. Producer Pb starts to run, and at line f1 it also puts its data into the 0th element of buffer, what happens to the old data?
sem_t empty;
sem_t full;
void *producer(void *arg) {
int i;
for (i = 0; i < loops; i++) {
sem_wait(&empty); // line p1
put(i); // line p2
sem_post(&full); // line p3
}
}
void *consumer(void *arg) {
int i, tmp = 0;
while (tmp != -1) {
sem_wait(&full); // line c1
tmp = get(); // line c2
sem_post(&empty); // line c3
printf("%d\n", tmp);
}
}
int main(int argc, char *argv[]) {
// ...
sem_init(&empty, 0, MAX); // MAX buffers are empty to begin with...
sem_init(&full, 0, 0); // ... and 0 are full
// ...
}
Select one:
a. Backed up
b. Saved
c. Overwritten
d. Value = 0
The correct answer is: Overwritten
Question 3
True or False: Lookups simply read the data structure; as long as we can guarantee that no insert is on-going, we can allow many lookups to proceed concurrently.
Select one:
True
False
The correct answer is 'True'.
Question 4
Order violations occur assuming mThread is initially set to NULL; it is assumed that the following is true:
Thread 1::
void init() {
...
mThread = PR_CreateThread(mMain, ...);
...
}
Thread 2::
void mMain(...) {
...
mState = mThread->State;
...
}
Select one:
a. B should always be executed before A
b. A and B should execute simultaneously
c. The order does not matter
d. A should always be executed before B
The correct answer is: A should always be executed before B
Question 5
True or False: Atomicity violation bugs and order violation bugs are examples of Non-deadlock bugs.
Select one:
True
False
The correct answer is 'True'.
Question 6
When does the deadlock occur in this code?
Thread 1: Thread 2:
lock(L1); lock(L2);
lock(L2); lock(L1);
Select one:
a. Thread 1 grabs lock L1
b. Thread 2 grabs L2 and tries to acquire L1
c. Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
d. Deadlock does not necessarily occur
The correct answer is: Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
Question 7
This code is an example of receiving events via?
int select(int nfds,
fd_set *restrict readfds,
fd_set *restrict writefds,
fd_set *restrict errorfds,
struct timeval *restrict timeout);
Select one:
a. API poll ()
b. API select ()
c. Select
d. Poll
The correct answer is: API select ()
Question 8
How many times will this event loop execute?
e
while (1) {
events = getEvents();
for (x in events)
processEvent(x);
}:
Select one:
a. e
b. 1
c. x
d. Null
The correct answer is: x
Question 9
True or False: In a multi-threaded application, the developer has full control over what is scheduled at a given moment in time; rather, the programmer simply creates threads and then hopes that the underlying OS schedules them in a reasonable manner across available CPUs.
Select one:
True
False
The correct answer is 'False'.
Question 10
Rate the difficulty of the course so far:
Select one:
a. Too easy
b. Easy
c. Just Right
d. Too Hard
The correct answers are: Too easy, Easy, Just Right, Too Hard
True or False: Lookups simply read the data structure; as long as we can guarantee that no insert is on-going, we can allow many lookups to proceed concurrently.
Select one:
True
False
The correct answer is 'True'.
Question 2
True or False: Enabling more concurrency always increases performance.
Select one:
True
False
The correct answer is 'False'.
Question 3
In this example there are producer and consumer threads the code for a producer puts an integer in the shared buffer loops number of times, and a consumer gets the data out of that shared buffer each time printing it. Which line prints out the shared buffer?
1 void *producer(void *arg) {
2 int i;
3 int loops = (int) arg;
4 for (i = 0; i < loops; i++) {
5 put(i);
6 }
7 }
8
9 void *consumer(void *arg) {
10 int i;
11 while (1) {
12 int tmp = get();
13 printf("%d\n", tmp);
14 }
15 }
Select one:
a. 4 for (i = 0; i < loops; i++) {
b. void *producer(void *arg) {
c. 13 printf("%d\n", tmp);
d. 1 void *producer(void *arg) {
The correct answer is: 13 printf("%d\n", tmp);
Question 4
Order violations occur assuming mThread is initially set to NULL; it is assumed that the following is true:
Thread 1::
void init() {
...
mThread = PR_CreateThread(mMain, ...);
...
}
Thread 2::
void mMain(...) {
...
mState = mThread->State;
...
}
Select one:
a. B should always be executed before A
b. A and B should execute simultaneously
c. The order does not matter
d. A should always be executed before B
The correct answer is: A should always be executed before B
Question 5
How many times will this event loop execute?
e
while (1) {
events = getEvents();
for (x in events)
processEvent(x);
}:
Select one:
a. e
b. 1
c. x
d. Null
The correct answer is: x
Question 6
True or False: Locks work through mutual exclusion which preventing multiple threads from entering a critical section.
Select one:
True
False
The correct answer is 'True'.
Question 7
The test-and-set instruction, is also known as:
Select one:
a. Lock mechanism
b. Interrupt
c. atomic exchange
d. Stack
The correct answer is: atomic exchange
Question 8
True or False: Atomicity violation bugs and order violation bugs are examples of Non-deadlock bugs.
Select one:
True
False
The correct answer is 'True'.
Question 9
This code is an example of receiving events via?
int select(int nfds,
fd_set *restrict readfds,
fd_set *restrict writefds,
fd_set *restrict errorfds,
struct timeval *restrict timeout);
Select one:
a. API poll ()
b. API select ()
c. Select
d. Poll
The correct answer is: API select ()
Question 10
What capability allows multiple people to use one system at the same time?
Select one:
a. Multi-thread
b. Multi-user
c. Distributed Processing
d. Multitasking
The correct answer is: Multi-user
Question 11
When checking for a condition in a multi-threaded program, using a while loop is always correct; using an if statement only might be, depending on the semantics of signaling. Thus, always use while and your code will behave as expected. Which condition statement will unlock after the final condition is met?
1 // how many bytes of the heap are free?
2 int bytesLeft = MAX_HEAP_SIZE;
3
4 // need lock and condition too
5 cond_t c;
6 mutex_t m;
7
8 void *
9 allocate(int size) {
10 lock(&m);
11 while (bytesLeft < size)
12 cond_wait(&c, &m);
13 void *ptr = ...; // get mem from heap
14 bytesLeft -= size;
15 unlock(&m);
16 return ptr;
17 }
18
19 void free(void *ptr, int size) {
20 lock(&m);
21 bytesLeft += size;
22 cond_signal(&c); // whom to signal??
23 unlock(&m);
24 }
Select one:
a. 10 lock(&m);
b. 20 lock(&m);
c. 15 unlock(&m)
d. 23 unlock(&m);
The correct answer is: 23 unlock(&m);
Question 12
Which line is the first lock in this code?
typedef struct __counter_t {
int value;
pthread_lock_t lock;
} counter_t;
void init(counter_t *c) {
c->value = 0;
Pthread_mutex_init(&c->lock, NULL);
}
void increment(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value++;
Pthread_mutex_unlock(&c->lock);
}
void decrement(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value--;
Pthread_mutex_unlock(&c->lock);
}
int get(counter_t *c) {
Pthread_mutex_lock(&c->lock);
int rc = c->value;
Pthread_mutex_unlock(&c->lock);
return rc;
}
Select one:
a. Pthread_mutex_lock(&c->lock);
b. pthread_lock_t lock;
c. Pthread_mutex_lock(&c->lock);
d. Pthread_mutex_init(&c->lock, NULL)
The correct answer is: pthread_lock_t lock;
Question 13
Spin locks must be all of the following EXCEPT:
Select one:
a. Simple
b. Correct
c. Fair
d. Perform
The correct answer is: Simple
Question 14
POSIX threads library are those for providing mutual exclusion to a critical section via:
Select one:
a. API’s
b. Multi-threaded
c. locks
d. Keys
The correct answer is: locks
Question 15
In the single threaded address space you will find all EXCEPT:
Select one:
a. Heap
b. Program code
c. T1
d. Stack
The correct answer is: T1
Question 16
True or False: To use a condition variable, one has to in addition have a lock that is not associated with this condition.
Select one:
True
False
The correct answer is 'False'.
Question 17
Imagine two producers (Pa and Pb) both calling into put() at roughly the same time. Assume producer Pa gets to run first, and just starts to fill the first buffer entry (fill = 0 at line f1). Before Pa gets a chance to increment the fill counter to 1, it is interrupted. Producer Pb starts to run, and at line f1 it also puts its data into the 0th element of buffer, what happens to the old data?
sem_t empty;
sem_t full;
void *producer(void *arg) {
int i;
for (i = 0; i < loops; i++) {
sem_wait(&empty); // line p1
put(i); // line p2
sem_post(&full); // line p3
}
}
void *consumer(void *arg) {
int i, tmp = 0;
while (tmp != -1) {
sem_wait(&full); // line c1
tmp = get(); // line c2
sem_post(&empty); // line c3
printf("%d\n", tmp);
}
}
int main(int argc, char *argv[]) {
// ...
sem_init(&empty, 0, MAX); // MAX buffers are empty to begin with...
sem_init(&full, 0, 0); // ... and 0 are full
// ...
}
Select one:
a. Backed up
b. Saved
c. Overwritten
d. Value = 0
The correct answer is: Overwritten
Question 18
When does the deadlock occur in this code?
Thread 1: Thread 2:
lock(L1); lock(L2);
lock(L2); lock(L1);
Select one:
a. Thread 1 grabs lock L1
b. Thread 2 grabs L2 and tries to acquire L1
c. Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
d. Deadlock does not necessarily occur
The correct answer is: Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
Question 19
True or False: Concurrent data structures can be queues lists and counters only.
Select one:
True
False
The correct answer is 'False'.
Question 20
Thread 0 holds the lock (i.e., it has called sem wait() but not yet called sem post()), and another thread (thread 1, say) tries to enter the critical section by calling sem wait(). In this case thread 1 must wait (putting itself to sleep and relinquishing the processor)?
Select one:
a. thread 1will find that the value of the semaphore is -1
b. thread 1will find that the value of the semaphore is 1
c. thread 1will find that the value of the semaphore is 0
d. thread 1will find that the value of the semaphore is 2
The correct answer is: thread 1will find that the value of the semaphore is 0
True or False: A DMA engine is essentially a very specific device within a system that can orchestrate transfers between devices and main memory without much CPU intervention.
Select one:
True
False
The correct answer is 'True'.
Question 2
In terms of computer system architecture buses which of the following is not?
Select one:
a. Peripheral
b. Memory
c. CPU
d. Input/output
The correct answer is: CPU
Question 3
True or False: The track depicted in figure 36.1 has 12 sectors, each of which is 512 bytes in size (our typical sector size, recall) and addressed therefore by the numbers 1 through 12.
Select one:
True
False
The correct answer is 'False'.
Question 4
Data or I/O transfer to and from a disk is always faster when it is done?
Select one:
a. Direct
b. Random
c. SSTF
d. Sequentially
The correct answer is: Sequentially
Question 5
True or False: In modern systems versus older systems, disks cannot accommodate multiple outstanding requests, and have sophisticated internal schedulers themselves.
Select one:
True
False
The correct answer is 'False'.
Question 6
RAID technology is evaluated along 3 axis; which is not:
Select one:
a. Capacity
b. N Disks
c. Performance
d. Reliability
The correct answer is: N Disks
Question 7
RAID technology can take 3 essential designs; which is not:
Select one:
a. RAID Level 0(striping)
b. RAID Level 1 (Parity)
c. RAID Levels 4/5 (parity based redundancy)
d. RAID Level 1 (mirroring)
The correct answer is: RAID Level 1 (Parity)
Question 8
True or False: To compute the value of the new parity block there are two methods: subtractive and additive.
Select one:
True
False
The correct answer is 'True'.
Question 9
See Table 37.6. Which disk will get the parity bit P5 to remove the parity bit bottle-nick of RAID 4:
Select one:
a. Disk 0
b. Disk 1
c. Disk 2
d. Disk 3
e. Disk 4
The correct answer is: Disk 4
Question 10
RAID is setup with the following parameters; except (select all that apply):
Select one or more:
a. Handling small writes to disk
b. Number of Disks
c. Disk 1
d. Disk 2
The correct answers are: Disk 1, Disk 2
True or False: Locks work through mutual exclusion which preventing multiple threads from entering a critical section.
Select one:
True
False
The correct answer is 'True'.
Question 2
The test-and-set instruction, is also known as:
Select one:
a. Lock mechanism
b. Interrupt
c. atomic exchange
d. Stack
The correct answer is: atomic exchange
Question 3
Spin locks must be all of the following EXCEPT:
Select one:
a. Simple
b. Correct
c. Fair
d. Perform
The correct answer is: Simple
Question 4
True or False: Enabling more concurrency always increases performance.
Select one:
True
False
The correct answer is 'False'.
Question 5
Which line is the first lock in this code?
typedef struct __counter_t {
int value;
pthread_lock_t lock;
} counter_t;
void init(counter_t *c) {
c->value = 0;
Pthread_mutex_init(&c->lock, NULL);
}
void increment(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value++;
Pthread_mutex_unlock(&c->lock);
}
void decrement(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value--;
Pthread_mutex_unlock(&c->lock);
}
int get(counter_t *c) {
Pthread_mutex_lock(&c->lock);
int rc = c->value;
Pthread_mutex_unlock(&c->lock);
return rc;
}
Select one:
a. Pthread_mutex_lock(&c->lock);
b. pthread_lock_t lock;
c. Pthread_mutex_lock(&c->lock);
d. Pthread_mutex_init(&c->lock, NULL)
The correct answer is: pthread_lock_t lock;
Question 6
What is the purpose of this code?
// basic node structure
typedef struct __node_t {
int key;
struct __node_t *next;
} node_t;
// basic list structure (one used per list)
typedef struct __list_t {
node_t *head;
pthread_mutex_t lock;
} list_t;
void List_Init(list_t *L) {
L->head = NULL;
pthread_mutex_init(&L->lock, NULL);
}
int List_Insert(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *new = malloc(sizeof(node_t));
if (new == NULL) {
perror("malloc");
pthread_mutex_unlock(&L->lock);
return -1; // fail
}
new->key = key;
new->next = L->head;
L->head = new;
pthread_mutex_unlock(&L->lock);
return 0; // success
}
int List_Lookup(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *curr = L->head;
while (curr) {
if (curr->key == key) {
pthread_mutex_unlock(&L->lock);
return 0; // success
}
curr = curr->next;
}
pthread_mutex_unlock(&L->lock);
return -1; // failure
}
Select one:
a. Provides a failure path when the code fails.
b. pthread_mutex_unlock(&L->lock)
c. Acquires a lock in the insert routine upon entry, and only releases it on condition
d. Acquires a lock in the insert routine upon entry, and only releases it on exit
The correct answer is: Acquires a lock in the insert routine upon entry, and only releases it on exit
Question 7
True or False: Concurrent data structures can be queues lists and counters only.
Select one:
True
False
The correct answer is 'False'.
Question 8
Not answered
Marked out of 1.00
In this example there are producer and consumer threads the code for a producer puts an integer in the shared buffer loops number of times, and a consumer gets the data out of that shared buffer each time printing it. Which line prints out the shared buffer?
1 void *producer(void *arg) {
2 int i;
3 int loops = (int) arg;
4 for (i = 0; i < loops; i++) {
5 put(i);
6 }
7 }
8
9 void *consumer(void *arg) {
10 int i;
11 while (1) {
12 int tmp = get();
13 printf("%d\n", tmp);
14 }
15 }
Select one:
a. 4 for (i = 0; i < loops; i++) {
b. void *producer(void *arg) {
c. 13 printf("%d\n", tmp);
d. 1 void *producer(void *arg) {
The correct answer is: 13 printf("%d\n", tmp);
Question 9
When checking for a condition in a multi-threaded program, using a while loop is always correct; using an if statement only might be, depending on the semantics of signaling. Thus, always use while and your code will behave as expected. Which condition statement will unlock after the final condition is met?
1 // how many bytes of the heap are free?
2 int bytesLeft = MAX_HEAP_SIZE;
3
4 // need lock and condition too
5 cond_t c;
6 mutex_t m;
7
8 void *
9 allocate(int size) {
10 lock(&m);
11 while (bytesLeft < size)
12 cond_wait(&c, &m);
13 void *ptr = ...; // get mem from heap
14 bytesLeft -= size;
15 unlock(&m);
16 return ptr;
17 }
18
19 void free(void *ptr, int size) {
20 lock(&m);
21 bytesLeft += size;
22 cond_signal(&c); // whom to signal??
23 unlock(&m);
24 }
Select one:
a. 10 lock(&m);
b. 20 lock(&m);
c. 15 unlock(&m)
d. 23 unlock(&m);
The correct answer is: 23 unlock(&m);
Question 10
True or False: Condition variable is an explicit queue that threads can put themselves on when some state of execution (i.e., some condition) is not as desired by waiting on the condition.
Select one:
True
False
The correct answer is 'True'.
Fast File System (FFS) does all of the following except?
Select one:
a. Create Files and Directories
b. Allow for long file names
c. Disk defragmentation
d. Disk layout optimized for performance
The correct answer is: Disk defragmentation
Question 2
RAID technology can take 3 essential designs; which is not:
Select one:
a. RAID Level 0(striping)
b. RAID Level 1 (Parity)
c. RAID Levels 4/5 (parity based redundancy)
d. RAID Level 1 (mirroring)
The correct answer is: RAID Level 1 (Parity)
Question 3
This method is run before the file system is mounted and made available (assumes that no other file-system activity is on-going while it runs); once finished, the on disk file system should be consistent and thus can be made accessible to users.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: FSCK
Question 4
In terms of computer system architecture buses which of the following is not?
Select one:
a. Peripheral
b. Memory
c. CPU
d. Input/output
The correct answer is: CPU
Question 5
True or False: To compute the value of the new parity block there are two methods: subtractive and additive.
Select one:
True
False
The correct answer is 'True'.
Question 6
The primary mechanism used by modern storage systems to preserve data integrity is called the checksum. Some common functions used to compute the checksum are all except:
Select one:
a. Cyclical redundancy check (CRC)
b. Forward error correction and detection
c. XOR-based
d. Addition
The correct answer is: Forward error correction and detection
Question 7
True or False: Internal fragmentation not only wastes space within blocks, but bad for transfer as each block might require a positioning overhead to reach it.
Select one:
True
False
The correct answer is 'True'.
Question 8
The checkpoint region (CR) is defined as:
Select one:
a. Unknown location to begin file lookups
b. Region used to store checkpoints
c. Fixed and known location on disk to begin a file lookup
d. Checkpoints for time hacks
The correct answer is: Fixed and known location on disk to begin a file lookup
Question 9
Which of the following file systems is based on linked lists?
Select one:
a. vsfs
b. NTFS
c. FAT
d. NTFS
The correct answer is: FAT
Question 10
True or False: A DMA engine is essentially a very specific device within a system that can orchestrate transfers between devices and main memory without much CPU intervention.
Select one:
True
False
The correct answer is 'True'.
Question 11
True or False: Two key abstractions of virtual storage are files and directories.
Select one:
True
False
The correct answer is 'True'.
Question 12
True or False: The track depicted in figure 36.1 has 12 sectors, each of which is 512 bytes in size (our typical sector size, recall) and addressed therefore by the numbers 1 through 12.
Select one:
True
False
The correct answer is 'False'.
Question 13
The first failure mode of interest is called a misdirected write. This arises in disk and RAID controllers which write the data to disk correctly, except in the wrong location. A method to address this error is called:
Select one:
a. Cyclical redundancy check (CRC)
b. Zettabyte File System (ZFS)
c. Disk scrubbing
d. Physical identifier (physical ID)
The correct answer is: Physical identifier (physical ID)
Question 14
True or False: In modern systems versus older systems, disks cannot accommodate multiple outstanding requests, and have sophisticated internal schedulers themselves.
Select one:
True
False
The correct answer is 'False'.
Question 15
True or False: A power loss or system crash both present major challenges to a file system attempting to update persistent data structures.
Select one:
True
False
The correct answer is 'True'.
Question 16
Log-structured File Systems are based on all the following except:
Select one:
a. Memory sizes had stabilized
b. File systems were not RAID-aware
c. Existing file systems perform poorly on many common workloads
d. Memory sizes were growing
The correct answer is: Memory sizes had stabilized
Question 17
In this method when updating the disk, before over writing the structures in place, first write down a little note (somewhere else on the disk, in a well-known location) describing what you are about to do. Writing this note is the "write ahead" part, and we write it to a structure that we organize as a "log"; hence, write.
Select one:
a. Journaling
b. File system checker
c. FSCK
d. Super block
The correct answer is: Journaling
Question 18
True or False: Inodes are organized in an array and placed on disk at a random location (or locations).
Select one:
True
False
The correct answer is 'False'.
Question 19
RAID is setup with the following parameters; except (select all that apply):
Select one or more:
a. Handling small writes to disk
b. Number of Disks
c. Disk 1
d. Disk 2
The correct answers are: Disk 1, Disk 2
Question 20
FFS uses APIs which include all EXCEPT:
Select one:
a. read()
b. move()
c. write()
d. open()
The correct answer is: move()
True or False: Garbage in the file system is created when LFS leaves older versions of file structures all over the disk, scattered throughout the disk.
Select one:
True
False
The correct answer is 'True'.
Question 2
Not answered
Marked out of 1.00
The first failure mode of interest is called a misdirected write. This arises in disk and RAID controllers which write the data to disk correctly, except in the wrong location. A method to address this error is called:
Select one:
a. Cyclical redundancy check (CRC)
b. Zettabyte File System (ZFS)
c. Disk scrubbing
d. Physical identifier (physical ID)
The correct answer is: Physical identifier (physical ID)
Question 3
Not answered
Marked out of 1.00
True or False: Lookups simply read the data structure; as long as we can guarantee that no insert is on-going, we can allow many lookups to proceed concurrently.
Select one:
True
False
The correct answer is 'True'.
Question 4
Not answered
Marked out of 1.00
The cache consistency problem actually has 2 sub problems (pick 2):
Select one or more:
a. Flush-on-close
b. Update visibility
c. Stale cache
d. Write buffering
The correct answers are: Update visibility, Stale cache
Question 5
Not answered
Marked out of 1.00
True or False: Inodes are organized in an array and placed on disk at a random location (or locations).
Select one:
True
False
The correct answer is 'False'.
Question 6
Not answered
Marked out of 1.00
True or False: Server recovery after a crash is more complicated. The problem that arises is that callbacks are kept in-memory; thus, when a server reboots, it has no idea which client machine has which files. Thus, upon server restart, each client of the server must realize that the server has crashed and treat all of their cache contents as validated, and (as above) reestablish the validity of a file before using it.
Select one:
True
False
The correct answer is 'False'.
Question 7
Not answered
Marked out of 1.00
To see what is mounted on your system, and at which points, simply run the mount program. What distributed file systems are mounted?
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda8 on /scratch type ext3 (rw)
/dev/sdb1 on /scratch.1 type xfs (rw)
/dev/sda6 on /tmp type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
/dev/sda7 on /var/vice/cache type ext3 (rw)
/dev/sda2 on /usr type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
AFS on /afs type afs (rw)
Select one:
a. tmpfs
b. ext3
c. sysfs
d. AFS
The correct answer is: AFS
Question 8
Not answered
Marked out of 1.00
What is the purpose of this code?
// basic node structure
typedef struct __node_t {
int key;
struct __node_t *next;
} node_t;
// basic list structure (one used per list)
typedef struct __list_t {
node_t *head;
pthread_mutex_t lock;
} list_t;
void List_Init(list_t *L) {
L->head = NULL;
pthread_mutex_init(&L->lock, NULL);
}
int List_Insert(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *new = malloc(sizeof(node_t));
if (new == NULL) {
perror("malloc");
pthread_mutex_unlock(&L->lock);
return -1; // fail
}
new->key = key;
new->next = L->head;
L->head = new;
pthread_mutex_unlock(&L->lock);
return 0; // success
}
int List_Lookup(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *curr = L->head;
while (curr) {
if (curr->key == key) {
pthread_mutex_unlock(&L->lock);
return 0; // success
}
curr = curr->next;
}
pthread_mutex_unlock(&L->lock);
return -1; // failure
}
Select one:
a. Provides a failure path when the code fails.
b. pthread_mutex_unlock(&L->lock)
c. Acquires a lock in the insert routine upon entry, and only releases it on condition
d. Acquires a lock in the insert routine upon entry, and only releases it on exit
The correct answer is: Acquires a lock in the insert routine upon entry, and only releases it on exit
Question 9
Not answered
Marked out of 1.00
FFS uses APIs which include all EXCEPT:
Select one:
a. read()
b. move()
c. write()
d. open()
The correct answer is: move()
Question 10
Not answered
Marked out of 1.00
Multi-Threaded Address Space is composed of all EXCEPT:
Select one:
a. Stack (1)
b. Stack (3)
c. Program code
d. Free
The correct answer is: Stack (3)
Question 11
Not answered
Marked out of 1.00
See Table 37.6. Which disk will get the parity bit P5 to remove the parity bit bottle-nick of RAID 4:
Select one:
a. Disk 0
b. Disk 1
c. Disk 2
d. Disk 3
e. Disk 4
The correct answer is: Disk 4
Question 12
Not answered
Marked out of 1.00
True or False: Condition variable is an explicit queue that threads can put themselves on when some state of execution (i.e., some condition) is not as desired by waiting on the condition.
Select one:
True
False
The correct answer is 'True'.
Question 13
Not answered
Marked out of 1.00
Imagine two producers (Pa and Pb) both calling into put() at roughly the same time. Assume producer Pa gets to run first, and just starts to fill the first buffer entry (fill = 0 at line f1). Before Pa gets a chance to increment the fill counter to 1, it is interrupted. Producer Pb starts to run, and at line f1 it also puts its data into the 0th element of buffer, what happens to the old data?
sem_t empty;
sem_t full;
void *producer(void *arg) {
int i;
for (i = 0; i < loops; i++) {
sem_wait(&empty); // line p1
put(i); // line p2
sem_post(&full); // line p3
}
}
void *consumer(void *arg) {
int i, tmp = 0;
while (tmp != -1) {
sem_wait(&full); // line c1
tmp = get(); // line c2
sem_post(&empty); // line c3
printf("%d\n", tmp);
}
}
int main(int argc, char *argv[]) {
// ...
sem_init(&empty, 0, MAX); // MAX buffers are empty to begin with...
sem_init(&full, 0, 0); // ... and 0 are full
// ...
}
Select one:
a. Backed up
b. Saved
c. Overwritten
d. Value = 0
The correct answer is: Overwritten
Question 14
Not answered
Marked out of 1.00
This code is an example of receiving events via?
int select(int nfds,
fd_set *restrict readfds,
fd_set *restrict writefds,
fd_set *restrict errorfds,
struct timeval *restrict timeout);
Select one:
a. API poll ()
b. API select ()
c. Select
d. Poll
The correct answer is: API select ()
Question 15
Not answered
Marked out of 1.00
How many times will this event loop execute?
e
while (1) {
events = getEvents();
for (x in events)
processEvent(x);
}:
Select one:
a. e
b. 1
c. x
d. Null
The correct answer is: x
Question 16
Not answered
Marked out of 1.00
Which two notions were introduced by AFSv2 (pick 2):
Select one or more:
a. Call back
b. state
c. AFSv2
d. File handle
The correct answers are: Call back, File handle
Question 17
Not answered
Marked out of 1.00
In this method when updating the disk, before over writing the structures in place, first write down a little note (somewhere else on the disk, in a well-known location) describing what you are about to do. Writing this note is the "write ahead" part, and we write it to a structure that we organize as a "log"; hence, write.
Select one:
a. Journaling
b. File system checker
c. FSCK
d. Super block
The correct answer is: Journaling
Question 18
Not answered
Marked out of 1.00
RAID is setup with the following parameters; except (select all that apply):
Select one or more:
a. Handling small writes to disk
b. Number of Disks
c. Disk 1
d. Disk 2
The correct answers are: Disk 1, Disk 2
Question 19
Not answered
Marked out of 1.00
When does the deadlock occur in this code?
Thread 1: Thread 2:
lock(L1); lock(L2);
lock(L2); lock(L1);
Select one:
a. Thread 1 grabs lock L1
b. Thread 2 grabs L2 and tries to acquire L1
c. Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
d. Deadlock does not necessarily occur
The correct answer is: Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
Question 20
Not answered
Marked out of 1.00
Imagine two producers (Pa and Pb) both calling into put() at roughly the same time. Assume producer Pa gets to run first, and just starts to fill the first buffer entry (fill = 0 at line f1). Before Pa gets a chance to increment the fill counter to 1, it is interrupted. Producer Pb starts to run, and at line f1 it also puts its data into the 0th element of buffer, what happens to the old data?
sem_t empty;
sem_t full;
void *producer(void *arg) {
int i;
for (i = 0; i < loops; i++) {
sem_wait(&empty); // line p1
put(i); // line p2
sem_post(&full); // line p3
}
}
void *consumer(void *arg) {
int i, tmp = 0;
while (tmp != -1) {
sem_wait(&full); // line c1
tmp = get(); // line c2
sem_post(&empty); // line c3
printf("%d\n", tmp);
}
}
int main(int argc, char *argv[]) {
// ...
sem_init(&empty, 0, MAX); // MAX buffers are empty to begin with...
sem_init(&full, 0, 0); // ... and 0 are full
// ...
}
Select one:
a. Backed up
b. Saved
c. Overwritten
d. Value = 0
The correct answer is: Overwritten
Question 21
Not answered
Marked out of 1.00
This method is run before the file system is mounted and made available (assumes that no other file-system activity is on-going while it runs); once finished, the on disk file system should be consistent and thus can be made accessible to users.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: FSCK
Question 22
Not answered
Marked out of 1.00
The primary mechanism used by modern storage systems to preserve data integrity is called the checksum. Some common functions used to compute the checksum are all except:
Select one:
a. Cyclical redundancy check (CRC)
b. Forward error correction and detection
c. XOR-based
d. Addition
The correct answer is: Forward error correction and detection
Question 23
Not answered
Marked out of 1.00
Log-structured File Systems are based on all the following except:
Select one:
a. Memory sizes had stabilized
b. File systems were not RAID-aware
c. Existing file systems perform poorly on many common workloads
d. Memory sizes were growing
The correct answer is: Memory sizes had stabilized
Question 24
Not answered
Marked out of 1.00
Fast File System (FFS) does all of the following except?
Select one:
a. Create Files and Directories
b. Allow for long file names
c. Disk defragmentation
d. Disk layout optimized for performance
The correct answer is: Disk defragmentation
Question 25
Not answered
Marked out of 1.00
Which of the following file systems is based on linked lists?
Select one:
a. vsfs
b. NTFS
c. FAT
d. NTFS
The correct answer is: FAT
Question 26
Not answered
Marked out of 1.00
Top 20 Critical Control 15: Controlled Access Based on the Need to Know is associated with which Associated NIST Special Publication 800-53, Revision 3, and Priority 1 Controls?
Select one:
a. CM-8 (a, c, d, 2, 3, 4), PM-5, PM-6
b. CA-2 (1, 2), CA-7 (1, 2), RA-3, RA-5 (4, 9), SA-12 (7)
c. AC-1, AC-2 (b, c), AC-3 (4), AC-4, AC-6, MP-3, RA-2 (a)
d. SC-18, SC-26, SI-3 (a, b, 1, 2, 5, 6)
The correct answer is: AC-1, AC-2 (b, c), AC-3 (4), AC-4, AC-6, MP-3, RA-2 (a)
Question 27
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); lookup what control CA-2 means:
Select one:
a. INTERNAL SYSTEM CONNECTION
b. BOUNDARY PROTECTION
c. SECURITY ASSESSMENT
d. PENETRATION TESTING
The correct answer is: SECURITY ASSESSMENT
Question 28
Not answered
Marked out of 1.00
True or False: NFSv2 is a stateless protocol which means the server tracks client states.
Select one:
True
False
The correct answer is 'False'.
Question 29
Not answered
Marked out of 1.00
True or False: Warning banners are not a control on the SANS SCORE checklist.
Select one:
True
False
The correct answer is 'False'.
Question 30
Not answered
Marked out of 1.00
Linux command used to create Boot and Rescue Disk which creates a boot disk manually.
Select one:
a. Makedisk
b. TCPwrappers
c. Xinedtd
d. Mkbootdisk
The correct answer is: Mkbootdisk
Question 31
Not answered
Marked out of 1.00
True or False: File systems have three aspects: data structures, access methods, and data.
Select one:
True
False
The correct answer is 'False'.
Question 32
Not answered
Marked out of 1.00
What command would you change to switch the letter printed by T2:
Time increases in the downwards direction, and each column shows when a different thread (the main one, or T1, or T2) is running:
main starts running
main prints "main: begin"
main creates thread T1
main creates thread T2
main waits for T1
T1 runs
T1 prints "A"
T1 returns
main waits for T2
T2 runs
T2 prints "B"
T2 returns
main prints "main: end"
Select one:
a. T1 = T2
b. T1 prints “A” or “B”
c. T2 prints “A”
d. T2 = T1
The correct answer is: T2 prints “A”
Question 33
Not answered
Marked out of 1.00
True or False: Locks work through mutual exclusion which preventing multiple threads from entering a critical section.
Select one:
True
False
The correct answer is 'True'.
Question 34
Not answered
Marked out of 1.00
True or False: Each thread has its own stack.
Select one:
True
False
The correct answer is 'True'.
Question 35
Not answered
Marked out of 1.00
True or False: To compute the value of the new parity block there are two methods: subtractive and additive.
Select one:
True
False
The correct answer is 'True'.
Question 36
Not answered
Marked out of 1.00
True or False: A DMA engine is essentially a very specific device within a system that can orchestrate transfers between devices and main memory without much CPU intervention.
Select one:
True
False
The correct answer is 'True'.
Question 37
Not answered
Marked out of 1.00
True or False: In modern systems versus older systems, disks cannot accommodate multiple outstanding requests, and have sophisticated internal schedulers themselves.
Select one:
True
False
The correct answer is 'False'.
Question 38
Not answered
Marked out of 1.00
When checking for a condition in a multi-threaded program, using a while loop is always correct; using an if statement only might be, depending on the semantics of signaling. Thus, always use while and your code will behave as expected. Which condition statement will unlock after the final condition is met?
1 // how many bytes of the heap are free?
2 int bytesLeft = MAX_HEAP_SIZE;
3
4 // need lock and condition too
5 cond_t c;
6 mutex_t m;
7
8 void *
9 allocate(int size) {
10 lock(&m);
11 while (bytesLeft < size)
12 cond_wait(&c, &m);
13 void *ptr = ...; // get mem from heap
14 bytesLeft -= size;
15 unlock(&m);
16 return ptr;
17 }
18
19 void free(void *ptr, int size) {
20 lock(&m);
21 bytesLeft += size;
22 cond_signal(&c); // whom to signal??
23 unlock(&m);
24 }
Select one:
a. 10 lock(&m);
b. 20 lock(&m);
c. 15 unlock(&m)
d. 23 unlock(&m);
The correct answer is: 23 unlock(&m);
Question 39
Not answered
Marked out of 1.00
True or False: Internal fragmentation not only wastes space within blocks, but bad for transfer as each block might require a positioning overhead to reach it.
Select one:
True
False
The correct answer is 'True'.
Question 40
Not answered
Marked out of 1.00
The protocol design of AFS is particularly important in:
Select one:
a. Workstation caching
b. minimizing server interactions
c. single namespace
d. access control lists
The correct answer is: minimizing server interactions
Question 41
Not answered
Marked out of 1.00
RAID technology can take 3 essential designs; which is not:
Select one:
a. RAID Level 0(striping)
b. RAID Level 1 (Parity)
c. RAID Levels 4/5 (parity based redundancy)
d. RAID Level 1 (mirroring)
The correct answer is: RAID Level 1 (Parity)
Question 42
Not answered
Marked out of 1.00
How many times will this event loop execute?
e
while (1) {
events = getEvents();
for (x in events)
processEvent(x);
}:
Select one:
a. e
b. 1
c. x
d. Null
The correct answer is: x
Question 43
Not answered
Marked out of 1.00
True or False: In a multi-threaded application, the developer has full control over what is scheduled at a given moment in time; rather, the programmer simply creates threads and then hopes that the underlying OS schedules them in a reasonable manner across available CPUs.
Select one:
True
False
The correct answer is 'False'.
Question 44
Not answered
Marked out of 1.00
Top 20 Critical Security Controls for Linux includes all the following except:
Select one:
a. Bzip2
b. tar
c. gzip
d. rsynch
The correct answer is: rsynch
Question 45
Not answered
Marked out of 1.00
The checkpoint region (CR) is defined as:
Select one:
a. Unknown location to begin file lookups
b. Region used to store checkpoints
c. Fixed and known location on disk to begin a file lookup
d. Checkpoints for time hacks
The correct answer is: Fixed and known location on disk to begin a file lookup
Question 46
Not answered
Marked out of 1.00
POSIX threads library are those for providing mutual exclusion to a critical section via:
Select one:
a. API’s
b. Multi-threaded
c. locks
d. Keys
The correct answer is: locks
Question 47
Not answered
Marked out of 1.00
True or False: To use a condition variable, one has to in addition have a lock that is not associated with this condition.
Select one:
True
False
The correct answer is 'False'.
Question 48
Not answered
Marked out of 1.00
Which line is the first lock in this code?
typedef struct __counter_t {
int value;
pthread_lock_t lock;
} counter_t;
void init(counter_t *c) {
c->value = 0;
Pthread_mutex_init(&c->lock, NULL);
}
void increment(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value++;
Pthread_mutex_unlock(&c->lock);
}
void decrement(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value--;
Pthread_mutex_unlock(&c->lock);
}
int get(counter_t *c) {
Pthread_mutex_lock(&c->lock);
int rc = c->value;
Pthread_mutex_unlock(&c->lock);
return rc;
}
Select one:
a. Pthread_mutex_lock(&c->lock);
b. pthread_lock_t lock;
c. Pthread_mutex_lock(&c->lock);
d. Pthread_mutex_init(&c->lock, NULL)
The correct answer is: pthread_lock_t lock;
Question 49
Not answered
Marked out of 1.00
What is the purpose of this code?
// basic node structure
typedef struct __node_t {
int key;
struct __node_t *next;
} node_t;
// basic list structure (one used per list)
typedef struct __list_t {
node_t *head;
pthread_mutex_t lock;
} list_t;
void List_Init(list_t *L) {
L->head = NULL;
pthread_mutex_init(&L->lock, NULL);
}
int List_Insert(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *new = malloc(sizeof(node_t));
if (new == NULL) {
perror("malloc");
pthread_mutex_unlock(&L->lock);
return -1; // fail
}
new->key = key;
new->next = L->head;
L->head = new;
pthread_mutex_unlock(&L->lock);
return 0; // success
}
int List_Lookup(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *curr = L->head;
while (curr) {
if (curr->key == key) {
pthread_mutex_unlock(&L->lock);
return 0; // success
}
curr = curr->next;
}
pthread_mutex_unlock(&L->lock);
return -1; // failure
}
Select one:
a. Provides a failure path when the code fails.
b. pthread_mutex_unlock(&L->lock)
c. Acquires a lock in the insert routine upon entry, and only releases it on condition
d. Acquires a lock in the insert routine upon entry, and only releases it on exit
The correct answer is: Acquires a lock in the insert routine upon entry, and only releases it on exit
Question 50
Not answered
Marked out of 1.00
True or False: Lookups simply read the data structure; as long as we can guarantee that no insert is on-going, we can allow many lookups to proceed concurrently.
Select one:
True
False
The correct answer is 'True'.
True or False: Concurrent data structures can be queues lists and counters only.
Select one:
True
False
The correct answer is 'False'.
Question 2
Not answered
Marked out of 1.00
In this method an additional back pointer is added to every block in the system; for example, each data block has a reference to the inode to which it belongs. When accessing a file, the file system can determine if the file is consistent by checking if the forward pointer (e.g., the address in the inode or direct block) points to a block that refers back to it.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: Backpointer-based consistency
Question 3
Not answered
Marked out of 1.00
True or False: Locks work through mutual exclusion which preventing multiple threads from entering a critical section.
Select one:
True
False
The correct answer is 'True'.
Question 4
Not answered
Marked out of 1.00
Fast File System (FFS) does all of the following except?
Select one:
a. Create Files and Directories
b. Allow for long file names
c. Disk defragmentation
d. Disk layout optimized for performance
The correct answer is: Disk defragmentation
Question 5
Not answered
Marked out of 1.00
True or False: File systems have three aspects: data structures, access methods, and data.
Select one:
True
False
The correct answer is 'False'.
Question 6
Not answered
Marked out of 1.00
In terms of computer system architecture buses which of the following is not?
Select one:
a. Peripheral
b. Memory
c. CPU
d. Input/output
The correct answer is: CPU
Question 7
Not answered
Marked out of 1.00
True or False: The track depicted in figure 36.1 has 12 sectors, each of which is 512 bytes in size (our typical sector size, recall) and addressed therefore by the numbers 1 through 12.
Select one:
True
False
The correct answer is 'False'.
Question 8
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); lookup least privilege:
Select one:
a. LP-3
b. AC-1
c. AC-8
d. LP-1
The correct answer is: AC-8
Question 9
Not answered
Marked out of 1.00
Thread 0 holds the lock (i.e., it has called sem wait() but not yet called sem post()), and another thread (thread 1, say) tries to enter the critical section by calling sem wait(). In this case thread 1 must wait (putting itself to sleep and relinquishing the processor)?
Select one:
a. thread 1will find that the value of the semaphore is -1
b. thread 1will find that the value of the semaphore is 1
c. thread 1will find that the value of the semaphore is 0
d. thread 1will find that the value of the semaphore is 2
The correct answer is: thread 1will find that the value of the semaphore is 0
Question 10
Not answered
Marked out of 1.00
True or False: The track depicted in figure 36.1 has 12 sectors, each of which is 512 bytes in size (our typical sector size, recall) and addressed therefore by the numbers 1 through 12.
Select one:
True
False
The correct answer is 'False'.
Question 11
Not answered
Marked out of 1.00
Data or I/O transfer to and from a disk is always faster when it is done?
Select one:
a. Direct
b. Random
c. SSTF
d. Sequentially
The correct answer is: Sequentially
Question 12
Not answered
Marked out of 1.00
RAID is setup with the following parameters; except (select all that apply):
Select one or more:
a. Handling small writes to disk
b. Number of Disks
c. Disk 1
d. Disk 2
The correct answers are: Disk 1, Disk 2
Question 13
Not answered
Marked out of 1.00
True or False: SANS SCORE checklist recommends Telnet is for remote access.
Select one:
True
False
The correct answer is 'False'.
Question 14
Not answered
Marked out of 1.00
Which line is the first lock in this code?
typedef struct __counter_t {
int value;
pthread_lock_t lock;
} counter_t;
void init(counter_t *c) {
c->value = 0;
Pthread_mutex_init(&c->lock, NULL);
}
void increment(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value++;
Pthread_mutex_unlock(&c->lock);
}
void decrement(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value--;
Pthread_mutex_unlock(&c->lock);
}
int get(counter_t *c) {
Pthread_mutex_lock(&c->lock);
int rc = c->value;
Pthread_mutex_unlock(&c->lock);
return rc;
}
Select one:
a. Pthread_mutex_lock(&c->lock);
b. pthread_lock_t lock;
c. Pthread_mutex_lock(&c->lock);
d. Pthread_mutex_init(&c->lock, NULL)
The correct answer is: pthread_lock_t lock;
Question 15
Not answered
Marked out of 1.00
The following stores the state of each thread:
Select one:
a. TCB
b. PCB
c. T1
d. T2
The correct answer is: TCB
Question 16
Not answered
Marked out of 1.00
True or False: opening, reading, or writing a file incur I/O operations.
Select one:
True
False
The correct answer is 'True'.
Question 17
Not answered
Marked out of 1.00
To see the metadata for certain files we can issue the following commands?
Select one:
a. lseek() or stat ()
b. SEEK_SET or SET_CUR
c. stat() or fstat()
d. Input/output
The correct answer is: stat() or fstat()
Question 18
Not answered
Marked out of 1.00
True or False: Atomicity violation bugs and order violation bugs are examples of Non-deadlock bugs.
Select one:
True
False
The correct answer is 'True'.
Question 19
Not answered
Marked out of 1.00
True or False: All Linux systems support system logging.
Select one:
True
False
The correct answer is 'True'.
Question 20
Not answered
Marked out of 1.00
True or False: A power loss or system crash both present major challenges to a file system attempting to update persistent data structures.
Select one:
True
False
The correct answer is 'True'.
Question 21
Not answered
Marked out of 1.00
RAID technology is evaluated along 3 axis; which is not:
Select one:
a. Capacity
b. N Disks
c. Performance
d. Reliability
The correct answer is: N Disks
Question 22
Not answered
Marked out of 1.00
True or False: Garbage in the file system is created when LFS leaves older versions of file structures all over the disk, scattered throughout the disk.
Select one:
True
False
The correct answer is 'True'.
Question 23
Not answered
Marked out of 1.00
True or False: In modern systems versus older systems, disks cannot accommodate multiple outstanding requests, and have sophisticated internal schedulers themselves.
Select one:
True
False
The correct answer is 'False'.
Question 24
Not answered
Marked out of 1.00
The test-and-set instruction, is also known as:
Select one:
a. Lock mechanism
b. Interrupt
c. atomic exchange
d. Stack
The correct answer is: atomic exchange
Question 25
Not answered
Marked out of 1.00
True or False: UDP is more reliable than TCP because it is connection oriented communications.
Select one:
True
False
The correct answer is 'False'.
Question 26
Not answered
Marked out of 1.00
True or False: The entity-relationship (E-R) data model perceives the real world as consisting of basic objects, called entities, NOT the relationships among these objects.
Select one:
True
False
The correct answer is 'False'.
Question 27
Not answered
Marked out of 1.00
Client-side file system. A client application issues system calls to the client-side file system; which is not:
Select one:
a. mkdir()
b. read()
c. write()
d. disk write ()
The correct answer is: disk write ()
Question 28
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); lookup what control CM-8 means:
Select one:
a. CONFIGURATION MANAGEMENT
b. INTERNAL SYSTEM CONNECTION
c. INFORMATION SYSTEM COMPONENT INVENTORY
d. SECURITY ASSESSMENT
The correct answer is: INFORMATION SYSTEM COMPONENT INVENTORY
Question 29
Not answered
Marked out of 1.00
True or False: opening, reading, or writing a file incur I/O operations.
Select one:
True
False
The correct answer is 'True'.
Question 30
Not answered
Marked out of 1.00
In this example there are producer and consumer threads the code for a producer puts an integer in the shared buffer loops number of times, and a consumer gets the data out of that shared buffer each time printing it. Which line prints out the shared buffer?
1 void *producer(void *arg) {
2 int i;
3 int loops = (int) arg;
4 for (i = 0; i < loops; i++) {
5 put(i);
6 }
7 }
8
9 void *consumer(void *arg) {
10 int i;
11 while (1) {
12 int tmp = get();
13 printf("%d\n", tmp);
14 }
15 }
Select one:
a. 4 for (i = 0; i < loops; i++) {
b. void *producer(void *arg) {
c. 13 printf("%d\n", tmp);
d. 1 void *producer(void *arg) {
The correct answer is: 13 printf("%d\n", tmp);
Question 31
Not answered
Marked out of 1.00
True or False: AFS is whole-file caching on the local disk of the client machine that is accessing a file.
Select one:
True
False
The correct answer is 'True'.
Question 32
Not answered
Marked out of 1.00
The primary mechanism used by modern storage systems to preserve data integrity is called the checksum. Some common functions used to compute the checksum are all except:
Select one:
a. Cyclical redundancy check (CRC)
b. Forward error correction and detection
c. XOR-based
d. Addition
The correct answer is: Forward error correction and detection
Question 33
Not answered
Marked out of 1.00
Data or I/O transfer to and from a disk is always faster when it is done?
Select one:
a. Direct
b. Random
c. SSTF
d. Sequentially
The correct answer is: Sequentially
Question 34
Not answered
Marked out of 1.00
In the single threaded address space you will find all EXCEPT:
Select one:
a. Heap
b. Program code
c. T1
d. Stack
The correct answer is: T1
Question 35
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); Least privilege can refer to operating systems.
Select one:
True
False
The correct answer is 'True'.
Question 36
Not answered
Marked out of 1.00
Thread 0 holds the lock (i.e., it has called sem wait() but not yet called sem post()), and another thread (thread 1, say) tries to enter the critical section by calling sem wait(). In this case thread 1 must wait (putting itself to sleep and relinquishing the processor)?
Select one:
a. thread 1will find that the value of the semaphore is -1
b. thread 1will find that the value of the semaphore is 1
c. thread 1will find that the value of the semaphore is 0
d. thread 1will find that the value of the semaphore is 2
The correct answer is: thread 1will find that the value of the semaphore is 0
Question 37
Not answered
Marked out of 1.00
Log-structured File Systems are based on all the following except:
Select one:
a. Memory sizes had stabilized
b. File systems were not RAID-aware
c. Existing file systems perform poorly on many common workloads
d. Memory sizes were growing
The correct answer is: Memory sizes had stabilized
Question 38
Not answered
Marked out of 1.00
When the file is opened for the first time, the client-side file system sends a The LOOKUP request message from the client side for the pathname ( /home/remzi/foo.txt), the client would send three LOOKUPs which will not include:
Select one:
a. home in the directory
b. remzi in home
c. foo.txt
d. foo.txt in remzi
The correct answer is: foo.txt
Question 39
Not answered
Marked out of 1.00
Spin locks must be all of the following EXCEPT:
Select one:
a. Simple
b. Correct
c. Fair
d. Perform
The correct answer is: Simple
Question 40
Not answered
Marked out of 1.00
True or False: Enabling more concurrency always increases performance.
Select one:
True
False
The correct answer is 'False'.
Question 41
Not answered
Marked out of 1.00
What capability allows multiple people to use one system at the same time?
Select one:
a. Multi-thread
b. Multi-user
c. Distributed Processing
d. Multitasking
The correct answer is: Multi-user
Question 42
Not answered
Marked out of 1.00
When does the deadlock occur in this code?
Thread 1: Thread 2:
lock(L1); lock(L2);
lock(L2); lock(L1);
Select one:
a. Thread 1 grabs lock L1
b. Thread 2 grabs L2 and tries to acquire L1
c. Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
d. Deadlock does not necessarily occur
The correct answer is: Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
Question 43
Not answered
Marked out of 1.00
Free space management in modern file systems can be accomplished using each of these methods EXCEPT?
Select one:
a. free lists
b. bitmaps
c. pre-allocation policy
d. binary tree
The correct answer is: free lists
Question 44
Not answered
Marked out of 1.00
The following are all key concurrency terms EXCEPT:
Select one:
a. Mutual Exclusion
b. Non-Critical Section
c. Race Condition
d. Intermediate
The correct answer is: Non-Critical Section
Question 45
Not answered
Marked out of 1.00
True or False: Two key abstractions of virtual storage are files and directories.
Select one:
True
False
The correct answer is 'True'.
Question 46
Not answered
Marked out of 1.00
What command would you change to switch the letter printed by T2:
Time increases in the downwards direction, and each column shows when a different thread (the main one, or T1, or T2) is running:
main starts running
main prints "main: begin"
main creates thread T1
main creates thread T2
main waits for T1
T1 runs
T1 prints "A"
T1 returns
main waits for T2
T2 runs
T2 prints "B"
T2 returns
main prints "main: end"
Select one:
a. T1 = T2
b. T1 prints “A” or “B”
c. T2 prints “A”
d. T2 = T1
The correct answer is: T2 prints “A”
Question 47
Not answered
Marked out of 1.00
Order violations occur assuming mThread is initially set to NULL; it is assumed that the following is true:
Thread 1::
void init() {
...
mThread = PR_CreateThread(mMain, ...);
...
}
Thread 2::
void mMain(...) {
...
mState = mThread->State;
...
}
Select one:
a. B should always be executed before A
b. A and B should execute simultaneously
c. The order does not matter
d. A should always be executed before B
The correct answer is: A should always be executed before B
Question 48
Not answered
Marked out of 1.00
UDP uses all of the following except:
Select one:
a. Checksum
b. Sockets
c. stat() or fstat()
d. Datagrams
The correct answer is: stat() or fstat()
Question 49
Not answered
Marked out of 1.00
Rate the difficulty of the course so far:
Select one:
a. Too easy
b. Easy
c. Just Right
d. Too Hard
The correct answers are: Too easy, Easy, Just Right, Too Hard
Question 50
Not answered
Marked out of 1.00
The following are all key concurrency terms EXCEPT:
Select one:
a. Mutual Exclusion
b. Non-Critical Section
c. Race Condition
d. Intermediate
The correct answer is: Non-Critical Section
Free space management in modern file systems can be accomplished using each of these methods EXCEPT?
Select one:
a. free lists
b. bitmaps
c. pre-allocation policy
d. binary tree
The correct answer is: free lists
Question 2
Not answered
Marked out of 1.00
True or False: UDP is more reliable than TCP because it is connection oriented communications.
Select one:
True
False
The correct answer is 'False'.
Question 3
Not answered
Marked out of 1.00
True or False: A DMA engine is essentially a very specific device within a system that can orchestrate transfers between devices and main memory without much CPU intervention.
Select one:
True
False
The correct answer is 'True'.
Question 4
Not answered
Marked out of 1.00
In this example there are producer and consumer threads the code for a producer puts an integer in the shared buffer loops number of times, and a consumer gets the data out of that shared buffer each time printing it. Which line prints out the shared buffer?
1 void *producer(void *arg) {
2 int i;
3 int loops = (int) arg;
4 for (i = 0; i < loops; i++) {
5 put(i);
6 }
7 }
8
9 void *consumer(void *arg) {
10 int i;
11 while (1) {
12 int tmp = get();
13 printf("%d\n", tmp);
14 }
15 }
Select one:
a. 4 for (i = 0; i < loops; i++) {
b. void *producer(void *arg) {
c. 13 printf("%d\n", tmp);
d. 1 void *producer(void *arg) {
The correct answer is: 13 printf("%d\n", tmp);
Question 5
Not answered
Marked out of 1.00
True or False: Garbage in the file system is created when LFS leaves older versions of file structures all over the disk, scattered throughout the disk.
Select one:
True
False
The correct answer is 'True'.
Question 6
Not answered
Marked out of 1.00
True or False: File systems have three aspects: data structures, access methods, and data.
Select one:
True
False
The correct answer is 'False'.
Question 7
Not answered
Marked out of 1.00
What is the purpose of this code?
// basic node structure
typedef struct __node_t {
int key;
struct __node_t *next;
} node_t;
// basic list structure (one used per list)
typedef struct __list_t {
node_t *head;
pthread_mutex_t lock;
} list_t;
void List_Init(list_t *L) {
L->head = NULL;
pthread_mutex_init(&L->lock, NULL);
}
int List_Insert(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *new = malloc(sizeof(node_t));
if (new == NULL) {
perror("malloc");
pthread_mutex_unlock(&L->lock);
return -1; // fail
}
new->key = key;
new->next = L->head;
L->head = new;
pthread_mutex_unlock(&L->lock);
return 0; // success
}
int List_Lookup(list_t *L, int key) {
pthread_mutex_lock(&L->lock);
node_t *curr = L->head;
while (curr) {
if (curr->key == key) {
pthread_mutex_unlock(&L->lock);
return 0; // success
}
curr = curr->next;
}
pthread_mutex_unlock(&L->lock);
return -1; // failure
}
Select one:
a. Provides a failure path when the code fails.
b. pthread_mutex_unlock(&L->lock)
c. Acquires a lock in the insert routine upon entry, and only releases it on condition
d. Acquires a lock in the insert routine upon entry, and only releases it on exit
The correct answer is: Acquires a lock in the insert routine upon entry, and only releases it on exit
Question 8
Not answered
Marked out of 1.00
What command would you change to switch the letter printed by T2:
Time increases in the downwards direction, and each column shows when a different thread (the main one, or T1, or T2) is running:
main starts running
main prints "main: begin"
main creates thread T1
main creates thread T2
main waits for T1
T1 runs
T1 prints "A"
T1 returns
main waits for T2
T2 runs
T2 prints "B"
T2 returns
main prints "main: end"
Select one:
a. T1 = T2
b. T1 prints “A” or “B”
c. T2 prints “A”
d. T2 = T1
The correct answer is: T2 prints “A”
Question 9
Not answered
Marked out of 1.00
True or False: Enabling more concurrency always increases performance.
Select one:
True
False
The correct answer is 'False'.
Question 10
Not answered
Marked out of 1.00
True or False: To use a condition variable, one has to in addition have a lock that is not associated with this condition.
Select one:
True
False
The correct answer is 'False'.
Question 11
Not answered
Marked out of 1.00
True or False: Two key abstractions of virtual storage are files and directories.
Select one:
True
False
The correct answer is 'True'.
Question 12
Not answered
Marked out of 1.00
When the file is opened for the first time, the client-side file system sends a The LOOKUP request message from the client side for the pathname ( /home/remzi/foo.txt), the client would send three LOOKUPs which will not include:
Select one:
a. home in the directory
b. remzi in home
c. foo.txt
d. foo.txt in remzi
The correct answer is: foo.txt
Question 13
Not answered
Marked out of 1.00
Fast File System (FFS) does all of the following except?
Select one:
a. Create Files and Directories
b. Allow for long file names
c. Disk defragmentation
d. Disk layout optimized for performance
The correct answer is: Disk defragmentation
Question 14
Not answered
Marked out of 1.00
The following stores the state of each thread:
Select one:
a. TCB
b. PCB
c. T1
d. T2
The correct answer is: TCB
Question 15
Not answered
Marked out of 1.00
When checking for a condition in a multi-threaded program, using a while loop is always correct; using an if statement only might be, depending on the semantics of signaling. Thus, always use while and your code will behave as expected. Which condition statement will unlock after the final condition is met?
1 // how many bytes of the heap are free?
2 int bytesLeft = MAX_HEAP_SIZE;
3
4 // need lock and condition too
5 cond_t c;
6 mutex_t m;
7
8 void *
9 allocate(int size) {
10 lock(&m);
11 while (bytesLeft < size)
12 cond_wait(&c, &m);
13 void *ptr = ...; // get mem from heap
14 bytesLeft -= size;
15 unlock(&m);
16 return ptr;
17 }
18
19 void free(void *ptr, int size) {
20 lock(&m);
21 bytesLeft += size;
22 cond_signal(&c); // whom to signal??
23 unlock(&m);
24 }
Select one:
a. 10 lock(&m);
b. 20 lock(&m);
c. 15 unlock(&m)
d. 23 unlock(&m);
The correct answer is: 23 unlock(&m);
Question 16
Not answered
Marked out of 1.00
True or False: All Linux systems support system logging.
Select one:
True
False
The correct answer is 'True'.
Question 17
Not answered
Marked out of 1.00
Which line is the first lock in this code?
typedef struct __counter_t {
int value;
pthread_lock_t lock;
} counter_t;
void init(counter_t *c) {
c->value = 0;
Pthread_mutex_init(&c->lock, NULL);
}
void increment(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value++;
Pthread_mutex_unlock(&c->lock);
}
void decrement(counter_t *c) {
Pthread_mutex_lock(&c->lock);
c->value--;
Pthread_mutex_unlock(&c->lock);
}
int get(counter_t *c) {
Pthread_mutex_lock(&c->lock);
int rc = c->value;
Pthread_mutex_unlock(&c->lock);
return rc;
}
Select one:
a. Pthread_mutex_lock(&c->lock);
b. pthread_lock_t lock;
c. Pthread_mutex_lock(&c->lock);
d. Pthread_mutex_init(&c->lock, NULL)
The correct answer is: pthread_lock_t lock;
Question 18
Not answered
Marked out of 1.00
Rate the difficulty of the course so far:
Select one:
a. Too easy
b. Easy
c. Just Right
d. Too Hard
The correct answers are: Too easy, Easy, Just Right, Too Hard
Question 19
Not answered
Marked out of 1.00
True or False: Warning banners are not a control on the SANS SCORE checklist.
Select one:
True
False
The correct answer is 'False'.
Question 20
Not answered
Marked out of 1.00
Which of the following file systems is based on linked lists?
Select one:
a. vsfs
b. NTFS
c. FAT
d. NTFS
The correct answer is: FAT
Question 21
Not answered
Marked out of 1.00
True or False: Inodes are organized in an array and placed on disk at a random location (or locations).
Select one:
True
False
The correct answer is 'False'.
Question 22
Not answered
Marked out of 1.00
In this method an additional back pointer is added to every block in the system; for example, each data block has a reference to the inode to which it belongs. When accessing a file, the file system can determine if the file is consistent by checking if the forward pointer (e.g., the address in the inode or direct block) points to a block that refers back to it.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: Backpointer-based consistency
Question 23
Not answered
Marked out of 1.00
Client-side file system. A client application issues system calls to the client-side file system; which is not:
Select one:
a. mkdir()
b. read()
c. write()
d. disk write ()
The correct answer is: disk write ()
Question 24
Not answered
Marked out of 1.00
RAID is setup with the following parameters; except (select all that apply):
Select one or more:
a. Handling small writes to disk
b. Number of Disks
c. Disk 1
d. Disk 2
The correct answers are: Disk 1, Disk 2
Question 25
Not answered
Marked out of 1.00
True or False: Enabling more concurrency always increases performance.
Select one:
True
False
The correct answer is 'False'.
Question 26
Not answered
Marked out of 1.00
When checking for a condition in a multi-threaded program, using a while loop is always correct; using an if statement only might be, depending on the semantics of signaling. Thus, always use while and your code will behave as expected. Which condition statement will unlock after the final condition is met?
1 // how many bytes of the heap are free?
2 int bytesLeft = MAX_HEAP_SIZE;
3
4 // need lock and condition too
5 cond_t c;
6 mutex_t m;
7
8 void *
9 allocate(int size) {
10 lock(&m);
11 while (bytesLeft < size)
12 cond_wait(&c, &m);
13 void *ptr = ...; // get mem from heap
14 bytesLeft -= size;
15 unlock(&m);
16 return ptr;
17 }
18
19 void free(void *ptr, int size) {
20 lock(&m);
21 bytesLeft += size;
22 cond_signal(&c); // whom to signal??
23 unlock(&m);
24 }
Select one:
a. 10 lock(&m);
b. 20 lock(&m);
c. 15 unlock(&m)
d. 23 unlock(&m);
The correct answer is: 23 unlock(&m);
Question 27
Not answered
Marked out of 1.00
True or False: A DMA engine is essentially a very specific device within a system that can orchestrate transfers between devices and main memory without much CPU intervention.
Select one:
True
False
The correct answer is 'True'.
Question 28
Not answered
Marked out of 1.00
The cache consistency problem actually has 2 sub problems (pick 2):
Select one or more:
a. Flush-on-close
b. Update visibility
c. Stale cache
d. Write buffering
The correct answers are: Update visibility, Stale cache
Question 29
Not answered
Marked out of 1.00
RAID technology is evaluated along 3 axis; which is not:
Select one:
a. Capacity
b. N Disks
c. Performance
d. Reliability
The correct answer is: N Disks
Question 30
Not answered
Marked out of 1.00
Order violations occur assuming mThread is initially set to NULL; it is assumed that the following is true:
Thread 1::
void init() {
...
mThread = PR_CreateThread(mMain, ...);
...
}
Thread 2::
void mMain(...) {
...
mState = mThread->State;
...
}
Select one:
a. B should always be executed before A
b. A and B should execute simultaneously
c. The order does not matter
d. A should always be executed before B
The correct answer is: A should always be executed before B
Question 31
Not answered
Marked out of 1.00
True or False: Internal fragmentation not only wastes space within blocks, but bad for transfer as each block might require a positioning overhead to reach it.
Select one:
True
False
The correct answer is 'True'.
Question 32
Not answered
Marked out of 1.00
FFS uses APIs which include all EXCEPT:
Select one:
a. read()
b. move()
c. write()
d. open()
The correct answer is: move()
Question 33
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); lookup what control CM-8 means:
Select one:
a. CONFIGURATION MANAGEMENT
b. INTERNAL SYSTEM CONNECTION
c. INFORMATION SYSTEM COMPONENT INVENTORY
d. SECURITY ASSESSMENT
The correct answer is: INFORMATION SYSTEM COMPONENT INVENTORY
Question 34
Not answered
Marked out of 1.00
True or False: In a multi-threaded application, the developer has full control over what is scheduled at a given moment in time; rather, the programmer simply creates threads and then hopes that the underlying OS schedules them in a reasonable manner across available CPUs.
Select one:
True
False
The correct answer is 'False'.
Question 35
Not answered
Marked out of 1.00
True or False: The entity-relationship (E-R) data model perceives the real world as consisting of basic objects, called entities, NOT the relationships among these objects.
Select one:
True
False
The correct answer is 'False'.
Question 36
Not answered
Marked out of 1.00
True or False: SANS SCORE checklist recommends Telnet is for remote access.
Select one:
True
False
The correct answer is 'False'.
Question 37
Not answered
Marked out of 1.00
See Table 37.6. Which disk will get the parity bit P5 to remove the parity bit bottle-nick of RAID 4:
Select one:
a. Disk 0
b. Disk 1
c. Disk 2
d. Disk 3
e. Disk 4
The correct answer is: Disk 4
Question 38
Not answered
Marked out of 1.00
In the single threaded address space you will find all EXCEPT:
Select one:
a. Heap
b. Program code
c. T1
d. Stack
The correct answer is: T1
Question 39
Not answered
Marked out of 1.00
To see the metadata for certain files we can issue the following commands?
Select one:
a. lseek() or stat ()
b. SEEK_SET or SET_CUR
c. stat() or fstat()
d. Input/output
The correct answer is: stat() or fstat()
Question 40
Not answered
Marked out of 1.00
How many times will this event loop execute?
e
while (1) {
events = getEvents();
for (x in events)
processEvent(x);
}:
Select one:
a. e
b. 1
c. x
d. Null
The correct answer is: x
Question 41
Not answered
Marked out of 1.00
Spin locks must be all of the following EXCEPT:
Select one:
a. Simple
b. Correct
c. Fair
d. Perform
The correct answer is: Simple
Question 42
Not answered
Marked out of 1.00
In terms of computer system architecture buses which of the following is not?
Select one:
a. Peripheral
b. Memory
c. CPU
d. Input/output
The correct answer is: CPU
Question 43
Not answered
Marked out of 1.00
Multi-Threaded Address Space is composed of all EXCEPT:
Select one:
a. Stack (1)
b. Stack (3)
c. Program code
d. Free
The correct answer is: Stack (3)
Question 44
Not answered
Marked out of 1.00
The checkpoint region (CR) is defined as:
Select one:
a. Unknown location to begin file lookups
b. Region used to store checkpoints
c. Fixed and known location on disk to begin a file lookup
d. Checkpoints for time hacks
The correct answer is: Fixed and known location on disk to begin a file lookup
Question 45
Not answered
Marked out of 1.00
Top 20 Critical Control 15: Controlled Access Based on the Need to Know is associated with which Associated NIST Special Publication 800-53, Revision 3, and Priority 1 Controls?
Select one:
a. CM-8 (a, c, d, 2, 3, 4), PM-5, PM-6
b. CA-2 (1, 2), CA-7 (1, 2), RA-3, RA-5 (4, 9), SA-12 (7)
c. AC-1, AC-2 (b, c), AC-3 (4), AC-4, AC-6, MP-3, RA-2 (a)
d. SC-18, SC-26, SI-3 (a, b, 1, 2, 5, 6)
The correct answer is: AC-1, AC-2 (b, c), AC-3 (4), AC-4, AC-6, MP-3, RA-2 (a)
Question 46
Not answered
Marked out of 1.00
This method is run before the file system is mounted and made available (assumes that no other file-system activity is on-going while it runs); once finished, the on disk file system should be consistent and thus can be made accessible to users.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: FSCK
Question 47
Not answered
Marked out of 1.00
Thread 0 holds the lock (i.e., it has called sem wait() but not yet called sem post()), and another thread (thread 1, say) tries to enter the critical section by calling sem wait(). In this case thread 1 must wait (putting itself to sleep and relinquishing the processor)?
Select one:
a. thread 1will find that the value of the semaphore is -1
b. thread 1will find that the value of the semaphore is 1
c. thread 1will find that the value of the semaphore is 0
d. thread 1will find that the value of the semaphore is 2
The correct answer is: thread 1will find that the value of the semaphore is 0
Question 48
Not answered
Marked out of 1.00
True or False: Locks work through mutual exclusion which preventing multiple threads from entering a critical section.
Select one:
True
False
The correct answer is 'True'.
Question 49
Not answered
Marked out of 1.00
True or False: Server recovery after a crash is more complicated. The problem that arises is that callbacks are kept in-memory; thus, when a server reboots, it has no idea which client machine has which files. Thus, upon server restart, each client of the server must realize that the server has crashed and treat all of their cache contents as validated, and (as above) reestablish the validity of a file before using it.
Select one:
True
False
The correct answer is 'False'.
Question 50
Not answered
Marked out of 1.00
The checkpoint region (CR) is defined as:
Select one:
a. Unknown location to begin file lookups
b. Region used to store checkpoints
c. Fixed and known location on disk to begin a file lookup
d. Checkpoints for time hacks
The correct answer is: Fixed and known location on disk to begin a file lookup
The first failure mode of interest is called a misdirected write. This arises in disk and RAID controllers which write the data to disk correctly, except in the wrong location. A method to address this error is called:
Select one:
a. Cyclical redundancy check (CRC)
b. Zettabyte File System (ZFS)
c. Disk scrubbing
d. Physical identifier (physical ID)
The correct answer is: Physical identifier (physical ID)
Question 2
Not answered
Marked out of 1.00
True or False: Each thread has its own stack.
Select one:
True
False
The correct answer is 'True'.
Question 3
Not answered
Marked out of 1.00
True or False: To use a condition variable, one has to in addition have a lock that is not associated with this condition.
Select one:
True
False
The correct answer is 'False'.
Question 4
Not answered
Marked out of 1.00
True or False: NFSv2 is a stateless protocol which means the server tracks client states.
Select one:
True
False
The correct answer is 'False'.
Question 5
Not answered
Marked out of 1.00
UDP uses all of the following except:
Select one:
a. Checksum
b. Sockets
c. stat() or fstat()
d. Datagrams
The correct answer is: stat() or fstat()
Question 6
Not answered
Marked out of 1.00
When does the deadlock occur in this code?
Thread 1: Thread 2:
lock(L1); lock(L2);
lock(L2); lock(L1);
Select one:
a. Thread 1 grabs lock L1
b. Thread 2 grabs L2 and tries to acquire L1
c. Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
d. Deadlock does not necessarily occur
The correct answer is: Thread 1 grabs lock L1 and then a context switch occurs to Thread 2, then Thread 2 grabs L2 and tries to acquire L1
Question 7
Not answered
Marked out of 1.00
To see what is mounted on your system, and at which points, simply run the mount program. What distributed file systems are mounted?
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda8 on /scratch type ext3 (rw)
/dev/sdb1 on /scratch.1 type xfs (rw)
/dev/sda6 on /tmp type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
/dev/sda7 on /var/vice/cache type ext3 (rw)
/dev/sda2 on /usr type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
AFS on /afs type afs (rw)
Select one:
a. tmpfs
b. ext3
c. sysfs
d. AFS
The correct answer is: AFS
Question 8
Not answered
Marked out of 1.00
True or False: In a multi-threaded application, the developer has full control over what is scheduled at a given moment in time; rather, the programmer simply creates threads and then hopes that the underlying OS schedules them in a reasonable manner across available CPUs.
Select one:
True
False
The correct answer is 'False'.
Question 9
Not answered
Marked out of 1.00
FFS uses APIs which include all EXCEPT:
Select one:
a. read()
b. move()
c. write()
d. open()
The correct answer is: move()
Question 10
Not answered
Marked out of 1.00
True or False: A power loss or system crash both present major challenges to a file system attempting to update persistent data structures.
Select one:
True
False
The correct answer is 'True'.
Question 11
Not answered
Marked out of 1.00
In this example there are producer and consumer threads the code for a producer puts an integer in the shared buffer loops number of times, and a consumer gets the data out of that shared buffer each time printing it. Which line prints out the shared buffer?
1 void *producer(void *arg) {
2 int i;
3 int loops = (int) arg;
4 for (i = 0; i < loops; i++) {
5 put(i);
6 }
7 }
8
9 void *consumer(void *arg) {
10 int i;
11 while (1) {
12 int tmp = get();
13 printf("%d\n", tmp);
14 }
15 }
Select one:
a. 4 for (i = 0; i < loops; i++) {
b. void *producer(void *arg) {
c. 13 printf("%d\n", tmp);
d. 1 void *producer(void *arg) {
The correct answer is: 13 printf("%d\n", tmp);
Question 12
Not answered
Marked out of 1.00
True or False: Atomicity violation bugs and order violation bugs are examples of Non-deadlock bugs.
Select one:
True
False
The correct answer is 'True'.
Question 13
Not answered
Marked out of 1.00
To see the metadata for certain files we can issue the following commands?
Select one:
a. lseek() or stat ()
b. SEEK_SET or SET_CUR
c. stat() or fstat()
d. Input/output
The correct answer is: stat() or fstat()
Question 14
Not answered
Marked out of 1.00
What capability allows multiple people to use one system at the same time?
Select one:
a. Multi-thread
b. Multi-user
c. Distributed Processing
d. Multitasking
The correct answer is: Multi-user
Question 15
Not answered
Marked out of 1.00
See Table 37.6. Which disk will get the parity bit P5 to remove the parity bit bottle-nick of RAID 4:
Select one:
a. Disk 0
b. Disk 1
c. Disk 2
d. Disk 3
e. Disk 4
The correct answer is: Disk 4
Question 16
Not answered
Marked out of 1.00
In this method an additional back pointer is added to every block in the system; for example, each data block has a reference to the inode to which it belongs. When accessing a file, the file system can determine if the file is consistent by checking if the forward pointer (e.g., the address in the inode or direct block) points to a block that refers back to it.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: Backpointer-based consistency
Question 17
Not answered
Marked out of 1.00
True or False: Lookups simply read the data structure; as long as we can guarantee that no insert is on-going, we can allow many lookups to proceed concurrently.
Select one:
True
False
The correct answer is 'True'.
Question 18
Not answered
Marked out of 1.00
Spin locks must be all of the following EXCEPT:
Select one:
a. Simple
b. Correct
c. Fair
d. Perform
The correct answer is: Simple
Question 19
Not answered
Marked out of 1.00
True or False: Atomicity violation bugs and order violation bugs are examples of Non-deadlock bugs.
Select one:
True
False
The correct answer is 'True'.
Question 20
Not answered
Marked out of 1.00
Data or I/O transfer to and from a disk is always faster when it is done?
Select one:
a. Direct
b. Random
c. SSTF
d. Sequentially
The correct answer is: Sequentially
Question 21
Not answered
Marked out of 1.00
True or False: AFS is whole-file caching on the local disk of the client machine that is accessing a file.
Select one:
True
False
The correct answer is 'True'.
Question 22
Not answered
Marked out of 1.00
True or False: The track depicted in figure 36.1 has 12 sectors, each of which is 512 bytes in size (our typical sector size, recall) and addressed therefore by the numbers 1 through 12.
Select one:
True
False
The correct answer is 'False'.
Question 23
Not answered
Marked out of 1.00
True or False: The entity-relationship (E-R) data model perceives the real world as consisting of basic objects, called entities, NOT the relationships among these objects.
Select one:
True
False
The correct answer is 'False'.
Question 24
Not answered
Marked out of 1.00
Which two notions were introduced by AFSv2 (pick 2):
Select one or more:
a. Call back
b. state
c. AFSv2
d. File handle
The correct answers are: Call back, File handle
Question 25
Not answered
Marked out of 1.00
POSIX threads library are those for providing mutual exclusion to a critical section via:
Select one:
a. API’s
b. Multi-threaded
c. locks
d. Keys
The correct answer is: locks
Question 26
Not answered
Marked out of 1.00
The protocol design of AFS is particularly important in:
Select one:
a. Workstation caching
b. minimizing server interactions
c. single namespace
d. access control lists
The correct answer is: minimizing server interactions
Question 27
Not answered
Marked out of 1.00
True or False: A power loss or system crash both present major challenges to a file system attempting to update persistent data structures.
Select one:
True
False
The correct answer is 'True'.
Question 28
Not answered
Marked out of 1.00
True or False: Concurrent data structures can be queues lists and counters only.
Select one:
True
False
The correct answer is 'False'.
Question 29
Not answered
Marked out of 1.00
True or False: In modern systems versus older systems, disks cannot accommodate multiple outstanding requests, and have sophisticated internal schedulers themselves.
Select one:
True
False
The correct answer is 'False'.
Question 30
Not answered
Marked out of 1.00
Top 20 Critical Security Controls for Linux includes all the following except:
Select one:
a. Bzip2
b. tar
c. gzip
d. rsynch
The correct answer is: rsynch
Question 31
Not answered
Marked out of 1.00
The primary mechanism used by modern storage systems to preserve data integrity is called the checksum. Some common functions used to compute the checksum are all except:
Select one:
a. Cyclical redundancy check (CRC)
b. Forward error correction and detection
c. XOR-based
d. Addition
The correct answer is: Forward error correction and detection
Question 32
Not answered
Marked out of 1.00
POSIX threads library are those for providing mutual exclusion to a critical section via:
Select one:
a. API’s
b. Multi-threaded
c. locks
d. Keys
The correct answer is: locks
Question 33
Not answered
Marked out of 1.00
True or False: Condition variable is an explicit queue that threads can put themselves on when some state of execution (i.e., some condition) is not as desired by waiting on the condition.
Select one:
True
False
The correct answer is 'True'.
Question 34
Not answered
Marked out of 1.00
To see what is mounted on your system, and at which points, simply run the mount program. What distributed file systems are mounted?
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda8 on /scratch type ext3 (rw)
/dev/sdb1 on /scratch.1 type xfs (rw)
/dev/sda6 on /tmp type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
/dev/sda7 on /var/vice/cache type ext3 (rw)
/dev/sda2 on /usr type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
AFS on /afs type afs (rw)
Select one:
a. tmpfs
b. ext3
c. sysfs
d. AFS
The correct answer is: AFS
Question 35
Not answered
Marked out of 1.00
This code is an example of receiving events via?
int select(int nfds,
fd_set *restrict readfds,
fd_set *restrict writefds,
fd_set *restrict errorfds,
struct timeval *restrict timeout);
Select one:
a. API poll ()
b. API select ()
c. Select
d. Poll
The correct answer is: API select ()
Question 36
Not answered
Marked out of 1.00
This method is run before the file system is mounted and made available (assumes that no other file-system activity is on-going while it runs); once finished, the on disk file system should be consistent and thus can be made accessible to users.
Select one:
a. Journaling
b. Backpointer-based consistency
c. FSCK
d. Super block
The correct answer is: FSCK
Question 37
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); lookup what control CA-2 means:
Select one:
a. INTERNAL SYSTEM CONNECTION
b. BOUNDARY PROTECTION
c. SECURITY ASSESSMENT
d. PENETRATION TESTING
The correct answer is: SECURITY ASSESSMENT
Question 38
Not answered
Marked out of 1.00
True or False: opening, reading, or writing a file incur I/O operations.
Select one:
True
False
The correct answer is 'True'.
Question 39
Not answered
Marked out of 1.00
Log-structured File Systems are based on all the following except:
Select one:
a. Memory sizes had stabilized
b. File systems were not RAID-aware
c. Existing file systems perform poorly on many common workloads
d. Memory sizes were growing
The correct answer is: Memory sizes had stabilized
Question 40
Not answered
Marked out of 1.00
True or False: To compute the value of the new parity block there are two methods: subtractive and additive.
Select one:
True
False
The correct answer is 'True'.
Question 41
Not answered
Marked out of 1.00
The following are all key concurrency terms EXCEPT:
Select one:
a. Mutual Exclusion
b. Non-Critical Section
c. Race Condition
d. Intermediate
The correct answer is: Non-Critical Section
Question 42
Not answered
Marked out of 1.00
In this method when updating the disk, before over writing the structures in place, first write down a little note (somewhere else on the disk, in a well-known location) describing what you are about to do. Writing this note is the "write ahead" part, and we write it to a structure that we organize as a "log"; hence, write.
Select one:
a. Journaling
b. File system checker
c. FSCK
d. Super block
The correct answer is: Journaling
Question 43
Not answered
Marked out of 1.00
RAID technology can take 3 essential designs; which is not:
Select one:
a. RAID Level 0(striping)
b. RAID Level 1 (Parity)
c. RAID Levels 4/5 (parity based redundancy)
d. RAID Level 1 (mirroring)
The correct answer is: RAID Level 1 (Parity)
Question 44
Not answered
Marked out of 1.00
The test-and-set instruction, is also known as:
Select one:
a. Lock mechanism
b. Interrupt
c. atomic exchange
d. Stack
The correct answer is: atomic exchange
Question 45
Not answered
Marked out of 1.00
Imagine two producers (Pa and Pb) both calling into put() at roughly the same time. Assume producer Pa gets to run first, and just starts to fill the first buffer entry (fill = 0 at line f1). Before Pa gets a chance to increment the fill counter to 1, it is interrupted. Producer Pb starts to run, and at line f1 it also puts its data into the 0th element of buffer, what happens to the old data?
sem_t empty;
sem_t full;
void *producer(void *arg) {
int i;
for (i = 0; i < loops; i++) {
sem_wait(&empty); // line p1
put(i); // line p2
sem_post(&full); // line p3
}
}
void *consumer(void *arg) {
int i, tmp = 0;
while (tmp != -1) {
sem_wait(&full); // line c1
tmp = get(); // line c2
sem_post(&empty); // line c3
printf("%d\n", tmp);
}
}
int main(int argc, char *argv[]) {
// ...
sem_init(&empty, 0, MAX); // MAX buffers are empty to begin with...
sem_init(&full, 0, 0); // ... and 0 are full
// ...
}
Select one:
a. Backed up
b. Saved
c. Overwritten
d. Value = 0
The correct answer is: Overwritten
Question 46
Not answered
Marked out of 1.00
True or False: Condition variable is an explicit queue that threads can put themselves on when some state of execution (i.e., some condition) is not as desired by waiting on the condition.
Select one:
True
False
The correct answer is 'True'.
Question 47
Not answered
Marked out of 1.00
Free space management in modern file systems can be accomplished using each of these methods EXCEPT?
Select one:
a. free lists
b. bitmaps
c. pre-allocation policy
d. binary tree
The correct answer is: free lists
Question 48
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); Least privilege can refer to operating systems.
Select one:
True
False
The correct answer is 'True'.
Question 49
Not answered
Marked out of 1.00
NIST Publication 800-53 (Appendix F SECURITY CONTROL CATALOG); lookup least privilege:
Select one:
a. LP-3
b. AC-1
c. AC-8
d. LP-1
The correct answer is: AC-8
Question 50
Not answered
Marked out of 1.00
Linux command used to create Boot and Rescue Disk which creates a boot disk manually.
Select one:
a. Makedisk
b. TCPwrappers
c. Xinedtd
d. Mkbootdisk
The correct answer is: Mkbootdisk
In the single threaded address space you will find all EXCEPT:
Select one:
a. Heap
b. Program code
c. T1
d. Stack
The correct answer is: T1
Question 2
The following stores the state of each thread:
Select one:
a. TCB
b. PCB
c. T1
d. T2
The correct answer is: TCB
Question 3
True or False: Each thread has its own stack.
Select one:
True
False
The correct answer is 'True'.
Question 4
Multi-Threaded Address Space is composed of all EXCEPT:
Select one:
a. Stack (1)
b. Stack (3)
c. Program code
d. Free
The correct answer is: Stack (3)
Question 5
Not answered
Marked out of 1.00
True or False: The entity-relationship (E-R) data model perceives the real world as consisting of basic objects, called entities, NOT the relationships among these objects.
Select one:
True
False
The correct answer is 'False'.
Question 6
Not answered
Marked out of 1.00
What command would you change to switch the letter printed by T2:
Time increases in the downwards direction, and each column shows when a different thread (the main one, or T1, or T2) is running:
main starts running
main prints "main: begin"
main creates thread T1
main creates thread T2
main waits for T1
T1 runs
T1 prints "A"
T1 returns
main waits for T2
T2 runs
T2 prints "B"
T2 returns
main prints "main: end"
Select one:
a. T1 = T2
b. T1 prints “A” or “B”
c. T2 prints “A”
d. T2 = T1
The correct answer is: T2 prints “A”
Question 7
The following are all key concurrency terms EXCEPT:
Select one:
a. Mutual Exclusion
b. Non-Critical Section
c. Race Condition
d. Intermediate
The correct answer is: Non-Critical Section
Question 8
POSIX threads library are those for providing mutual exclusion to a critical section via:
Select one:
a. API’s
b. Multi-threaded
c. locks
d. Keys
The correct answer is: locks
Question 9
True or False: To use a condition variable, one has to in addition have a lock that is not associated with this condition.
Select one:
True
False
The correct answer is 'False'.
Question 10
What capability allows multiple people to use one system at the same time?
Select one:
a. Multi-thread
b. Multi-user
c. Distributed Processing
d. Multitasking
The correct answer is: Multi-user
True or False: Two key abstractions of virtual storage are files and directories.
Select one:
True
False
The correct answer is 'True'.
Question 2
To see the metadata for certain files we can issue the following commands?
Select one:
a. lseek() or stat ()
b. SEEK_SET or SET_CUR
c. stat() or fstat()
d. Input/output
The correct answer is: stat() or fstat()
Question 3
To see what is mounted on your system, and at which points, simply run the mount program. What distributed file systems are mounted?
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda8 on /scratch type ext3 (rw)
/dev/sdb1 on /scratch.1 type xfs (rw)
/dev/sda6 on /tmp type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
/dev/sda7 on /var/vice/cache type ext3 (rw)
/dev/sda2 on /usr type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
AFS on /afs type afs (rw)
Select one:
a. tmpfs
b. ext3
c. sysfs
d. AFS
The correct answer is: AFS
Question 4
True or False: File systems have three aspects: data structures, access methods, and data.
Select one:
True
False
The correct answer is 'False'.
Question 5
Which of the following file systems is based on linked lists?
Select one:
a. vsfs
b. NTFS
c. FAT
d. NTFS
The correct answer is: FAT
Question 6
Free space management in modern file systems can be accomplished using each of these methods EXCEPT?
Select one:
a. free lists
b. bitmaps
c. pre-allocation policy
d. binary tree
The correct answer is: free lists
Question 7
True or False: opening, reading, or writing a file incur I/O operations.
Select one:
True
False
The correct answer is 'True'.
Question 8
Fast File System (FFS) does all of the following except?
Select one:
a. Create Files and Directories
b. Allow for long file names
c. Disk defragmentation
d. Disk layout optimized for performance
The correct answer is: Disk defragmentation
Question 9
FFS uses APIs which include all EXCEPT:
Select one:
a. read()
b. move()
c. write()
d. open()
The correct answer is: move()
Question 10
True or False: Internal fragmentation not only wastes space within blocks, but bad for transfer as each block might require a positioning overhead to reach it.
Select one:
True
False
The correct answer is 'True'.
True or False: UDP is more reliable than TCP because it is connection oriented communications.
Select one:
True
False
The correct answer is 'False'.
Question 2
UDP uses all of the following except:
Select one:
a. Checksum
b. Sockets
c. stat() or fstat()
d. Datagrams
The correct answer is: stat() or fstat()
Question 3
Client-side file system. A client application issues system calls to the client-side file system; which is not:
Select one:
a. mkdir()
b. read()
c. write()
d. disk write ()
The correct answer is: disk write ()
Question 4
When the file is opened for the first time, the client-side file system sends a The LOOKUP request message from the client side for the pathname ( /home/remzi/foo.txt), the client would send three LOOKUPs which will not include:
Select one:
a. home in the directory
b. remzi in home
c. foo.txt
d. foo.txt in remzi
The correct answer is: foo.txt
Question 5
True or False: NFSv2 is a stateless protocol which means the server tracks client states.
Select one:
True
False
The correct answer is 'False'.
Question 6
Partially correct
Mark 0.50 out of 1.00
The cache consistency problem actually has 2 sub problems (pick 2):
Select one or more:
a. Flush-on-close
b. Update visibility
c. Stale cache
d. Write buffering
Your answer is partially correct.
You have correctly selected 1.
The correct answers are: Update visibility, Stale cache
Question 7
Not answered
Marked out of 1.00
True or False: AFS is whole-file caching on the local disk of the client machine that is accessing a file.
Select one:
True
False
The correct answer is 'True'.
Question 8
Which two notions were introduced by AFSv2 (pick 2):
Select one or more:
a. Call back
b. state
c. AFSv2
d. File handle
The correct answers are: Call back, File handle
Question 9
The protocol design of AFS is particularly important in:
Select one:
a. Workstation caching
b. minimizing server interactions
c. single namespace
d. access control lists
The correct answer is: minimizing server interactions
Question 10
True or False: Server recovery after a crash is more complicated. The problem that arises is that callbacks are kept in-memory; thus, when a server reboots, it has no idea which client machine has which files. Thus, upon server restart, each client of the server must realize that the server has crashed and treat all of their cache contents as validated, and (as above) reestablish the validity of a file before using it.
Select one:
True
False
The correct answer is 'False'.
True or False: UDP is more reliable than TCP because it is connection oriented communications.
Select one:
True
False
The correct answer is 'False'.
Question 2
UDP uses all of the following except:
Select one:
a. Checksum
b. Sockets
c. stat() or fstat()
d. Datagrams
The correct answer is: stat() or fstat()
Question 3
Client-side file system. A client application issues system calls to the client-side file system; which is not:
Select one:
a. mkdir()
b. read()
c. write()
d. disk write ()
The correct answer is: disk write ()
Question 4
When the file is opened for the first time, the client-side file system sends a The LOOKUP request message from the client side for the pathname ( /home/remzi/foo.txt), the client would send three LOOKUPs which will not include:
Select one:
a. home in the directory
b. remzi in home
c. foo.txt
d. foo.txt in remzi
The correct answer is: foo.txt
Question 5
True or False: NFSv2 is a stateless protocol which means the server tracks client states.
Select one:
True
False
The correct answer is 'False'.
Question 6
Partially correct
Mark 0.50 out of 1.00
The cache consistency problem actually has 2 sub problems (pick 2):
Select one or more:
a. Flush-on-close
b. Update visibility
c. Stale cache
d. Write buffering
Your answer is partially correct.
You have correctly selected 1.
The correct answers are: Update visibility, Stale cache
Question 7
Not answered
Marked out of 1.00
True or False: AFS is whole-file caching on the local disk of the client machine that is accessing a file.
Select one:
True
False
The correct answer is 'True'.
Question 8
Which two notions were introduced by AFSv2 (pick 2):
Select one or more:
a. Call back
b. state
c. AFSv2
d. File handle
The correct answers are: Call back, File handle
Question 9
The protocol design of AFS is particularly important in:
Select one:
a. Workstation caching
b. minimizing server interactions
c. single namespace
d. access control lists
The correct answer is: minimizing server interactions
Question 10
True or False: Server recovery after a crash is more complicated. The problem that arises is that callbacks are kept in-memory; thus, when a server reboots, it has no idea which client machine has which files. Thus, upon server restart, each client of the server must realize that the server has crashed and treat all of their cache contents as validated, and (as above) reestablish the validity of a file before using it.
Select one:
True
False
The correct answer is 'False'.