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