Slides/Slides4.thy
author zhangx
Thu, 28 Jan 2016 21:14:17 +0800
changeset 90 ed938e2246b9
parent 20 b56616fd88dd
permissions -rw-r--r--
Retrofiting of: CpsG.thy (the parallel copy of PIPBasics.thy), ExtGG.thy (The paralell copy of Implemenation.thy), PrioG.thy (The paralell copy of Correctness.thy) has completed. The next step is to overwite original copies with the paralell ones.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     1
(*<*)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     2
theory Slides4
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     3
imports "../CpsG" "../ExtGG" "~~/src/HOL/Library/LaTeXsugar"
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     4
begin
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     5
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     6
notation (latex output)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     7
  set ("_") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     8
  Cons  ("_::/_" [66,65] 65) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     9
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    10
(*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    11
ML {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    12
  open Printer;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    13
  show_question_marks_default := false;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    14
  *}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    15
*)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    16
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    17
notation (latex output)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    18
  Cons ("_::_" [78,77] 73) and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    19
  vt ("valid'_state") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    20
  runing ("running") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    21
  birthtime ("last'_set") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    22
  If  ("(\<^raw:\textrm{>if\<^raw:}> (_)/ \<^raw:\textrm{>then\<^raw:}> (_)/ \<^raw:\textrm{>else\<^raw:}> (_))" 10) and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    23
  Prc ("'(_, _')") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    24
  holding ("holds") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    25
  waiting ("waits") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    26
  Th ("T") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    27
  Cs ("C") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    28
  P ("Lock") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    29
  V ("Unlock") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    30
  readys ("ready") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    31
  depend ("RAG") and 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    32
  preced ("prec") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    33
  cpreced ("cprec") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    34
  dependents ("dependants") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    35
  cp ("cprec") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    36
  holdents ("resources") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    37
  original_priority ("priority") and
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    38
  DUMMY  ("\<^raw:\mbox{$\_\!\_$}>")
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    39
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    40
(*>*)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    41
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    42
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    43
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    44
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    45
  \renewcommand{\slidecaption}{NASA, 20 June 2013}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    46
  \newcommand{\bl}[1]{#1}                        
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    47
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    48
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    49
  \begin{frame}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    50
  \frametitle{%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    51
  \begin{tabular}{@ {}c@ {}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    52
  \\[-3mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    53
  \LARGE Formalisations and the\\[-1mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    54
  \LARGE Isabelle Theorem Prover\\[-3mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    55
  \end{tabular}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    56
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    57
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    58
   Christian Urban\\[1mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    59
  \small King's College London
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    60
  \end{center}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    61
 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    62
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    63
  many thanks to Mahyar Malekpour and Cesar Munoz for the invitation and 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    64
  hospitality
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    65
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    66
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    67
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    68
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    69
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    70
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    71
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    72
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    73
  \begin{frame}<2->[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    74
  \frametitle{Isabelle Theorem Prover}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    75
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    76
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    77
  \includegraphics[scale=0.23]{isabelle.png}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    78
  \end{center}  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    79
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    80
  \only<2>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    81
  \begin{textblock}{12}(2,13.6)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    82
  \begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    83
  \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    84
  {\normalsize\color{darkgray}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    85
  \begin{minipage}{9cm}\raggedright
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    86
  \ldots to make sure large proofs are correct
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    87
  \end{minipage}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    88
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    89
  \end{textblock}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    90
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    91
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    92
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    93
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    94
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    95
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    96
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    97
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    98
  \tikzstyle{every node}=[node distance=25mm,text height=1.5ex, text depth=.25ex]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    99
  \tikzstyle{node1}=[rectangle, minimum size=8mm, rounded corners=3mm, very thick, 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   100
                     draw=black!50, top color=white, bottom color=black!20]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   101
  \tikzstyle{node2}=[rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   102
                     draw=red!70, top color=white, bottom color=red!50!black!20]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   103
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   104
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   105
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   106
  \frametitle{}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   107
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   108
  \begin{tabular}{@ {}c@ {\hspace{2mm}}c}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   109
  \\[6mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   110
  \begin{tabular}{c}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   111
  \includegraphics[scale=0.11]{harper.jpg}\\[-2mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   112
  {\footnotesize Bob Harper}\\[-2.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   113
  {\footnotesize (CMU)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   114
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   115
  \begin{tabular}{c@ {}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   116
  \includegraphics[scale=0.37]{pfenning.jpg}\\[-2mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   117
  {\footnotesize Frank Pfenning}\\[-2.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   118
  {\footnotesize (CMU)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   119
  \end{tabular} &
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   120
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   121
  \begin{tabular}{@ {\hspace{-3mm}}p{7cm}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   122
  \begin{tikzpicture}[remember picture, scale=0.5]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   123
  \matrix[ampersand replacement=\&,column sep=7mm, row sep=5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   124
  { \& \& \node (desc) {\makebox[0mm]{\begin{tabular}{l}published in a journal\\ 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   125
    \small (ACM ToCL, 31 pages, 2005)\\[3mm]\end{tabular}}};\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   126
    \&[-10mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   127
    \node (def1)   [node1] {\hspace{1mm}Spec\hspace{1mm}\mbox{}}; \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   128
    \node (proof1) [node1] {Proof}; \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   129
    \node (alg1)   [node1] {\hspace{1mm}Alg\hspace{1mm}\mbox{}}; \\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   130
  };
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   131
  \draw[->,black!50,line width=2mm] (proof1) -- (def1);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   132
  \draw[->,black!50,line width=2mm] (proof1) -- (alg1);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   133
  \draw[<-,black,line width=0.5mm] (proof1) -- (desc);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   134
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   135
  \end{tabular}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   136
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   137
  \pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   138
  \\[0mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   139
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   140
  \multicolumn{2}{c}{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   141
  \begin{tabular}{p{6cm}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   142
  \raggedright
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   143
  \color{black}{relied on their proof in a\\ {\bf security} critical application}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   144
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   145
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   146
  \begin{tabular}{c}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   147
  \includegraphics[scale=0.36]{appel.jpg}\\[-2mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   148
  {\footnotesize Andrew Appel}\\[-2.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   149
  {\footnotesize (Princeton)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   150
  \end{tabular}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   151
  \end{tabular} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   152
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   153
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   154
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   155
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   156
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   157
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   158
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   159
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   160
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   161
  \begin{frame}<4-> 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   162
  \frametitle{\LARGE\begin{tabular}{c}An Example for a Small TCB\end{tabular}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   163
  \mbox{}\\[-14mm]\mbox{}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   164
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   165
  \begin{columns}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   166
  \begin{column}{0.2\textwidth}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   167
  \begin{tabular}{@ {} c@ {}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   168
  \includegraphics[scale=0.3]{appel.jpg}\\[-2mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   169
  {\footnotesize Andrew Appel}\\[-2.5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   170
  {\footnotesize (Princeton)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   171
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   172
  \end{column}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   173
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   174
  \begin{column}{0.8\textwidth}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   175
  \begin{textblock}{10}(4.5,3.95)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   176
  \begin{block}{Proof-Carrying Code:}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   177
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   178
  \begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   179
  \draw[help lines,cream] (0,0.2) grid (8,4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   180
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   181
  \draw[line width=1mm, red] (5.5,0.6) rectangle (7.5,4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   182
  \node[anchor=base] at (6.5,2.8) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   183
     {\small\begin{tabular}{@ {}p{1.9cm}@ {}}\centering  user can run untrusted code\end{tabular}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   184
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   185
  \draw[line width=1mm, red] (0.5,0.6) rectangle (2.5,4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   186
  \node[anchor=base] at (1.5,2.3) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   187
     {\small\begin{tabular}{@ {}p{1.9cm}@ {}}\centering  code developer/ web server/ Apple 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   188
  Store\end{tabular}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   189
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   190
  \onslide<4->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   191
  \draw[line width=1mm, red, fill=red] (5.5,0.6) rectangle (7.5,1.8);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   192
  \node[anchor=base,white] at (6.5,1.1) 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   193
     {\small\begin{tabular}{@ {}p{1.9cm}@ {}}\bf\centering proof- checker\end{tabular}};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   194
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   195
  \node at (3.8,3.0) [single arrow, fill=red,text=white, minimum height=3cm]{\bf code};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   196
  \onslide<3->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   197
  \node at (3.8,1.3) [single arrow, fill=red,text=white, minimum height=3cm]{\bf LF proof};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   198
  \node at (3.8,1.9) {\small certificate};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   199
  }
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   200
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   201
  \onslide<2>{\node at (4.0,1.3) [text=red]{\begin{tabular}{c}\bf Highly\\\bf Dangerous!\end{tabular}};}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   202
  % Code Developer
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   203
  % User (runs untrusted code)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   204
  % transmits a proof that the code is safe
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   205
  % 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   206
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   207
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   208
  \end{block}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   209
  \end{textblock}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   210
  \end{column}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   211
  \end{columns}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   212
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   213
  \small\mbox{}\\[3.2cm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   214
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   215
  \item<4-> TCB of the checker is $\sim$2700 lines of code (1865 loc of\\ LF definitions; 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   216
  803 loc in C including 2 library functions)\\[-3mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   217
  \item<4-> 167 loc in C implement a type-checker
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   218
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   219
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   220
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   221
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   222
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   223
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   224
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   225
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   226
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   227
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   228
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   229
  \tikzstyle{every node}=[node distance=25mm,text height=1.5ex, text depth=.25ex]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   230
  \tikzstyle{node1}=[rectangle, minimum size=10mm, rounded corners=3mm, very thick, 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   231
                     draw=black!50, top color=white, bottom color=black!20]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   232
  \tikzstyle{node2}=[rectangle, minimum size=12mm, rounded corners=3mm, very thick, 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   233
                     draw=red!70, top color=white, bottom color=red!50!black!20]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   234
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   235
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   236
  \begin{frame}<2->[squeeze]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   237
  \frametitle{} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   238
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   239
  \begin{columns}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   240
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   241
  \begin{column}{0.8\textwidth}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   242
  \begin{textblock}{0}(1,2)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   243
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   244
  \begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   245
  \matrix[ampersand replacement=\&,column sep=7mm, row sep=5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   246
  { \&[-10mm] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   247
    \node (def1)   [node1] {\large\hspace{1mm}Spec\hspace{1mm}\mbox{}}; \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   248
    \node (proof1) [node1] {\large Proof}; \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   249
    \node (alg1)   [node1] {\large\hspace{1mm}Alg\hspace{1mm}\mbox{}}; \\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   250
    
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   251
    \onslide<4->{\node {\begin{tabular}{c}\small 1st\\[-2.5mm] \footnotesize solution\end{tabular}};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   252
    \onslide<4->{\node (def2)   [node2] {\large Spec$^\text{+ex}$};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   253
    \onslide<4->{\node (proof2) [node1] {\large Proof};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   254
    \onslide<4->{\node (alg2)   [node1] {\large\hspace{1mm}Alg\hspace{1mm}\mbox{}};} \\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   255
     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   256
    \onslide<5->{\node {\begin{tabular}{c}\small 2nd\\[-2.5mm] \footnotesize solution\end{tabular}};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   257
    \onslide<5->{\node (def3)   [node1] {\large\hspace{1mm}Spec\hspace{1mm}\mbox{}};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   258
    \onslide<5->{\node (proof3) [node1] {\large Proof};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   259
    \onslide<5->{\node (alg3)   [node2] {\large Alg$^\text{-ex}$};} \\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   260
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   261
    \onslide<6->{\node {\begin{tabular}{c}\small 3rd\\[-2.5mm] \footnotesize solution\end{tabular}};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   262
    \onslide<6->{\node (def4)   [node1] {\large\hspace{1mm}Spec\hspace{1mm}\mbox{}};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   263
    \onslide<6->{\node (proof4) [node2] {\large\hspace{1mm}Proof\hspace{1mm}};} \&
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   264
    \onslide<6->{\node (alg4)   [node1] {\large\hspace{1mm}Alg\hspace{1mm}\mbox{}};} \\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   265
  };
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   266
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   267
  \draw[->,black!50,line width=2mm] (proof1) -- (def1);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   268
  \draw[->,black!50,line width=2mm] (proof1) -- (alg1);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   269
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   270
  \onslide<4->{\draw[->,black!50,line width=2mm] (proof2) -- (def2);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   271
  \onslide<4->{\draw[->,black!50,line width=2mm] (proof2) -- (alg2);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   272
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   273
  \onslide<5->{\draw[->,black!50,line width=2mm] (proof3) -- (def3);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   274
  \onslide<5->{\draw[->,black!50,line width=2mm] (proof3) -- (alg3);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   275
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   276
  \onslide<6->{\draw[->,black!50,line width=2mm] (proof4) -- (def4);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   277
  \onslide<6->{\draw[->,black!50,line width=2mm] (proof4) -- (alg4);}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   278
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   279
  \onslide<3->{\draw[white,line width=1mm] (1.1,3.2) -- (0.9,2.85) -- (1.1,2.35) -- (0.9,2.0);} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   280
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   281
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   282
  \end{textblock}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   283
  \end{column}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   284
  \end{columns}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   285
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   286
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   287
  \begin{textblock}{3}(12,3.6)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   288
  \onslide<4->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   289
  \begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   290
  \node at (0,0) [single arrow, shape border rotate=270, fill=red,text=white]{2h};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   291
  \end{tikzpicture}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   292
  \end{textblock}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   293
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   294
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   295
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   296
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   297
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   298
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   299
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   300
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   301
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   302
  \frametitle{Other Formalisations}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   303
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   304
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   305
  \begin{itemize} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   306
  \item I also found a (fixable) mistake in my PhD thesis\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   307
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   308
  \item Nominal Isabelle: found out that the variable convention 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   309
  can be used to prove false (a surprising result in PL-research)\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   310
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   311
  \item Computability and Logic Book (5th ed.)\\ by Boolos, Burgess and Jeffrey ---
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   312
  two definitions about halting computations in UTMs are inconsistent
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   313
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   314
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   315
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   316
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   317
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   318
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   319
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   320
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   321
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   322
  \frametitle{Scheduling in RTOS}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   323
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   324
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   325
  \item RTOS: priorities and resource locking
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   326
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   327
  \item Purpose:\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   328
  guarantee tasks to be completed in time\medskip\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   329
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   330
  \item \alert{this already results into a surprisingly non-trivial algorithmic problem}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   331
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   332
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   333
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   334
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   335
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   336
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   337
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   338
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   339
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   340
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   341
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   342
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   343
  \frametitle{The Problem}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   344
  \Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   345
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   346
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   347
  \begin{tabular}{l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   348
  \alert{H}igh-priority process (waits)\\[4mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   349
  \onslide<2->{\alert{M}edium-priority process}\\[4mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   350
  \alert{L}ow-priority process (has a lock)\\[4mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   351
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   352
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   353
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   354
  \onslide<3->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   355
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   356
  \item \alert{priority inversion}\\ \hspace{2cm}@{text "\<equiv>"} H waits for a process\\ 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   357
  \mbox{}\hfill with lower priority
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   358
  \item<4> avoid \alert{indefinite} priority inversion
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   359
  \end{itemize}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   360
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   361
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   362
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   363
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   364
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   365
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   366
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   367
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   368
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   369
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   370
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   371
  \frametitle{Mars Pathfinder Mission 1997}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   372
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   373
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   374
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   375
  \includegraphics[scale=0.15]{marspath1.png}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   376
  \includegraphics[scale=0.16]{marspath3.png}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   377
  \includegraphics[scale=0.3]{marsrover.png}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   378
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   379
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   380
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   381
  \item the lander reset frequently on Mars
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   382
  \item the problem: priority inversion
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   383
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   384
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   385
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   386
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   387
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   388
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   389
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   390
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   391
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   392
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   393
  \frametitle{The Solution}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   394
  \Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   395
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   396
  \alert{Priority Inheritance Protocol (PIP):}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   397
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   398
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   399
  \begin{tabular}{l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   400
  \alert{H}igh-priority process\\[4mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   401
  \textcolor{gray}{Medium-priority process}\\[4mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   402
  \alert{L}ow-priority process\\[15mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   403
  {\normalsize (temporarily raise the priority of \alert{L})}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   404
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   405
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   406
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   407
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   408
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   409
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   410
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   411
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   412
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   413
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   414
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   415
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   416
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   417
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   418
  \frametitle{A First Correctness ``Proof''}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   419
  \Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   420
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   421
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   422
  \item the paper$^\star$ first describing  PIP ``proved'' also its 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   423
  correctness:\\[5mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   424
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   425
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   426
  \normalsize
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   427
  \begin{quote}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   428
  \ldots{}after the thread (whose priority has been raised) completes its 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   429
  critical section and releases the lock, it ``returns to its original 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   430
  priority level''.
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   431
  \end{quote}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   432
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   433
  \small
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   434
  $^\star$ in IEEE Transactions on Computers in 1990 by Sha et al.
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   435
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   436
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   437
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   438
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   439
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   440
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   441
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   442
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   443
  \frametitle{}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   444
  \Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   445
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   446
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   447
  \begin{tabular}{l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   448
  \alert{H}igh-priority process 1 (waits)\\[2mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   449
  \alert{H}igh-priority process 2 (waits)\\[8mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   450
  \alert{L}ow-priority process (has a lock)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   451
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   452
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   453
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   454
  \onslide<2->{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   455
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   456
  \item Solution: return to the highest
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   457
  \phantom{Solution:} \alert{remaining} priority\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   458
  \end{itemize}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   459
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   460
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   461
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   462
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   463
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   464
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   465
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   466
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   467
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   468
  \frametitle{Specification}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   469
  \Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   470
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   471
   \begin{itemize}\Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   472
  \item Use Inductive Method with events of the form:
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   473
   \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   474
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   475
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   476
  \begin{tabular}{l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   477
  Create \textcolor{gray}{thread priority}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   478
  Exit \textcolor{gray}{thread}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   479
  Set \textcolor{gray}{thread priority}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   480
  Lock \textcolor{gray}{thread cs}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   481
  Unlock \textcolor{gray}{thread cs}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   482
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   483
  \end{center}\medskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   484
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   485
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   486
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   487
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   488
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   489
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   490
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   491
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   492
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   493
  \frametitle{Scheduling States}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   494
  \Large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   495
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   496
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   497
  \item A \alert{state s} is a list of events\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   498
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   499
  \begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   500
  \draw [->, line width=1.5mm] (-4,0) -- (4, 0);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   501
  \draw [line width=0.8mm] (-4, 0.3) -- (-4, -0.3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   502
  \draw [line width=0.8mm] (1, 0.3) -- (1, -0.3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   503
  \node at (1,-0.7) {\large s};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   504
  \node at (-4,-0.7) {\large 0};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   505
  \node at (3.2,-0.7) {\large time};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   506
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   507
  \end{center}\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   508
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   509
  \item Scheduling according to \alert{precedences}:
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   510
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   511
  \begin{tabular}{@ {}l@ {}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   512
  \large @{thm preced_def[where thread="th"]} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   513
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   514
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   515
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   516
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   517
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   518
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   519
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   520
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   521
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   522
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   523
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   524
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   525
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   526
  \frametitle{Waiting Queues}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   527
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   528
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   529
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   530
  \item A \alert{waiting queue} function returns a list of threads
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   531
  associated with every resource
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   532
  \item The head of the list is the thread holding the resource.
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   533
  \medskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   534
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   535
  \begin{center}\normalsize
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   536
  \begin{tabular}{@ {}l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   537
  @{thm cs_holding_def[where thread="th"]}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   538
  @{thm cs_waiting_def[where thread="th"]}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   539
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   540
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   541
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   542
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   543
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   544
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   545
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   546
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   547
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   548
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   549
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   550
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   551
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   552
  \frametitle{Resource Allocation Graphs}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   553
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   554
\begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   555
  \newcommand{\fnt}{\fontsize{7}{8}\selectfont}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   556
  \begin{tikzpicture}[scale=1]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   557
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   558
  \node (A) at (0,0) [draw, rounded corners=1mm, rectangle, very thick] {@{text "th\<^isub>0"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   559
  \node (B) at (2,0) [draw, circle, very thick, inner sep=0.4mm] {@{text "cs\<^isub>1"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   560
  \node (C) at (4,0.7) [draw, rounded corners=1mm, rectangle, very thick] {@{text "th\<^isub>1"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   561
  \node (D) at (4,-0.7) [draw, rounded corners=1mm, rectangle, very thick] {@{text "th\<^isub>2"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   562
  \node (E) at (6,-0.7) [draw, circle, very thick, inner sep=0.4mm] {@{text "cs\<^isub>2"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   563
  \node (E1) at (6, 0.3) [draw, circle, very thick, inner sep=0.4mm] {@{text "cs\<^isub>3"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   564
  \node (F) at (8,-0.7) [draw, rounded corners=1mm, rectangle, very thick] {@{text "th\<^isub>3"}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   565
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   566
  \draw [<-,line width=0.6mm] (A) to node [pos=0.54,sloped,above=-0.5mm] {\fnt{}holds}  (B);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   567
  \draw [->,line width=0.6mm] (C) to node [pos=0.4,sloped,above=-0.5mm] {\fnt{}waits}  (B);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   568
  \draw [->,line width=0.6mm] (D) to node [pos=0.4,sloped,below=-0.5mm] {\fnt{}waits}  (B);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   569
  \draw [<-,line width=0.6mm] (D) to node [pos=0.54,sloped,below=-0.5mm] {\fnt{}holds}  (E);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   570
  \draw [<-,line width=0.6mm] (D) to node [pos=0.54,sloped,above=-0.5mm] {\fnt{}holds}  (E1);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   571
  \draw [->,line width=0.6mm] (F) to node [pos=0.45,sloped,below=-0.5mm] {\fnt{}waits}  (E);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   572
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   573
  \end{center}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   574
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   575
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   576
  \begin{minipage}{0.8\linewidth}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   577
  \raggedleft
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   578
  @{thm cs_depend_def}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   579
  \end{minipage}\medskip\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   580
  \begin{minipage}{1\linewidth}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   581
  @{thm cs_dependents_def}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   582
  \end{minipage}\medskip\\\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   583
  \begin{minipage}{1\linewidth}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   584
  \alert{cprec wq s th} $\dn$\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   585
  \mbox{}\hspace{1cm}Max(\{prec th s\} $\cup$\\ 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   586
  \mbox{}\hspace{1cm}\phantom{Max(}\{prec th' s $\mid$ th' $\in$ dependants wq th\})
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   587
  \end{minipage}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   588
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   589
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   590
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   591
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   592
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   593
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   594
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   595
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   596
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   597
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   598
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   599
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   600
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   601
  \frametitle{The Scheduler}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   602
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   603
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   604
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   605
  \item \underline{Start}: all priorities/precedences are 0, all resources are unlocked
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   606
  \item \underline{Create th p}: set precedence of th
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   607
  \item \underline{Exit th}: reset precedence to 0
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   608
  \item \underline{Set th p}: reset precedence of th
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   609
  \item \underline{Lock th cs}: add th to the end of the waiting queue of cs
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   610
  \item \underline{Unlock th cs}:\\ delete th from the waiting queue of cs\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   611
  \hspace{1cm}\alert{and who to give the resource next?}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   612
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   613
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   614
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   615
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   616
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   617
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   618
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   619
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   620
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   621
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   622
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   623
  \frametitle{The Scheduler (2)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   624
  %%\large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   625
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   626
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   627
  \item \large threads ready to run\normalsize
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   628
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   629
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   630
  \begin{tabular}{@ {}l}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   631
  @{thm (lhs) readys_def} $\dn$\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   632
  \;@{thm (rhs) readys_def}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   633
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   634
  \end{center}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   635
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   636
  \item \large the thread that is running in a state:\\[-10mm]\normalsize
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   637
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   638
  \begin{tabular}{@ {}l@ {}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   639
  @{thm (lhs) runing_def} $\dn$\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   640
  \;@{thm (rhs) runing_def}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   641
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   642
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   643
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   644
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   645
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   646
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   647
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   648
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   649
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   650
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   651
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   652
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   653
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   654
  \frametitle{Inductive Method}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   655
  %%\large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   656
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   657
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   658
\begin{tikzpicture}[scale=1.6]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   659
%%\draw[step=2mm] (-4,-1) grid (4,1.4);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   660
\draw (0,0.2) node {\begin{tabular}{l} valid\\[-1mm] scheduler\\[-1mm] states\\ \end{tabular}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   661
\draw (3,0) node {\begin{tabular}{l} set of invalid\\[-1mm] scheduler states \\[-1mm](e.g., deadlocks)\\ \end{tabular}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   662
\draw[<-, line width=0.5mm] (1.0,0) -- (1.8,0);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   663
\draw[<-, line width=0.5mm] (-0.2,-0.55) -- (-0.4,-1.3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   664
\draw (-0.0,-1.5) node {\begin{tabular}{l} inductively defined set \end{tabular}};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   665
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   666
\draw[line width=0.5mm, rounded corners=6.3pt] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   667
  (-0.9,-0.05) -- (-0.8,0.6) -- (-0.3,0.95) -- (0,1) -- (0.5,0.8) -- (0.65,0.5) -- (0.7,0) -- (0.4,-0.5) -- (0,-0.6) -- (-0.5,-0.45) -- cycle;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   668
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   669
\draw[line width=0.5mm, rounded corners=15pt] 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   670
 (-1.2,0) -- (-0.9,0.95) -- (0,1.2) -- (1.0,1.0) -- (1.7,0) -- (0.95,-1.0) -- (0,-1.2) -- (-0.9,-0.9) -- cycle;
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   671
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   672
\end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   673
\end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   674
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   675
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   676
  \item We have to exclude situations where there is a deadlock,
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   677
  a thread exited before created, \ldots
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   678
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   679
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   680
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   681
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   682
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   683
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   684
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   685
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   686
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   687
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   688
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   689
  \frametitle{Valid Next Events}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   690
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   691
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   692
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   693
  \item In a state s, the following events can occur:
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   694
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   695
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   696
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   697
  @{thm[mode=Rule] thread_create[where thread=th]}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   698
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   699
  @{thm[mode=Rule] thread_exit[where thread=th]}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   700
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   701
  @{thm[mode=Rule] thread_set[where thread=th]}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   702
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   703
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   704
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   705
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   706
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   707
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   708
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   709
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   710
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   711
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   712
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   713
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   714
  \frametitle{Valid Next Events (2)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   715
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   716
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   717
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   718
  @{thm[mode=Rule] thread_P[where thread=th]}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   719
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   720
  @{thm[mode=Rule] thread_V[where thread=th]}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   721
  \end{center}\bigskip\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   722
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   723
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   724
  \item Done with the specification. \ldots
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   725
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   726
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   727
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   728
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   729
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   730
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   731
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   732
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   733
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   734
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   735
  \frametitle{Correctness Criterion}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   736
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   737
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   738
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   739
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   740
  \begin{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   741
  \draw [->, line width=1.5mm] (-4,0) -- (4, 0);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   742
  \draw [line width=0.8mm] (-4, 0.3) -- (-4, -0.3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   743
  \draw [line width=0.8mm] (1, 0.3) -- (1, -0.3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   744
  \draw [line width=0.8mm] (0, 0.3) -- (0, -0.3);
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   745
  \node at (1,-0.7) {\large s'};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   746
  \node at (0,-0.7) {\large s};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   747
  \node at (1,-1.5) {\small(th')};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   748
  \node at (0,-1.5) {\small(th)};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   749
  \node at (-4,-0.7) {\large 0};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   750
  \node at (3.2,-0.7) {\large time};
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   751
  \end{tikzpicture}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   752
  \end{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   753
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   754
  \normalsize
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   755
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   756
  \item {\bf If} th is alive in s and has the highest precedence
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   757
  \item plus some further assumption (like th not reset, not exited, no higher precedences in s - s')
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   758
  \item and th is {\bf not} running in s', \\ {\bf then} the running
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   759
  thread th' (in s') is a thread that was alive in {\bf s} and has in s' the same 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   760
  precedence as th in s.
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   761
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   762
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   763
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   764
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   765
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   766
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   767
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   768
(*<*)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   769
context extend_highest_gen
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   770
begin
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   771
(*>*)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   772
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   773
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   774
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   775
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   776
  \begin{frame}[t]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   777
  \frametitle{Implementation}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   778
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   779
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   780
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   781
  \item Create/Exit events:
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   782
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   783
  \item we do not have to recalculate the RAG
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   784
  \item we do not have to recalculate the other precedences
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   785
  \end{itemize}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   786
  \item Set event:
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   787
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   788
  \item we do not have to recalculate the RAG
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   789
  \item also the other precedences do not have to be recalculated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   790
  (since this is the currently running thread, it cannot affect
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   791
  other threads)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   792
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   793
  \item Unlock event (2 cases: a thread to take over, no thread to take over)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   794
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   795
  \item case 1: RAG needs to be modified, but apart from th and th' no
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   796
  other precedence needs to be recalculated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   797
  \item case 2: RAG needs to be prunned, no precedence needs to be recalculated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   798
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   799
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   800
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   801
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   802
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   803
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   804
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   805
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   806
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   807
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   808
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   809
  \begin{frame}[t]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   810
  \frametitle{Implementation (2)}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   811
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   812
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   813
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   814
  \item Unlock event (2 cases: a thread to take over, no thread to take over)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   815
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   816
  \item case 1: RAG needs to be modified, but apart from th and th' no
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   817
  other precedence needs to be recalculated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   818
  \item case 2: RAG needs to be pruned, no precedence needs to be recalculated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   819
  \end{itemize}\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   820
  \item Lock event (2 cases: cs is locked, not locked)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   821
  \begin{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   822
  \item case 1: a waiting edge needs to be added to the RAG, precedences of 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   823
  all dependants need to recalculated (where there is a change)  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   824
  \item case 2: a holding edge needs to be added to the RAG, no
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   825
  precedences need to be recalculated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   826
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   827
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   828
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   829
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   830
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   831
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   832
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   833
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   834
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   835
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   836
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   837
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   838
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   839
  \frametitle{Implementation}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   840
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   841
  \begin{itemize} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   842
  \item in PINTOS (Stanford), written in C for educational purposes\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   843
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   844
  \begin{tabular}{|l@ {\hspace{2mm}}|l@ {\hspace{2mm}}|}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   845
  \hline
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   846
  {\bf Event} & {\bf PINTOS function} \\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   847
  \hline
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   848
  @{text Create} & @{text "thread_create"}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   849
  @{text Exit}   & @{text "thread_exit"}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   850
  @{text Set}    & @{text "thread_set_priority"}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   851
  @{text Lock}      & @{text "lock_acquire"}\\
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   852
  @{text Unlock}      & @{text "lock_release"}\\ 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   853
  \hline
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   854
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   855
  \end{center}\pause\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   856
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   857
  \item \alert{We did not verify our C-code!}\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   858
  \item We were much faster: we gave an unlocked resource to
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   859
  the thread with the highest precedence
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   860
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   861
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   862
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   863
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   864
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   865
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   866
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   867
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   868
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   869
  \frametitle{A Step Back\ldots}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   870
  \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   871
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   872
  \begin{itemize} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   873
  \item Did we make any impact? No!\medskip\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   874
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   875
  \item real-time scheduling on multiprocessors seems to be a very
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   876
  underdeveloped area 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   877
  \item implementations exist, e.g.~RT-Linux
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   878
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   879
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   880
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   881
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   882
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   883
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   884
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   885
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   886
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   887
  \frametitle{Theorem Provers}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   888
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   889
  \begin{itemize} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   890
  \item We found a mistake in a refereed paper by Harper \& Pfenning
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   891
  \item I also found a mistake in my PhD thesis
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   892
  \item also a popular textbook book on Computability contained an
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   893
  error\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   894
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   895
  \item scratching on the surface of an completely ``alien'' subject 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   896
  to us --- we were able to make progress
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   897
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   898
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   899
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   900
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   901
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   902
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   903
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   904
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   905
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   906
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   907
  \frametitle{Inductive Method / Protocols}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   908
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   909
  \begin{itemize} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   910
  \item the inductive method was developed/used by Larry Paulson
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   911
  for verifying security protocols\bigskip\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   912
  \item we used it for a different `kind' of protocols (scheduling)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   913
  \item but this was restricted to only single-processors, no timing information
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   914
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   915
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   916
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   917
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   918
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   919
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   920
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   921
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   922
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   923
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   924
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   925
  \frametitle{Clock Synchronisation}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   926
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   927
  \begin{itemize} 
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   928
  \item Mahyar Malekpour introduced a distributed clock-synchronisation
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   929
  algorithm\\ (perfect example for us)\bigskip\bigskip
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   930
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   931
  \item connected units exchange messages according to a protocol
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   932
  and reach a stable, synchronised state
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   933
  \item messages have to reach the receiver within a time-window\pause
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   934
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   935
  \item \alert{verification still ongoing}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   936
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   937
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   938
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   939
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   940
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   941
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   942
text_raw {*
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   943
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   944
  \mode<presentation>{
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   945
  \begin{frame}[c]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   946
  \frametitle{Questions?}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   947
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   948
  \begin{itemize} \large
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   949
  \item Thank you for the invitation and for listening!
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   950
  \end{itemize}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   951
  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   952
  \begin{center}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   953
  \begin{tabular}{c}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   954
  \includegraphics[scale=0.13]{isabelle.png}\\[-2mm]
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   955
  \small\url{http://isabelle.in.tum.de}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   956
  \end{tabular}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   957
  \end{center}  
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   958
  \end{frame}}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   959
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   960
*}
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   961
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   962
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   963
(*<*)
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   964
end
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   965
end
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   966
(*>*)