Skip to content

Commit 4f261a2

Browse files
author
Vladimir Kotal
committed
translate kernel/trap/mode slide
1 parent 1f1af90 commit 4f261a2

File tree

1 file changed

+26
-31
lines changed

1 file changed

+26
-31
lines changed

intro.tex

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2389,43 +2389,38 @@
23892389

23902390
%%%%%
23912391

2392-
23932392
\begin{slide}
2394-
\sltitle{Jádro, re¾imy, pøeru¹ení (klasický UNIX)}
2393+
\sltitle{kernel, modes, interrupts/traps (classic UNIX)}
23952394
\begin{itemize}
2396-
\item procesy typicky bì¾í v u¾ivatelském re¾imu
2397-
\item systémové volání zpùsobí pøepnutí do re¾imu jádra
2398-
\item proces má pro ka¾dý re¾im samostatný zásobník
2399-
\item jádro je èástí ka¾dého u¾ivatelského procesu, není to samostný proces
2400-
(procesy)
2401-
\item pøepnutí na jiný proces se nazývá \emph{pøepnutí kontextu}
2402-
\item obsluha pøeru¹ení se provádí v kontextu pøeru¹eného procesu
2403-
\item klasické jádro je nepreemptivní
2395+
\item the processes typically run in user mode
2396+
\item a system call will cause switch to kernel mode
2397+
\item a process has one stack for each mode
2398+
\item kernel is part of each user process, it is not a standalone process(es)
2399+
\item switching to different process is called \emph{context switch}
2400+
\item interrupt handling is performed in the context of interrupted process
2401+
\item classic kernel is non-preemptive
24042402
\end{itemize}
24052403
\end{slide}
24062404

24072405
\begin{itemize}
2408-
\item \emsl{jádro není oddìl{}ená mno¾ina procesù, bì¾ících paralelnì s
2409-
u\-¾i\-va\-tel\-ský\-mi procesy, ale je èástí ka¾dého u¾ivatelského procesu.}
2410-
\item pøechod mezi u¾ivatelským re¾imem a re¾imem jádra není pøepnutí kontextu
2411-
-- proces bì¾í poøád v tom samém
2412-
\item pøeru¹ený proces nemusel pøeru¹ení vùbec zpùsobit
2413-
\item v re¾imu jádra mù¾e proces pøistupovat i k adresám jádra, která z
2414-
u\-¾i\-va\-tel\-ské\-ho re¾imu pøístupná nejsou; takté¾ mù¾e pøistupovat k
2415-
instrukcím (napø. instrukce manipulující se stavovým registrem), jejich¾
2416-
vykonání v u¾ivatelském re¾imu vede k chybì
2417-
\item pøeru¹ovací rutina se nemù¾e zablokovat, proto¾e tím by zablokovala
2418-
proces; proces se toti¾ mù¾e zablokovat jen ze své vlastní vùle. Moderní unixy
2419-
dnes pou¾ívají interrupt vlákna, v jejich¾ kontextu se \emsl{mohou} drivery
2420-
zablokovat.
2421-
\item to, ¾e klasické unixové jádro je nepreemptivní znamená, ¾e \emsl{jeden
2422-
proces nemù¾e zablokovat jiný proces}
2423-
\item pøi obsluze pøeru¹ení se mù¾e stát, ¾e nastane dal¹í pøeru¹ení. Pokud je
2424-
jeho priorita vìt¹í, je procesorem pøijmuto. Posloupnost pøijmutých pøeru¹ení
2425-
je uchována v \emph{zásobníku kontextových vrstev}.
2426-
\item \emsl{u moderních kernelù je situace èasto velmi rozdílná -- obsluha
2427-
pøe\-ru\-¹e\-ní, preemptivnost kernelu atd.; k nìkterým vìcem se mo¾ná
2428-
dostaneme pozdìji bìhem semestru}
2406+
\item \emsl{The kernel is not a set of processes running in parallel with
2407+
user processes, rather it is part of each user process.}
2408+
\item The transition between user and kernel mode is not a context switch
2409+
-- the process is still running in the same context.
2410+
\item The interrupted process is not necessarily the one that caused it.
2411+
\item In kernel mode a process can access kernel memory that is not accessible
2412+
from user mode. Likewise it can execute privileged instructions that would
2413+
otherwise cause error in user mode (like state register manipulations).
2414+
\item Interrupt routine cannot block because it would block the process;
2415+
process can block only on its own. Moder Unixes use interrupt threads,
2416+
in their context the drivers \emsl{can} block.
2417+
\item The fact that classic UNIX kernel is non-preemptive means that
2418+
\emsl{one process cannot block another process}.
2419+
\item An interrupt can come while handling another interrupt. If its priority
2420+
is higher, it is accepted by the CPU. The sequence of accepted interrupts is
2421+
saved in \emph{interrupt context stack}.
2422+
\item \emsl{Modern kernels are very different in terms of interrupt handling,
2423+
kernel preemption, etc.}
24292424
\end{itemize}
24302425

24312426
%%%%%

0 commit comments

Comments
 (0)