Diff for ''

Revision 26
Author:
black
Time:
2024-06-02 14:35
Revision 57
Time:
2024-09-18 21:04
Comment:
Automatizovaná konverze z MediaWiki do Markdownu
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
nz2ycp , [url=http://mapzddyawftv.com/]mapzddyawftv[/url], [link=http://abssodnekdye.com/]abssodnekdye[/link], http://shzpnihwnsea.com/

== pPyPxRMMtEzK ==

Personal service, as reiuqred in the bill, would establish a higher standard of service for paternity actions than all other civil actions. This higher standard does not directly address paternity fraud or prevent fraud in the future but instead would adversely impact the establishment of paternities. Thousands of paternity judgments are established timely each year by serving individuals by substitute service or by mail. The bill’s requirement of personal delivery service would severely delay this process, but more important, would provide biological fathers the ability to evade service of process [my emphasis], preventing the establishment of paternity in the majority of these cases and allowing the avoidance of parental responsibilities. This would directly impact child support collections and would jeopardize California’s ability to meet federally reiuqred performance measures putting California at risk of losing up to $40 million in federal funds. [emphasis added]In addition, AB 2240 has substantial federal compliance problems that would adversely affect California. The bill’s requirement of a paternity questionnaire, signed by themother, would prevent the filing of a paternity action in cases against the father if the mother is deceased or unavailable, or if she simply refuses to cooperate. This would prevent moving ahead on cases even if other evidence establishes paternity. This would also apply to foster care cases where federal law requires the establishment of paternity and child support. AB 2240 would prevent California from proceeding on a large number, if not most, of foster care cases, putting California out of compliance with federal law.This is about money. Many states depend upon federal grants to support their child support systems. If the states can't declare the guys these whores are married to to be the fathers of those bastard children, then they can't declare any guy to be the father of those bastard children when the actual father isn't known. That means states lose tens of millions of dollars in federal grants - which means those states have to raise taxes to pay for the welfare that those women will surely need...because those women are going to need it when their husbands divorce them and they're left to pay for those kids on their own.This is about money. It's that simple. And that money is going to come from somewhere. And, as former-governor Gray Davis made clear, the rights of the victims don't matter.

== SCPRkuSHjypArRkrsq ==

PDWfnd <a href="http://nhtztxjxmyce.com/">nhtztxjxmyce</a>

== USCHpeYE ==

9n6gkT , [url=http://srmclvtqgyqs.com/]srmclvtqgyqs[/url], [link=http://nbhvcrhgtzso.com/]nbhvcrhgtzso[/link], http://oshlquvnvqvk.com/

== jMFqXVtJ ==

oGzqIo , [url=http://owfgjechtwzg.com/]owfgjechtwzg[/url], [link=http://gncmcpaoumhh.com/]gncmcpaoumhh[/link], http://ayvucyttrqws.com/

== yMHHcphFbNu ==

sRQhWL , [url=http://jrtbglbwbfps.com/]jrtbglbwbfps[/url], [link=http://cvonmmjhgkjz.com/]cvonmmjhgkjz[/link], http://qwdjjutlcafb.com/

== OSIMikBYKDyBGVwUtA ==

SEN1fw , [url=http://tmliusqnazys.com/]tmliusqnazys[/url], [link=http://srxfatqvibun.com/]srxfatqvibun[/link], http://xhrbxllegxqs.com/

== LtUIGTSYrmXgxaYgVwp ==

l83mwJ , [url=http://wwkkgfklpumm.com/]wwkkgfklpumm[/url], [link=http://jgoxfeoewgyf.com/]jgoxfeoewgyf[/link], http://dydxssqnqrjh.com/

== pohGwvQVZIpAHa ==

efn94r <a href="http://ivjjhobeabhp.com/">ivjjhobeabhp</a>
{{Předmět|Unix|Jan Pechanec|SWI015}}

:Oficiální materiály a informace ke zkoušce: http://www.devnull.cz/mff/programovani-v-unixu/2010

## Poznámky ke zkouškovým otázkam z teorie ##

*Ve slajdech je toho většina pěkně, tak zatím jen ty otázky (hlavně si sežeňte slajdy, kde jsou kromě obrázků i nějaké poznámky k nim, konkrétně [tyto](http://www.ms.mff.cuni.cz/%7Eberan/vyuka/UNIX/unix_slajdy_pozn.ps.gz) (Beran) nebo [tyto](http://www.devnull.cz/mff/programovani-v-unixu/common/slides/unix_slides_notes.pdf) (Pechanec)
*Letošní slajdy se mírně změnily, vzhledem k tomu, že Pechanec přestal vykládat NCURSES a dal tam podle mě víc threadů.

### A) Vývojové nástroje ###

1. Popište činnost kompilátoru jazyka C a linkeru.
1. Vysvětlete princip utility make a napište příklad jednoduchého makefile pro překlad a slinkování programu v C.

### B) Jádro a C API UNIXu ###

1. Vysvětlete význam parametrů funkce main() a proměnné environ. Jak se zpracovávají argumenty programu pomocí funkce getopt()?
1. Vysvětlete význam pojmů proces, vlákno (thread), program. Čím se liší proces a vlákno?
1. Vysvětlete pojmy knihovní funkce a systémové volání. Popište konvenci, podle které systémová volání a knihovní funkce oznamují úspěšné ukončení nebo chybu.
1. Co obsahují soubory /etc/passwd a /etc/group? Kdy a jak používá Unix informace z těchto souborů.
1. Jak se používá identifikace vlastníka a skupiny pro testování přístupových práv? Jaký je rozdíl mezi reálným a efektivním vlastníkem procesu?

### C) Systém souborů ###

1. Jaké objekty jsou v UNIXu přístupné pomocí rozhraní systému souborů? Jaký je rozdíl mezi znakovými a blokovými zařízeními?
1. Popište strukturu svazku typu s5 a jeho vylepšení (ufs).
1. Vysvětlete princip navigace ve struktuře adresářů, tj. jak jádro najde podle cesty k souboru příslušné datové bloky. Vysvětlete rozdíl mezi pevnými (hardlink) a symbolickými (symlink) odkazy na soubory.
1. Jaká jsou přístupová práva k souborům? Co je to propůjčování práv (set UID)?
1. Jak procesy přistupují k otevřeným souborům? Jak se liší deskriptor a otevření souboru?
1. Co je to virtual file system? K čemu slouží a jaký je princip jeho fungování?
1. Jaký je vztah diskového oddílu a svazku? Jak probíhá vytvoření, kontrola konzistence, připojení a odpojení svazku?

### D) Procesy a roury ###

1. Popište paměťový prostor procesu v uživatelském režimu a v režimu jádra.
1. Nakreslete a popište stavový diagram procesu
1. Popište základy mechanismu plánování procesů. Jaké jsou prioritní třídy?
1. Popište mechanismus mapování souborů do paměti. Popište, jak lze za běhu programu získat přístup k proměnným a funkcím definovaným v nějaké dynamické sdílené knihovně.

### E) Signály ###

1. Co jsou to signály? Jak může být pro proces vygenerován signál? Jaký je rozdíl mezi posláním signálu procesu a vláknu?
1. Jaké jsou možnosti ošetření signálů? Jak se nastavuje ošetření signálů (handlery, blokování) pro proces a pro vlákna?

### F) Vlákna ###

1. Co je to vlákno, jak se liší od procesu? Které atributy jsou společné pro proces, které jsou privátní pro každé vlákno? Jak je možné vytvořit globální proměnnou privátní pro jedno vlákno?
1. Popište postup při vytvoření a zrušení vlákna. Jak fungují destruktory klíčovaných hodnot a zásobník úklidových handlerů?
1. Uveďte nástroje pro synchronizaci vláken.

### G) Synchronizace a zamykání ###

1. Vysvětlete vznik konfliktu při přístupu ke sdíleným datům a jeho řešení pomocí zamykání. Jak může vzniknout deadlock? Popište zamykání souborů pomocí fcntl().
1. Vysvětlete zamykání pomocí lock souborů. Popište postup zamykání pro soubory sdílené pomocí NFS.

### H) IPC ###

1. Popište semafory, implementované v UNIX System V IPC.
1. Popište sdílenou paměť, implementovanou v UNIX System V IPC.
1. Popište fronty zpráv, implementované v UNIX System V IPC.

### I) Sítě ###

1. Popište činnost serveru a klienta (posloupnost systémových volání) pro spojované síťové služby.
1. Popište činnost serveru a klienta (posloupnost systémových volání) pro nespojované síťové služby.
1. Co je to soket? Jaké jsou varianty adresace soketů (v rámci jednoho stroje a po síti)? Jaké funkce (uveďte aspoň některé) slouží pro převod mezi číselnými a symbolickými jmény protokolů, portů a IP adres? Proč se používají funkce pro konverzi mezi lokálním a síťovým pořadím bajtů?
1. Popište varianty sekvenční a paralelní obsluhy klientů TCP serveru.
1. Jak lze čekat na příchod dat z několika deskriptorů souborů zároveň? Jak byste tuto funkci použili při implementaci síťového serveru, který obsluhuje několik klientů zároveň jedním procesem bez použití vláken?

### J) Administrace ###

1. Jak probíhá start operačního systému UNIX? Co jsou to úrovně běhu systému? Jak se spouští startovací skripty?
1. Jak probíhá přihlášení uživatele do systému?
1. Jak se používá démon cron?
1. Jak funguje síťový server inetd?
1. Jaké úkoly má správce Unixu?

## Přehled funkcí ##

### Signály ###

 int **kill**(pid_t *pid*, int *sig*)

**Některé signály:**

* *SIGNAL* → *výchozí akce* - popis
* SIGKILL → *exit* - zrušení procesu; nelze ošetřit ani ingorovat
* SIGUSR1 → *exit* - uživatelsky definovaný signál 1
* SIGUSR2 → *exit* - uživatelsky definovaný signál 2
* SIGSTOP → *stop* - pozastavení procesu; nelze ošetřit ani ingorovat
* SIGALRM → - poslán procesu po vypršení lhůty po zavolání unsigned int **alarm**(unsigned int *seconds*);
* SIGWINCH → - poslán procesu když terminál změní svoje parametry

 int **sigaction**(int *sig*, const struct sigaction* *act*, struct sigaction* *oact*);

 int **sigprocmask**(int *how*, const sigset_t* *set*, sigset_t* *oset*);

 int **sigwait**(const sigset_t* *set*, int* *sig*);

   *// čeká na signál z množiny *set* (musí být zablokované)*
   *// číslo signálu vratí v *sig

   *// nevolá handler, ale to prý není normou jednoznačne definováno*

**Manipulace se *sigset_t*:**

 int **sigemptyset**(sigset_t* *set*);
 int **sigfillset**(sigset_t* *set*);

 int **sigaddset**(sigset_t* *set*, int *signum*);
 int **sigdelset**(sigset_t* *set*, int *signum*);

 int **sigismember**(const sigset_t* *set*, int *signum*);

### System V IPC obecně ###

 key_t **ftok**(const char* *path*, int *id*);

### Sdílená paměť ###

 int **shmget**(key_t *key*, size_t *size*, int *shmflg*);
   *// shared memory get*

 void **shmat**(int *shmid*, const void* *shmaddr*, int *shmflg*);

   *// shared memory attach*

 int **shmdt**(const void* *shmaddr*);
   *// shared memory detach*

 int **shmctl**(int *shmid*, int *cmd*, struct shmid_ds* *buf*);

   *// shared memory control*

**Náznak možného použití**

 struct shmem
 {

  int size;
  char buf\[BUFSIZE];

 };

 fce()
 {

   key_t shmkey;
   int shm_id;

   struct shmem* pshmem;

   shmkey = **ftok**(argv\[1], 123);

   shm_id = **shmget**(shmkey, sizeof(struct shmem), IPC_CREAT|0600);

   pshmem = (struct shmem*) **shmat**(shm_id, NULL, 0);
   pshmem->size = BUFSIZE;

   ...

### Vlákna ''(pthreads; POSIX threads)'' ###

 pthread_create (tid, attr, start_routine, arg);
 pthread_exit (value);

 pthread_join (tid, value_ptr);
 ...

#### Vzajemné vyloučení ''(mutex)'' ####

 pthread_mutex_init (mutex, attr);

 pthread_mutex_destroy (mutex);
 pthread_mutex_lock (mutex);

 pthread_mutex_trylock (mutex);
 pthread_mutex_unlock (mutex);

#### Podmínkové proměnné ''(Condition Variables)'' ####

 pthread_cond_init (condition, attr);

 pthread_cond_destroy (condition);
 pthread_cond_wait (condition, mutex);

 pthread_cond_signal (condition);
 pthread_cond_broadcast (condition);

**Poznámka k použití**

*Používá se ve spolupráci s (pthread) mutexem.
*Účel mechanizmu - Vlákno nemusí aktivně cekat, až proměnná splní určitou podmínku.

## [[SWI015 Příklady|Příklady]] ##

## Odkazy ##

### Obecné ###

*[www.cs.tau.ac.il izraelské lekce operačních systémů ;-)](http://www.cs.tau.ac.il/%7Ehayim/courses/os/spring05/os.html)

*Na adrese www.za-peci.ic.cz/unix/ je přepis poměrně obsáhlé učebnice v češtině
*[Linux Programmer guide](http://www.tldp.org/LDP/lpg/node1.html)

### Síť - Sokety, ... ###

*[www.builder.cz: První část seriálu Sokety a C++](http://www.builder.cz/serial147.html)

*[www.root.cz: Pokračování seriálu Sokety a C++](http://www.root.cz/serialy/sokety-a-cc/)

*[www.coding-zone.co.uk: Příklad na funkci ''select''](http://www.coding-zone.co.uk/cpp/articles/140101networkprogrammingx.shtml)

### Vývojové nástroje ###

*asi nezbytná věc potřebná ke složení zkoušky je ovládnout vim, pokud si s ním příliš nerozumíte možná vám pomůže [seznam základních VIM triků](seznam%20základních%20VIM%20triků)

### Ladění pod UNIXEM ###

*pokud se něco nechová tak jak má, je v celku dobré ovládnout [Ladění pod UNIXEM - gdb, mtrace](Ladění%20pod%20UNIXEM%20-%20gdb%2C%20mtrace)
[category:Informatika](category:Informatika)

## Literatura ##

* **Pokročilé programování v operačním systému Linux** (SoftPress) - pozor na to, že některé věci v knize jsou specifické pro Linux a nemusí platit obecně v Unixu