Changeset 195


Ignore:
Timestamp:
10/30/08 12:20:19 (15 years ago)
Author:
nanardon
Message:
  • fork and threads
Location:
trunk/unix
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/unix/Makefile

    r193 r195  
    1414        nosegfault.c \ 
    1515        malloc.c \ 
     16        fork.c \ 
    1617 
    1718unix_IMAGESJPG= \ 
     
    2021        asus_mb.png \ 
    2122        process.png \ 
     23        fork.png 
    2224 
    2325unix_FIGURES= \ 
  • trunk/unix/unix.tex

    r192 r195  
    492492\end{frame} 
    493493 
     494\subsection{plusieurs processus: sur 1 ordinateur} 
     495 
     496\begin{frame} 
     497\frametitle{fork()} 
     498\begin{block}{la fourchette} 
     499Permet à un processus de se dupliquer, et de donner naissance à un processus "fils" \textbf{indépendant}\\ 
     500 
     501\centering 
     502\includegraphics[height=15mm]{fork} 
     503\end{block} 
     504 
     505\begin{columns} 
     506\column{2in} 
     507\begin{block}{motivation} 
     508\begin{itemize} 
     509\item excution parallèle 
     510\item perte de privilège de fils 
     511\item préserver l'environnement du père 
     512\item serveur: remettre le père en attente 
     513\end{itemize} 
     514\end{block} 
     515\column{2in} 
     516\begin{block}{pros \& cons} 
     517\begin{itemize} 
     518\item existe sur tout les UNIX (glibc) 
     519\item simple 
     520\item pas de communication 
     521\end{itemize} 
     522\end{block} 
     523\end{columns} 
     524\end{frame} 
     525 
     526\begin{frame}[fragile] 
     527\frametitle{fork et la RAM} 
     528\begin{columns} 
     529\column{2in} 
     530\tiny 
     531\begin{exampleblock}{fork.c} 
     532\listinginput[5]{1}{fork.c} 
     533\end{exampleblock} 
     534\column{2.5in} 
     535\begin{tabular}{|l|c|} 
     536\hline 
     537&mem utilisée\\ 
     538\hline 
     539\hline 
     540Avant allocation&1687848\\ 
     541\hline 
     542Après allocation&2664948\\ 
     543\hline 
     544Après fork()&2666332\\ 
     545\hline 
     546\end{tabular} 
     547\end{columns} 
     548\end{frame} 
     549 
     550\begin{frame} 
     551\frametitle{les threads} 
     552\begin{block}{Sépare un processus en deux} 
     553 
     554\begin{itemize} 
     555\item partage de la mémoire 
     556\begin{itemize} 
     557\item tout n'est pas forcément partagé 
     558\item gestion de lock pour les écriture 
     559\end{itemize} 
     560\item le fonctionnement ressemble à fork mais 
     561\begin{itemize} 
     562\item programmation différente 
     563\item gestion par le système différente 
     564\item complexe mais éfficace 
     565\end{itemize} 
     566\end{itemize} 
     567\end{block} 
     568 
     569\begin{alertblock}{Linux: libpthread (glibc)} 
     570Les threads sont POSIX. 
     571 
     572Je ne garantie pas que tout les UNIX fournissent le support des threads 
     573\end{alertblock} 
     574 
     575\end{frame} 
     576 
    494577\end{document} 
Note: See TracChangeset for help on using the changeset viewer.