Pytania na egzamin inżynierski (Informatyka)

Wielkość: px
Rozpocząć pokaz od strony:

Download "Pytania na egzamin inżynierski (Informatyka)"

Transkrypt

1 Pytania na egzamin inżynierski (Informatyka) Z PUTWiki Skocz do: nawigacji, wyszukiwania [edytuj] Pytanie 1 odp. v Modele obliczalności. (źródło ) Modele obliczeń (źródło: TPI, wykład 7 "Równoważność modeli obliczeń", slajdy 12-18): Rachunek lambda (λ) Churcha Funkcja jest obliczalna, jeśeli odpowiadające jej wyrażenie λ jest redukowalne. Maszyna Turinga Funkcja jest obliczalna w sensie Turinga, jeśeli dla dowolnego zapisu początkowego taśmy maszyna Turinga zatrzyma się po wykonaniu skończonej liczby kroków. Maszyna RAM Funkcja jest obliczalna, jeśeli można ją obliczyć za pomocąmaszyny RAM (maszyna RAM zatrzyma się dla dowolnego ciągu danych i wynik jest w rejestrze R1). Rachunek predykatów pierwszego rzędu Formuła jest prawdziwa, jeśli istnieje dowód tej formuły (metodą rezolucji) Funkcje rekurencyjne Funkcja jest obliczalna, jeśeli jest funkcją częściowo rekurencyjną. [edytuj] Pytanie 2 Metody wnioskowania w rachunku predykatów. odp. v Kiedyś TPI, teraz Logika obliczeniowa? Rezolucja a v b, -b v g a v g W rachunku predykatów definicja obliczalności jest następująca: Formuła jest prawdziwa, jeśli istnieje dowód tej formuły (metodą rezolucji) Dowód metodą nie wprost: Założenie o niesprzeczności teorii Zatem dodanie zdania, które nie jest prawdziwe powoduje powstanie sprzeczności w rozważanym zbiorze zdań Szukamy tej sprzeczności Co będzie jeżeli nie ma sprzeczności? Dowód metod rezolucji 1. Przekształć przesłanki lub aksjomaty w formę klauzul. 2. Dodaj do zbioru aksjomatów zaprzeczenie twierdzenia, które ma być udowodnione. 3. Wygeneruj nowe klauzule wynikające z tego zbioru. 4. Znajdż sprzeczność generując pustą klauzulę. 5. Warunki użyte do wygenerowania pustej klauzuli są tymi, w których zaprzeczenie celu jest prawdziwe. Znaczenie rezolucji: Dedukcja Problem stwierdzenia prawdziwości formuły sprowadza się do znalezienia jej dowodu, którego konstrukcja jest operacją czysto składniową (tekstową), a więc mechaniczną. Jedną z metod automatycznego dowodzenia twierdzeń w FOL, przy wykorzystaniu metody nie wprost jest odkryta w roku 1965 przez J. B. Robinson tzw. zasada rezolucji, oparta na jednej regule wnioskowania zwanej regułą rezolucji. Jeżeli twierdzenie można udowodnić, to metodą rezolucji znajdziemy dowód, gdyż rezolucja jest metodą zupełną. Dedukcja jest szczególnym przypadkiem rezolucji. Rezolucja w postaci implikacyjnej to nie jest to samo co dedukcja. Dedukcja: -a => b, b => g - a => g Metoda tabel semantycznych - działają "Wstecz" Ogólne informacje:

2 wartości zapamiętujemy w drzewie pierwotna formuła jest umieszczana w korzeniu liście zawierają zbiory literałów, które powinny być spełnione liść zawierający literały komplementarne oznaczymy x, a liść zawierający zbiór literałów spełnialnych Reguły produkcji Zalety Wady typu α typu β liczba aksjomatów może być nieskończona. każdy dowód składa się ze skończonego zbioru formu latwo sprawdzić poprawność na podstawie składni formuł z dowodu wynika jakich aksjomatów, twierdzeń oraz reguł użyto i w jakim kroku. wzorzec dowodu można przenieść na podobne dowody udowodnione twierdzenie może być wykorzystane w kolejnych dowodach nie poddaje się systematycznemu przeszukiwaniu wymaga pomysłowości, a nie siłowego przeszukiwania. W rachunku predykatów (w porównaniu z rachunkiem zdań) należy dodać w metodzie tabel semantycznych dwie dodatkowe reguły dla kwantyfikatorów reguła σ i γ. Mamy zatem cztery (α, β, σ, γ). [edytuj] Pytanie 3 odp. v Wyrażenia regularne i ich implementacja w języku AWK. Kiedyś TPI, a teraz? [edytuj] Pytanie 4 odp. v Definiowanie funkcji za pomocą operacji minimum. (strona 6-14) A więc by zdefiniować funkcje operacja minimum najpierw musimy zapodać pare definicji. Funckje bazowe: Z(x) = 0 dla każdego x - funckja ścierajaća lub zerująca S(x) = x + 1 dla każdego x - funckja następnika U n i (x 1, x 2,... x n ) = x i - funckja projekcyjna (czyli i-ty element wybiera) Schemat tworzenia fukncji: Operacja superpozycji (składania funckji) f(x)=g(h 1 (x),... h n (x)) - gdzie g,h 1 należa do zbiuru funckji A i zachodzi f należy do zbiuru A [x to wektor, nie umiem tutaj zrobic] Operacja rekursji prostej f(0,x)=g(x) - "krok" początkowy rekurencji [x to wektor, nie umiem tutaj zrobic] f(s(n),x)=h(n, f(n,x), x) - "krok" rekurencji Operator minimum Oznacza najmniejsza liczbę m gdzie zachodzi: niech um.f(x 1,...x n,m)=0 i f jest zdefiniowana dla wszyskich k<=m. w przeciwnym wypadku nie określona. Teraz majac to wszystko mozemy nazwac "funkcjami czesciowo rekurencyjnymi" Przykłady: poprzednik: prev(0)=0 prev(s(n))=n // S(n)czytamy jako następnik n, w LO pisaliśmy jakos tak: y+1=x formalnie: prev(0)=0 prev(s(n))=u 2 1 (n,prev(n)) //wybieramy 1 element dodawanie: add(0,n)=n add(m+1,n)=add(m,n)+1

3 formalnie: add(0,n)=u 1 1 (n) add(m+1,n)=h(m,add(m,n),n) gdzie h(x 1,x 2,x 3 )=S(U 3 2 (x 1,x 2,x 3 )) [edytuj] Pytanie 5 odp. v Różnice w sposobie kompresji obrazu jpeg i png. Kompresja stratna JPG w kilku słowach, paragraf 'Kompresja formatu JPG' lub z polskiej wiki. A tu o bezstratnej PNG. [edytuj] Pytanie 6 odp. v Narzędzia wspomagające tworzenie stron WWW. Podział narzędzi: edytory tekstowe - notatnik, Notepad2, Quanta, Eclipse (z pluginem), Coda (na Maca) edytory graficzne (tzw. WYSIWYG - What You See Is What You Get) - Dreamweaver, Pajączek graficzne (ale nie WYSIWYG) - NetBeans, Microsoft Visual Studio, Zend Studio Można też wspomnieć o: pluginie do przeglądarki dla developerów (np. Web Developer dla Firefox) debugerach PHP (i pewnie też innych języków) [edytuj] Pytanie 7 odp. v Budowa komputera. Większość współczesnych komputerów opartych jest na tzw. architekturze von Neumanna (od nazwiska Johna von Neumanna), tj. składa się z trzech podstawowych elementów: procesora - podzielonego na część arytmetyczno-logiczną czyli układu, który faktycznie wykonuje wszystkie konieczne obliczenia oraz część sterującą pamięci RAM - (od ang. Random Access Memory) czyli układy scalone, które przechowują program i dane (umożliwia to m.in. samomodyfikację programu) oraz bieżące wyniki obliczeń procesora i stale, na bieżąco wymienia dane z procesorem urządzeń wejścia/wyjścia - które służą do komunikacji komputera z otoczeniem. Typy komputerów - Współcześnie komputery dzieli się na: komputery osobiste - o rozmiarach umożliwiających ich umieszczenie na biurku, używane zazwyczaj przez pojedyncze osoby komputery domowe - poprzedniki komputerów osobistych, korzystający z telewizora, jako monitora. komputery mainframe - często o większych rozmiarach, których zastosowaniem jest przetwarzanie dużych ilości danych na potrzeby różnego rodzaju instytucji, pełnienie roli serwerów itp. superkomputery - największe komputery o dużej mocy obliczeniowej, używane do czasochłonnych obliczeń naukowych i symulacji skomplikowanych systemów. komputery wbudowane - (lub osadzone, ang. embedded) specjalizowane komputery służące do sterowania urządzeniami z gatunku automatyki przemysłowej, elektroniki użytkowej (np. telefony komórkowe itp.) czy wręcz poszczególnymi komponentami wchodzącymi w skład komputerów. System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien: mieć skończoną i funkcjonalnie pełną listę rozkazów mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze. Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność. System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacząć je wykonywać. [edytuj] Pytanie 8 odp. v Cykl rozkazowy procesora. PROCESOR stanowi główny element komputera, ponieważ jest odpowiedzialny za przetwarzanie informacji. Składa się on z układów sterujących, arytmometru oraz rejestrów. Układy sterujące odpowiadają za: dostarczenie arytmometrowi danych do obliczeń z pamięci operacyjnej, przekazywanie wyników obliczeń z powrotem do pamięci oraz właściwą kolejność przetwarzania. W arytmometrze odbywają się wszystkie obliczenia realizowane przez komputer. W rejestrach procesora przechowuje się adresy wybranych miejsc pamięci operacyjnej oraz dane i wyniki obliczeń. W wyróżnionym rejestrze nazywanym licznikiem rozkazów jest umieszczany adres miejsca w pamięci wewnętrznej zawierającego bieżący rozkaz dla procesora. Praca procesora odbywa się w tzw. cyklach rozkazowych.

4 Grafika:rozkazowy.jpg Przebieg jednego cyklu rozkazowego można opisać za pomocą następującego algorytmu: 1. Zawartość miejsca pamięci wewnętrznej wskazywanego przez licznik rozkazów LR zostaje przesłana do układów sterujących procesora. 2. W układach sterujących następuje rozdzielenie otrzymanej informacji na dwa pola: pole operacji i pole argumentów. Pole operacji zawiera adres rozkazu, który należy wykonać. Pole argumentów zawiera adresy, pod którymi są przechowywane dane oraz adres przeznaczenia wyniku. 3. Na podstawie wyznaczonych adresów następuje przesłanie z pamięci wewnętrznej argumentów do odpowiednich rejestrów, a na podstawie adresu rozkazu arytmometr wykonuje odpowiednie działanie (operację arytmetyczną lub logiczną) na zawartościach rejestru. 4. Wynik przetwarzania (wynik wykonanej operacji) jest wysyłany do pamięci wewnętrznej pod adres przeznaczenia wyniku. 5. Następuje zmiana wartości licznika rozkazów LR tak, aby wskazywał on kolejny rozkaz dla procesora. Wykonywanie obliczeń może zostać przerwane. Jeżeli procesor otrzyma sygnał informujący go o żądaniu obsługi przerwania następuje przerwanie obliczeń, zapamiętanie stanu licznika rozkazów i wczytanie do licznika rozkazów adresu podprogramu (procedury) obsługi przerwania. Dalsze zachowanie się procesora jest uzależnione od podprogramu obsługującego przerwanie. Oprócz przerwań nadchodzących z zewnątrz procesora (np. odczyt znaku z klawiatury) są przerwania wewnętrzne procesora. Jednym z takich przerwań może być przerwanie jego pracy w przypadku, gdy procesor odczyta rozkaz dzielenia dowolnej liczby przez liczbę 0. [edytuj] Pytanie 9 odp. v Mechanizm funkcjonowania systemu przerwań komputera. Fazy obsługi przerwania 1. Rozpoznanie i identyfikacja przerwania 2. Przerwanie wykonywania instrukcji i zapamiętanie kontekstu 3. Załadowanie nowego kontekstu i rozpoczęcie instrukcji przerwania Podczas przerwania należy zapamiętać (kontekst): Informacje o stanie procesora które mogą zostać samoczynnie zmodyfikowane przez procesor Rejest stanu z inf. systemowymi PC - wskazuje na bieżącą instrukcję czasami nextpc Przerwania dzielą się na dwie grupy: Sprzętowe: Zewnętrzne sygnał przerwania pochodzi z zewnętrznego układu obsługującego przerwania sprzętowe; przerwania te służą do komunikacji z urządzeniami zewnętrznymi, np. z klawiaturą, napędami dysków itp. Wewnętrzne, nazywane wyjątkami (ang. exceptions) zgłaszane przez procesor dla sygnalizowania sytuacji wyjątkowych (np. dzielenie przez zero); dzielą się na trzy grupy: faults (niepowodzenie) sytuacje, w których aktualnie wykonywana instrukcja powoduje błąd; gdy procesor powraca do wykonywania przerwanego kodu wykonuje następną, po tej która wywołała wyjątek, instrukcję; traps (pułapki) sytuacja, która nie jest błędem, jej wystąpienie ma na celu wykonanie określonego kodu; wykorzystywane przede wszystkim w debugerach; gdy procesor powraca do wykonywania przerwanego kodu tę samą instrukcję która wywołała wyjątek; aborts błędy, których nie można naprawić. Programowe z kodu programu wywoływana jest procedura obsługi przerwania; najczęściej wykorzystywane do komunikacji z systemem operacyjnym, który w procedurze obsługi przerwania (np. w DOS 21h, 2fh, Windows 2fh, Linux x86 przerwanie 80h) umieszcza kod wywołujący odpowiednie funkcje systemowe w zależności od zawartości rejestrów ustawionych przez program wywołujący, lub oprogramowaniem wbudowanym jak procedury BIOS lub firmware. wazniak:architektura Komputerów/Wykład 13: Wyjątki

5 [edytuj] Pytanie 10 odp. v Idea bezpośredniego dostępu do pamięci (DMA). DMA (ang. Direct Memory Access - bezpośredni dostęp do pamięci) - technika, w której inne układy (np. kontroler dysku twardego, karta dźwiękowa, itd.) mogą korzystać z pamięci operacyjnej RAM lub (czasami) portów we-wy pomijając przy tym procesor główny - CPU. Wymaga to współpracy ze strony procesora, który musi zaprogramować kontroler DMA do wykonania odpowiedniego transferu, a następnie na czas przesyłania danych zwolnić magistralę systemową (przejść w stan wysokiej impedancji). Sam transfer jest już zadaniem wyłącznie kontrolera DMA. Realizacja cykli DMA może przez urządzenie być zrzucona na specjalny układ (np. w komputerach PC) lub być realizowana samodzielnie przez urządzenie. DMA ma za zadanie odciążyć procesor główny od samego przesyłania danych z miejsca na miejsce (np. z urządzenia wejściowego do pamięci), procesor może w tym czasie zająć się 'produktywnym' działaniem, wykonując kod programu pobrany uprzednio z pamięci RAM do pamięci cache operujący na danych w tejże pamięci zgromadzonych. Specjalizowane układy wspomagające DMA (np. te spotykane w PC) potrafią też kopiować obszary pamięci dużo szybciej niż uczyniłby to programowo procesor główny. Istnieje specjalna procedura DMA, "Scatter-Gather" (dosł.: rozrzuć-zbierz), pozwalająca przenosić dane do wielu obszarów pamięci w pojedynczym transferze. Pod względem skutków jest to równoważne połączeniu łańcuchowemu kilku transferów, jednak jest wyraźnie szybsze. [edytuj] Pytanie 11 odp. v Podstawowe cechy architektury RISC. RISC (Reduced Instruction Set Computers) - nazwa architektury mikroprocesorów która została przedstawiona pod koniec lat 70. w teoretycznych pracach na uniwersytecie Berkeley oraz w wynikach badań Johna Cocke z Thomas J. Watson Research Center. Ówczesne procesory (budowane w architekturze CISC) charakteryzowały się bardzo rozbudowaną listą rozkazów, ale jak wykazały badania tylko nieliczna ich część była wykorzystywane w statystycznym programie. Okazało się np. że ponad 50% rozkazów w kodzie to zwykłe przypisania (zapis zawartości rejestru do pamięci i odwrotnie). Ponadto badania wykazały, że podczas działania programu ok % wykonywanych instrukcji to instrukcje wywołania podprocedur lub instrukcje obsługujące pętle, ok % to wspomniane przypisania, 7-21% to instrukcje warunkowe (jeśli warunek to ), natomiast reszta to tylko 1-3%. W związku z powyższym zaprezentowano architekturę mikroprocesorów, w której uwzględniono wyniki badań. Jej podstawowe cechy to: Zredukowana liczba rozkazów do niezbędnego minimum. Ich liczba wynosi kilkadziesiąt, podczas gdy w procesorach CISC sięga setek. Upraszcza to znacznie dekoder rozkazów. Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, co dodatkowo upraszcza wspomniany wcześniej dekoder rozkazów. Ponadto wprowadzono tryb adresowania, który ogranicza ilość przesłań - większość operacji wykonuje się wg schematu: rejestr_c = rejestr_a operacja rejestr_b. Ograniczenie komunikacji pomiędzy pamięcią, a procesorem. Przede wszystkim do przesyłania danych pomiędzy pamięcią, a rejestrami służą dedykowane instrukcje, które zwykle nazywają się load (załaduj z pamięci), oraz store (zapisz do pamięci); pozostałe instrukcje mogą operować wyłącznie na rejestrach. Schemat działania na liczbach znajdujących się w pamięci jest następujący: załaduj daną z pamięci do rejestru, na zawartości rejestru wykonaj działanie, przepisz wynik z rejestru do pamięci. Zwiększenie liczby rejestrów (np. 32, 192, 256, podczas gdy np. w architekturze x86 jest zaledwie 8 rejestrów), co również ma wpływ na zmniejszenie liczby odwołań do pamięci. Dzięki przetwarzaniu potokowemu (ang. pipelining) wszystkie rozkazy wykonują się w jednym cyklu maszynowym, co pozwala na znaczne uproszczenie bloku wykonawczego, a zastosowanie superskalarności także na umożliwienie równoległego wykonywania rozkazów. Dodatkowo czas reakcji na przerwania jest krótszy. Pierwszym procesorem zaprojektowanym w oparciu o architekturę RISC był RCA1802 wyprodukowany przez firmę RCA. 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). wazniak:architektura_komputerów/wykład_5:_model_programowy_procesora_w_podejściu_cisc_i_risc [edytuj] Pytanie 12 odp. v Idea potokowego przetwarzania rozkazów. Potokowość (ang. pipelining) technika budowy procesorów polegająca na podziale logiki procesora odpowiedzialnej za proces wykonywania programu (instrukcji procesora) na specjalizowane grupy w taki sposób, aby każda z grup wykonywała część pracy związanej z wykonaniem rozkazu. Grupy te są połączone sekwencyjnie potok (ang. pipe) i wykonują pracę równocześnie, pobierając dane od poprzedniego elementu w sekwencji. W każdej z tych grup rozkaz jest na innym stadium wykonania. Można to porównać do taśmy produkcyjnej. W uproszczeniu, potok wykonania instrukcji procesora może wyglądać następująco: Pobranie instrukcji z pamięci - ang. instruction fetch (IF) Zdekodowanie instrukcji - ang. instruction decode (ID) Wykonanie instrukcji - ang. execute (EX) Dostęp do pamięci - ang. memory access (MEM) Zapisanie wyników działania instrukcji - ang. store; write back (WB) Uproszczony schemat potokowości. Części rozkazów oznaczone na zielono wykonywane są równocześnie.

6 Grafika:Fivestagespipeline.png W powyższym 5-stopniowym potoku, przejście przez wszystkie stopnie potoku (wykonanie jednej instrukcji) zabiera co najmniej 5 cykli zegarowych. Jednak ze względu na jednoczesną pracę wszystkich stopni potoku, jednocześnie wykonywanych jest 5 rozkazów procesora, każdy w innym stadium wykonania. Oznacza to, że taki procesor w każdym cyklu zegara rozpoczyna i kończy wykonanie jednej instrukcji i statystycznie wykonuje rozkaz w jednym cyklu zegara. Każdy ze stopni potoku wykonuje mniej pracy w porównaniu do pojedynczej logiki, dzięki czemu może wykonać ją szybciej - z większą częstotliwością - tak więc dodatkowe zwiększenie liczby stopni umożliwia osiągnięcie coraz wyższych częstotliwości pracy. Podstawowym mankamentem techniki potoku są rozkazy skoku, powodujące w najgorszym wypadku potrzebę przeczyszczenia całego potoku i wycofania rozkazów, które następowały zaraz po instrukcji skoku i rozpoczęcie zapełniania potoku od początku od adresu, do którego następował skok. Taki rozkaz skoku może powodować ogromne opóźnienia w wykonywaniu programu - tym większe, im większa jest długość potoku. Dodatkowo szacuje się, że dla modelu programowego x86 taki skok występuje co kilkanaście rozkazów. Z tego powodu niektóre architektury programowe (np. SPARC) zakładały zawsze wykonanie jednego lub większej ilości rozkazów następujących po rozkazie skoku, tzw. skok opóźniony. Stosuje się także skomplikowane metody predykcji skoku lub metody programowania bez użycia skoków. wazniak:architektura Komputerów/Wykład 7: Działanie potokowej jednostki wykonawczej [edytuj] Pytanie 13 odp. v Złożoność obliczeniowa w średnim i najgorszym przypadku oraz jej zastosowanie do analizy algorytmu szybkiego sortowania. [edytuj] Pytanie 14 odp. v Podstawowe reprezentacje maszynowe grafów. Lista krawędzi - lista par wierchołków między którymi jest krawędź Macierz incydencji - macierz V x E Macierz sąsiedztwa - macierz V x V Listy sąsiedztwa - tablica V z listami krawędzi wychodzących od V Macierz grafu - macierz (V+2)^2 przechowuje nie tylko połączenia pomiędzy wierzchołkami ale również informacje o poprzednikach i następnikach wierzchołka. Wymyślona przez dr hab. inż. M.Sternę Garść linków: [edytuj] Pytanie 15 odp. v Problemy poszukiwania cyklu Eulera i cyklu Hamiltona oraz ich klasy złożoności obliczeniowej. cykl Eulera - cykl przechodzący przez wszystkie krawędzie (przez każdą dokładnie jeden raz). Stwierdzenie czy cykl Eulera występuje polega na sprawdzeniu 2 warunków: 1. graf jest spójny (dla każdej pary wierzchołków istnieje ścieżka prowadząca od jednego do drugiego) 2. w grafie nieskierowanym stopnie wszystkich wierzchołków są parzyste, a w grafie skierowanym liczba łuków wchodzących jest równa liczbie łuków wychodzących. Znajdowanie:Algorytm Fleury'ego złożoność O(n) gdzie n jest liczbą krawędzi (bo każdą krawędź przechodzimy dokładnie 2 razy). cykl Hamiltona - cykl przechodzący przez wszystkie wierzchołki (przez każdy dokładnie jeden raz) Stwierdzenie czy graf jest grafem Hamiltonowskim (zawiera cykl Hamiltona) i znalezienie tego cyklu w przypadku ogólnym polega na rozwiązaniu problemu Komiwojażera (ang. traveling salesman problem) z zerowymi wagami krawędzi/łuków i jest NP-zupełne (brute force - złożoność wykładnicza). W przypadkach szczególnych (gdy przed badaniem znamy dodatkowe własności grafu) może mieć złożoność O(n) gdzie n jest liczbą wierzchołków (np. graf pełny z >2 wierzchołkami - wystarczy przejść po wyszystkich wierzchołkach w dowolnej kolejności). UWAGA: sprawdzenie czy graf jest grafem Hamiltonowskim jest problemem NP-zupełnym, ale już wyznaczenie cyklu jest problemem NP-trudnym!!! NPzupełne są tylko problemy decyzyjne, natomiast wyznaczenie cyklu jest problemem funkcyjnym, więc nie może być NP-zupełne z definicji [edytuj] Pytanie 16 odp. v Deterministyczna i niedeterministyczna funkcja złożoności obliczeniowej algorytmu oraz klasy złożoności algorytmów. [edytuj] Pytanie 17

7 odp. v Podstawowe klasy złożoności problemów decyzyjnych i optymalizacyjnych. Problem decyzyjny jest sformułowany w postaci pytania, na które odpowiedź brzmi tak lub nie. (Pytanie: Czy istnieje droga komiwojażera o koszcie mniejszym od 130? ) Problem decyzyjny Pi to pewien zbiór parametrów oraz pytanie, na które odpowiedź brzmi tak lub nie. Ustalając wartości tych parametrów otrzymujemy instancję I (konkretny przypadek problemu). Problem można również zdefiniować jako zbiór instancji DPi oraz jego podzbiór YPi, zawierający instancje, na które odpowiedź brzmi tak. Problem optymalizacyjny, to taki problem, w którym należy ekstremalizować pewną funkcję celu. ( Znajdź drogę komiwojażera o najmniejszym koszcie. ) Problemy decyzyjne a optymalizacyjne Z danym problemem optymalizacyjnym można związać odpowiadający mu problem decyzyjny. Taki problem decyzyjny jest obliczeniowo nie trudniejszy, niż odpowiadający mu pierwotny problem optymalizacyjny. Jeśli problem decyzyjny jest obliczeniowo trudny, to trudny jest również odpowiadający mu problem optymalizacyjny. Jeśli da się w "prosty" sposób rozwiązać problem optymalizacyjny, to można również "prosto" rozwiązać związany z nim problem decyzyjny. Z drugiej strony, jeśli problem decyzyjny jest "trudny", to odpowiadający mu problem optymalizacyjny również jest "trudny". W celu wykazania "łatwości" problemu decyzyjnego wystarczy wykazać łatwość problemu optymalizacyjnego. Dla wykazania natomiast "trudności" problemu optymalizacyjnego wystarczy wykazać "trudność" związanego z nim problemu decyzyjnego. Klasa P i NP Klasę P tworzą wszystkie problemy decyzyjne, które w co najwyżej wielomianowym czasie rozwiązuje deterministyczna maszyna Turinga. Klasa NP problemów decyzyjnych zawiera wszystkie problemy decyzyjne, które w co najwyżej wielomianowym czasie rozwiązuje niedeterministyczna maszyna Turinga. Inna równoważna definicja mówi, że problem NP to taki, dla którego rozwiązanie można zweryfikować w czasie wielomianowym. Zatem P zawiera się w NP. Problem z klasy P to ma algorytm wielomianowy dla DTM i NDTM (NDTM to zwykłe rozszerzenie DTM o możliwość zgadywania, którą regułę wybrać z kilku pasujących - zawsze wybiera tą właściwą, można też sobie wyobrazić, że sprawdza wszystkie w międzyczasie, tworząc takie wielkie drzewo obliczeń). Natomiast dla problemu z klasy NP wiadomo, że deterministyczna maszyna Turinga może go rozwiązać w czasie wykładniczym. P = NP??? To jest wielkie pytanie ;) nie udowodniono, ani że P = NP, ani że P!= NP. Jest to chyba najważniejsze pytanie teoretycznej informatyki i jest jednym z problemów milenijnych. Transformacja wielomianowa Transformacja wielomianowa problemu Pi2 do problemu Pi1 (co zapisujemy Pi2 oo Pi1) to taka funkcja f: Dpi2-> Dpi1, która spełnia warunki: dla każdej instancji I2 należącej do Dpi2 odpowiedź brzmi "tak" wtedy i tylko wtedy, gdy dla instancji f(i2) odpowiedź brzmi również "tak" czas obliczania funkcji f przez DTM dla każdej instancji I2 należącej do Dpi2 jest ograniczony od góry przez wielomian od N(I2) NP-zupełność problemu decyzyjnego Mówimy, że problem decyzyjny Pi1 jest NP-zupełny, jeśli Pi1 należy do NP i dla każdego innego problemu decyzyjnego Pi2 należącego do NP zachodzi: Pi2 oo Pi1. Wynika stąd, że dla wykazania NP-zupełności badanego problemu decyzyjnego wystarczy przetransformować do niego wielomianowo dowolny znany problem NP-zupełny. Prościej: Problem Pi jest NP-zupełny jeśli należy do NP i jest NP-trudny. Problem jest NP-trudny jeśli, da się do niego przetransformować wielomianowo dowolny problem NP. Problemy zupełne to takie, które są 'najtrudniejsze' w swojej klasie. Tzn jeżeli umiemy rozwiązać jeden, to umiemy wszystkie. Jeżeli ktoś znajdzie wielomianowy algorytm dla problemu NP-zupełnego to udowodni, że wszystkie problemy NP mają takie algorytmy, a co za tym idzie P = NP i dostanie za to Nobla ;) Silna NP-zupełność Problem decyzyjny jest silnie NP-zupełny, jeśli należy do NP i istnieje wielomian p określony dla liczb całkowitych, dla którego Pip jest NP-zupełny (problemami silnie NP-zupełnymi są problemy NP-zupełne nieliczbowe - inaczej: problem NP-zupełny nieliczbowy jest silny). Problemy silnie NP-zupełne pozostają takimi nawet jeśli ograniczyć im dane wejściowe jakimś wielomianem. Przykładem jest Bin Packing (nie wiem jak po polsku), natomiast słabo NP-zupełny jest problem plecakowy. Jeśli mu ograniczyć dane wejściowe wielomianem, to problem można rozwiązać w czasie wielomianowym. Dokładnie jeżeli istnieje algorytm, który działa w czasie zależnym wielomianowo od rozmiaru instancji oraz zakresu parametrów wejściowych (tj. algorytm pseudo-wielomianowy) to problem nie jest silnie NP-zupełny, a jest słabo NP-zupełny. Dodatkowo wszystkie problemy NP-zupełne, nieliczbowe (np. problemy grafowe) są silnie NP-zupełne. Analogicznie istnieje silna oraz słaba NP-trudność. NP-trudność problemu optymalizacyjnego Dla wykazania trudności rozważanego problemu optymalizacyjnego wystarcza wykazanie NP-zupełności odpowiadającego mu problemu decyzyjnego. Mówimy wtedy, że dany problem optymalizacyjny jest NP-trudny. [edytuj] Pytanie 18 odp. v Sposoby przekazywania argumentów do funkcji występujące w języku C. W języku C argumenty do funkcji są przekazywane przez wartość. Oznacza to, że w chwili wywołania funkcji tworzone są kopie poszczególnych zmiennych

8 skojarzonych z danymi argumentami i kopiom tym jest przypisywana wartość zmiennych będących argumentami aktualnymi. Wewnątrz funkcji wszystkie operacje są wykonywane na kopiach zmiennych. Powoduje to, że algorytm funkcji nie ma możliwości modyfikacji wartości zmiennej przekazanej do funkcji jako argument aktualny. Jeżeli funkcja ma mieć możliwość modyfikacji wartości zmiennej przekazanej do funkcji jako argument to musi być przekazany wskaźnik (adres) do tej zmiennej. Należy tutaj pamiętać, że sam wskaźnik jest przekazany przez wartość. Funkcja znając adres danej zmiennej w pamięci może modyfikować jej wartość. Gdy argumentem funkcji jest tablica to zawsze jest przekazywany wskaźnik do zerowego elementu tej tablicy (nie jest tworzona kopia tablicy). Należy o tym pamiętać, aby funkcja przypadkowo nie zmieniała wartości poszczególnych elementów tablicy. [edytuj] Pytanie 19 odp. v Struktury danych w języku C. Tablice - ciąg elementów tego samego rodzaju (1- i N-wymiarowe) Struktury - zestaw pól gdzie polem jest dana lub struktura danych Unie - wszystkie pola w tym samym obszarze pamięci Wykład J.Kniata o strukturach: PS. Można też interpretować to pytanie szerzej, tzn. jak zaimplementować w języku C np. grafy, drzewa binarne, kopce itp. (to też struktury danych - pewnie zależy osoby zadającej pytanie, jakiej odpowiedzi oczekuje). [edytuj] Pytanie 20 odp. v Zasady przechowywania danych w pamięci operacyjnej - poziom asemblera. Przechowywanie danych w pamięci operacyjnej Zmienne proste o wartościach całkowitych: zmienna 1-bajtowa [nazwa] DB wartość,..., wartość zmienna 2-bajtowa [nazwa] DW wartość,..., wartość zmienna 4-bajtowa [nazwa] DD wartość,..., wartość zmienna 6-bajtowa [nazwa] DF wartość,..., wartość [zmienna 8-bajtowa [nazwa] DQ wartość,..., wartość zmienna 10-bajtowa [nazwa] DT wartość,..., wartość gdzie wartość to: znak zapytania wyrażenie o stałej wartości stała znakowa wyrażenie adresowe operator DUP np. i dw? ;short int i; min dd 1 ;int min=1; Tabliece jednowymiarowe operator DUP liczba dup (wartość,..., wartość) np. Elem dw 10 dup (?) ;short unsigned tablica[10]; Tablice wielowymiarowe Elem dd 10 DUP (20 DUP (?)) ; int tablica[10][20]; Inicjalizacja danych text1 db 'Hello world',0 Zmienne wskaźnikowe -> w asemblerze nie ma typu wskaźnikowego -> nie ma sprawdzania zgodności typów ale można i tak wskazywać adresy w pamięci zwykłymi liczbami: p2int0 dd? ; int *p2int0; mov p2int0, offset zmienna; p2int0 = &zmienna; da się też rzutować typy mov eax,0 mov [p2int0],ax ; (short unsigned int *)p2int0 = 0; mov [p2int0]e,ax ; (unsigned int*)p2int0 = 0; Istnieją też struktury takie jak w C nazwa struc definicje pól nazwa ends -> dostęp jak w C przez kropeczkę po nazwie -> inicjalizacja Data1 data <dzien,miesiac,rok> [edytuj] Pytanie 21

9 odp. v Podprogramy i przekazywanie parametrów na poziomie asemblera. Przekazywać parametry można przez: Przekazywanie przez rejestry Przekazywanie przez stos Przekazywanie przez zmienne statyczne [edytuj] Pytanie 22 odp. v Zarządzanie procesami i wątkami (w tym: algorytmy przydziału procesora). Stany procesów: Nowy Gotowy Wykonywany Zakończony Oczekujący (na WE/WY) Algorytmy niewywłaszczeniowe FCFS - First Come First Served LCFS - Last Come First Served SJF - Short Job First Algorytmy wywłaszczeniowe Materiały: RR - Round Robin SRT - Shortest Reamaning Time [edytuj] Pytanie 23 odp. v Zarządzania pamięcią operacyjną (organizacje pamięci, pamięć wirtualna). [edytuj] Pytanie 24 odp. v Zarządzanie plikami (metody alokacji plików na dysku, zarządzanie obszarami wolnymi, algorytmy szeregowania ruchu głowic). Zarządzanie plikami: Algorytmy szeregowania ruchu głowicy Ekonomiczne wykorzystanie sprzętu jest jednym z wielu zadań systemu operacyjnego. Jeśli chodzi o dyski to jest to troska o szybki dostęp do nich i szybki przesyłanie danych zawartych na nich. Są swa ważne składniki wpływające na czas dostępu do dysku: 1. czas szukania (seek time) - jest to czas potrzebny na przemieszczenie ramienia dysku do pozycji w której głowice znajdują się w cylindrze zawierającym potrzebny sektor 2. opóźnienie obrotowe (rotation latency) - jest to czas potrzebny na obrót dysku do pozycji w której głowica trafia nad potrzebny sektor Jest jeszcze jeden parametr wpływający na prędkość pracy dysku. Jest to szerokość pasma (bandwidth). Szerokością pasma nazywamy łączną liczbę przesyłanych bajtów, podzieloną przez łączny czas jaki upływa od pierwszego zamówienia na usługę dyskową, do chwili zakończenia ostatniego przesyłania. Planowanie wykonywania dyskowych operacji we-wy może polepszyć zarówno czas dostępu, jak i szerokość pasma. Każdy proces potrzebujący wykonać operacje we-wy dotyczącą dysku musi odwołać się do systemu operacyjnego. Zamówienie takie zawiera następujące informacje: 1. czy jest to operacja wejścia czy wyjścia 2. dyskowy adres przesyłania 3. adres pamięci dotyczący przesyłania 4. liczbę bajtów do przesłania Zamówienie można spełnić natychmiast, jeżeli napęd dysku i jego sprzętowy sterownik są gotowe do pracy. W innym przypadku każde nowe zamówienie jest ustawiane w kolejce zamówień. Kolejka dyskowa może mieć po kilka zamówień w systemie wieloprogramowym. Po zakończeniu jednego zamówienia system ma możliwość wyboru zamówienia, które będzie realizowane w następnej kolejności. Wyróżniamy kilka sposobów wyboru zamówień. Opiszemy teraz metody planowania dostępu do dysków 1. Metoda FCFS Jest to najprostszy algorytm planowania dostępu do dysku. Zamówienia sa wykonywane w kolejności ich zgłaszania. Skrót FCFS (first-come, first-served) oznacza 'pierwszy zgłoszony - pierwszy obsłużony'. Jest to najbardziej sprawiedliwy z algorytmów jednak nie najszybszy. Załóżmy że kolejka zamówień na operacje we-wy wygląda tak i odnosi się do bloków w cylindrach: 100, 198, 44, 132, 2, 134, 70, 72 a głowica dysku znajduje się początkowo na 65 cylindrze. Głowica najpierw przemieści się do cylindra 100, a następnie w kolejności : 198, 44, 132, 2, 134, 70, a na końcu do cylindra 72. Głowica przechodzi łącznie 703 cylindry. Wadą tego planowania jest gwałtowne wychylanie się głowicy. 2. Metoda SSTF

10 Skrót SSTF jest skrótem od Shortest-Seek-Time-First, co oznacza -najpierw najkrótszy czas przeszukiwania'. Metoda ta polega na realizacji zamówień w takiej kolejności, aby wielkość liczby cylindrów pomiędzy każdym zamówieniem była jak najmniejsza. Startując od cylindra 65 głowica przechodzi do cylindra 70, gdyż ten leży najbliżej. Następnym cylindrem jest cylinder 72. Z cylindra 72 skaczemy do cylindra 44. Później głowica pobiera dane z cylindrów w następującej kolejności: 2, 100, 132, 134, 198. Głowica łącznie pokonuje 273 cylindry. Jest to ok. 1/3 tej drogi jaką pokonuje głowica w metodzie FCFS. Planowanie tą metodą może jednak powodować tzw. głodzenie (starvation). Spowodowane jest to tym, że zamówienia mogą przychodzić w dowolnym momencie. Powiedzmy że mamy w kolejce do obsłużenia zamówienia dotyczące cylindrów 20 i 190. W czasie obsługiwania zamówienia w cylindrze 14 może nadejść zamówienie dotyczące cylindra będącego bliżej, aniżeli cylinder 190. Zostaje więc obsłużone zamówienie które właśnie przyszło, a zamówienie dotyczące cylindra 190 zostaje przesunięte na koniec. Podczas wykonywania tego zamówienia, może przyjść kolejne będące bliżej aniżeli odległość tego cylindra, obsługiwanego teraz, aniżeli odległość od cylindra 190. W ten sposób cylinder 190 może być w ogóle nie obsłużony. Algorytm ten, choć krótszy od algorytmu FCFS, nie jest algorytmem optymalnym. 3. Metoda SCAN Algorytm SCAN polega na tym, że ramię dysku rozpoczyna przemieszczanie się od jednej krawędzi dysku, do przeciwległej krawędzi. W czasie przemieszczania się ramienia dysku, obsługiwane są zamówienia w kolejności napotkanych, żądanych przez system, cylindrów. Po osiągnięciu przeciwległej krawędzi ramię dysku zmienia kierunek ruchu i zaczyna wracać, obsługując następne zamówienia napotkane po drodze. Do zaplanowania zamówień w algorytmie SCAN potrzebna nam jest znajomość kierunku ruchu głowicy. Załóżmy że ramię przesuwa się w kierunku cylindra o numerze 0, wtedy kolejność odczytywanych cylindrów będzie następująca: 65, 44, 2, 0, 70, 72, 100, 132, 134, 198. Jeśli w czasie przebiegu głowicy pojawiłoby się zamówienie dotyczące cylindra który będzie za chwilę odwiedzany, zamówienie to zostanie obsłużone prawie natychmiast. Jeśli natomiast zamówienie dotyczy cylindra który niedawno był mijany przez głowicę zamówienie musi poczekać aż głowica dojdzie do końca i powróci do tego miejsca. Inną nazwą dla algorytmu SCAN jest nazwa: algorytm windy (elevator algorithm), a to dlatego że ramię dysku zachowuje się jak winda. Jeżdżąc góra dół obsługuje wszystkie zamówienia, tak jakby winda zabierała ludzi. 4. Metoda C-SCAN Odmianą algorytmu SCAN, jest algorytm C-SCAN (cilcural SCAN). Polega ona na tym, że po osiągnięciu jednej krawędzi dysku głowica wraca do drugiej krawędzi, ale nie wykonuje nic poza tym. Po osiągnięciu tej drugiej krawędzi, głowica przemieszcza się do pierwszej krawędzi, wykonując zlecenia po drodze. Algorytm ten jest zaprojektowany w trosce o bardziej równomierny rozkład czasu czekania na wykonanie zlecenia. 5. Metoda LOOK Zarówno w planowaniu SCAN jak i C-SCAN głowica przemieszcza się od jednego skrajnego położenia do drugiego skrajnego. Żaden z tych algorytmów jednak w rzeczywistości nie jest tak implementowany. Przeważnie głowica przesuwa się pomiędzy skrajnymi zamówieniami. Gdy osiągnie jedno z nich, natychmiast robi zwrot i idzie w kierunku przeciwnym, nie dochodząc do skrajnego położenia na dysku. Są to algorytmy LOOK i C-LOOK które są poprawionymi odpowiednikami algorytmów SCAN i C-SCAN. Wybór odpowiedniego algorytmu Ciężko jest wybrać odpowiedni algorytm dostępu do dysku. Algorytm SSTF jest dość powszechny i wygląda bardzo naturalnie. W systemach z dużą liczbą zamówień, bardziej odpowiednimi algorytmami są algorytmy SCAN i C-SCAN, gdyż nie występuje w nich zjawisko tzw. głodzenia. Można zdefiniować dla konkretnej listy zamówień optymalny porządek, lecz wielkość obliczeń do tego potrzebnych może nie dać się usprawiedliwić uzyskanymi oszczędnościami w stosunku do metod SSTF lub SCAN. Liczba i rodzaj zamówień wpływa w największym stopniu na wydajność każdego algorytmu. Lokalizacja katalogów i bloków indeksowych również jest ważna, gdyż każdy plik przed użyciem musi być otwarty. Natomiast otwarcie pliku wymaga przeszukania struktury katalogowej. Dlatego algorytm planowania dostępu do dysku powinien być pisany jako osobny moduł i w razie potrzeby odpowiednio podmieniany przez system operacyjny. W nowoczesnych dyskach twardych algorytmy planowania są zawarte w sterowniku dysku, gdyż producent sam najlepiej dobiera, jaka metoda jest najlepsza dla dysku jego produkcji. System operacyjny musi jednak nadzorować te algorytmy gdyż np. operacja stronicowania na żądanie ma większy priorytet niż np. operacja we-wy dotycząca aplikacji. Dlatego system operacyjny posiada swoje własne algorytmy które mają zapewnić zarówno optymalną szybkość, jak i bezpieczeństwo danych zawartych na tym dysku. [edytuj] Pytanie 25 odp. v Problem wzajemnego wykluczania i jego rozwiązania. Analiza programowych rozwiązań problemu wzajemnego wykluczania Dany jest zbiór procesów sekwencyjnych komunikujących się przez wspólną pamięć. Każdy z procesów zawiera sekcję krytyczną, w której następuje dostęp do wspólnej pamięci. Procesy te są procesami cyklicznymi. Zakłada się ponadto: 1. Zapis i odczyt wspólnych danych jest operacją niepodzielną, a próba jednoczesnych zapisów lub odczytów realizowana jest sekwencyjnie w nieznanej kolejności. 2. Sekcje krytyczne nie mają priorytetu. 3. Względne prędkości wykonywania procesów są nieznane. 4. Proces może zostać zawieszony poza sekcją krytyczną. 5. Procesy realizujące instrukcje poza sekcją krytyczną nie mogą uniemożliwiać innym procesom wejścia do sekcji krytycznej. 6. Procesy powinny uzyskać dostęp do sekcji krytycznej w skończonym czasie. Przy tych założeniach należy zagwarantować, że w każdej chwili czasu co najwyżej jeden proces jest w swojej sekcji krytycznej. Rozwiązania: 1. Programowe algorytmy: Dekkera, Dijkstry, Petersona dla 2 i dla n procesów, Lamporta dla n procesów 2. Sprzętowe: instrukcja testandset(a, b) instrukcja w sposób atomowy dokonuje odczytu zmiennej b, zapamiętania wartości tej zmiennej w zmiennej a oraz przypisania zmiennej b wartości true. 3. Systemowe: semafory semaforem nazywamy zmienną chronioną, na ogół będącą nieujemną zmienną typu integer, do której dostęp (zapis i odczyt) możliwy jest tylko poprzez wywołanie specjalnych funkcji dostępu i inicjacji. Wyróżnia się semafory: binarne przyjmujące tylko wartość 0 lub 1; ogólne (licznikowe) mogą przyjąć nieujemną wartość całkowitoliczbową. [edytuj] Pytanie 26

11 odp. v Operacje semaforowe - ich implementacje i zastosowania. Operacje P (testuj) i V (inkrementuj). Operacja P(S) na semaforze S działa w sposób następujący: if S>0 then S:=S-1 else (wait on S) Operacja V(S) na semaforze S działa następująco: if(one or more processess are waiting on S) then (let one of these processess proceed) else S:=S+1 Głównym zastosowaniem operacji P i V jest zapewnienie wzajemnego wykluczania. Implementacja binarnych operacji semaforowych z aktywnym czekaniem: a Pb(Sb): repeat nottestandset(pactive, Sb) until(pactive) b Vb(Sb): Sb := true; Implementacja ogólnych operacji semaforowych z aktywnym czekaniem: a procedure P_S begin while S<=0 do ; S:=S-1 end b procedure V_S begin S:=S+1 end Do tego dochodzi jeszcze kilka dłuższych procedurek implementacyjnych, ale z pamięci to raczej ciężko drukować linie kodu:-) [edytuj] Pytanie 27 odp. v Monitory i ich zastosowania. Monitor w angielskiej wikpedii Przez monitor należy rozumieć typ w którym zdefiniowano zmienne związane ze współdzielonym zasobem oraz procedury operujące na tym zasobie. Monitory zapewniają wzajemne wykluczanie. Zastosowania w ogólności do wszelkich operacji, gdzie wymagane jest wzajemne wykluczanie. Przykładowo można za ich pomocą rozwiązać problem czytelników i pisarzy albo ucztujących filozofów. [edytuj] Pytanie 28 odp. v Problem zakleszczenia i podejścia do jego rozwiązania. Mówimy, że system jest w stanie zakleszczenia, jeżeli istnieje niepusty zbiór zadań, które żądają przydziału dodatkowych zasobów nieprzywłaszczalnych będących aktualnie w dyspozycji innych zadań tego zbioru. Innymi słowy, system jest w stanie zakleszczenia, jeżeli istnieje niepusty zbiór zadań, których żądania przydziału dodatkowych zasobów nieprzywłaszczalnych nie mogą być spełnione nawet jeśli wszystkie zadania nie należące do zbioru zwolnią wszystkie zajmowane zasoby. Warunki konieczne wystąpienia zakleszczenia: wzajemne wykluczanie w każdej chwili zasób może być przydzielony co najwyżej jednemu zadaniu zachowywanie zasobu proces oczekujący na przydzielenie dodatkowych zasobów nie zwalnia zasobów będących aktualnie w jego dyspozycji nieprzywłaszczalność zasoby są nieprzywłaszczalne tzn. Ich zwolnienie może być zainicjowane jedynie przez proces dysponujący w danej chwili zasobem istnienie cyklu oczekiwań występuje pewien cykl procesów z których każdy ubiega się o przydział dodatkowych zasobów będących w dyspozycji kolejnego procesu z cyklu Rozwiązania problemu zakleszczenia: Konstrukcje systemów immanentnie (z natury) wolnych od zakleszczenia podejście to polega w ogólności na wyposażeniu systemu w taką liczbę zasobów, aby wszystkie możliwe żądania zasobowe były możliwe do zrealizowania. Detekcja zakleszczenia i odtwarzanie stanu wolnego od zakleszczenia W podejściu detekcji i odtwarzania, stan systemu jest periodycznie sprawdzany i jeśli wykryty zostanie stan zakleszczenia, system podejmuje specjalne akcje w celu odtworzenia stanu wolnego od zakleszczenia. Przykład: algorytm Habermana. Unikanie zakleszczenia W podejściu tym zakłada się znajomość maksymalnych żądań zasobowych. Każda potencjalna tranzycja stanu jest sprawdzana i jeśli jej wykonanie prowadziłoby do stanu niebezpiecznego, to żądanie zasobowe nie jest w danej chwili realizowane. Zapobieganie W ogólności podejście to polega na wyeliminowaniu możliwości zajścia jednego z warunków koniecznych zakleszczenia. Przykłady: algorytm Wait-Die, algorytm Wound-Wait. [edytuj] Pytanie 29 odp. v Synteza układów kombinacyjnych a synteza układów sekwencyjnych.

12 Układy przełączające: 1 Układy kombinacyjne wartość każdego sygnału wyjściowego yi zależy wyłącznie od aktualnej kombinacji sygnałów wejściowych x1, x2,..., xn. Funkcje fi(x1, x2,..., xn), i=1, 2..., m, będziemy nazywać funkcjami przełączającymi, jeśli podobnie jak ich argumenty będą przyjmować tylko dwie wyróżnione wartości, oznaczone przez 0 i 1. Dla ciągu k-elementowego o elementach dwuwartościowych liczba możliwych różnych ciągów wyniesie 2^k. Podobnie na k ciągach można określić liczbę 2^k funkcji przełączających. Z powyższego wynika, że dla n argumentów można określić2^2n funkcji przełączających. Algebra Boole'a zbiór B z operacjami nazywanymi dodawaniem logicznym, mnożeniem logicznym i operacją umowną zwaną negacją. Zbiór funkcji przełączających nazywa się systemem funkcjonalnie pełnym, jeśli dowolna funkcja przełączająca moze być przedstawiona za pomocą stałych 0 i 1 oraz funkcji należących do tego zbioru i argumentów funkcji. Reprezentacje funkcji przełączających: a Opis słowny b Postać normalna c Wykres d Tablica Do tego można dodać cośtam o minimalizacji funkcji za pomocą siatek Karnaugh i metodą Quine'a-McCluskey'a, ale to już materiał na osobny, spory temat. 2 Układy sekwencyjne wartość sygnału wyjściowego yi zależy od stanu aktualnego sygnałów xi i stanów poprzednich. Uogólnieniem pojęcia układu kombinacyjnego jest układ logiczny z pamięcią zwany układem sekwencyjnym. Układy takie analizowane są w dyskretnych chwilach czasu które oznaczymy za pomocą kolejnych liczb naturalnych. W układzie sekwencyjnymwartość wektora Yk jest funkcją nie tylko wektora Xk w k- teh chwili czasu lecz także funkcją poprzednich wartości wektora wejściowego Xk-1, Xk-2... Mówimy, że układ pamięta historię wejść jako stan wewnętrzny. Mówi się często, że układ pamięta historię wejść, jako stany s1, s2,..., sn. Stany wewnętrzne są rozróżniane za pomocą dwustanowych elementów pamięciowych. Układ, który posiada p elementów pamięciowych może przyjmować w=2p stanów wewnętrznych. Stan wewnętrzny układu będzie zatem opisywany przez wektor stanu wewnętrznego S o p składowych binarnych. Zbiór wszystkich możliwych wektorów stanu oznaczymy przez {S}. Wartość wektora wyjściowego w chwili k zależy od wartości wektora wejściowego w chwili k oraz od wartości wektora stanu w chwili k. Powyższe można zapisać w postaci funkcji wyjściowej <lambda> przyporządkowującej każdej parze wektorów <Xk Sk> wektor Yk. Podanie funkcji nie wystarcza jednak do pełnego scharakteryzowania pracy układu. Niezbędne jest określenie zmian, którym ulega S przy zmianie X. W tym celu dla wektorów Xk i Sk należy podać wektor stanu w chwili następnej Sk+1. Zmiany te opisuje funkcja przejściowa <delta> przyporządkowująca każdej parze wektorów <Xk Sk> wektor Sk+1. Dla scharakteryzowania układu sekwencyjnego należy zatem podać: a zbiór wszystkich wektorów wejściowych {X} b zbiór wszystkich wektorów wyjściowych {Y} c zbiór wszystkich wektorów stanu {S} d funkcję przejściową <delta> e funkcję wyjściową <lambda> Powyższy układ nosi nazwę automatu Mealy'ego. Przyjąwszy inną definicję funkcji wyjściowej funkcja <lambda> przyporządkowuje każdemu wektorowi stanu S wektor wyjściowy Y mamy do czynienia z tzw. automatem Moore'a. Układy logiczne przedstawiane są często w postaci tablic przejść-wyjść lub grafów stanów. Układy kombinacyjne są szczególnym przypadkiem układów sekwencyjnych, w których zbiór stanów jest jednoelementowy układ jest zawsze w tym samym stanie wewnętrznym. Można tu jeszcze dorzucić linki: syntez układów kombinacyjnych: syntez układów sekwencyjnych: [edytuj] Pytanie 30 odp. v Łączenie pamięci (zwiększanie długości słowa i liczby słów). 1. Zwiększanie długości słowa z reguły ogranicza się do dokładania układów pamięci, podłączania tej samej magistrali adresowej (ta sama przestrzeń adresowa); wyjście danych z dodatkowego układu pamięci wydłuża słowo danych. 2. Zwiększenie liczby słów zwiększenie przestrzeni adresowej przykładowo dwukrotne zwiększenie liczby słów (przestrzeń adresowa zmieni się z An do An+1) można wykonać następująco: 1. dokładamy drugi taki sam zestaw układów pamięci, 2. nowe układy są podłączane do tej samej magistrali adresowej (A0-An-1), 3. wyjścia danych stare i nowego zestawy są podłączane razem (wszak słowo się nie zmienia, należałoby tam jakieś bufory dać ale to już szczegół implementacyjny). 4. należy zwiększyć przestrzeń adresową dodajemy dodatkowy, najstarszy bit adresu An wykorzystując wejście CE (chip enable) w każdym układzie pamięci, przy czym należy wykorzystać jakiś dekoder binarny na kod 1 z N (tu wystarczy tak naprawdę negator) -> kiedy najstarszy bit adresu przyjmie wartość 1 to musimy wybrać nowy zestaw układów pamięci, a jak 0 to stary zestaw układów pamięci, reszta adresu zaadresuje komórkę w odpowiednich układach pamięci. 3. Łączenie układów pamięci zależy od tego jakie układy pamięci mamy do dyspozycji. [edytuj] Pytanie 31 odp. v Projektowanie układów sterowania. [edytuj] Pytanie 32 odp. v Pierwsza i druga zasada indukcji matematycznej. Pierwsza zasada indukcji matematycznej Zasada indukcji matematycznej. Jeżeli 1. istnieje taka liczba naturalna n 0, że T(n 0 ) jest zdaniem prawdziwym, 2. dla każdej liczby naturalnej n > n 0 prawdziwa jest implikacja T(n-1) T(n),

13 to T(n) jest zdaniem prawdziwym dla każdej liczby naturalnej n n 0. Druga zasada indukcji matematycznej Zasada indukcji matematycznej. Jeżeli 1. istnieje taka liczba naturalna n 0, że T(n 0 ) jest zdaniem prawdziwym, 2. dla każdej liczby naturalnej n > n 0 prawdziwa jest implikacja k < n0 ; n-1 > T(k) T(n), to T(n) jest zdaniem prawdziwym dla każdej liczby naturalnej n n 0. [edytuj] Pytanie 33 odp. v Podstawowe obiekty kombinatoryczne (wariacje, permutacje, kombinacje z i bez powtórzeń) ich definicja i liczba. Kombinacja (podzbiór) z powtórzeniami: bez powtórzeń: Wariacje z powtórzeniami (ciąg; losowanie ze zwracaniem): V (n,k) = n k bez powtórzeń: V(n,k) = C(n,k) * k! Permutacje z powtórzeniami (np. 3 elementy n1, n2, n3 razy) to: P (n,n1,n2) = n! / (n1! * n2!) bez powtórzeń: P(n,k) = V(n,k) k rozróżnialnych elementów - i klikajcie na menu po prawej [edytuj] Pytanie 34 odp. v Liniowa, jednorodna zależność rekurencyjna rzędu drugiego ze stałymi współczynnikami i sposób jej rozwiązywania. Od strony 26, przykład na stronie 29 [edytuj] Pytanie 35 odp. v Graf pełny, dopełnienie grafu, graf dwudzielny oraz pełny graf dwudzielny definicje. Graf pełny - jest grafem prostym, w którym dla każdej pary węzłów istnieje krawędź je łącząca. Graf pełny o n wierzchołkach oznacza się następująco: K n Graf dwudzielny - graf, którego zbiór wierzchołków można podzielić na dwa rozłączne zbiory tak, że krawędzie nie łączą wierzchołków tego samego zbioru Pełny graf dwudzielny - graf dwudzielny w któym pomiędzy wszystkimi parami wierzchołków należących do różnych zbiorów istnieje krawędź i oznaczamy K n,m gdzie n i m oznaczają liczności zbiorów wierzchołków Dopełnienie grafu - G nazywamy graf, zawierający te same wierzchołki co graf G, natomiast pomiędzy wierzchołkami grafu istnieje krawędź wtedy i tylko wtedy gdy pomiędzy tymi wierzchołkami nie istnieje krawędź w grafie G Graf pełny (pl.wiki) i z boku inne definicje [edytuj] Pytanie 36 odp. v Definicja transwersali oraz twierdzenie Halla w postaci transwersalowej. Twierdzenie_o_kojarzeniu_małżeństw - Wersja_dla_transwersal, wikipedia [edytuj] Pytanie 37 odp. v Zadanie interpolacji - definicje i rodzaje. Interpolacja, polska wikipedia [edytuj] Pytanie 38 odp. v Metody rozwiązywania układów równań liniowych.

14 [edytuj] Pytanie 39 odp. v Metody rozwiązywania równań i układów równań nieliniowych. [edytuj] Pytanie 40 odp. v Modele prototypowania i realizacji przyrostowej a kaskadowy model wytwarzania oprogramowania. wikipediapl:model kaskadowy wikipediapl:model prototypowy wikipediapl:model przyrostowy (nie do końca chyba to) [edytuj] Pytanie 41 odp. v Wzorce projektowe (facade, moderator, proxy, adapter, composite, decorator, observer, visitor, command, builder, factory method). wikipediapl:wzorzec projektowy (informatyka) [edytuj] Pytanie 42 odp. v Diagramy UML jako opis dziedziny problemu lub specyfikacja kodu. wikipediapl:uml [edytuj] Pytanie 43 odp. v Złożoność obliczeniowa problemów optymalizacyjnych, algorytmy aproksymacyjne i trudność problemów aproksymacji, matroidy i algorytmy zachłanne. [edytuj] Pytanie 44 odp. v Przepływy w sieciach - sformułowanie problemu, metody rozwiązania, zastosowania. [edytuj] Pytanie 45 odp. v Kolorowanie grafów - różne sformułowania problemu, metody rozwiązania, zastosowania. [edytuj] Definicje G = (V,E) oznacza dowolny graf nieskierowany bez równoległych krawędzi i pętli własnych, gdzie V = v 1,v 2,...,v n jest zbiorem wierzchołków, a E = e 1,e 2,...,e m jest zbiorem krawędzi. Dwie krawędzie są przylegające, jeżeli łączą się we wspólnym wierzchołku. Dwa wierzchołki v i,v j przylegają/sąsiadują, jeżeli istnieje krawędź, o krawędzi e mówimy, że jest incydentna z wierzchołkami v i,v j, a v i,v j przylegają do e. Stopień deg(v) wierzchołka v, to liczba krawędzi z nim incydentnych. Dla danego zbioru Graf, podgrafem indukowanym przez V ' nazywamy graf jest dopełnieniem grafu G, jeżeli E spełnia warunek: Grafem liniowym (ang. line graph) L (G) dla grafu G jest graf, którego wierzchołki odpowiadają krawędziom G. Dwa wierzchołki L (G) sąsiadują, gdy

15 przylegają odpowiadające im krawędzie G. Zbiór niezależnych wierzchołków G = (V,E) (ang. independent set, stable set), to podzbiór taki, że żadne dwa jego wierzchołki nie sąsiadują. Największy niezależny zbiór G to zbiór niezależnych wierzchołków G o największej liczbie elementów. α(g) oznacza liczbę elementów tego zbioru, tj. tzw. liczba niezależna G. Maksymalny niezależny zbiór w G to zbiór niezależny w G, który nie zawiera sie w żadnym innym niezależnym zbiorze G. Zauważmy, że maksymalny niezależny zbiór nie musi być największy. Klika w G (in. podgraf pełny) to podgraf G(K) taki, że wierzchołki są połączone każdy z każdym. Największa klika w G to klika, która ma najwięcej wierzchołków. ω(g) oznacza liczbę wierzchołków takiej kliki, tj. tzw. liczba klikowa G. Zauważmy, że K jest zbiorem niezależnych wierzchołków w G. [edytuj] Kolorowanie grafu Kolorowanie grafu polega w ogólności na przypisaniu określonym elementom składowym grafu (najczęściej wierzchołkom, rzadziej krawędziom lub ścianom) wybranych kolorów według ściśle określonych reguł. Kolorowanie wierzchołkowe grafu G jest przydziałem kolorów 1,2,... do wierzchołków w taki sposób, że sąsiadujące wierzchołki maja różne kolory. Innymi słowy, kolorowanie jest funkcja taka, że. Zauważmy, że zbiór wierzchołków o tym samym kolorze jest zbiorem niezależnych wierzchołków. Graf jest k-kolorowalny, jeżeli istnieje kolorowanie nie więcej niż k różnymi kolorami. Liczba chromatyczna χ(g) grafu G nazywamy minimalna wartość k, dla której graf jest k-kolorowalny. Problem kolorowania grafu: (wersja decyzyjna) Dane: G, k. Pytanie: czy G jest, k-kolorowalny? (wersja optymalizacyjna) Dane: G. Wyznaczyć χ(g). Klasyczne (wierzchołkowe) kolorowanie grafu - przyporządkowywanie wierzchołkom grafu liczb naturalnych w taki sposób, aby końce żadnej krawędzi nie miały przypisanej tej samej liczby. Ze względów historycznych oraz dla lepszego zobrazowania problemu mówi się o kolorowaniu, przy czym różnym kolorom odpowiadają różne liczby. Pokolorowaniem wierzchołków grafu nazywamy jedno konkretne przyporządkowanie kolorów wierzchołkom. Pokolorowanie jest legalne (dozwolone), gdy końcom żadnej krawędzi nie przyporządkowano tego samego koloru. Optymalnym pokolorowaniem danego grafu nazywamy legalne pokolorowanie zawierające najmniejszą możliwą liczbę kolorów. Kolorowanie krawędziowe grafu G jest przydziałem kolorów {1,2,...} do krawędzi w taki sposób, że przylegające krawędzie maja różne kolory. Innymi słowy, kolorowanie jest funkcja taka, że Minimalna liczba kolorów, która można pokolorować krawędziowe G nazywana jest indeksem chromatycznym χ ' (G). Zauważmy, że kolorowanie krawędziowe G jest równoważne kolorowaniu wierzchołkowemu L(G). Prawidłowe pokolorowanie krawędzi (legalne, właściwe) to takie przyporządkowanie krawędziom kolorów, gdzie żadne dwie sąsiednie krawędzie nie są pokolorowane tak samo. (krawędzie są sąsiednie, jeśli mają wspólny jeden z końców). [edytuj] Złożoność obliczeniowa problemu Problem kolorowania grafu jest NP-zupełny [Karp 1972]. Problem kolorowania grafu jest NP-zupełny dla k większego równego 3 [Garey, Johnson, Stockmeyer 1976]. Znane są algorytmy o oszacowaniach jakości O ile 1976]. to dla problemu kolorowania, nie istnieje wielomianowy algorytm aproksymacyjny o oszacowaniu lepszym niż 2 [Garey, Johnson O ile to dla problemu kolorowania, wyznaczenie kolorowania ne n e χ(g) kolorami jest NP-trudne, dla dowolnego e > 0. Problem krawędziowego kolorowania grafu jest NP-trudny. Zauważmy, że problem kolorowania krawędziowego jest trudny mimo bardzo dobrych oszacowań, dolnego i górnego. [edytuj] Metody rozwiązywania problemu 1. Algorytmy dokładne 1. Algorytm Christofidesa Jeżeli graf jest k-kolorowalny, to można pokolorować kolorem 1 pewien maksymalny zbiór niezależny S1 w G, następnie kolorem 2 maksymalny zbiór niezależny S2 w G(V S2),..., kolorem k maksymalny zbiór Sk w Problem polega na wskazaniu, który maksymalny zbiór niezaleŝnych wierzchołków wybrać na danym etapie. Niech Dr, r = 1, 2,..., oznacza rodzinę (tj. zbiór zbiorów) wszystkich maksymalnych niezależnych zbiorów wierzchołków, które indukują l-kolorowalne podgrafy G. Algorytm Christofidesa polega na budowaniu rodzin, aż do osiągnięcia. Wówczas k = χ(g). Algorytm ma złożoność O(mn2.445 n ). 1. Niejawny algorytm wyliczeniowy (ang. implicit enu-meration). Składa się z dwóch faz: forward phase i backtracking. Iinitial forward: ponumeruj wierzchołki wg jakiejś procedury np. (v 1,v 2,...,v n ), pokoloruj kolejno wierzchołki minimalnym dopuszczalnym kolorem. To wyznacza kolorowanie UB kolorami. Backtracking: cofając się od v n znajdź wierzchołek v j, który można dopuszczalnie pokolorować kolorem a < UB, który nie był dotychczas stosowany dla v j (przebiegamy przez wierzchołki, a w wierzchołku przez dopuszczalne kolory alternatywne).

16 Pokoloruj v j kolorem a. Forward: koloruj wierzchołki v j + 1,...,v n aż do momentu gdy: a) osiągnięty zostanie wierzchołek v j, który wymaga koloru zakończ faze forward b) osiągnięty zostanie wierzchołek, vn => uaktualnij UB Przejdz do fazy backtracking. Algorytm zatrzymuje sie, gdy osiągnięty zostanie wierzchołek v Dedykowane heurystyki 1. Algorytm RS (Random Sequential) Porządek wierzchołków jest losowy. Współczynnik jakości w najgorszym przypadku SRS jest O(n). Graf trudny nie istnieje. 1. Algorytm LF (Largest First) Wierzchołki o niskim stopniu maja mało sąsiadów, dlatego pozwalają na większą swobodę w doborze koloru, dlatego naleŝy je kolorować, jako ostatnie. Wierzchołki są uporządkowane wg nierosnących stopni w grafie. Współczynnik jakości w najgorszym przypadku SRS jest O(n). Kolorowanie grafu za pomocą algorytmu LF można opisać następująco: 1. Uporządkuj wierzchołki grafu malejąco według ich stopni (liczby krawędzi z nich wychodzących). 2. Koloruj wierzchołki zachłannie, zgodnie z ustaloną wcześniej kolejnością (zaczynając od wierzchołka o największym stopniu). Algorytm LF jest algorytmem statycznym, gdyż raz ustalona kolejność wierzchołków nie zmienia się w trakcie jego działania. 1. Algorytm SLF (Saturation Largest First, Dsatur) Wierzchołki są porządkowane w trakcie działania algorytmu na podstawie stopnia saturacji p(v), tj. liczby różnych kolorów, którymi są pomalowani sąsiedzi wierzchołka. Koloruje się wierzchołki od największego p(v) do najmniejszego, w razie remisu wybierany jest wierzchołek o większym stopniu. Współczynnik jakości w najgorszym przypadku SSLF jest O(n). 1. Algorytm SL (smallest last) Algorytm SL wygląda następująco: 1. Znajdź wierzchołek o minimalnym stopniu i usuń go z grafu. 2. Powtarzaj krok pierwszy tak długo, aż graf będzie pusty (zapamiętaj kolejność usuwanych wierzchołków). 3. Koloruj wierzchołki zachłannie, zgodnie z ustaloną wcześniej kolejnością (zaczynając od wierzchołków usuniętych później). Algorytm SL jest statyczny, jego złożoność wynosi O(n + m), gdzie n - liczba wierzchołków, m - liczba krawędzi. Algorytm SLF (saturated largest first) Kolorowanie grafu przy pomocy algorytmu SLF polega na wykonaniu poniższych czynności: dopóki istnieją nie pokolorowane wierzchołki wykonuj operacje: { znajdź wierzchołek o maksymalnym stopniu spośród wierzchołków o maksymalnym stopniu nasycenia pokoloruj znaleziony wierzchołek zachłannie } Stopniem nasycenia wierzchołka nazwiemy tu liczbę różnych kolorów adjacentnych (sąsiednich) z tym wierzchołkiem. ZłoŜoność algorytmu SLF wynosi O(mlogn). 1. Algorytm CS (Connected Sequential) Wierzchołki uporządkowane sa tak, aby kaŝdy kolejny wierzchołek (za wyjątkiem pierwszego) miał, co najmniej jednego sąsiada wśród poprzedzających go w uporządkowaniu. Może to być np. porządek przeglądania rafu w głąb (DFS), wszerz (BFS). Współczynnik jakości w najgorszym przypadku SCS jest O(n). 1. Algorytm GIS (Greedy Independent Set) Wierzchołki grafu rozwaŝa sie w pewnej kolejności i przypisuje wierzchołkowi vi kolor c jesli nie koliduje to z innymi wierzchołkami o kolorze c. Po wyczerpaniu możliwości kolorowania kolorem c, pokolorowane wierzchołki są usuwane z grafu, a pozostałe wierzchołki kolorowane są następnym kolorem. Współczynnik jakości w najgorszym przypadku Sgis jest O(nlogn). 1. Algorytm RLF (Recursive LF) Działa podobnie jak GIS, jednak do pokolorowania wybiera sie wierzchołek v, który ma najwięcej sąsiadów z zabronionym aktualnym kolorem c, gdyż pokolorowanie v kolorem c nie zmieni już statusu tych sąsiadów. Współczynnik jakości w najgorszym przypadku SRLF jest O(nlogn) [edytuj] Zastosowania Szeregowanie zadań niepodzielnych o jednostkowym czasie wykonania i o określonych żądaniach zasobowych, w celu minimalizacji długości uszeregowania. Zadania można przedstawić, jako wierzchołki grafu, a konflikty w żądaniach zasobowych, jako krawędzie grafu. Wierzchołki o tym samym kolorze odpowiadają zadaniom, które można wykonywać jednocześnie. Minimalna liczba kolorów określa długość uszeregowania. Projektowanie testów aparatury elektronicznej. Aparatura elektroniczna składa się z modułów, które wzajemnie sie testują. Należy przeprowadzić szereg testów, które nie mogą być wykonywane jednocześnie na tych samych modułach. Poszczególne testy można przedstawić, jako wierzchołki grafu. Krawędzie występują miedzy wierzchołkami-testami, gdy nie można ich wykonywać jednocześnie. Ten sam kolor określa testy, które, które moŝna wykonywać jednocześnie. Na analogicznej zasadzie problem kolorowania grafu występuje w układaniu planów zajęć, spotkań, rozkładów jazdy itp. Zajęcia/spotkania/przejazdy to zadania/wierzchołki, krawędzie to konflikty zasobowe miedzy nimi. Przydział rejestrów procesorów do zmiennych w programach. Przechowywanie zmiennych w rejestrach jest korzystne ze względu na szybkość wykonania programu. Zwykle rejestrów jest mniej niż zmiennych, dlatego należy przydzielać wiele różnych zmiennych do tych samych rejestrów. Niech wierzchołki odpowiadają zmiennym. Krawędzie istnieją miedzy kolidującymi zmiennymi. Dwie zmienne kolidują, gdy jedna z nich jest używana przed i po użyciu drugiej zmiennej. Ten sam kolor jest bezkolizyjnym przydziałem zmiennych do tego samego rejestru. Jeżeli liczba chromatyczna jest mniejsza niż liczba rejestrów, to bezkolizyjny przydział do rejestrów jest możliwy. W przeciwnym przypadku naleŝy dodać tzw. spili code umożliwiający odwoływanie się do zmiennych w pamięci. Wierzchołki odpowiadające zmiennym przeniesionym do PAO, usuwa się z grafu aż do zrównania liczby rejestrów z liczbą chromatyczna. Przydział częstotliwości dla nadajników stacji radiowych. Nadajniki radiowe można prezentować, jako wierzchołki grafu, a możliwość wystąpienia interferencji, jako krawędzie. Minimalna liczba kolorów określa minimalną liczbę pasm częstotliwości, jaką należy przydzielić stacjom w celu uniknięcia interferencji.

17 [edytuj] Pytanie 46 odp. v Podstawowe mechanizmy programowania obiektowego. Enkapsulacja Czyli ukrywanie implementacji, hermetyzacja. Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko wewnętrzne metody obiektu są uprawnione do zmiany jego stanu. Każdy typ obiektu prezentuje innym obiektom swój "interfejs", który określa dopuszczalne metody współpracy. Pewne języki osłabiają to założenie, dopuszczając pewien poziom bezpośredniego (kontrolowanego) dostępu do "wnętrzności" obiektu. Reguła 1: Żaden atrybut nie jest widoczny poza klasą, w której jest zdefiniowany (Ukrywaj wszystko, co można ukryć) Reguła 2: Metoda jest widoczna jeżeli jest używana przez inną klasę (Oddziel swoje klasy) Reguła 3: Wykorzystanie interfejsów Związane z pojęciem mechanizmy: widoczność (private, public itp.), przyjaciele (C++), interfejsy Polimorfizm Polimorfizm jest zdolnością niektórych obiektów do przybrania różnych postaci. Referencje i kolekcje obiektów mogą dotyczyć obiektów różnego typu, a wywołanie metody dla referencji spowoduje zachowanie odpowiednie dla pełnego typu obiektu wywoływanego. Jeśli dzieje się to w czasie działania programu, to nazywa się to późnym wiązaniem lub wiązaniem dynamicznym. Niektóre języki udostępniają bardziej statyczne (w trakcie kompilacji) rozwiązania polimorfizmu - na przykład szablony i przeciążanie operatorów w C++ (nazywa się to parametryczny polimorfizm). Związane z pojęciem mechanizmy: przeciążanie metod (wiele metod z różnymi argumentami, sprawdzenie w czasie kompilacji), nadpisanie metod (jedna metoda w wielu interfejsach, klasach, podklasach - różne implementacje, sprawdzenie w czasie wykonania ang. overriding, late binding, dynamic binding, run-time binding), rzutowanie (konwersja danego obiektu do innej postaci) Dziedziczenie Porządkuje i wspomaga polimorfizm i enkapsulację dzięki umożliwieniu definiowania i tworzenia specjalizowanych obiektów na podstawie bardziej ogólnych. Dla obiektów specjalizowanych nie trzeba redefiniować całej funkcjonalności, lecz tylko tę, której nie ma obiekt ogólniejszy. W typowym przypadku powstają grupy obiektów zwane klasami, oraz grupy klas zwane drzewami. Odzwierciedlają one wspólne cechy obiektów. Dziedziczenie umożliwia m.in. zmiana definicji metod w podklasie, specjalizację klas, ponowne wykorzystanie kodu. Związane z pojęciem mechanizmy: dziedziczenie z klas, dziedziczenie z interfejsów, klasy i metody abstrakcyjne, wielodziedziczenie, metody partial Abstrakcja Wykorzystywane obiekty posiadają swoją odpowiedzialność - posiadają stan (pola, properties) oraz pewne zdolności (metody). Każdy obiekt w systemie służy jako model abstrakcyjnego "wykonawcy", który może wykonywać pracę, opisywać i zmieniać swój stan, oraz komunikować się z innymi obiektami w systemie Związane z pojęciem mechanizmy: klasy, pola, właściwości, metody, metody statyczne [edytuj] Pytanie 47 odp. v Paradygmat programowania deklaratywnego a inne paradygmaty programowania (strukturalny, obiektowy) - cechy charakterystyczne, różnice, interpretacja deklaratywna a proceduralna programu. [edytuj] Pytanie 48 odp. v Efektywność programów prologowych - źródła niskiej efektywności programów prologowych, metody ogólne poprawy efektywności i metody szczególne charakterystyczne dla języka Prolog. Źródła w architekturze PC, niekompatybilnej z mechanizmem wnioskowania Prologu. Przetwarzanie numeryczne mało efektywne, ale większa efektywność programisty przy tworzeniu algorytmów operujących na symbolicznych i strukturalnych reprezentacjach. Poprawa efektywności: kompilacja, zmiana porządku klauzul, mechanizm odcięć, negacja (fail), lepsze formy przechowywania danych, przechowywanie wyników pośrednich; Problem zamkniętego świata [edytuj] Pytanie 49 odp. v Kreślenie obiektów 2D przy wykorzystaniu obiektów rastrowych. [edytuj] Pytanie 50 odp. v Wizualizacja obiektów przestrzennych.

18 [edytuj] Pytanie 51 odp. v Relacyjny model danych (struktury danych, operacje, ograniczenia integralnościowe). Jednym z fundamentalnych modeli jest model relacyjny. Jest on wykorzystywany w większości komercyjnych i niekomercyjnych systemów baz danych. W modelu tym, strukturą danych jest relacja; operacje na danych obejmują selekcję, projekcję, połączenie i operacje na zbiorach. Ograniczenia integralnościowe w tym modelu to: klucz podstawowy, klucz obcy, zawężenie dziedziny, unikalność wartości, możliwość nadawania wartości pustych/niepustych. [edytuj] Struktury danych W modelu relacyjnym, baza danych jest zbiorem relacji. Każda relacja posiada swój tzw. schemat, który składa się z listy atrybutów. Schemat relacji R jest często oznaczany jako R(A1, A2,..., An), gdzie A1, A2,..., An oznaczają atrybuty. Liczbę atrybutów składających się na schemat relacji R nazywamy stopniem relacji. Każdy atrybut posiada swoją domenę, zwaną także dziedziną. Definiuje ona zbiór wartości jakie może przyjmować atrybut poprzez określenie tzw. typu danych, np. liczba całkowita, data, ciąg znaków o długości 30. Relacja jest zbiorem krotek [edytuj] Operacja W modelu relacyjnym wykorzystuje się tzw. algebrę relacji, definiującą zbiór operacji na danych i semantykę tych operacji. Operacjami tymi są: selekcja - umożliwia wyodrębnienie podzbioru krotek relacji, które spełniają warunek selekcji, oznaczane sigma. Warunek selekcji jest zbiorem predykatów postaci <atrybut><operator relacyjny><literał> lub <atrybut><operator relacyjny><atrybut>. projekcja - Umożliwia ona wyodrębnienie (wybór) tylko określonych atrybutów relacji. Operacja ta jest oznaczana symbolem pi z podzbiorem wybieranych atrybutów z całego zbioru atrybutów relacji., połączenie - Operacja połączenia umożliwia łączenie wybranych krotek z dwóch relacji w pojedynczą krotkę. Krotki są łączone na podstawie podanego warunku połączeniwego. Warunek połączeniowy jest zbiorem predykatów połączonych operatorami logicznymi AND. Predykaty te są postaci: A i θb j, iloczyn kartezjański jako specjalny przypadek połączenia operacje na zbiorach (suma, część wspólna i różnica). [edytuj] Ograniczenia integralnościowe Każda relacja może posiadać jawnie zdefiniowane ograniczenia integralnościowe. Ograniczenie integralnościowe jest pewną regułą gwarantującą, że dane znajdujące się w relacji spełniają tę regułę. W praktyce nad zapewnieniem integralności danych czuwa SZBD. Ograniczenie integralnościowe definiuje się albo dla pojedynczego atrybutu albo dla całej relacji. Wyróżnia się następujące ograniczenia integralnościowe: klucz podstawowy (primary key), klucz obcy (foreign key), unikalność (unique), zawężenie domeny/dziedziny (check), wartość pusta/niepusta (NULL/NOT NULL). Więcej Wykład wprowadzający i Wykład "Relacyjny model danych" [edytuj] Pytanie 52 odp. v Projektowanie baz danych (model ER, transformacja modelu ER do postaci relacyjnej, proces normalizacji). [edytuj] Model związków-encji Jednym z fundamentalnych modeli konceptualnych wykorzystywanym w projektowaniu relacyjnych baz danych jest model związków-encji (ang. entityrelationship model - ER). W tym modelu, obiekty świata rzeczywistego są reprezentowane za pomocą encji (ang. entities), a powiązania między obiektami - za pomocą związków pomiędzy encjami (ang. relationships). Encja reprezentuje zbiór obiektów opisany tymi samymi cechami (atrybutami, własnościami). Modelując encje należy przestrzegać następujących reguł: 1. Każda encja posiada unikalną nazwę. 2. Każda encja posiada zbiór cech (atrybutów). 3. Encje wchodzą w związki z innymi encjami (wyjątkiem są encje reprezentujące dane słownikowe i konfiguracyjne). 4. Dowolna rzecz lub obiekt może być reprezentowana tylko przez jedną encję. 5. Nazwa encji powinna być rzeczownikiem w liczbie pojedynczej. Kolejnym obiektem modelu ER jest związek, zwany również asocjacją. Reprezentuje on powiązania pomiędzy obiektami świata rzeczywistego. W modelu ER związek łączy encje. Każdy związek posiada trzy cechy, tj. stopień związku, typ asocjacji i istnienie. Stopień związku określa liczbę encji połączonych związkiem. Wyróżnia się związki: unarne (łączące encję samą z sobą), binarne (łączące dwie encje), ternarne (łączące trzy encje), n-arne (łączące n encji). Typ asocjacji, zwany kardynalnością związku, określa ile wystąpień jednej encji może być powiązanych z iloma wystąpieniami innej encji. Wyróżnia się związki: 1:1, 1:M, M:N. Istnienie, zwane również klasą przynależności związku określa, czy związek jest opcjonalny, czy obowiązkowy.

19 Więcej w wykładzie 3 [edytuj] Reguły transformacji encji 1. Encja jest odwzorowywana w relację. Nazwa encji jest odwzorowywana w nazwę relacji. Uwaga: przyjmuje się, że nazwy relacji są rzeczownikami w liczbie mnogiej. 2. Atrybut encji jest odwzorowywany w atrybut relacji. Nazwy atrybutów encji są odwzorowywane w nazwy atrybutów relacji. 3. Typ danych atrybutu encji jest odwzorowywany w odpowiadający mu typ danych atrybutu relacji. 4. Unikalny identyfikator encji jest transformowany w klucz podstawowy relacji. 5. Obowiązkowość atrybutów encji jest reprezentowana w relacji w postaci ograniczenia NOT NULL zdefiniowanego na atrybucie relacji odpowiadającym atrybutowi encji. 6. Opcjonalność atrybutów encji jest reprezentowana w relacji w postaci ograniczenia NULL zdefiniowanego na atrybucie relacji odpowiadającym atrybutowi encji. 7. Oganiczenia integralnościowe dla atrybutów encji (unikalność, zawężenie dziedziny) są transformowane do odpowiadających im ograniczeń integralnościowych relacji. [edytuj] Reguły transformacji związków Związek binarny - związek pomiędzy dwoma różnymi encjami. Związek unarny - związek rekurencyjny encji. Związek binarny 1:1 transformowany jest na dodatkowe pole w dowolnej ze stron będące kluczem obcym na klucz główny drugiej ze stron. Na pole dodatkowe nakładane jest ograniczenie unikalności. Związek unarny 1:1 transformowany jest na dodatkowe pole w tabeli będące kluczem obcym na klucz główny tej samej tabeli. Na pole dodatkowe nakładane jest ograniczenie unikalności. Związek binarny 1:M transformowany jest na dodatkowe pole w tabeli po stronie "wiele" będące kluczem obcym na klucz główny tabeli po stronie "jeden". Związek unarny 1:M transformowany jest na dodatkowe pole w tabeli będące kluczem obcym na klucz główny tej samej tabeli. Związek binarny M:N transformowany jest w dodatkową tabelę zawierającą pola odpowiadające polom kluczy głównych obu związanych encji. Każde z pól osobno jest kluczem obcym na klucz główny wskazywanej tabeli. Oba pola naraz stanowią klucz główny nowo powstałej tabeli. Związek unarny M:N transformowany jest w dodatkową tabelę zawierającą pola będące, każde z osobna, kluczami obcymi na klucz główny tabeli podstawowej. Oba pola naraz stanowią klucz główny nowo powstałej tabeli. Powyższe przykłady zostały opisane dla przypadku, kiedy klucze główne tabel będących w relacji zawierają po jednym polu. W ogólności klucz główny może składać się z wielu pól. Wtedy do tabel wskazujących dodawane są wszystkie pola klucza głównego tabeli wskazywanej, a klucz obcy obejmuje wszystkie dodane pola. Więcej w wykładzie 4 [edytuj] Normalizacja Motywacja: redundancja danych - problem spójności danych anomalia wprowadzania danych anomalia usuwania danych anomalia uaktualniania danych Proces normalizacji musi posiadać trzy dodatkowe własności: Własność zachowania atrybutów - żaden atrybut nie zostanie zagubiony w trakcie procesu normalizacji. Własność zachowania informacji - dekompozycja relacji nie prowadzi do utraty informacji, tj. łącząc zdekomponowane relacje możemy odtworzyć oryginalną relację. Własność zachowania zależności - wszystkie zależności funkcyjne są reprezentowane w pojedynczych schematach relacji. Proces normalizacji schematu relacji polega na sprawdzeniu czy dany schemat jest w odpowiedniej postaci normalnej, jeżeli nie wówczas następuje dekompozycja schematu relacji na mniejsze schematy relacji. Ponownie, weryfikowana jest postać normalna otrzymanych schematów relacji. Jeżeli nie spełniają one zadanej postaci normalnej to proces dekompozycji jest kontynuowany dopóki otrzymane schematy relacji nie będą w odpowiedniej postaci normalnej. [edytuj] Pierwsza postać normalna 1NF Dana relacja r o schemacie relacji R znajduje się w pierwszej postaci normalnej (1NF), jeżeli wartości atrybutów są atomowe (niepodzielne). [edytuj] Druga postać normalna 2NF Dana relacja r o schemacie R jest w drugiej postaci normalnej (2NF), jeżeli żaden atrybut wtórny tej relacji nie jest częściowo funkcyjnie zależny od żadnego z kluczy relacji r. [edytuj] Trzecia postać normalna 3NF

20 Dana relacja r o schemacie R jest w trzeciej postaci normalnej (3NF), jeżeli dla każdej zależności funkcyjnej następujących warunków: w R spełniony jest jeden z X jest nadkluczem schematu R, lub A jest atrybutem podstawowym schematu R. [edytuj] Postać normalna Boyce'a-Codda BCNF Dana relacja r o schemacie R jest w postaci normalnej Boyce a-codda (BCNF), jeżeli dla każdej zależności funkcyjnej następujący warunek: w R spełniony jest X jest nadkluczem schematu R. [edytuj] Czwarta postać normalna 4NF Relacja r o schemacie R jest w czwartej postaci normalnej (4NF) względem zbioru zależności wielowartościowych MVD jeżeli jest ona w 3NF i dla każdej zależności wielowartościowej zależność ta jest trywialna lub X jest nadkluczem schematu R. [edytuj] Słowniczek Nadklucz - dowolny podzbiór atrybutów B z A taki, że zachodzi zależność funkcyjna B -> A. Wartość każdego atrybutu jest jednoznacznie zdeterminowana przez wartości atrybutów zbioru B. Jednym z nadkluczy jest zawsze zbiór wszystkich atrybutów A. atrybuty podstawowe: atrybut X jest podstawowy w schemacie R jeżeli należy do któregokolwiek z kluczy schematu R atrybuty wtórne: atrybut X jest wtórny w schemacie R jeżeli nie należy do żadnego z kluczy schematu R Więcej w wykładzie 5 [edytuj] Pytanie 53 odp. v Transakcja i jej własności. Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny. Typy operacji na bazie danych obejmują: odczyt i zapis danych oraz zakończenie i akceptację (zatwierdzenie), lub wycofanie transakcji. Każda transakcja posiada cztery cechy: atomowość (ang. Atomicity) - oznacza, że zbiór operacji wchodzących w skład transakcji jest niepodzielny, to znaczy albo zostaną wykonane wszystkie operacje transakcji albo żadna. Dotyczy to również wszystkich operacji transakcji wykonywanych na obiektach rzeczywistych (tak zwane akcje rzeczywiste) np. wypłata gotówki z bankomatu, spójność (ang. Consistency) - Spójność oznacza, że transakcja przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego. W trakcie wykonywania transakcji baza danych może być przejściowo niespójna. Transakcja nie może naruszać ograniczeń integralnościowych. izolacja (ang. Isolation) - Izolacja oznacza, że transakcje są od siebie logicznie odseparowane. Transakcje oddziałują na siebie poprzez dane. Mimo współbieżnego wykonywania, transakcje widzą stan bazy danych tak, jak gdyby były wykonywane w sposób sekwencyjny. trwałość (ang. Durability) - Trwałość oznacza, że wyniki zatwierdzonych transakcji nie mogą zostać utracone w wyniku wystąpienia awarii systemu. Zatwierdzone dane w bazie danych, w przypadku awarii, muszą być odtwarzalne Więcej wykład Przetwarzanie tranzakcyjne [edytuj] Pytanie 54 odp. v Odtwarzanie spójnego stanu bazy danych po awarii. Cel odtwarzania: odtworzenie spójnego stanu bazy danych po awarii. (dokładniej A. D. atomowość oraz trwałość). Uwaga: prawdopodobnie nie jest to stan bazy sprzed awarii, gdyż w praktyce baza danych rzadko jest w stanie spójnym w związku z chęcią uzyskania współbieżności transakcji. Miara efektywności odtwarzania: dostępność systemu = MTTF / (MTTF + MTTR) Elementy składowe modułu odtwarzania: baza danych + jej bufor, log (append-only) + jego bufor Czy można podać taką strategię zarządzania buforem danych, aby dane w bazie danych były zawsze spójne? NIE Innymi słowy, czy konieczny jest osobny mechanizm gwarantujący poprawne odtworzenie bazy danych po awarii? TAK Nie ma znaczenia czy stosujemy bufor bazy danych + LRU, czy zapisujemy od razu wszystko na dysk. Jako, że system nie zna intencji przerwanych transakcji, wszystkie transakcje aktywne muszą zostać wycofane, a zatwierdzone trwale wprowadzone do bazy. Zapis bufora logu: zatwierdzenie transakcji, przepełnienie bufora. Stosowana jest architektura tzw. double-buffered disk write, tj. w momencie, gdy cześć bufora

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku Systemy plików i zarządzanie pamięcią pomocniczą Koncepcja pliku Metody dostępu Organizacja systemu plików Metody alokacji Struktura dysku Zarządzanie dyskiem Struktura pliku Prosta sekwencja słów lub

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Przetwarzanie potokowe pipelining

Przetwarzanie potokowe pipelining Przetwarzanie potokowe pipelining (część A) Przypomnienie - implementacja jednocyklowa 4 Add Add PC Address memory ister # isters Address ister # ister # memory Wstęp W implementacjach prezentowanych tydzień

Bardziej szczegółowo

dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl WSTĘP 1 Struktury danych oraz algorytmy do implementacji interfejsu systemu plików

Bardziej szczegółowo

Pliki. Operacje na plikach w Pascalu

Pliki. Operacje na plikach w Pascalu Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Urządzenia zewnętrzne

Urządzenia zewnętrzne Urządzenia zewnętrzne SZYNA ADRESOWA SZYNA DANYCH SZYNA STEROWANIA ZEGAR PROCESOR PAMIĘC UKŁADY WE/WY Centralna jednostka przetw arzająca (CPU) DANE PROGRAMY WYNIKI... URZ. ZEWN. MO NITORY, DRUKARKI, CZYTNIKI,...

Bardziej szczegółowo

Język programowania: Lista instrukcji (IL Instruction List)

Język programowania: Lista instrukcji (IL Instruction List) Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne

Bardziej szczegółowo

Grupy pytań na egzamin inżynierski na kierunku Informatyka

Grupy pytań na egzamin inżynierski na kierunku Informatyka Grupy pytań na egzamin inżynierski na kierunku Informatyka Dla studentów studiów dziennych Należy wybrać dwie grupy pytań. Na egzaminie zadane zostaną 3 pytania, każde z innego przedmiotu, pochodzącego

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności. Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11 Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.

Bardziej szczegółowo

Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym.

Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym. 3.4. GRF UTOMTU, TBELE PRZEJŚĆ / WYJŚĆ Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym. Proste przypadki: Opis słowny, np.:

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

PROGRAMOWALNE STEROWNIKI LOGICZNE

PROGRAMOWALNE STEROWNIKI LOGICZNE PROGRAMOWALNE STEROWNIKI LOGICZNE I. Wprowadzenie Klasyczna synteza kombinacyjnych i sekwencyjnych układów sterowania stosowana do automatyzacji dyskretnych procesów produkcyjnych polega na zaprojektowaniu

Bardziej szczegółowo

Architektura komputerów wer. 7

Architektura komputerów wer. 7 Architektura komputerów wer. 7 Wojciech Myszka 2013-10-29 19:47:07 +0100 Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie i wynik

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania: ANALIZA ALGORYTMÓW Analiza algorytmów polega między innymi na odpowiedzi na pytania: 1) Czy problem może być rozwiązany na komputerze w dostępnym czasie i pamięci? 2) Który ze znanych algorytmów należy

Bardziej szczegółowo

Metody obsługi zdarzeń

Metody obsługi zdarzeń SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Komunikacja za pomocą potoków. Tomasz Borzyszkowski Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania

Bardziej szczegółowo

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń a architektura procesorów Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność komputerów Modele wydajności-> szacowanie czasu wykonania zadania Wydajność szybkość realizacji wyznaczonych

Bardziej szczegółowo

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Kompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/

Kompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/ STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

Wykład 2. Mikrokontrolery z rdzeniami ARM

Wykład 2. Mikrokontrolery z rdzeniami ARM Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów ARM są szeroko

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych

Bardziej szczegółowo

PROBLEMY NIEROZSTRZYGALNE

PROBLEMY NIEROZSTRZYGALNE PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną

Bardziej szczegółowo

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24 Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

1 Moduł Modbus ASCII/RTU 3

1 Moduł Modbus ASCII/RTU 3 Spis treści 1 Moduł Modbus ASCII/RTU 3 1.1 Konfigurowanie Modułu Modbus ASCII/RTU............. 3 1.1.1 Lista elementów Modułu Modbus ASCII/RTU......... 3 1.1.2 Konfiguracja Modułu Modbus ASCII/RTU...........

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 13 - Układy bramkowe Instytut Automatyki i Robotyki Warszawa, 2015 Układy z elementów logicznych Bramki logiczne Elementami logicznymi (bramkami logicznymi) są urządzenia o dwustanowym sygnale wyjściowym

Bardziej szczegółowo

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci Układ Podstawy Informatyki - Układ bezpośredniego dostępu do pamięci alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu Układ 1 Układ Wymiana informacji Idea Zasady pracy maszyny W Architektura

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

Bardziej szczegółowo

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje

Bardziej szczegółowo

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 1 Podstawy teorii grafów Reprezentacje grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Model logiczny i model fizyczny Mechanizmy składowania plików Moduł zarządzania miejscem na dysku i moduł zarządzania buforami

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Architektura Systemów Komputerowych Wykład 7: Potokowe jednostki wykonawcze Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Budowa potoku Problemy synchronizacji

Bardziej szczegółowo

Technologie informacyjne - wykład 2 -

Technologie informacyjne - wykład 2 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 2 - Prowadzący: dr inż. Łukasz

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice

Bardziej szczegółowo

Systemy operacyjne. Zajęcia 11. Monitory

Systemy operacyjne. Zajęcia 11. Monitory Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu

Bardziej szczegółowo

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 9 Pamięć operacyjna Właściwości pamięci Położenie Pojemność Jednostka transferu Sposób dostępu Wydajność Rodzaj fizyczny Własności fizyczne Organizacja Położenie pamięci

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Architektura systemu komputerowego

Architektura systemu komputerowego Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie

Bardziej szczegółowo

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora) Pamięć operacyjna (main memory) obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora) cykl rozkazowy: pobranie rozkazu z PAO do rejestru rozkazów dekodowanie realizacja

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3 Slajd 1 Excel Slajd 2 Adresy względne i bezwzględne Jedną z najważniejszych spraw jest tzw. adresacja. Mówiliśmy

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

ZAGADNIENIE TRANSPORTOWE

ZAGADNIENIE TRANSPORTOWE ZAGADNIENIE TRANSPORTOWE ZT jest specyficznym problemem z zakresu zastosowań programowania liniowego. ZT wykorzystuje się najczęściej do: optymalnego planowania transportu towarów, przy minimalizacji kosztów,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I Zespół TI Instytut Informatyki Uniwersytet Wrocławski ti@ii.uni.wroc.pl http://www.wsip.com.pl/serwisy/ti/ Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I Rozkład zgodny

Bardziej szczegółowo