Check Out Our Work & Get Yours Done

Submit Work

or

Download Sample
Get Your First Solution Free
Order Now

Operating System Quiz

CallTutors Guarantees

  • Work Within Deadline
  • Lowest Price Guaranteed
  • Plagiarism Free Guaranteed
  • 24 * 7 Availability
  • Native Experienced Experts
  • Free Revisions



Get
Flat 30% Off
on your Assignment Now!

Price Includes

Turnitin Report

$20.99
free

Limitless Amendments

$31.49
free

Bibliography

$17.05
free

Outline

$6.55
free

Title Page

$6.55
free

Formatting

$10.49
free

Get all these features

$93.12
free

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'.

Get Free Quote!

286 Experts Online