CSE410 Autumn 2000 Final Exam Solutions
MULTIPLE CHOICE (2 points each)
Questions 1-20 are multiple
choice. For these questions, choose the
one best answer.
1. Which of the following is the reason that the least recently used
(LRU) algorithm is usually not used as a page replacement algorithm?
A. Other
practical schemes such as MIN do a better job.
B. LRU requires
knowledge of the future to work correctly.
C. LRU is
too inefficient to implement in practice.
D. The Clock
algorithm always outperforms LRU.
2. Which of the following are shared between threads in the same
process?
A. registers
B. page
table
C. stack
D. stack pointer
E. None of these
are shared
3. The IP service model guarantees which of the following?
A. The contents
of a packet will not be corrupted
B. That at least
one copy of a packet will arrive at the destination
C. That no more
than one copy of a packet will arrive at the destination
D. That packets
sent in order will be delivered in order
E. None of
the above
4. Using the SCAN (a.k.a. elevator) disk scheduling algorithm,
determine how far the disk head moves servicing the following outstanding
requests: 150, 19, 20, 900, 99. Assume the disk's head is currently over track
100 and moving toward smaller track numbers.
Also, assume that all of these track requests have already been
received.
A. 962
tracks
B. 1064 tracks
C. 1681 tracks
D. 1863 tracks
E. None of these
are true
5. If a process has allocated every 1024th virtual page (e.g. it has
allocated virtual pages 0, 1024, 2048, 3072, 4096, 5120 ... 1024000), which one
of the following page table schemes will use the LEAST amount of memory?
A. A flat page
table
B. A two-level
page table with 1024 first level entries
C. A two-level
page table with 2048 first level entries
D. An
inverted page table
E. Each of the
above page table will use exactly the same amount of memory
6. Making no assumptions about the processes being scheduled, which of
these scheduling algorithms will prevent starvation?
I. First Come
First Served (doesn’t work if a job
runs forever—infinite loop)
II. Round
Robin
III. Priority
A. I
B. II
C. I & III
D. I, II, &
III
7. Consider a group of RAID4 disks. This group has four data disks and
one parity disk. Which of the following are true?
I. Any data disk
but NOT the parity disk can be reconstructed from the other four
II. The parity
disk must be read whenever one of the data disks is read
III. The parity
disk must be written whenever one of the data disks is written
A. III
B. I & III
C. II & III
D. I, II, &
III
E. None of the
above
8. Which of the following is true about two threads running in the same
process?
A. One thread can
both read and write another thread's registers
B. One thread
can change the other thread's program counter
C. One thread
can neither read nor write the other thread's stack
D. One
thread can both read and write the other thread's stack (there is no address space protection
between threads in the same process)
9.Which disk block allocation scheme will require the most I/O
operations for random access to a large file?
A. Indexed
allocation
B. Linked
allocation
C. Contiguous
allocation
D. I-node
allocation
E. Each scheme
requires approximately the same number of I/O operations
10. Which of the following does NOT solve deadlock?
A.
Acquiring all resources before using any of them (this
is not acquiring all resources or no resources. This doesn’t eliminate hold and wait)
B. Only
acquiring resources in order based on a predetermined priority
C. Acquiring a
maximum of one resource at a time (can’t have hold and wait if only have one
resource)
D. If a resource
is unavailable, releasing all resources and waiting for all required resources
to become available
11. What is the primary reason that a translation lookaside buffer
(TLB) is used?
A. A TLB ensures
that a process does not access memory outside of its address space
B. A TLB
makes translating virtual addresses to physical addresses faster
C. A TLB allows
multiple processes to share the L1 cache
D. A TLB makes
translating virtual addresses to physical addresses possible
E. None of the
above
12. Which of the following is not a solution to thrashing?
A. Running fewer
processes
B.
Increasing the speed of the CPU
C. Increasing
the size of physical memory
D. Rewriting
programs to have better locality
E. These all
solve the problem of thrashing
13. Which of the following is NOT a way to make file systems faster?
A. Put
parts of a file on many different tracks so part of it can be accessed no
matter where the disk head is
B. Cache
frequently used blocks in memory so they can be accessed at memory speeds
instead of disk speeds
C. Use a disk
scheduling algorithm to minimize the distance between seeks
D. Put
frequently used files or directories near the center of the disk so on average
they won't be far from the read head
E. All of these
will make a file system faster
14. Which of the following is true about base and bounds registers?
I. They
offer protection between processes
II. They lead to
internal fragmentation of physical memory
III. Once a
process has been started at a given memory location, it cannot be moved to
another location
A. I
B. II
C. I & II
D. I, II, &
III
E. None of the
above
15. Which of the following can I do without knowing your private key?
A. Pretend to
send a private message on your behalf
B. Decrypt
messages that were intended for only you
C. Send
you a message that only you can read
D. Digitally
sign a message on your behalf
E. I must know your private key to perform all
of these operations
16. Public/private key encryption is usually avoided because
A. It is
much slower than symmetric key encryption
B. It is only
useful when encrypting large amounts of data
C. It is not as
secure as symmetric key encryption
D. It cannot be
used unless two parties can exchange their private keys securely
E. None of the
above
Suppose a system has only three
physical pages. Given the following sequence of virtual page references,
determine the number of page faults that are required. Initially, assume that
the physical pages are not being used by any virtual page.
1 2 1 1 3 2 1 4 3 1 1 2 4 1 5 6 2 1
17. Using the first in first out (FIFO) replacement policy
A. 9
B. 10
C. 11
D. 12
E. None of the above
18. Using the least recently used (LRU) replacement policy
A. 9
B. 10
C. 11
D. 12
E. None of the above
19. Which of the following is NOT a use of TCP sequence numbers?
A. To ensure
that data is delivered to the application in the order it was sent
B. To
distinguish duplicate packets
C. To
determine how much data is left to send
D. All of these
are uses
20. Which of the following is NOT a property of Ethernet?
A. Nodes
retransmit packets if there was a collision
B. Sending
packets that are too big does NOT affect collision detection
C. Nodes
retransmit packets if an acknowledgement is not received
D. After a
collision, both nodes wait a random amount of time before retransmitting a
packet
E. These are all
properties of Ethernet
SHORT ANSWER
None of these
questions requires a long answer. Some
require an answer of only a few words.
Others may require up to a few sentences. The amount of space left to answer the question is not indicative
of how long your answer should be. Your
answers should be specific.
21. Earlier in the quarter, we used
the following equation to calculate the average memory access time:
AMAT
= L1HitProb * L1HitTime + (1-L1HitProb)*( L2HitProb * L2HitTime
+ (1-L2HitProb)*L2MissTime )
In this equation, either an L1 cache
miss or an L2 cache miss can lead to an increased memory access time.
When processes use virtual addresses (i.e. processes do not refer to
memory using actual physical addresses), what additional event can increase the
average memory access time? Be specific. (3 points)
TLB miss
When using virtual memory (i.e. infrequently used portions of memory
are moved to the page file), what additional event can increase the average
memory access time? Be specific. (3
points)
Page fault
22. Consider a process that has two
threads. One thread puts items on the tail of a queue, and the other thread
removes items from the head of the queue. Britney argues that you don't need
synchronization because the two threads are accessing separate ends of the
queue. Her friend, Christina disagrees. Who is right? Briefly explain you
answer. (7 points)
Christina is right. Consider the case that the queue has only zero
or one elements. Both threads might be
accessing the same element.
23. Assume two threads are executing
the following code segment simultaneously. Can there be deadlock? Why or why
not? (6 points)
Lock1->Acquire();
...
Lock2->Acquire();
...
Lock1->Release();
...
Lock2->Release();
There cannot be deadlock
because there is no circular wait.
24. With a 2GByte disk, Microsoft's
FAT16 file system uses disk blocks that are 64Kbytes. With the same disk, their
FAT32 file system uses disk blocks that are 4KBytes.
Give one specific reason in favor of
using 64KByte blocks. (3 points)
Accessing files might be
faster because they are stored contiguously.
Give one specific reason in favor of
using 4KByte blocks. (3 points)
There is less internal
fragmentation than with 64Kbyte blocks.
That is, not as much space is wasted for each file.
25. In the Internet, why is
public/private key cryptography typically used instead of symmetric key
cryptography? (5 points)
If symmetric key encryption
was used, then the two parties must exchange the symmetric key secretly, which
is usually impossible. Public/private
key encryption does not require a secret to be transferred between the two
parties in order for them to communicate securely.
26. Below is an implementation of a BankAccount class. (8 points)
class BankAccount {
private:
double balance;
Mutex mutex;
public:
BankAccount() {
balance = 0.0;
}
double GetBalance() {
return balance;
}
void DepositMoney( double amount ) {
mutex.acquire();
double newBalance = balance + amount;
balance = newBalance;
mutex.release();
}
void WithdrawMoney( double amount ) {
mutex.acquire();
double newBalance = balance - amount;
balance = newBalance;
mutex.release();
}
};
(Ignore the possibility that amount
could be negative or that amount withdrawn could be greater than the balance.)
Assume that multiple threads could
access a member of the BankAccount class at the same time. Assume a bank account’s balance is $100. If one thread calls bankAccount-> DepositMoney(50.0) and one thread calls bankAccount->WithdrawMoney(75.0), what are all of the possible values for balance that could result after both of these
threads execute?
25, 75, 150
Now add synchronization to this
class so that the balance that is stored is always correct. You may change or add lines to the provided
implementation. You may also rewrite the entire class definition if you
desire. You are not required to know
the exact syntax for whatever synchronization primitive you choose to use.
(see code)