Hitesh Kumar
3258, S. Princeton Ave., Apt#2F, Chicago, IL - 60616,
Email: [email protected], Ph:
(551)358-1372
___________________________________________________________________________________________________________________________________________________________
Objective:
To obtain a full time position in the field of software development where I can best utilize my skills.
Education:
·
Illinois Institute of Technology, Chicago
M.S (Computer Engineering), GPA 3.6/4.0, December 2002.
·
PVPIT, Shivaji University, Kolhapur (India)
B.S (Electronics), GPA 3.8/4.0, July 1998
Skills:
§ UNIX/Linux System Programming: File System, Process Control, Signal Handling, POSIX/System V Message Queues, POSIX/System V Semaphores, POSIX/System V Shared Memory, Pipes/FIFO, UNIX Domain Sockets, File Locks, I/O Multiplexing, Memory Mapped I/O, Debugging with GNU debugger gdb, bash shell scripting, Linux Kernel Programming.
§ Real-Time Development: Rate Monotonic Analysis (RMA), Deadlock Handling, POSIX Timers, Real- Time Scheduling and Signals, Memory Locking, Multithreaded Programming with pthreads.
§ Network programming: TCP/IP programming with sockets API, Network Protocols.
§ Machine Level Programming: Intel 80x86 assembly language programming, Programming the i8259 (PIC), i8237 (DMA Controller) and i8085.
§ Software Design: Object-Oriented and Aspect-Oriented Design, UML, Design Patterns and Frameworks, Finite State Machines (FSM), Data Structures, Database design.
§ Programming Languages: C/C++ (gcc/g++), VC++, Inline Assembly with gcc, Java.
§ Database Systems: Microsoft Access, SQL, FoxPro.
§ VLSI: Verilog (Cadence Verilog-XL), ABEL, magic, sue, SPICE.
Research Work:
Designed and implemented, Mailslots, a Connectionless Message Passing IPC Technique on Linux that combines the best features of System V and POSIX Message Queues along with additional features, which provide the user with more adaptable and easier to use means of inter process communication. Mailslots has Aspect Oriented architecture and is developed on largest Open Source project development website, http://www.sourceforge.net/. For detail see http://mailslots.sourceforge.net/mailslots.htm.
Projects:
· Designed and Implemented a multithreaded ftp server for Solaris that complies with RFC 959.This project is designed by using design patterns, UML and is implemented in C++.
· Implemented, Power ALU, an 8-bit Microprocessor in Verilog whose features are, division based upon Newton -Raphson Method, multiplication, addition/subtraction and basic logical operations.
· Implemented Symbolic Links and Multi-level Feedback Queues Scheduling Policy for Minix.
· Designed a complete University Database in 3rd Normal Form and implemented in MS-Access.
· Solved a set partitioning problem by using different IPC techniques on UNIX and suggested its design based upon Multi-Dimensional Separation Of Concerns (MDSOC).
· Implemented PODEM (Path-Oriented Decision Making), a fault detection technique for Digital Circuits.
References:
· Dr. Tzilla Elrad (Research Professor, Dept. Of Computer Science, IIT). [email protected]
· Dr. Martha Evens (Research Professor, Dept. Of Computer Science, IIT). [email protected]
Research Project : Mailslots
___________________________________________________________________________________________________________________________________________________________
Mailslots is a connectionless, message passing inter process
communication technique implemented on Linux. Processes can communicate by
exchanging discrete messages through a mailslot, which is created by a process
called owner of the mailslot. The owner process decides the access permissions
to the mailslot at the time of its creation or at any time later. Different
message sizes are supported to improve efficiency. Mailslots has file
descriptor based user interface. A mailslot is removed once all the open file
descriptors to it are closed.
This IPC has Aspect-Oriented architecture and is implemented along the guidelines of an AOSD framework for system software development, which is given by our concurrent research group at Illinois Institute of Technology, www.iit.edu/~concur.
As Mailslots is a discrete
message channel it is compared with System V and POSIX Message Queues and not
with stream channels, e.g., Sockets and FIFO. Following is a brief introduction
to the salient features supported by Mailslots. For more information please see
http://mailslots.sourceforge.net/mailslots.htm.
Typed Messages: Like System V message queues Mailslots provides support
of typed messages. It means a type number can be assigned to a message and a
receiver can block for a particular message type. This feature is not available
in POSIX Message Queues.
Asynchronous Notification: Multiple processes can register for a POSIX
real-time signal or SIGIO, which will be delivered to the process every time a
new message arrives in the mailslot. This feature is not supported by System V
Message Queues.
File Descriptor Based Interface: Mailslots offers a file descriptor
based interface, which facilitates the use of standard file I/O calls, e.g.
read, write and close. This makes the user interface very simple. None of the
Message Queues has this feature.
I/O Multiplexing: Mailslots, like I/O devices, pipes and sockets can be
polled by kernel on behalf of a process. There are two standard system calls at
the user level, select and poll, which are used for this purpose. This is
another advantage of the file descriptor based interface since select and poll
are file descriptor based system calls. Either System V or POSIX Message Queues
does not support this facility.
Role Based Security: Mailslots employs a role based security model. In a
system, a process plays the role of a user. For example when the
"passwd" program is run, the "passwd" process plays the
role of root so that the password can be changed. This idea of role can be
further extended upon and a process can play the role of a child process, a
process in the same process group, a process in the same session and many
others. Depending upon the role a process is playing at any time, the access to
a resource by that process can be determined.
Implementation: Mailslots has been implemented for Linux because of its
modular architecture. It is divided in four loadable kernel modules that are
linked with the running kernel.
![]()