Diff for ''

Revision 107
Author:
black
Time:
2024-03-04 23:28
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:
== Jak se sem dostanete ==
Nejobvyklejší cesta vede ze stanice metra Hradčanská tramvají 1 nebo 18 do zastávky 'Větrník'.
Další možnost je dojet metrem až na Dejvickou a odtud tramvají 2 opět do zastávky 'Větrník'.
Z Andělu je možné sednout na autobus 191 a nechat se dovézt až na zastávku 'Koleje Větrník', nebo ze stanice 'Nové Butovice' na stejnou zastávku jezdí autobusy 179 a 184.

== Jak to tu vypadá ==

Dvojlůžkové pokoje (2,5 × 5 m). Výjimkou jsou 3 trojlůžáky na druhém bloku. Bydlení tam je levnější, ale tři lidi mají společné dvě skříně, takže trocha komfortu chybí. Sociální zařízení a kuchyňka jsou všude společná pro patro (cca 40 lidí).

=== Ubytování ===

Větrník má 4 bloky.

'''I. blok''' je lukrativní místo s dobrým výhledem směrem na východ. Západní strana je na tom hůře. Má společnou vrátnici s II. blokem a díky většímu počtu lidí jsou u vrátnice instalovány automaty na všelico možné.

'''II. blok''' má podle mnoha lidí nejsilnější atmosféru. Má pověst hlučného bloku s častými večírky. Východní strana má výhled na fotbalové "hřišťátko" (rozuměj udusanou hlínu) a dále přes sousedy, věčně a hlučně opravující loď, až do oken bloku 3.A. Západní strana má romantický výhled na parkoviště a především na Billiard Club. Společná vrátnice s 1. blokem zajišťuje oběma blokům výhodnou pozici. Mají to nejblíž na autobus, do hospody, do obchodu, na tramvaj. Na ubytovačku o něco dál, než 3.blok. K menze to má nejdál, ale ta je stejně tak daleko, že to nehraje skoro roli.

'''III. blok''' je rozdělen na dva podbloky. Blok III. A a III. B.<br />
Ačko, kam se dostanete, když na vrátnici zahnete doprava, má na západ výhled na 2. blok a sousedy, na východ kouká na 3.B. Béčko (na vrátnici doleva) zas na západ kouká na 3.A a na východ na blok 4. Pokoje na koncích chodeb se vyznačují bonusem - mají navíc jedny prosklené francouzské dveře a nejvyšší patra z nich ten nejlepší výhled jaký můžete na této koleji mít. Celý blok je podstatně tišší a klidnější než 2, chodby jsou kratší a vzniká tady rychleji takové domáčtější prostředí. K tomu přispívá i možnost vysedávání (např. u grilu) uvnitř 'podkovy', kde je klid a poměrně zeleno. Blok je čerstvě po zateplení a rekonstrukci koupelen. Vzdálenostmi je na tom průměrně. Všude to má dál, jen k ubytovačce to má kousek.

'''IV. blok''' je rozdělený na IV. A a IV. B stejně jako III. blok. Je často obsazován zahraničními studenty a podle toho to tam vypadá. Párty, oslavy, křik, kterému nerozumíte. Občasné kulturní rozdílnosti způsobují problémy. Přesto, nebo právě proto, se do něj investují největší peníze. Je zateplený, rekonstruované koupelny a jsou tam automaty na vrátnici. Má to nejdál na ubytovačku, do obchodu, na autobus a na tramvaj. Zase k menze na Kajetánce to má nejblíž.

'''Vybavení bloků''' prochází poslední dobou průběžnou obnovou. Všude jsou nové postele (na III. A nejnovější a nejlepší). Nábytek je nový na IV. bloku a na některých pokojích bloku 1. Jinde je nábytek takový, že na něm můžete najít vyrytý i podpis vašich rodičů z dob studijních. Ale nezoufejte - dá se esteticky vylepšit a svou kvalitu prokazuje již několik desetiletí.
Na podlaze je linoleum, stěny jsou děravé a padá z nich omítka. Je možné si vymalovat a nechat proplatit barvu. Stejně tak v nouzi můžete poprosit údržbáře, zda by vám nepůjčil nářadí, případně sám nepomohl při zkulturňování pokoje.<br />
V přízemí jsou v oknech mříže. III. a IV. blok má okna plastová. Z těch ostatních starých se odlupuje barva a dělá binec v pokoji.<br />
Pokoje na všech blocích jsou zasíťované a na každém jsou 2 ethernetové zásuvky. Připojení rychlostí 100MBit zajišťuje [http://kam.cuni.cz KaM]. Každý připojený má vlastní veřejnou IP adresu, ale všechna příchozí spojení jsou blokována, tedy zapomeňte na ssh, ftp, www, apod. servery přístupné z divočiny internetu. Abyste mohli na internet, je nutné si zaregistrovat MAC adresu a k tomu potřebujete ID Univerzity Karlovy. Studentům jiných škol jako nápověda slouží [http://kam.cuni.cz/KAM-66.html tato stránka].

Ve většině pokojů jsou ledničky (dokupují se další).<br />
Záchod, sprchy a kuchyňku uklízí každý všední den uklízečka, takže máte všude čisto bez práce. Tedy alespoň do té doby, než to nějaké čuně před vámi zaneřádí.

Na závěr, nezapomeňte, že každý pokoj se dá zútulnit. :)
   
=== Co najdete na koleji a kolem ní ===

Na II. a III. bloku je ping-pongový stůl, na II. bloku je posilovna, kterou spravuje KR. Na I. bloku jsou dvě místnosti s klavírem - najdete tu jak klasický klavír, tak křídlo. Na III. bloku je další klavír. Na každém bloku je řada studoven a po jedné televizní místnosti.

Za druhým blokem najdete menší fotbalové hřiště s mizernými brankami, ale hrát se tam dá dobře. Za prvním blokem je volejbalové hřiště s antukou. Pokud jej chcete využívat, ptejte se na vrátnici. Za kolejí je veliký sad, kde se dá buď učit pod stromem, nebo na lavičce, když je teplo, nebo si tam i zaběhat.

Kousek od koleje jsou tři obchody (2×Billa, 1×Norma), pošta, 2×drogerie, hospoda (cca 4×, podle toho jak daleko chcete jít) a spousta dalšího.

Přímo v budově prvního bloku je Bécéčko (Billiard Club), zakouřená hospoda, kde se dá zahrát kulečník nebo i fotbálek. Pro nekuřáky tam mají i salónek, překvapivě relativně bez kouře (nebojte se, stejně pak budete smrdět). Asi 5 minut pěšky můžete jít na Hvězdu do [http://www.klubhvezda.cz/ klubu], kde jsou skoro každý den diskotéky.

Nevýhoda bydlení na sousední koleji Hvězdě je v tom, že hned vedle je umístěna plochodrážní dráha, která vás může občas rušit (hlavně pokoje, které mají okna obrácena k dráze). Radši pojďte na Větrník, je to kousek.

Docela slušně tu funguje společenský život. Stačí se jen trochu zajímat. Určitě si prohlédněte [http://www.vetrnik.koleje.cuni.cz/diskuse/ naše fórum], najdete tam mnoho informací a třeba i nějaká překvapení. ;)

=== Matfyzáci ===

Od doby, kdy zdražili kolej 17. listopadu, je na Větrníku mnohem víc matfyzáků. A hlavně, tady nejsou zavření v buňkách u počítače, ale pořád se tu něco děje. Matfyzáků je tu opravdu dost.

== Vzdálenost od školy ==

* nám. Jana Palacha
**tram 18 -> Staroměstská (~20 minut)
* Malá Strana
**tram 18 -> Malostranská, tram 12,20,22,23 -> Malostranské Náměstí (~25 minut)
**tram 1,18 -> Hradčanská, tram 20 -> Malostranské náměstí (~25 minut)
**tram 1,2,18 -> Vozovna Střešovice, přesun asi 2min, Brusnice, tram 22,23 -> Malostranské náměstí (~25 minut)
* Karlín
**tram 1,18 -> Hradčanská, tram 8 -> Křižíkova (~35-40 minut)
**tram 1,18 -> Hradčanská, metro A -> Můstek, metro B -> Křižíkova (~35 minut)
**tram 2 -> Dejvická, metro A -> Můstek, metro B -> Křižíkova (~35 minut)
* Trója
**tram 1 -> Vltavská, metro C -> Nádraží Holešovice, bus -> Kuchyňka (nebo Pelc Tyrolka) (~45 minut)
**tram 1,2,18 -> Vozovna Střešovice, tram 15 -> Nádraží Holešovice, bus -> Kuchyňka (nebo Pelc Tyrolka) (~45 minut)
* Hostivař
**tram 1,18 -> Hradčanská, metro A -> Skalka, bus 154,271 -> Gercenova (~60 minut)
**tram 2 -> Dejvická, metro A -> Skalka, bus 154,271 -> Gercenova (~60 minut)
* Motol
**bus 179,184 -> Nemocnice Motol/Motol (~15 minut)
* Karlovo náměstí, Albertov
**tramvaj 18 -> Karlovo náměstí/Albertov (~30 minut)
**bus 191 -> Anděl, tram 7 -> Albertov (~30 minut)

== Odkazy ==

[http://www.vetrnik.koleje.cuni.cz/ www.vetrnik.koleje.cuni.cz/] Stránky KR Větrník

[http://www.vetrnik.koleje.cuni.cz/diskuse/ www.vetrnik.koleje.cuni.cz/diskuse/] Diskuzní fórum

[http://www.ff.cuni.cz/dok/studium/lekar.php http://www.ff.cuni.cz/dok/studium/lekar.php] Ordinace praktického lékaře pro studenty na Hvězdě

== Akce, možnosti ==

Nechce se vám tahat knihy na kolej? Pro studenty dějin umění, kulturologie, historie a podobných oborů je tu řešení: [http://obrazar.2web.cz/obrazar/knihovna.phtml MiniKnihovna na Větrníku]

A ještě pro studenty dějin umění: sháníte zkušnosti, grantovou historii, položky do CV?
http://obrazar.2web.cz/obrazar/mista.phtml

Na koleji funguje už delší čas klub [http://www.coolnicka.cz Coolnička], který vedou převážně křesťani z koleje. Pořádá mimo jiné středeční diskuzní večery a pondělní kavárnu [http://www.coolnicka.cz/index.php?htm=mm&mnu=4 Mississipi Mud].

== Adresa ==
Kolej Na Větrníku
 Na Větrníku 1932
 162 00 Praha 6 - Petřiny

bloky I-II: čp. 1931,
blok III: čp. 1933,
blok IV: čp. 1934
(Pokud nechcete hledat poštu po všech blocích koleje, pište do adresy přesný blok a pokoj)
[[Category:Koleje]]
{{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