Slides/Slides4.thy
author Christian Urban <urbanc@in.tum.de>
Tue, 07 Feb 2017 01:10:46 +0000
changeset 146 2d66c0b0bacf
parent 20 b56616fd88dd
permissions -rw-r--r--
test
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
(*>*)