Skip to content

Commit fd7a75b

Browse files
author
Vladimir Kotal
committed
translate classic UNIX structure slide
1 parent 042609c commit fd7a75b

File tree

2 files changed

+53
-73
lines changed

2 files changed

+53
-73
lines changed

img/tex/struktura.pstex_t renamed to img/tex/unix_structure.pstex_t

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,52 +10,52 @@
1010
\selectfont}%
1111
\fi\endgroup%
1212
\begin{picture}(4590,2865)(79,-2086)
13-
\put(1531,614){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}u�ivatelsk� proces}%
13+
\put(1531,614){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}user process}%
1414
}}}}
15-
\put(1396,-826){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}buffery}%
15+
\put(1396,-826){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}buffers}%
1616
}}}}
17-
\put(3916,614){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}u�ivatelsk�}%
17+
\put(3916,614){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}user}%
1818
}}}}
19-
\put(3916,434){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}re�im}%
19+
\put(3916,434){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}mode}%
2020
}}}}
21-
\put(4231,-196){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}re�im}%
21+
\put(4231,-196){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}mode}%
2222
}}}}
23-
\put(4231,-376){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}j�dra}%
23+
\put(4231,-376){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel}%
2424
}}}}
25-
\put(3826,-1006){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pl�nova�}%
25+
\put(3826,-1006){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}scheduler}%
2626
}}}}
2727
\put(3961,-826){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}IPC}%
2828
}}}}
29-
\put(2701,434){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}n�vrat}%
29+
\put(2701,434){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}return}%
3030
}}}}
31-
\put(1036,434){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}p�eru�en�}%
31+
\put(1036,434){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}trap}%
3232
}}}}
33-
\put(1643, 74){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}rozhran� vol�n� j�dra}%
33+
\put(1643, 74){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}kernel interface}%
3434
}}}}
35-
\put(631,-286){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}subsyst�m}%
35+
\put(631,-286){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}file}%
3636
}}}}
37-
\put(511,-466){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}��zen� soubor�}%
37+
\put(511,-466){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}subsystem}%
3838
}}}}
39-
\put(2881,-826){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}subsyst�m}%
39+
\put(2881,-826){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}process}%
4040
}}}}
41-
\put(3061,-1006){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}��zen�}%
41+
\put(3061,-1006){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}and}%
4242
}}}}
43-
\put(2971,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}proces�}%
43+
\put(2971,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}%
4444
}}}}
45-
\put(2956,-1366){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}a pam�ti}%
45+
\put(2956,-1366){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}subsystem}%
4646
}}}}
47-
\put(3788,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}p�id�lov�n�}%
47+
\put(3788,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}memory}%
4848
}}}}
49-
\put(3938,-1366){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}pam�ti}%
49+
\put(3938,-1366){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}allocation}%
5050
}}}}
5151
\put(2018,-2086){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}hardware}%
5252
}}}}
53-
\put(908,-1726){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}strojov� z�visl� vrstva ovl�d�n� hardware}%
53+
\put(908,-1726){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}machine dependent HW control layer}%
5454
}}}}
55-
\put(691,-1366){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}ovlada�e}%
55+
\put(691,-1366){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}drivers}%
5656
}}}}
57-
\put(256,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}znakov�}%
57+
\put(256,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}character}%
5858
}}}}
59-
\put(1171,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}blokov�}%
59+
\put(1171,-1186){\makebox(0,0)[lb]{\smash{{\SetFigFont{10}{12.0}{\sfdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}block}%
6060
}}}}
6161
\end{picture}%

intro.tex

Lines changed: 31 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2301,63 +2301,43 @@
23012301
}
23022302
\end{itemize}
23032303

2304-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2305-
% Struktura systému, systémová volání
2306-
2307-
% (jp) tohle neni uplne klasicka struktura, je to jedna z moznosti.
2308-
% Nevidim moc duvod tu ten slajd mit. OSy uz koneckoncu meli...
2309-
2310-
%%%\begin{slide}
2311-
%%%\sltitle{Klasická struktura operaèního systému}
2312-
%%%\begin{center}
2313-
%%%\input{klasicky_os.tex}
2314-
%%%\end{center}
2315-
%%%\end{slide}
2316-
%%%
2317-
%%%Hardware poèítaèe je "obalen" jednotlivými vrstvami operaèního
2318-
%%%systému, kdy ka¾dá vrstva roz¹iøuje schopnosti vrstvy spodní.
2319-
%%%Programové rozhraní operaèního systému (API) pøedstavuje pro
2320-
%%%aplikace virtuální (logický) poèítaè, který skrývá detaily
2321-
%%%hardwarové architektury, poskytuje slu¾by vy¹¹í úrovnì a v
2322-
%%%neposlední øadì definuje pøístupová práva a navzájem chrání
2323-
%%%jednotlivé bì¾ící aplikace.
2324-
23252304
%%%%%
23262305

23272306
\begin{slide}
2328-
\sltitle{Struktura klasického OS UNIX}
2329-
\input{img/tex/struktura.pstex_t}
2307+
\sltitle{Classic UNIX structure}
2308+
\input{img/tex/unix_structure.pstex_t}
23302309
\end{slide}
23312310

23322311
\begin{itemize}
2333-
\item toto schéma je pøevzato z [Bach86], viz literatura. Zdùrazòuje dva
2334-
ústøední pojmy v modelu systému UNIX -- soubory a procesy. \emsl{V dne¹ní dobì
2335-
to vypadá velmi odli¹nì, ale pro nás staèí tato základní pøedstava.}
2336-
\item UNIX rozli¹uje dva re¾imy bìhu procesoru: \emph{u¾ivatelský re¾im} a
2337-
\emph{re¾im jádra}. V u¾ivatelském re¾imu nejsou pøístupné privilegované
2338-
instrukce (napø. mapování pamìti, I/O, maskování pøeru¹ení). Tyto dva re¾imy
2339-
musí být podporovány na hardwarové úrovni (procesorem).
2340-
\item procesy bì¾í obvykle v u¾ivatelském re¾imu, do re¾imu jádra pøechází buï
2341-
instrukcí synchronního pøeru¹ení (trap) pro volání slu¾by jádra, nebo na
2342-
základì asynchronních pøeru¹ení (hodiny, I/O). Dále se v~re¾imu jádra
2343-
o\-¹e\-tøu\-jí výjimeèné stavy procesoru (výpadek stránky, naru¹ení ochrany
2344-
pamìti, ne\-zná\-má instrukce apod.). Nìkteré speciální akce jsou zaji¹»ovány
2345-
systémovými procesy, které bì¾í celou dobu v re¾imu jádra.
2346-
\item klasické UNIXové jádro je tvoøeno monolitickým kódem. Pùvodnì bylo
2347-
po\-tøe\-ba vygenerovat (tj. pøelo¾it ze zdrojových textù a slinkovat) jádro pøi
2348-
zmìnì nìkterého parametru nebo pøidání ovladaèe zaøízení. V novìj¹ích
2349-
implementacích je mo¾no nastavovat parametry jádra, nìkdy i za bìhu, pomocí
2350-
systé\-mo\-vých utilit bez nutnosti rekompilace jádra. Moderní unixové systémy
2351-
umo¾òují roz¹iøovat kód jádra za bìhu pomocí tzv. modulù jádra (\emph{loadable
2352-
kernel modules}). Napøíklad systém FreeBSD 5.4-RELEASE má 392 takových modulù.
2353-
\item existují dva zpùsoby práce s perifériemi: bloková (\emph{block devices})
2354-
a znaková zaøízení (\emph{character, raw devices}). Data z blokových zaøízení
2355-
(napø. disky) procházejí pøes vyrovnávací pamìti (\emph{buffers}) po blocích,
2356-
znaková zaøízení (napø. terminály) umo¾òují pracovat s jednotlivými bajty a
2357-
nepou¾ívají vyrovnávací pamì».
2358-
\item \emsl{jádro není samostatný proces}, ale je èástí ka¾dého u¾ivatelského
2359-
procesu. Kdy¾ jádro nìco vykonává, tak vlastnì proces, bì¾ící v re¾imu jádra,
2360-
\-co provádí.
2312+
\item This scheme is taken from [Bach86]. It emphasizes two central terms
2313+
of the system model in UNIX -- files and processes.
2314+
\emsl{In modern Unixes it looks differently however for the time being
2315+
such model will suffice.}
2316+
\item UNIX differentiates two modes of CPU: \emph{user mode} and
2317+
\emph{kernel mode}. In user mode there the privileged intructions are not
2318+
available (e.g. memory mapping, I/O, interrupt masking). These modes have to
2319+
be supported by the hardware (CPU).
2320+
\item The processes usually spend most of the time running in user mode.
2321+
They enter kernel mode either by using synchronous interrupt (trap) for
2322+
calling kernel services or asynchronously (clock, I/O). In kernel mode
2323+
the exceptional states are handled (page fault, memory protection failure,
2324+
unknown instruction etc.). Some special tasks are handled by system processes
2325+
running in kernel mode all the time.
2326+
\item Classic UNIX kernel is monolitic. Originally it was necessary to
2327+
regenerate the kernel (i.e. compile from source code and link) whenever some
2328+
kernel parameter had to be changed or add a device driver. In modern
2329+
implementations it is possible to set many kernel parameters dynamically using
2330+
system utilities. Also, many Unix systems extend kernel services by using
2331+
\emph{loadable kernel modules}. For example FreeBSD 5.4-RELEASE has 392 such
2332+
modules.
2333+
\item There are two ways how to handle peripheral devices:
2334+
\emph{block devices} and \emph{character / raw devices}. Block devices (e.g.
2335+
disk drives) pass the data through \emph{buffers} in blocks, character devices
2336+
(e.g. terminals) make it possible to work with individual bytes and do not use
2337+
buffering.
2338+
\item \emsl{The kernel is not individual process}, rather it is part of each
2339+
user process. When kernel is executing, it is usually user space performing some
2340+
action in kernel mode.
23612341
\end{itemize}
23622342

23632343

0 commit comments

Comments
 (0)