[Sysfence-commit] sysfence/dokprojektlic speckonstrukcyjna.tex,1.9,1.10
Status: Alpha
Brought to you by:
emes
|
From: Michal S. <em...@us...> - 2004-06-07 11:45:10
|
Update of /cvsroot/sysfence/sysfence/dokprojektlic In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21266 Modified Files: speckonstrukcyjna.tex Log Message: * poprawkesy ;) Index: speckonstrukcyjna.tex =================================================================== RCS file: /cvsroot/sysfence/sysfence/dokprojektlic/speckonstrukcyjna.tex,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- speckonstrukcyjna.tex 6 Jun 2004 19:00:53 -0000 1.9 +++ speckonstrukcyjna.tex 7 Jun 2004 11:44:57 -0000 1.10 @@ -48,55 +48,62 @@ \subsubsection{Modu³ \textit{sighandlers}} \begin{itemize} - \item \textit{void signal\_init (int process)} -- funkcja inicjuje obs³ugê sygna³ów, - ustawia odpowiednie procedury ich obs³ugi; parametr (\texttt{PARENT} dla \textit{sfftch} lub - \texttt{CHILD} dla \textit{stwatch}) - rozró¿nia dzia³anie funkcji dla ró¿nych procesów; - \item \textit{void signals\_handling (int onoff)} -- funkcja blokuje (\texttt{SIGBLOCK}) lub odblokowuje - (\texttt{SIGUNBLOCK}) przyjmowanie sygna³ów; wykorzystywana jest przed wej¶ciem programu do sekcji krytycznej - (czyli operacji na pamiêci dzielonej) i po wyj¶ciu; + \item \textit{void signal\_init (int process)} -- funkcja inicjuje obs³ugê sygna³ów + za pomoc± odpowiednich procedur. Parametr (\texttt{PARENT} dla + \textit{sffetch} lub \texttt{CHILD} dla \textit{stwatch}) + pozwala zró¿nicowaæ dzia³anie funkcji dla ró¿nych procesów. + \item \textit{void signals\_handling (int onoff)} -- funkcja blokuje + (\texttt{SIGBLOCK}) lub odblokowuje (\texttt{SIGUNBLOCK}) przyjmowanie sygna³ów. + Wykorzystywana jest przed wej¶ciem programu do sekcji krytycznej (czyli operacji + na pamiêci dzielonej) i po wyj¶ciu z niej. \end{itemize} \subsubsection{Modu³ \textit{communication}} \begin{itemize} - \item \textit{int semaphore\_init (int val)} -- inicjalizacja pojedynczego semafora; argument - \texttt{SEMAPHORE\_SET} lub \texttt{SEMAPHORE\_RESET} - decyduje o jego pocz±tkowym stanie; funkcja zwraca \textit{semid}; - - \item \textit{semaphore\_wait(int semid)} i \textit{semaphore\_post(int semid)} -- makra do operacji na semaforze; - \item \textit{int semaphore\_del (int semid)} -- dealokacja semafora; - \item \textit{int shared\_mem\_init (int memsize)} -- inicjalizacja pamiêci dzielonej o rozmiarze \textit{memsize}; - funkcja zwraca identyfikator pamiêci \textit{shmid}; - \item \textit{void *shared\_mem\_attach (int shmid)} -- przy³±czenie do pamiêci dzielonej o identyfikatorze - \textit{shmid}; funkcja zwraca wska¼nik do pocz±tku pamiêci \textit{shm}; - \item \textit{void shared\_mem\_detach (void *shm)} -- od³±czenie od pamiêci; - \item \textit{void shared\_mem\_del (int shmid)} -- usuniêcie pamiêci dzielonej; + \item \textit{int semaphore\_init (int val)} -- inicjalizacja pojedynczego semafora. + Argument \texttt{SEMAPHORE\_SET} lub \texttt{SEMAPHORE\_RESET} decyduje o jego + pocz±tkowym stanie. Funkcja zwraca identyfikator semafora (\textit{semid}). + \item \textit{semaphore\_wait(int semid)} i \textit{semaphore\_post(int semid)} + -- makra do operacji na semaforze. + \item \textit{int semaphore\_del (int semid)} -- likwidacja semafora. + \item \textit{int shared\_mem\_init (int memsize)} -- inicjalizacja segmentu + pamiêci dzielonej o rozmiarze \textit{memsize}. Funkcja zwraca identyfikator + pamiêci (\textit{shmid}). + \item \textit{void *shared\_mem\_attach (int shmid)} -- przy³±czenie pamiêci + dzielonej o identyfikatorze \textit{shmid}. Funkcja zwraca wska¼nik do pocz±tku + pamiêci (\textit{shm}). + \item \textit{void shared\_mem\_detach (void *shm)} -- od³±czenie pamiêci dzielonej. + \item \textit{void shared\_mem\_del (int shmid)} -- usuniêcie segmentu pamiêci + dzielonej. \end{itemize} \subsubsection{Modu³ \textit{processtitle}} -Idea tego modu³u zaczerpniêta zosta³a z kodu ¼ród³owego programu \textit{sendmail} (dok³adnie z pliku -sys/conf.c). +Idea tego modu³u zaczerpniêta zosta³a z kodu ¼ród³owego programu \textit{sendmail} +(dok³adnie z pliku sys/conf.c). \begin{itemize} - \item \textit{void initproctitle (int argc, char **argv)} -- funkcja kopiuje obszar \textit{environ} w nowy - obszar pamiêci; zmienia wska¼nik \textit{environ} aby wskazywa³ na ten obszar; oryginalny obszar - zmiennych ¶rodowiskowych wykorzystywany jest do zwiêkszenia obszaru przeznaczonego na pamiêtanie - nazwy procesu; funkcja wyznacza te¿ maksymaln± d³ugo¶æ nazwy procesu, jest on pamiêtana jest w globalnej - zmiennej modu³u; - \item \textit{void setproctitle (int process, int state, const char *rulename)} -- ustawia tytu³ procesu; - \textit{process} - \texttt{MAIN\_PROCESS} lub \texttt{RULE\_PROCESS}; dozwolone stany (\textit{state}) - to \texttt{STATE\_STOPPED}, - \texttt{STATE\_NORMAL} lub \texttt{STATE\_EXEC}; \textit{rulename} jest wska¼nikiem na ³añcuch umieszczony w apostrofach; + \item \textit{void initproctitle (int argc, char **argv)} -- funkcja kopiuje + obszar zajêty przez zmienne ¶rodowiskowe (\textit{environ}) w inne miejsce + pamiêci i zmienia wska¼nik \textit{environ} tak aby wskazywa³ na ten obszar. + Pamiêæ zajmowana przez oryginalny obraz zmiennych ¶rodowiskowych wykorzystywany + jest do zwiêkszenia bufora przeznaczonego na pamiêtanie nazwy procesu. Funkcja + wyznacza te¿ maksymaln± d³ugo¶æ nazwy procesu. Jest on pamiêtana jest w globalnej + zmiennej modu³u. + \item \textit{void setproctitle (int process, int state, const char *rulename)} -- + ustawia tytu³ procesu \textit{process} na \texttt{MAIN\_PROCESS} lub + \texttt{RULE\_PROCESS}. Dozwolone stany (\textit{state}) to \texttt{STATE\_STOPPED}, + \texttt{STATE\_NORMAL} lub \texttt{STATE\_EXEC}. \textit{rulename} jest + wska¼nikiem na ³añcuch umieszczony w apostrofach. \end{itemize} \subsubsection{Modu³ \textit{xalloc}} \begin{itemize} \item \textit{void * xalloc (void * ptr, size\_t size)} -- pomocnicza funkcja do alokacji pamiêci, - je¶li wska¼nik \textit{ptr} ma warto¶æ ró¿n± od \texttt{NULL} obszar jest zwiêkszany; je¶li wyst±pi³ - b³±d podczac przydzielania pamiêci, funkcja koñczy dzia³anie programu z kodem \texttt{EXIT\_MEM}; + je¶li wska¼nik \textit{ptr} ma warto¶æ ró¿n± od \texttt{NULL} obszar jest zwiêkszany. Je¶li wyst±pi³ + b³±d podczac przydzielania pamiêci, funkcja koñczy dzia³anie programu z kodem \texttt{EXIT\_MEM}. \end{itemize} \subsubsection{Modu³ \textit{exit}} @@ -106,31 +113,33 @@ \texttt{EXIT\_IO}, \texttt{EXIT\_MEM}, \texttt{EXIT\_NOCONF}, \texttt{EXIT\_NORULE}, \texttt{EXIT\_PARSE}, \texttt{EXIT\_VALUE}, \texttt{EXIT\_OPTION}, \texttt{EXIT\_SHM}, \texttt{EXIT\_SEM}, \texttt{EXIT\_BUG}; - \item \textit{void bail\_out (int excode, const char *details)} -- koñczy dzia³anie programu z odpowiednim kodem; - \textit{details} jest dodatkow± informacj± wympisywan± na \textit{stderr}; + \item \textit{void bail\_out (int excode, const char *details)} -- koñczy dzia³anie + programu z odpowiednim kodem i komunikatem. \textit{details} jest dodatkow± informacj± + wypisywan± poprzez \textit{stderr}. \end{itemize} \subsubsection{Modu³ \textit{cp2memory}} \begin{itemize} \item \textit{void *cp\_list (void **buf, sf\_list *list)} i \textit{void *cp\_rule (void **buf, sf\_rule *rule)} -- - przekopiowuj± odpowiednie drzewiaste struktury do ci±g³ego bufora; + przekopiowuj± odpowiednie drzewiaste struktury do ci±g³ego bufora. \end{itemize} \subsubsection{Modu³ \textit{conditions}} \begin{itemize} - \item \textit{int check\_atomic (sf\_atomic *at)} -- sprawdza warto¶æ wyra¿enia atomicznego; - \item \textit{int check\_expression (sf\_expression *ex)} -- sprawdza warto¶æ wyra¿enia \textit{ex}; + \item \textit{int check\_atomic (sf\_atomic *at)} -- sprawdza warto¶æ wyra¿enia atomicznego. + \item \textit{int check\_expression (sf\_expression *ex)} -- sprawdza warto¶æ z³o¿onego + wyra¿enia \textit{ex}. \end{itemize} \subsubsection{Modu³ \textit{mainloop}} \begin{itemize} \item \textit{void rule\_watch\_loop (sf\_rule *rule)} -- g³ówna pêtla procesu \textit{sfwatch} - w której cyklicznie wywo³ywane - s± wszystkie funkcje; - \item \textit{void res\_probe\_loop (sf\_database *db)} -- g³ówna pêtla procesu \textit{sffetch}; + w której cyklicznie sprawdzana jest logiczna warto¶æ regu³y. + \item \textit{void res\_probe\_loop (sf\_database *db)} -- g³ówna pêtla procesu \textit{sffetch}, + w której z systemu pobierane s± wszelkie niezbêdne dane. \end{itemize} \subsubsection{Modu³ \textit{sysfence}} |