answers.tex
author Christian Urban <urbanc@in.tum.de>
Fri, 23 Feb 2018 21:10:49 +0000
changeset 206 3be0c4c034af
parent 203 fe3dbfd9123b
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
\documentclass{article}
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
     2
\usepackage{journal/pdfsetup}
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
\begin{document}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
%%%%
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
% Reviewer 1.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
\section*{Comments by Reviewer \#1}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    11
\begin{itemize}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
\item {\it 1.) I don't see the point of working with a more general
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    13
    library of possibly infinite graphs when it is clear that no
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
    (necessarily finite) evolution of the state could ever generate an
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
    infinite graph.}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
  It seemed the most convenient approach for us and we added the following
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    18
  comment on page 8 about justifying our choice. There was already a
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
  comment about having finiteness as a property, rather than a built-in
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
  assumption.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
  
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
  \begin{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
    It seems for our purposes the most convenient representation of
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
    graphs are binary relations given by sets of pairs. The pairs
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
    stand for the edges in graphs. This relation-based representation
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
    has the advantage that the notions \textit{waiting} and
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
    \textit{holding} are already defined in terms of relations
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
    amongst threads and resources.  Also, we can easily re-use the
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
    standard notions of transitive closure operations $\_*$ and $\_+$,
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    30
    as well as relation composition for our graphs.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    31
  \end{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    32
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    33
\item {\it 2.) Later, the release function is defined using Hilbert
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    34
    choice (Isabelle/HOL's \texttt{SOME} function) as a method for emulating
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
    non-determinism. This is horrid. The highest level generation of
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
    traces handles non-determinism beautifully; using choice at a
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
    lower level lets you keep things functional, but hides the fact
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
    that you want to model non-determinism at the lower level as
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
    well. I agree that the final theorem does imply that the way in
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
    which the new waiting list is chosen is irrelevant, but this
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    41
    implication is only apparent through a close reading of that
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    42
    definition. Better I think to lift the non-determinism and make it
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    43
    more apparent at the top level.}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    44
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    45
  \begin{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    46
    We generally agree with the reviewer about the use of
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    47
    \texttt{SOME}, but in this instance we cannot see a way to make
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    48
    this nondeterminism explicit without complicating  the
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
    49
    toplevel rules about \textit{PIP} on page 12. By using
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    50
    \texttt{SOME}, we can leave implicit the order of the waiting
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    51
    queue returned by release (which corresponds to the original
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    52
    system call from Sha et al). If we represent the non-determinism
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    53
    explicitly, we would need to add another argument to $V$
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    54
    specifying which thread is the next one that obtains the lock and
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    55
    add another premise to the \textit{PIP} rule for ensuring that
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    56
    this thread is member of the waiting queue.
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    57
  \end{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    58
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    59
\item {\it 3.) In \S 4, there is an assumption made about the number of
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    60
    threads allowed to be created. Given the form of theorem 2, this
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    61
    seems to me to be unnecessary. It's certainly extremely weird and
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    62
    ugly because it says that there are at most BC many thread
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    63
    creation events in all possible future traces (of which there are
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    64
    of course infinitely many). \ldots}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    65
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    66
  \begin{quote}
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    67
    We think this mis-reads our theorem: Although the constrains we
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    68
    put on thread creation prohibit the creation of higher priority
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    69
    threads, the creation of lower priority threads may still consume
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    70
    CPU time and prevent \textit{th} from accomplishing its task. That
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    71
    is the purpose we put in the \textit{BC} constraint to limit the
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    72
    overall number of thread creations. We slightly augmented the
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    73
    sentence on page 15 by:
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    74
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    75
    \begin{quote} 
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    76
    Otherwise our PIP scheduler could be ``swamped'' with
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    77
    \textit{Create}-requests of lower priority threads.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    78
    \end{quote}
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    79
    \end{quote}
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    80
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    81
\item {\it Why are variables corresponding to resources given the name
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
    82
    \textit{cs}? This is confusing. \textit{rsc} or \textit{r} would be
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    83
    better.}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    84
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    85
  \begin{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    86
    \textit{cs} stands for ``critical section'', which is the original name
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    87
    used by Sha et al to represent ``critical resources''.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    88
  \end{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    89
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    90
\item All other comments of the reviewer have been implemented.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    91
  
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    92
\end{itemize}  
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    93
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    94
%%%%
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    95
% Reviever 2.
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    96
\section*{Comments by Reviewer \#2}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    97
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    98
\begin{itemize}
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
    99
\item {\it Well-founded comment:} We updated the paragraph where
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   100
  \textit{acyclic} and \textit{well-founded} are used for the first
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   101
  time.
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   102
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   103
  \begin{quote}
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   104
    Note that forests can have trees with infinite depth and containing
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   105
    nodes with infinitely many children.  A \emph{finite forest} is a
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   106
    forest whose underlying relation is well-founded and every node
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   107
    has finitely many children (is only finitely branching).
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   108
  
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   109
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   110
    We also added a footnote that we are using the standard definition of
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   111
    well-foundedness from Isabelle.
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   112
  \end{quote}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   113
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   114
\item {\it Comment about graph-library:} This point was also raised by
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   115
  Reviewer~\#1 and we gave a better justification on page 8 (see
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   116
  answer to first point of Reviewer~\#1).
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   117
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   118
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   119
\item {\it 20.) In the case of "Set th prio:", it is not declared what
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   120
    the cprec (e::s) th should be (presumably it is something like
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   121
    Max((prio,|s|),prec th s) or possibly just prec th (e::s) given
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   122
    the assumptions on Set events listed before).}
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   123
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   124
  \begin{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   125
    We note the concern of the reviewer about the effect of the
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   126
  Set-operation on the \textit{cprec} value of a thread. According to
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   127
  equation (6) on page 11, the \textit{cprec} of a thread is
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   128
  determined by the precedence values in its subtree, while the Set
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   129
  operation only changes the precedence of the `Set' thread. If the
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   130
  reviewer thinks we should add this explanation again, then we are
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   131
  happy to do so.
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   132
  \end{quote}
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   133
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   134
\end{itemize}
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   135
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   136
\section*{Comments by Reviewer \#3}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   137
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   138
\begin{itemize}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   139
\item {\it The verification is at the model level, instead of code level:...}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   140
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   141
  \begin{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   142
    The verification is indeed on the level of the algorithm. A
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   143
    verification of the C-code is *well* beyond the scope of the
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   144
    paper. For example, it would require a formalised semantics for C
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   145
    (as for example given in the seL4-project). This and interfacing
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   146
    with it would be a tremendous amount of work and we are not sure
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   147
    whether their results would actually sufficient for the code we
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   148
    wrote.
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   149
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   150
    In light of this, we have made it clearer in the abstract and in a
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   151
    footnote on the first page that our C-code is unverified. Additionally
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   152
    we added the following sentence in Section 5 before we describe the
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   153
    C-code:
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   154
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   155
    \begin{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   156
      While there is no formal connection between our formalisation
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   157
      and the C-code shown below, the results of the formalisation
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   158
      clearly shine through in the design of the code.
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   159
    \end{quote}  
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   160
  \end{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   161
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   162
\item{\it The model cannot express the execution of instructions. As a
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   163
    result, it is difficult to express the case that the critical
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   164
    region does infinite loops without generating events for system
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   165
    calls.}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   166
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   167
  \begin{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   168
    Yes, we discuss this limitation in the first paragraph of section
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   169
    4 and already wrote that in this aspect we do not
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   170
    improve the limitations of the original paper by Sha et al.
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   171
  \end{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   172
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   173
\item{\it The authors should have provided URL of their mechanized
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   174
    proofs for the review process.}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   175
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   176
  \begin{quote}
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   177
    As is custom, we have given a link to the sources. 
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   178
    It is mentioned in the last
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   179
    sentence of the conclusion.
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   180
    
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   181
    The code of our formalisation can be downloaded from the Mercurial
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   182
    repository at \url{http://talisker.inf.kcl.ac.uk/cgi-bin/repos.cgi/pip}.
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   183
  \end{quote}  
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   184
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   185
\item{\it It is more like engineering work. It's unclear what general
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   186
    principles or theories are proposed.}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   187
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   188
  \begin{quote}
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   189
    The general point we are making is that a `proof-by-hand' is
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   190
    generally worthless in this area for ensuring the correctness of
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   191
    an algorithm. We underline this point by listing the references
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   192
    [13, 14, 15, 20, 24, 25], which all repeat the error from the
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   193
    original paper.
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   194
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   195
    More specifically we extend the claims of Sha at al and give
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   196
    a machine-checked formalisation  of our claims (the first such
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   197
    formalisation for PIP). We also wrote about our experiences: 
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   198
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   199
    \begin{quote}
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   200
      Following good experience in earlier work [27], our model of PIP
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   201
      is based on Paulson’s inductive approach for protocol
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   202
      verification [18].
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   203
    \end{quote}
203
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   204
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   205
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   206
\item{\it 1) There are some places that the authors follow the Isabelle
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   207
    syntax, which require more explanation. For instance, in the
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   208
    definitions of "threads" and "priority" in page 5, I had trouble
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   209
    understanding the underscore until I realized that the 4 cases are
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   210
    pattern matching and they have orders.}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   211
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   212
  \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   213
    We have added the sentence after the definition of \textit{threads}:
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   214
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   215
    \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   216
    We use \_ to match any pattern, like in functional programming.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   217
    \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   218
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   219
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   220
\item{\it 2) The last assumption on page 13: the assumption seems very
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   221
    strong. If you  prove Theorem 1 inductively on all  s (which means
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   222
    you have to consider s of length 1), then following the assumption
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   223
    you  essentially require  that the  highest priority  task is  the
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   224
    first task created.}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   225
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   226
  \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   227
    We feel like this mis-reads what we are proving and how we
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   228
    organised the statements. The thread \textit{th} is the thread
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   229
    with the highest priority in the state \textit{s}. It can be in
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   230
    \textit{s} at any `place'---it does not need to be the first
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   231
    one. What we prove is what happens to \textit{th} in the state
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   232
    \textit{$s' @ s$} which happens after \textit{s}. We only require
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   233
    that threads created after \textit{s} need to have a lower
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   234
    priority.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   235
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   236
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   237
\item{\it 3) 2nd line of the proofs of Lemma 1: th should be th' ?}  
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   238
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   239
  \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   240
    Yes, we corrected this error.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   241
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   242
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   243
\item{\it 4) Is your state (event traces) finite or infinite?}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   244
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   245
  \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   246
    Yes, they are always finite, but can be arbitrary long.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   247
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   248
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   249
\item{\it 5) Assumption at the bottom of page 15: I don't understand
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   250
    why this assumption is necessary. First, is es a finite or
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   251
    infinite trace? If es is finite, of course there's limited number
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   252
    of Create-requests. Even if it can be infinite, I don't see how
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   253
    the PIP scheduler could be "swamped" with create requests. You
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   254
    already assumed that there are no threads of precedence higher
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   255
    than th created in es. If all the newly created threads have lower
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   256
    precedence, they have no chance to run anyway (because of the low
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   257
    precedence). Then why should we care?}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   258
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   259
  \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   260
    Yes, \textit{es} and \textit{$es @ s$} are finite traces (finite
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   261
    list of events), but they can be arbitrarily long.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   262
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   263
    This means that knowing that \text{es} is finite, does *not* bound
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   264
    the number of create events.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   265
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   266
    We also understand that newly created threads have no chance to
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   267
    run (because of the lower priority), but the process of creating
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   268
    any processes consumes according to our model some time and
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   269
    therefore needs to be bounded. A Create event is not assumed to be
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   270
    `instantaneously'.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   271
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   272
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   273
\item {\it 6) The next assumption in page 16 does not look right to me
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   274
    either. What if there are no actions of th' in es at all, which
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   275
    may be caused by infinite loop inside the critical region of th'
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   276
    (but the loop does not generate any events)? In this case, the
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   277
    assumption is still satisfied because the length is 0, which is
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   278
    less than BND(th').}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   279
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   280
  \begin{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   281
    We made this point clearer (it was also requested by another reviewer).
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   282
    We discuss this limitation in more depth in the first paragraph of section
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   283
    4 and already wrote that in this aspect we do not
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   284
    improve the limitations of the original paper by Sha et al.
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   285
  \end{quote}
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   286
fe3dbfd9123b updated
Christian Urban <urbanc@in.tum.de>
parents: 201
diff changeset
   287
\item All other comments have been implemented.
201
fcc6f4c3c32f updated
Christian Urban <urbanc@in.tum.de>
parents: 200
diff changeset
   288
  
200
ff826e28d85c updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   289
\end{document}