Home »
Placement Papers »
Microsoft Placement Paper »MICROSOFT PLACEMENT PAPER-2nd AUGUST 2006, WARANGAL
MICROSOFT PLACEMENT PAPER-2nd AUGUST 2006, WARANGAL
Networks and Security
1. How do you use RSA for both authentication and secrecy?
2. What is ARP and how does it work?
3. What's the difference between a switch and a router?
4. Name some routing protocols? (RIP,OSPF etc..)
5. How do you do authentication with message digest(MD5)? (Usually MD is used
for finding tampering of data)
6. How do you implement a packet filter that distinguishes following cases and
selects first case and rejects second case.
i) A host inside the corporate n/w makes a ftp request to outside host and the
outside host sends reply.
ii) A host outside the network sends a ftp request to host inside. for the
packet filter in both cases the source and destination fields will look the
same.
7. How does traceroute work? Now how does traceroute make sure that the packet
follows the same path that a previous (with ttl - 1) probe packet went in?
8. Explain Kerberos Protocol ?
9. What are digital signatures and smart cards?
10. Difference between discretionary access control and mandatory access
control?
Java
1. How do you find the size of a java object (not the primitive type) ?
ANS. type cast it to string and find its s.length()
2. Why is multiple inheritance not provided in Java?
3. Thread t = new Thread(); t.start(); t = null; now what will happen to the
created thread?
4. How is garbage collection done in java?
5. How do you write a "ping" routine in java?
6. What are the security restrictions on applets?
Graphics
1. Write a function to check if two rectangles defined as below overlap or not.
struct rect { int top, bot, left, right; } r1, r2;
2. Write a SetPixel(x, y) function, given a pointer to the bitmap. Each pixel is
represented by 1 bit. There are 640 pixels per row. In each byte, while the bits
are numbered right to left, pixels are numbered left to right. Avoid
multiplications and divisions to improve performance.
Databases
* 1. You, a designer want to measure disk traffic i.e. get a histogram showing
the relative frequency of I/O/second for each disk block. The buffer pool has b
buffers and uses LRU replacement policy. The disk block size and buffer pool
block sizes are the same. You are given a routine int lru_block_in_position (int
i) which returns the block_id of the block in the i-th position in the list of
blocks managed by LRU. Assume position 0 is the hottest. You can repeatedly call
this routine. How would you get the histogram you desire?
Hints and Answers
1. Simply do histogram [lru_block_in_position (b-1)] ++ at frequent intervals...
The sampling frequency should be close to the disk I/O rate. It can be adjusted
by remembering the last block seen in position b. If same, decrease frequency;
if different, increase, with exponential decay etc. And of course, take care of
overflows in the histogram.
Semaphores
1. Implement a multiple-reader-single-writer lock given a compare-and-swap
instruction. Readers cannot overtake waiting writers.
|
|