1. Operační systém, historie, koncept (procesy, soubory, systémová volání, shell), struktura OS (monolitické, vrstvené, virtuální a client-server OS).
2. Procesy, meziprocesová komunikace, semafory, monitory, zprávy, čítače událostí.
3. Klasické IPC problémy, problém obědvajících filosofů, problém čtenářů a spisovatelů, problém spícího holiče.
4. Plánování procesů - Round-Robin, priority, vícenásobné fronty, první job dříve, dvojúrovňové plánování.
5. Řízení paměti, mono- a multi-programování, využití paměti, pevné oblasti, dynamické oblasti, bitmapy, spojované seznamy, alokace odkladného prostoru.
6. Virtuální paměť, stránkování, algoritmy výměny stránek.
7. Modelování algoritmů stránkování, tvorba stránkovacích systémů, segmentace.
8. Souborový systém - soubory, adresáře, implementace souborového systému.
9. Bezpečnost souborového systému, bezpečné prostředí, principy ochrany, uživatelská autentizace.
10. Ochranné mechanismy, chráněné domény, seznamy přístupu, ochranné modely.
11. Vstup/výstup, řadiče, DMA, principy I/O, obsluha přerušení, ovladače zařízení.
12. Zablokování, podmínky zablokování, modely, detekce zablokování a obnovení stavu.
13. Vznik zablokování, prevence zablokování, dvoufázové uzamčení, zdánlivé zablokování.
14. Nové trendy v OS, RT systémy, OS pro embeded zařízení.
Cvičení:
1. Úvodní seznámení s programováním v Unixu.
2. Využití přesměrování pro programování vlastních aplikací. SSH, remote shell.
3. Používání Makefile, statické a dynamické knihovny.
4. Procesy, základní meziprocesní komunikace pomocí rour.
5. Příkaz exec, přesměrování stdin a stdout.
6. Sokety, soketový server, soketový klient
7. Využívání vláken v procesech.
8. Semafory v meziprocesní komunikaci.
9. Fronta zpráv, sdílená mapěť.
10. Zamykání souborů.
11. Práce na projektu, konzultace.
12. Prezentace a odevzdání projektu.
Projekt:
Implementace vybraného známého IPC problému. Komunikace mezi klienty a serverem bude pomocí soketů.
2. Procesy, meziprocesová komunikace, semafory, monitory, zprávy, čítače událostí.
3. Klasické IPC problémy, problém obědvajících filosofů, problém čtenářů a spisovatelů, problém spícího holiče.
4. Plánování procesů - Round-Robin, priority, vícenásobné fronty, první job dříve, dvojúrovňové plánování.
5. Řízení paměti, mono- a multi-programování, využití paměti, pevné oblasti, dynamické oblasti, bitmapy, spojované seznamy, alokace odkladného prostoru.
6. Virtuální paměť, stránkování, algoritmy výměny stránek.
7. Modelování algoritmů stránkování, tvorba stránkovacích systémů, segmentace.
8. Souborový systém - soubory, adresáře, implementace souborového systému.
9. Bezpečnost souborového systému, bezpečné prostředí, principy ochrany, uživatelská autentizace.
10. Ochranné mechanismy, chráněné domény, seznamy přístupu, ochranné modely.
11. Vstup/výstup, řadiče, DMA, principy I/O, obsluha přerušení, ovladače zařízení.
12. Zablokování, podmínky zablokování, modely, detekce zablokování a obnovení stavu.
13. Vznik zablokování, prevence zablokování, dvoufázové uzamčení, zdánlivé zablokování.
14. Nové trendy v OS, RT systémy, OS pro embeded zařízení.
Cvičení:
1. Úvodní seznámení s programováním v Unixu.
2. Využití přesměrování pro programování vlastních aplikací. SSH, remote shell.
3. Používání Makefile, statické a dynamické knihovny.
4. Procesy, základní meziprocesní komunikace pomocí rour.
5. Příkaz exec, přesměrování stdin a stdout.
6. Sokety, soketový server, soketový klient
7. Využívání vláken v procesech.
8. Semafory v meziprocesní komunikaci.
9. Fronta zpráv, sdílená mapěť.
10. Zamykání souborů.
11. Práce na projektu, konzultace.
12. Prezentace a odevzdání projektu.
Projekt:
Implementace vybraného známého IPC problému. Komunikace mezi klienty a serverem bude pomocí soketů.