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