MICROSOFT Job Placement
Paper
Paper Type : Technical - Other
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.
|