1. Do czego służy protokół SMTP? Jakie ma wady i jak je rozwiązano? Co to jest i do czego służy MIME?
Prosty protokół przesyłania poczty:
służy tylko do przesyłania( wysyłania) poczty pomiędzy komputerami, nie pozwala na pobranie wiadomości z odległego komputera/serwera
definiuje format komunikatów wymienianych przez komputer nadający przesyłkę i odbierający ją
nie definiuje systemu pocztowego odbiorcy i nadawcy, nazw użytkowników, sposobu przechowywania poczty w skrzynce odbiorcy itp.
komunikacja opiera się na komunikatorach tekstowych w standardzie ASCII( co uniezależnia protokół od systemów na poszczególnych komputerach)
Wady:
dane przesyłane tekstowo
brak weryfikacji nadawcy
łatwość podszycia się pod innego nadawcę
Mechanizmy rozwiązujące: MIME, ESMTP
MIME- uniwersalne rozszerzenia poczty internetowej:
standard przesyłania poczty elektronicznej
definiuje budowę komunikatu poczty
kodowanie MIME może zwiększyć objętość danych
Zalety: pozwala przesyłać dane binarne, pozwala przesyłać załączniki, pozwala zawrzeć w jednej wiadomości kilka jej wersji
2. Za co odpowiada i co określa protokół IP? Jakie są najważniejsze jego cechy?
Podstawowa funkcja to wybór optymalnej drogi i przesyłanie nią pakietów. W przypadku awarii protokół próbuje dostarczyć pakiety drogami alternatywnymi, nie zawsze optymalnymi. Protokół IP:
jest protokołem warstwy sieciowej
protokół bezpołączeniowy
w celu przesłania pakietów nie jest nawiązywane połączenie z hostem docelowym
pakiety mogą być przesyłane różnymi trasami
odbiorca składa dane z pakietów w całość
jest protokołem zawodnym
sam protokół IP nie sprawdza poprawności danych
3. Przedstaw kaskadowy model cyklu życia programu. Krótko scharakteryzuj jego etapy.
Model kaskadowy:
studium potrzeb i możliwości- ogólne sformułowanie problemu, analiza czy nowy program jest potrzebny, opłacalny i czy da się go zrealizować
specyfikacja- szczegółowe sformułowanie problemu, określenie wymagań stawianych przez użytkownika(funkcjonalne i pozafunkcjonalne), określenie wymagań wynikających ze środowiska pracy systemu, wymagania projektowo wdrożeniowe, dokładnie określa co należy do programu/systemu a co nie, tworzona jest w ścisłej współpracy z użytkownikiem, specyfikacja wymagań systemowych
projektowanie- analiza problemu, znalezienie algorytmu rozwiązania, opis sposobu rozwiązania, projekt struktury programu, projekt struktury danych, projekt komunikacji z użytkownikiem, projekt testowania programu
kodowanie/ programowanie- zapis elementów programu( w szczególności algorytmu) z użyciem języka programowania, należy wybrać odpowiednie narzędzie, należy stosować dobre praktyki pisania kodu zwiększając jego czytelność
uruchamianie, testowanie, walidacja- sprawdzanie poprawności działania programu w praktyce, potwierdzenie w sposób udokumentowany i zgodny z założeniami że procedury i procesy działania rzeczywiście prowadzą do zaplanowania wyników, prowadzone według specyfikacji
konserwacja- wprowadzenie poprawek w istniejącym i działającym programie, dodawanie nowych elementów i funkcji
4.Na przykładzie Matlab omów budowę i działanie pętli for/while.
For- instrukcje wewnątrz pętli wykonywane tyle razy ile wynika z zadanego zakresu, licznik pętli zmienia się automatycznie, używana gdy z góry znamy liczbę wywołań
while- instrukcje wewnątrz pętli wykonywane są tak długo jak długo spełniony jest warunek, ewentualny licznik pętli musimy zmieniać sami, używana gdy nie znamy z góry liczby wywołań, gdy licznik jest zmieniany w sposób nietypowy
5. Na czym polega wielozadaniowość systemu operacyjnego? Czym różni się wielozadaniowość kooperacyjna i z wywłaszczeniem? Wielowatkowość a wielozadaniowość
Wielozadaniowość:
cecha systemu operacyjnego- możliwość uruchomienia więcej niż jednej aplikacji/ programu/ procesu w tym samym czasie
Wielozadaniowość kooperacyjna:
programy, gdy nie potrzebują zasobów same je zwalniają i przekazują systemowi, który przydziela je następnym procesom
Wielozadaniowość z wywłaszczeniem:
system sam decyduje o wykorzystaniu zasobów( zwłaszcza czasu procesora i pamięci), może `wyrzucić' czyli wywłaszczyć proces
zaleta: zablokowany program nie blokuje systemu
współczesne systemy operacyjne są systemami wielozadaniowymi z wywłaszczeniem
Wielowątkowość (ang. multithreading) - cecha systemu operacyjnego, dzięki której w ramach jednego procesu może wykonywać kilka wątków lub jednostek wykonawczych. Nowe wątki to kolejne ciągi instrukcji wykonywane oddzielnie. Wszystkie wątki tego samego procesu współdzielą kod programu i dane. W systemach nie obsługujących wielowątkowości pojęcia procesu i wątku utożsamiają się.
Wielowątkowość może także odnosić się do samych procesorów. W takim wypadku oznacza możliwość jednoczesnego wykonywania wielu wątków sprzętowych na pojedynczej jednostce wykonawczej - rdzeniu (ang. core). Wielowątkowość w procesorach możliwa jest dzięki temu że nie wszystkie części jednostki wykonawczej są w jednakowym stopniu wykorzystywane przez pojedynczy wątek (ciąg instrukcji). Nieaktywne części jednostki wykonawczej mogą w tym czasie wykonywać inny wątek zwiększając efektywność wykorzystania całego procesora. W zależności od rodzaju technik zastosowanych do obsługi dodatkowych wątków sprzętowych spotyka się od 2 (najczęściej) do nawet 8 wątków sprzętowych na pojedynczy rdzeń procesora (core).
Cechy wielowątkowości
wątki zostały wprowadzone aby umożliwić przetwarzanie współbieżne, np gdy zachodzi potrzeba wykonania wielu zadań jednocześnie. Może się to wiązać również ze zwiększeniem wydajności o ile istnieją odpowiednie zasoby sprzętowe (wiele procesorów lub obsługa wielowątkowości przez pojedynczy procesor). Należy pamiętać iż wprowadzenie wątków może obniżyć wydajność ponieważ najczęściej wymagane jest przy tym wprowadzenie odpowiednich mechanizmów synchronizacji;
6 a) Czym są instrukcje SIMD? Kiedy się je stosuje?
Są to instrukcje dotyczące systemów, w których przetwarzanych jest wiele strumieni danych w oparciu o pojedynczy strumień rozkazów. Instrukcja szczególnie przydatna w multimediach np. rozjaśnienie obrazu to dodanie pewnej stałej wartości opisującej kolejne piksele. Stosowane są także do obliczeń naukowo-technicznych.
6 b) Opisz działanie mechanizmu przerwań (IRQ). Jakie są zalety wielopoziomowego systemu priorytetów przerwań?
Urządzenie zgłasza o procesora żądanie dostępu do magistrali. Jeśli procesor zaakceptuje zgłoszenie przerywa aktualny program zapisując stan rejestrów, zezwala na podłączenie urządzenia do magistrali, wykonuje procedurę obsługi przerwania, odtwarza stan rejestrów i kontynuuje program główny. Aby obsłużyć wiele zgłoszeń od wielu urządzeń i dokonać ich arbitrażu potrzebny jest kontroler przerwań. Zaletą wielopoziomowego systemu przerwań jest to że można przerwań obsługę innego przerwania.
7. Opisz mechanizm potokowego przetwarzania instrukcji. W jaki sposób rozwiązano problemy występujące przy tego typu przetwarzaniu instrukcji?
Przetwarzanie potokowe polega na ułożeniu rozkazów w sposób zbliżony do linii produkcyjnej. Przetwarzanie pojedynczego rozkazu można podzielić na kilka etapów, które mogą być realizowane przez niezależne podukłady procesora. W potoku znajdują się rozkazy w różnym stadium przetwarzania, co prowadzi do zwiększenia szybkości przetwarzania. Największy wpływ na efektywność potoku ma jego głębokość(liczba poziomów).
Problemy:
różny czas trwania poszczególnych etapów prowadzi do powstawania opóźnień i wymusza stosowanie dodatkowych buforów
nie wszystkie etapy mogą być zawsze realizowane równolegle( możliwość wystąpienia konfliktów gdy sąsiednie instrukcje odwołują się do tej samej komórki pamięci)
wystąpienie instrukcji rozgałęzienia warunkowego może prowadzić do unieważnienia następnych rozkazów w potoku
Rozwiązania:
pobieranie rozkazu docelowego z wyprzedzeniem
zwielokrotnienie strumienia
przewidywanie rozgałęzień
stosowanie bufora pętli
zmiana porządku wykonywanych rozkazów
8. Co to jest i jak jest zbudowany system operacyjny? Podpowiedź: przedstaw w odpowiedzi model warstwowy wraz z opisem funkcji warstw. Co oznacza skrót HAL w odniesieniu do systemów operacyjnych?
Jądro:
najważniejszy komponent każdego systemu operacyjnego
wykonuje podstawowe operacje- uruchamianie programów, przyznawanie zasobów aplikacjom, obsługa wielozadaniowości, obsługa urządzeń
Sterownik:
program kontrolujące pracę przyłączonego do komputera urządzenia
systemy zawierają często wbudowane sterowniki do popularnych typów urządzeń, do innych trzeba zainstalować
Powłoka/ interfejs użytkownika(shell):
pozwala na komunikację użytkownika z systemem
`tłumaczy' polecania użytkownika na funkcje kerrnela
każdy system oferuje swoja powłokę( zwykle jedną tekstową i jedną graficzną)
powłokę zwykle można zmienić na inną
Warstwa Abstrakcji Sprzętu-HAL- Hardware Abstraction Layer
znajduje się pomiędzy systemem a sprzętem i uniezależnia system od sprzętu
wszelkie odwołania do sprzętu wykonywane wyłącznie za pośrednictwem HAL
wybór HAL w momencie instalacji systemu
system `nie wie', na jakim sprzęcie tak naprawdę działa
9. Opisz podstawowe mechanizmy i założenia dotyczące komunikacji z użyciem magistrali USB. Na czym polega transmisja izochroniczna i co oznacza „rezerwacja pasma transmisji” w magistrali USB.
Transmisja szeregowa, asynchroniczna i izochroniczna.
wszelkie akcje w tym komunikację inicjuje kontroler USB, przyłączone urządzenia muszą czekać na zapytanie o potrzebę komunikacji
podłączone do magistrali urządzenia muszą być jednoznacznie identyfikowane, każdemu przydzielany jest kontroler numer ID
przydział następuje przy pierwszym przeglądzie magistrali przez kontroler lub po podłączeniu urządzenia
przy przeglądzie urządzenia zgłaszają swoją klasę i potrzebną szerokość pasma, kontroler gromadzi te dane by później przydzielać pasma transferu
komunikacja odbywa się na poziomie kanałów wirtualnych
na końcach kanału wirtualnego znajdują się końcówki będące źródłem albo odbiornikiem
każde urządzenie może mieć około 16 końcówek
kontroler tworzy kanały przesyłowe określonego typu, o ustalonej szerokości i kierunku przepływu
ustalanie priorytetów urządzeń i przydział pasma polega na odpowiednio częstym lub żadkim przesyłaniu do nich przez kontroler pakietów zapytań
prośba o dostęp może zostać zignorowana ale trwająca transmisja nie jest przerywana
Tryb masowy- podstawowy tryb transmisji, asynchroniczny, ma najniższy priorytet, nie daje gwarancji przepustowości, jest gwarancja poprawności i spójności danych( powtarzanie uszkodzonych i zagubionych pakietów)
Tryb izochroniczny- tryb używany do transmisji dużych ilości danych w regularnych odstępach czasu, kontroler rezerwuje pasmo i gwarantuje dostęp co określony czas, nie ma korekcji błędów ani powtarzania uszkodzonych pakietów, używany np. do transmisji video i dźwięku
Tryb natychmiastowy- umożliwia szybkie przesłanie kilku bajtów danych, używany np. do obsługi myszy
Tryb sterujący- używany podczas konfiguracji nowopodłączonego urządzenia.
10. Przedstaw typowe topologie sieci komputerowych, podaj ich wady i zalety.
Gwiazda- komputery są podłączone do jednego punktu centralnego
Gwiazda rozszerzona- punkt centralny i punkty poboczne
Zalety: duża niezawodność
Wady: wysoki koszt okablowania
Obecnie najpopularniejsze
Magistrala: komputery podłączone do wspólnego medium transmisyjnego
Pierścień: łączenie sąsiednich komputerów tworzące pierścień
Podwójny pierścień: niezawodność
Zalety: niższe koszty
Wady: podatność na awarie, utrudniona rozbudowa
Hierarchiczna: podobna do gwiazdy, ale urządzenia w węzłach nie tylko rozdzielają sygnał ale też sterują przepływem informacji
Sieć, siatka( mesh): każde z urządzeń połączone z więcej niż jednym innym urządzeniem
Zalety: bardzo duża niezawodność
Wady: wysokie koszty
Topologia stosowana w sieciach szkieletowych
11. Opisz procedurę transmisji / sprzężenia z potwierdzeniem
Podpowiedz: Chodzi o zasadę (algorytm działania) i schemat, a nie konkretne rozwiązanie stosowane w
którymś ze standardów transmisji.
Nadajnik zapisuje dane do bufora i ustawia SR=1
Odbiornik czeka na Q=1
Gdy Q=1 odbiornik odczytuje bufor i ustawia SR=0
Nadajnik czeka z kolejnym zapisem aż Q=0
Gdy Q=0-> pkt.1
Przerzutnik SR na wyjściu Q podtrzymuje 1-po sygnale Set, 0-po sygnale Reset
12. Opisz główne cechy procesorów typu CISC / RISC. Do której grupy zaliczysz współczesne procesory
rodziny x86? Uzasadnij.
CISC:
Złożona lista instrukcji
Duża liczba rozkazów.
Występowanie złożonych, wyspecjalizowanych rozkazów mimo że wiele z nich jest wykorzystywana sporadycznie.\
Krótszy kod programu.
Słaba optymalizacja- niektóre rozkazy potrzebują dużej liczby cykli procesora do wykonania.
Duża liczba trybów adresowania( procesor troszczy się o dane dla siebie).
Powolne działanie dekodera rozkazów.
RISC:
Mała liczba rozkazów.
Proste rozkazy.
Rozkazy potrzebują jednego cyklu procesora do wykonania.
Dłuższy kod programu(więcej operacji do wykonania).
Tylko kilka trybów adresowania(program troszczy się o dane dla procesora, load-store)
Prostsze i szybsze dekodery rozkazów i adresów.
Niższa częstotliwość taktowania procesora.
Prostsza do wprowadzenia superskalarność( wiele jednostek równoległych)
Współczesne procesory z rodziny x86 z wierchu wydają się jako CISC ale w środku wydają się jako RISC. Obecnie popularne procesory Intela z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane na mikrorozkazy (ang. microops), które są następnie wykonywane przez RISC-owy blok wykonawczy. W praktyce okazuje się że rozwiązanie takie (pomimo wielu znaczących wad) jest podejściem znacznie bardziej wydajnym (szczególnie że RISC-owy blok wykonawczy jest znacznie bardziej nowoczesny od architektury CISC widocznej dla programisty).
13. Na przykładzie Matlab omów budowę i działanie instrukcji warunkowych.
if- instrukcja jest wykonywana gdy spełniony jest warunek zadany na początku, wybór możliwości dalszej drogi
switch- funkcja posiadać może wiele warunków, dla których jest wiele instrukcji. Wykonywane są instrukcje zawarte w bloku, dla którego spełnione jest zmienna==warunek.
14. Co to jest hub, switch ,bridże i router w sieci komputerowej- czym się różnią?
Hub-koncentrator- urządzenie łączące wiele urządzeń sieciowych w sieci komputerowej o topologii gwiazdy, przesyła sygnał z jednego portu na wszystkie pozostałe, bit po bicie( a nie ramka po ramce jak switch), nie analizuje ramki pod kątem adresu MAC ani adresu IP, pracuje w warstwie fizycznej łącza modelu OSI
Mostek-bridge- urządzenie decydujące o przesłaniu ramek danych na podstawie stworzonej przez siebie tablicy forwardingu zawierającej numery portów, do których przyłączone są urządzenia ( każdy port to inny segment sieci), oraz adresy sprzętowe MAC urządzeń w segmencie sieci. Filtruje pakiety, odciąża sieć, ale może ja spowolnić, pracuje w warstwie łącza danych modelu OSI
Switch- przełącznik- urządzenie łączące segmenty sieci, jego zadaniem jest przekazywanie ramek między segmentami, pracuje w warstwie łącza danych modelu ISO, przekazuje ramki wyłącznie do docelowego segmentu sieci( podobnie jak bridge, inaczej niż hub), umożliwia połączenie wielu segmentów sieci w gwiazdę( podobnie jak hub, inaczej jak bridge)
Router:
urządzenie zajmujące się określaniem/ znajdowaniem ścieżek przepływu pakietów i ich przekazywaniem
routerem może być komputer, ale obecnie stosuje się wyspecjalizowane urządzenia wyposażone m. in. w procesor, pamięć i system operacyjny
zaawansowane routery mają wiele procesorów i przetwarzają pakiety równolegle
pracuje w warstwie sieciowej modelu OSI