Created
December 6, 2011 15:19
-
-
Save shouichi/1438542 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*.aux | |
*.dvi | |
*.log | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[a4paper]{article} | |
\usepackage{graphicx} | |
\usepackage{amsmath, amssymb} | |
\title{Emulating java.nio on Top of java.io and java.net} | |
\author{Kamiya Shouichi} | |
\date{\today} | |
\begin{document} | |
\maketitle | |
\section*{Introduction} | |
Java Path Finder is a model checker for Java bytecode. It detects property | |
violations such as deadlocks or un-handled exceptions. It was open sourced by | |
NASA and many extensions are available. By using net-io-cache extension JPF | |
fully supports java.net and java.io. However JPF does not support java.nio at | |
all. Our goal is to support java.nio by emulating it on top of java.net and | |
java.io. | |
\section*{Motivation} | |
Let's say we want to implement a server. With java.net we can accept, read and | |
write but the problem is methods in java.net is blocking. Then we need to | |
spawn a thread for each connection to handle multiple connections. Obviously | |
this approach is resource hungry. On the other hand, with java.nio we can | |
accept, read and write without blocking. Therefore one thread can handle | |
multiple connections and it consumes less resource. Recent projects such as | |
Hadoop uses java.nio for this reason. So we believe verifying applications | |
that uses java.nio is important. | |
\section*{Approach} | |
We can (a) implement java.nio from scratch (b) implement java.nio on top of | |
the net-io-cache. It's time consuming to take approach (a) so we took | |
approach (b). We emulated java.nio by first invoking blocking connect and | |
managing logical state of connectivity. | |
\end{document} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
RM=rm -f | |
LATEX=latex | |
DVIPDFMX=dvipdfmx | |
SOURCES=abstract.tex | |
DVI=$(SOURCES:.tex=.dvi) | |
PDF=$(SOURCES:.tex=.pdf) | |
all: pdf | |
gnome-open $(PDF) | |
dvi: $(DVI) | |
pdf: $(PDF) | |
.SUFFIXES: | |
.SUFFIXES: .tex .dvi .pdf | |
.tex.dvi: | |
$(LATEX) $< | |
.dvi.pdf: | |
$(DVIPDFMX) $< | |
.PHONY: clean | |
clean: | |
$(RM) *.dvi *.pdf *.aux *.log |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment