|
2426 | 2426 | %%%%%
|
2427 | 2427 |
|
2428 | 2428 | \begin{slide}
|
2429 |
| -\sltitle{Volání slu¾eb a komunikace mezi procesy} |
| 2429 | +\sltitle{System calls and inter-process communication} |
2430 | 2430 | \begin{itemize}
|
2431 | 2431 | \item UNIX\vspace{1ex}
|
2432 | 2432 |
|
2433 | 2433 | \input{img/tex/syscall_unx.tex}
|
2434 |
| -\item distribuovaný OS\vspace{1ex} |
| 2434 | +\item distributed OS\vspace{1ex} |
2435 | 2435 |
|
2436 | 2436 | \input{img/tex/syscall_dist.tex}
|
2437 | 2437 | \end{itemize}
|
2438 | 2438 | \end{slide}
|
2439 | 2439 |
|
2440 | 2440 | \begin{itemize}
|
2441 |
| -\item pokud unixový proces vy¾aduje provedení systémové slu¾by, pomocí |
2442 |
| -systé\-mo\-vé\-ho volání pøedá øízení jádru. Jádro je kus kódu sdíle{}ný v¹emi |
2443 |
| -procesy (ov¹em pøístupný jen pro ty, které jsou právì v re¾imu jádra). Jádro |
2444 |
| -tedy není samostatný privilegovaný proces, ale v¾dy bì¾í v rámci nìkterého |
2445 |
| -procesu (toho, který po¾ádal jádro o slu¾bu, nebo toho, který bì¾el v okam¾iku |
2446 |
| -pøíchodu pøeru¹ení). |
2447 |
| -\item komunikace mezi procesy v UNIXu je øe¹ena pomocí systémových volání, je |
2448 |
| -tedy zprostøedkovaná jádrem. |
2449 |
| -\item aby to nebylo tak jednoduché, mohou existovat systémové procesy |
2450 |
| -(o\-zna\-èo\-va\-né jako \emph{kernel threads}), které bì¾í celou dobu v |
2451 |
| -re¾imu jádra. Naprostá vìt¹ina systémových procesù v¹ak bì¾í v u¾ivatelském |
2452 |
| -re¾imu a li¹í se jen tím, ¾e mají vìt¹í pøístupová práva. Plánovaè procesù |
2453 |
| -pøepíná mezi procesy a tím umo¾òuje bìh více procesù souèasnì i na jednom |
2454 |
| -procesoru. Na multiprocesorových poèítaèích pak funguje skuteèný paralelismus |
2455 |
| -procesù a vláken (dokonce se proces mù¾e pøi pøeplánování dostat i na jiný |
2456 |
| -procesor). |
2457 |
| -\item v distribuovaném operaèním systému má jádro obvykle formu mikrojádra, |
2458 |
| -tj. zaji¹»uje pouze nejzákladnìj¹í slu¾by øízení procesoru, pøidìlování pamìti |
2459 |
| -a komunikace mezi procesy. Vy¹¹í systémové slu¾by, které jsou v UNIXu souèástí |
2460 |
| -jádra (napø. pøístup k systému souborù) jsou realizovány speciálními procesy |
2461 |
| -(servery) bì¾ícími v u¾ivatelském re¾imu procesoru. Jádro pøedá po¾adavek |
2462 |
| -u¾ivatelského procesu pøíslu¹nému serveru, který mù¾e bì¾et i na jiném uzlu |
2463 |
| -sítì. |
2464 |
| -\item dostupných mikrokernelù je v dne¹ní dobì mnoho. Mù¾ete zkusit napøíklad |
2465 |
| -Minix (u{}nix-like výukový systém), pøípadnì systém HURD, který bì¾í nad |
2466 |
| -mikrojádrem Mach. |
| 2441 | +\item If a Unix process requires to perform system task, it will pass the |
| 2442 | +control to the kernel using a system call. The kernel is code shared between |
| 2443 | +all processes however accessible only to those processes that are running in |
| 2444 | +kernel mode. The kernel is therefore not a standalone privileged process, |
| 2445 | +it is still running in the context of a process (one that requested system |
| 2446 | +service via system call or such that was running when interrupt came). |
| 2447 | +\item Inter-process communication in UNIX is achieved using system calls, |
| 2448 | +it is therefore handled by the kernel. |
| 2449 | +\item There can be system processes called \emph{kernel threads}, that are |
| 2450 | +running exclusively in kernel mode. The majority of system processes run in user |
| 2451 | +mode and differ from the rest in that they have elevated privileges. |
| 2452 | +The process scheduler switches between processes and makes it possible to run |
| 2453 | +multiple processes simultaneously even on single processor system. |
| 2454 | +Multi-processor systems enable true parallelism of processes and threads |
| 2455 | +(it is possible for a thread to migrate between processors based on scheduling). |
| 2456 | +\item In distributed operating systems the kernel is in the form of microkernel, |
| 2457 | +i.e. provides only the very basic services like processor programming, memory |
| 2458 | +allocation and inter-process communication. Upper system services that are part |
| 2459 | +of kernel in UNIX (e.g. file system access) are implemented as special processes |
| 2460 | +(servers) running in user mode. The kernel passes the request of user process to |
| 2461 | +relevant server that can be running on different network node. |
| 2462 | +\item There are many microkernels today, e.g. Minix (unix-like system) or HURD |
| 2463 | +that runs above the Mach micro-kernel. |
2467 | 2464 | \end{itemize}
|
2468 | 2465 |
|
2469 | 2466 | %%%%%
|
|
0 commit comments