Opracowanie pytań na egzamin inżynierski
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

W4-INF-kierunkowe.md 12KB

Model TCP/IP

Model TCP/IP to warstwowy model struktury protokołów komunikacyjnych w sieciach komputerowych, opracowany razem z odpowiadającym mu zestawem protokołów w latach 70. w agencji DARPA (Stany Zjednoczone); sam model jak i zestaw protokołów TCP/IP został zaprojektowany w otwartej architekturze i nie jest ograniczony żadnymi patentami ani prawami autorskimi.

W modelu TCP/IP wyróżnia się 4 warstwy:

  • warstwa aplikacji – najwyższa warstwa, odpowiadająca bezpośrednio za wymianę za pomocą sieci różnego typu danych między aplikacjami używanymi przez użytkowników, przykładowe protokoły: HTTP (strony WWW), DNS (tłumaczenie nazw domenowych), SMTP (wymiana poczty), SSH (zdalna praca konsolowa),
  • warstwa transportowa – warstwa zapewniająca kanał komunikacyjny między poszczególnymi aplikacjami na komunikujących się ze sobą urządzeniach, dzieląca dane na segemnty po stronie nadawczej i składająca po stronie odbiorczej, kierująca do każdej z aplikacji ruch sieciowy na podstawie przypisanego jej numeru portu, na jej poziomie wykorzystuje się 2 protokoły: TCP (połączeniowy, gwarantujący niezawodność transmisji) i UDP (bezpołączeniowy, szybszy, ale nie gwarantujący poprawności transmisji),
  • warstwa internetowa (warstwa internetu) – warstwa odpowiadająca za wyznaczanie trasy (routing) i przekazywanie pakietów do kolejnych sieci znajdujących się pomiędzy urządzeniem źródłowym i docelowym, podstawowym protokołem tej warstwy jest protokół IP, wykorzystujący do identyfikacji urządzeń unikalne w skali całej sieci adresy IP,
  • warstwa dostępu do sieci – najniższa warstwa, której zadaniem jest transmitowanie danych przez fizyczne łącza między urządzeniami w obrębie pojedynczej sieci.

Każda z warstw jest niezależna od pozostałych. Przykładowo, na poziomie warstwy aplikacji po drugiej stronie łącza widoczna jest bezpośrednio aplikacja, z którą zostało nawiązane połączenie, niezależnie od trasy pokonywanej przez pakiety w warstwie internetowej. Z kolei z perspektywy warstwy internetowej po przeciwnej stronie łącza znajduje się następne urządzenie na trasie posiadające adres IP, niezależnie od fizycznej struktury sieci i przykładowo liczby przełączników, jakie musi pokonać ramka przenosząca pakiet IP. Dzięki temu można łatwo wykorzystać w sieci różne technologie i z punktu widzenia wyższych warstw nie ma na przykład znaczenia, czy fizycznie transmisja odbywa się kablem w standardzie Ethernet, czy bezprzewodowo w jednym ze standardów Wi-Fi – dowolny rodzaj danych da się przesłać dowolnym łączem.

Generowanie realistycznych obrazów scen 3D za pomocą metody śledzenia promieni

Metoda śledzenia promieni (ang. ray tracing) służy do generowania fotorealistycznych scen 3D z odwzorowaniem efektów oświetlenia (cienie, odbicia światła od obiektów). W metodzie śledzenia promieni analizowane są tylko promienie docierające do obserwatora, w kierunku odwrotnym do padania światła – od pozycji obserwatora, przecinając rzutnię (ekran), wgłąb sceny. Dzięki temu metoda śledzenia promieni pozwala zaoszczędzić wiele obliczeń w porównaniu z metodą próbkowania przestrzeni, w której promienie analizowane są od źródeł światła w kierunku sceny i wiele z nich jest rozpraszana po odbiciu od obiektów na scenie, w ogóle nie trafiając w ekran.

Zasada działania algorytmu śledzenia promieni jest następująca:

  1. Dla każdego piksela na ekranie z punktu, w którym znajduje się obserwator, wyprowadzany jest promień pierwotny, który przecina ten piksel.
  2. Jeżeli:
    1. Promień nie trafi na żaden obiekt na scenie – piksel przyjmuje kolor tła.
    2. promień trafi w źródło światła – piksel przyjmuje kolor źródła,
    3. promień trafi w obiekt – wyznaczany jest najbliższy punkt przecięcia z obiektem i dla niego:
    4. obliczany jest kolor za pomocą jednego z modeli oświetlenia lokalnego (np. modelu Phonga),
    5. ewentualne zacienienie (poprzez poprowadzenie pomocniczych promieni do źródeł światła i przeanalizowanie, czy przecinają inne obiekty)
    6. kierunek odbicia promienia wtórnego, który następnie jest śledzony rekruncyjnie w taki sam sposób (jeżeli trafi w kolejny obiekt – jego oświetlenie lokalne jest mnożone przez współczynnik odbicia i dodawane do lokalnego oświetlenia poprzedniego obiektu)
  3. Krok 2 jest powtarzany dopóki promień wtórny nie trafi w tło albo w źródło światła, lub dopóki nie zostanie osiągnięta określona głębokość rekurencji.

Podstawową wadą metody śledzenia promieni jest jej (wciąż) duża złożoność obliczeniowa, znacznie rosnąca wraz z liczbą obiektów na scenie lub źródeł światła – natomiast dzięki niezależnym obliczeniom dla każdego piksela, stosunkowo łatwo można ją zrównoleglić np. dzięki możliwościom współczesnych kart graficznych.

Model Phonga pozwala wyliczyć oświetlenie lokalne jako sumę trzech rodzajów światła:

  • światło otaczające (ang. ambient) – bezkierunkowe światło, równomiernie oświetlające obiekty ze wszystkich stron – w naturze ten rodzaj światła dominuje w środku dnia podczas pochmurnej pogody,
  • światło rozproszone (ang. diffuse) – światło padające z określonego kierunku i rozpraszane przez obiekty, dając ich równomierne oświetlenie z jednej strony,
  • światło odbite (ang. specular) – światło padające z określonego kierunku i silnie odbijane przez obiekty, dając efekt połysku ich powierzchni.

Dla każdego typu sceny (pochmurny środek dnia, bezchmurny wieczór, ksieżycowa noc, bezksiężycowa noc, itd.) określa się różne wartości współczynników dla tych rodzajów światła.

Przy okazji: model Phonga ładnie tłumaczy dlaczego pochmurna pogoda jest najlepsza do fotografowania na tekstury modeli 3D, prawie nie ma wtedy cieni i refleksów ;-)

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Układy PLD, CPLD oraz FPGA należą do specjalizowanych scalonych układów cyfrowych (ASIC) konfigurowanych przez użytkownika – w odróżnieniu od typowych układów ASIC konfigurowanych maską przez producenta na zamówienie użytkownika. Układy programowalne mogą być dzięki temu produkowane i sprzedawane masowo, co w porównaniu z układami konfigurowanymi maską pozwala znacząco ograniczyć koszty stałe projektu użytkownika (właściwie każdy może taki układ kupić). Wyższy jest natomiast ich jednostkowy koszt i przy seriach rzędu kilkudziesięciu tysięcy urządzeń stają się przez to mniej opłacalne od układów konfigurowanych maską.

W porównaniu z układami ogólnego przeznaczenia, przystosowane do określonych zastosowań układy ASIC cechują się wyższą wydajnością i efektywnością, na przykład umożliwiając zrównoleglenie na etapie projektu operacji, które przez mikroprocesor musiałyby być wykonywane sekwencyjnie. Układy ASIC stosuje się często do sterowania urządzeniami i szybkiego przetwarzania dużych ilości danych – na przykład w kryptografii, w urządzeniach sieciowych (przełączniki), czy też przy cyfrowym przetwarzaniu sygnałów. Układów programowalnych używa się zwykle do prototypowania układów cyfrowych i produkcyjnie dla małych serii (lub większych serii, które szybko powinny trafić na rynek).

Najprostszym i najstarszym rodzajem omawianych układów są układy PLD (Programmable Logic Device). Składają się one z 2 matryc bramek logicznych, AND-OR, sprzętowo najczęściej realizowanych jako NAND-NAND (prawa de Morgana) i występują w trzech odmianach:

  • PAL – z programowalną matrycą AND (najpowszechniejsze)
  • PLE - z programowalną matrycą OR
  • PLA - z programowalnymi obydwoma matrycami

Układy PLD składają się z małej liczby bramek logicznych (typowo posiadają 8-10 wejść i wyjść oraz kilkadziesiąt bramek), a zwiększanie rozmiarów matryc bardzo szybko zaczyna powodować powolne działanie. Dlatego jako ich rozwinięcie opracowano układy CPLD (Complex PLD), składające się z wielu układów PLD połączonych szybką globalną matrycą połączeń – takie układy mogą posiadać już kilka tysięcy bramek logicznych. W układach PLD i CPLD jako pamięć konfiguracji wykorzystuje się różne rodzaje pamięci nieulotnej, we współczesnych konstrukcjach najczęściej EEPROM (elektrycznie programowalną i kasowalną).

Układy FPGA (Field Programmable Gate Array) to najbardziej skomplikowany rodzaj układów programowalnych o największych możliwościach, pierwotnie opracowany przez firmę Xilinx, ich pojemności dochodzą do kilkuset tysięcy bramek logicznych. Podstawową różnicą w stosunku do CPLD jest sposób realizacji funkcji logicznych – w FPGA zamiast klasycznych bramek logicznych wykorzystuje się generatory LUT (LookUp Table), tablicujące tabele prawdy funkcji. Układy FPGA składają się z wielu połączonych globalną matrycą bloków CLB (Configurable Logic Block), zawierających LUT, przerzutniki i multipleksery. Jako pamięć konfiguracji wykorzystywana jest pamięć statyczna RAM (SRAM) – ponieważ jest to pamięć ulotna, często do układów FPGA dołącza się oddzielne układy pamięci EEPROM, z których FPGA po podłączeniu zasilania automatycznie może odczytać konfigurację połączeń. Jest to kolejna ważna różnica w porównaniu z CPLD.

Do konfigurowania współczesnych układów programowalnych wykorzystuje się języki opisu sprzętu (HDL – Hardware Description Language), 2 najczęściej stosowane to VHDL i Verilog. Za ich pomocą opisuje się zachowanie projektowanego układu w pewnej określonej konwencji (zwanej szablonem), którą narzędzia syntezy tworzone przez producentów układów są w stanie przetłumaczyć na konfigurację konkretnego układu FPGA lub CPLD.

Optyczne nośniki informacji

Nośniki optyczne służą do przechowywania informacji w postaci, którą odczytuje się za pomocą wiązki światła (promienia lasera). Pierwszym optycznym nośnikiem danych były płyty LaserDisc o średnicy około 30 cm, opracowane w latach 70. w Stanach Zjednoczonych do zapisu wideo (obraz w formacie analogowym, dźwięk w formacie analogowym lub cyfrowym).

Współcześnie jako optyczne nośniki danych wykorzystuje się płyty o średnicy 12 cm, przechowujące informacje w postaci cyfrowej:

  • CD – najstarszy standard (1982), do odczytu wykorzystuje falę o długości 780 nm (podczerwień), pozwala zapisać 700 MB danych lub 80 minut stereofonicznego dźwięku (w formacie PCM 16-bit z częstotliwością próbkowania 44.1 kHz),
  • DVD – standard z 1995, do odczytu wykorzystuje falę o długości 650 nm (światło czerwone), dzięki czemu uzyskano wyższą gęstość zapisu – mieści 4.7 GB danych na jednej warstwie, na płytach dwuwarstwowych mieszczących 8.5 GB danych wybór warstwy następuje przez odpowiednie zogniskowanie wiązki laserowej (pierwsza warstwa częściowo przepuszcza światło),
  • Blu-ray – standard z 2006, jeszcze wyższa gęstość zapisu, do odczytu wykorzystuje falę o długości 405 nm (światło niebieskie), pozwala zapisać 25 GB danych na jednej warstwie, podobnie jak na płytach DVD możliwy jest zapis dwuwarstwowy (50 GB), a w rozszerzonej wersji standardu nazywanej BDXL – nawet ośmiowarstwowy (200 GB).

Płyty te mogą być zapisywane fabrycznie (jak w przypadku płyt muzycznych CD-ROM), ale mogą też być dostosowane do jednokrotnego zapisu (np. DVD-R) lub wielokrotnego zapisu i kasowania (np. CD-RW, BD-RE) przez użytkownika za pomocą nagrywarki – szczególnie duże znaczenie miały tutaj płyty CD-RW przed upowszechnieniem się nośników pamięci USB.

Dane cyfrowe są zapisywane na płytach w spiralnej ścieżce od środka nośnika w stronę krawędzi w postaci fragmentów powierzchni odbijających (land) lub pochłaniających (pit) wiązkę światła lasera. Wykorzystywane jest kodowanie NRZI – zmiana powierzchni (pitu w land lub landu w pit) oznacza jedynkę logiczną w odczytywanym sygnale. Odbita od płyty wiązka jest wykorzystywana równocześnie do odczytu danych oraz do utrzymywania lasera w ścieżce i ogniskowania światła na płycie (odległość między płytą a laserem może się zmieniać z powodu tzw. bicia płyty, wynikającego z jej nierówności).