Przypominam, że w najbliższy wtorek (19.12.2017) w godzinach wykładu w sali wykładowej (161) odbędzie się kolokwium z przedmiotu SOI.B. Na potrzeby kolokwium dzielę Państwa alfabetycznie na dwie grupy. I tak na kolokwium na godzinę 16:10 proszę o punktualne stawienie się osób z nazwiskami rozpoczynającymi się jedną z liter: A do L. Natomiast osoby z nazwiskami rozpoczynającymi się jedną z liter M do Ż, proszę o stawienie się punktualnie o godzinie 17:10. Wyjątkiem są zgłoszone do mnie uprzednio mailowo osoby, które mają konflikt z laboratorium Podstawy Telekomunikacji – te osoby przychodzą na termin niekolidujący z laboratorium. Proszę o przygotowanie własnego niezapisanego papieru w formacie A4. Poniżej zamieszczam zakres materiału obowiązujący na najbliższe kolokwium: Definicje podstawowe i obowiązkowe: - system operacyjny, - zasób systemu, - proces, - powłoka (interpreter poleceń), - sekcja krytyczna, - semafor. Wstęp - tryby przetwarzania systemu komputerowego, - rola przerwania w systemie komputerowym, - pojęcie blokady w systemie operacyjnym, - przeznaczenie montowania systemu plików, Programowanie w języku powłoki: - użytkownicy w systemie Unix, - prawa dostępu do plików, - znaczenie bitów SUID, SGID, - główne zmienne powłoki, - parametry powłoki, - polecenia zewnętrzne a wbudowane – uzasadnienie rozróżnienia, - polecenia powłoki: read, set, export, - pętle for/while/do w programowaniu powłoki, - metaznaki powłoki, - przykłady interpretacji linii komendy powłoki, - odczyt pliku /etc/passwd z wykorzystaniem read/set/IFS, - uruchamianie procesów w tle, - przekierowywanie wejścia/ wyjścia, Procesy i wątki: - pojęcia procesów współbieżnych/równoległych/rozproszonych, - graf przejść stanów procesów w systemie Unix - prosty i złożony (System V), - przeznaczenie i budowa wektora przerwań, - porównanie własności procesów i wątków, - porównanie wątków poziomu jądra i wątków poziomu użytkownika, - architektura wielowątkowa w systemie Solaris, - metody konstrukcji serwerów usług, - szeregowanie z wywłaszczaniem i bez wywłaszczania, - szeregowanie procesów - wskaźniki jakości szeregowania dla różnych trybów   przetwarzania, Wzajemne wykluczanie i synchronizacja: - wyścig i warunki wyścigu, - warunki konieczne implementacji sekcji krytycznej, - mechanizmy realizacji wzajemnego wykluczania z aktywnym oczekiwaniem – opis i porównanie, - mechanizmy realizacji wzajemnego wykluczania z zawieszaniem - opis i porównanie, - idea wykorzystania instrukcji Test&SetLock (TSL) do realizacji semafora binarnego, - problem producent-konsument - różne implementacje z wykładu, - algorytm i opis idei poprawnej synchronizacji problemu ucztujących filozofów   (wersja z wykładu), - algorytm i opis idei poprawnego rozwiązania problemu śpiącego fryzjera, - algorytm i opis idei poprawnego rozwiązania problemu czytelników i pisarzy   z preferowaniem czytelników Zarządzanie pamięcią: - idea hierarchicznej organizacji pamięci, - metody przydziału pamięci, - pojęcie i rodzaje fragmentacji, występowanie, metody przeciwdziałania, - algorytmy alokacji pamięci, - stronicowanie - opis i porównanie z segmentacją, - idea odwróconej tablicy stron, - algorytmy wymiany stron, - segmentacja - opis i porównanie ze stronicowaniem, - pamięć wirtualna – pojęcie i metody organizacji, - przeznaczenie i budowa bufora TLB, - opis translacji adresu w architekturze Pentium, - poziomy ochrony w architekturze Pentium. Przykładowe zadania projektowe: - proste skrypty sh (bez rozszerzeń bash):         - skrypt, który wysyła na wyjście linia po linii tekst ze standardowego wejścia, poprzedzając każdą linię numerem linii, - skrypt, który przyjmuje jako argument id użytkownika i wypisuje na stdin         nazwę użytkownika (korzysta z relacji w /etc/passwd),         - skrypt wypisujący zadane argumenty w odwrotnej kolejności, - opisz rezultat wykonania poleceń i grup poleceń:         x >/dev/null 2>&1         x 2>&1 1>/dev/null         x 2>/dev/null 1>/dev/null         x < y > z         x & y ; z         x || y - opisz precyzyjnie działanie poniższych komend, ile dokładnie tworzonych jest procesów?         x > y         x | y         x < y         cat y | x         x & y         x && y         x || y         x ; y &         cat x  > y <