Sławomir Nowak Podstawy informatyki

Slides:



Advertisements
Podobne prezentacje
Programowanie w PMC.
Advertisements

Instrukcje - wprowadzenie
UKŁADY ARYTMETYCZNE.
Wykonał : Marcin Sparniuk
dr A Kwiatkowska Instytut Informatyki
ALGORYTM Co to jest algorytm?
Materiały pochodzą z Platformy Edukacyjnej Portalu
Liczby Pierwsze - algorytmy
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Elementy kombinatoryki
Magistrala & mostki PN/PD
Schemat blokowy komputera
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Wstęp do interpretacji algorytmów
Zapis informacji Dr Anna Kwiatkowska.
Systemy plików.
ZESTAW KOMPUTEROWY.
Kod Graya.
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
opracowanie: Agata Idczak
Podstawy układów logicznych
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Zasada działania komputera
Autor: Justyna Radomska
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Jak to jest zrobione? Kalkulator.
XML – eXtensible Markup Language
Systemy liczbowe.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Systemy Liczenia - I Przez system liczbowy rozumiemy sposób zapisywania i nazywania liczb. Rozróżniamy: pozycyjne systemy liczbowe i addytywne systemy.
Architektura PC.
Budowa komputera ProProgramer.
Matematyka i system dwójkowy
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
ZAPIS BLOKOWY ALGORYTMÓW
Algorytmika.
Wprowadzenie do algorytmiki
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Obliczalność czyli co da się policzyć i jak Nieobliczalność Model obliczeń :maszyna Turinga dr Kamila Barylska.
Procesor, pamięć, przerwania, WE/WY, …
Algorytmy- Wprowadzenie do programowania
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Zasady arytmetyki dwójkowej
Rodzaje Liczb JESZCZE SA TAKIE
Wstęp do interpretacji algorytmów
BUDOWA WEWNĘTRZNA KOMPUTERA
Tryby adresowania i formaty rozkazów mikroprocesora
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
mysz drukarka Jednostka centralna monitor klawiatura.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Schemat blokowy komputera
Elementy cyfrowe i układy logiczne
Podstawy Informatyki.
Wstęp do Informatyki - Wykład 6
Układy asynchroniczne
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Sławomir Nowak Podstawy informatyki Modele komputerów, maszyna Turinga „…Otóż moglibyśmy skonstruować maszynę, która wykonałaby pracę tego komputera…” A. Turing

„computers” – ludzie którzy liczą… http://www.digital-rights.net/?p=1640

„computers” matematycznej idei Komputer służy do liczenia to przecież oczywiste! Skuteczność komputerów cyfrowych w ich liczeniu opiera się na matematycznej idei mówiącej, że każdy poprawnie sformułowany problem ma swoje rozwiązanie poprzez jego obliczenie Maszyna Turinga - od ''komputera'' do komputera, Computerworld, 5 październik 1998, Marek Hetmański

„computers” Obliczeniem jest mechaniczna procedura wykonania zadania w skończonej liczbie kroków. Inaczej mówiąc, obliczenie jest wykonalne, jeśli istnieje dla niego algorytm. U podstaw matematyki, logiki i informatyki toczyła się dyskusja nad obliczalnością problemów na podstawie mechanicznych (algorytmicznych) procedur. Maszyna Turinga - od ''komputera'' do komputera, Computerworld, 5 październik 1998, Marek Hetmański

Rozstrzyganie problemów matematycznych Znaleźć skończony zbiór reguł i aksjomatów, pozwalający rozstrzygnąć dowolny problem matematyczny (idea Hilberta) Pewnych problemów matematycznych nie da się rozstrzygnąć. Problem zdań typu: „to zdanie jest fałszywe”. Nie sposób uniknąć paradoksów (twierdzenie Godla)

TIME zaliczył Turinga do Największych postaci XX w. Alan Turing (1912-1954), matematyk, kryptolog, neurolog, wizjoner, sportowiec, prekursor sztucznej inteligencji, twórca teorii automatów, dziedziny stanowiącej matematyczne podstawy teorii obliczeń. Największe znaczenie dla rozwoju informatyki miały jego prace teoretyczne, w szczególności praca podająca teoretyczny model komputera („automat Turinga”). Turing wielokrotnie startował jako zawodnik w maratonie. Aresztowany w 1952 roku za homoseksualizm i skazany na leczenie psychiatryczne oraz kurację hormonalną Turing w dwa lata później prawdopodobnie popełnił samobójstwo (okoliczności jego śmierci do dzisiaj nie są w pełni wyjaśnione). TIME zaliczył Turinga do Największych postaci XX w.

ENIGMA i COLLOSUS W czasie wojny Turing należał do grupy ekspertów zaangażowanych w odcyfrowywanie niemieckich szyfrów ENIGMA. Niemałą rolę w tej pracy grał polski wywiad. Dla potrzeb deszyfracji zbudowano imponującą maszynę liczącą o nazwie Collossus. Analizowała ona tysiące wiadomości dziennie poszukując właściwego klucza (zmienianego trzy razy dziennie), dzięki któremu Enigma mogła odcyfrować wiadomości. Jeden ze współpracowników Turinga tak powiedział komentując jego rolę w programie łamania szyfrów: „Nie powiem, że dzięki Turingowi wygraliśmy wojnę ale śmiem powiedzieć, że bez niego moglibyśmy ją przegrać”. Turing wielokrotnie startował jako zawodnik w maratonie. Jakkolwiek byśmy na to nie popatrzyli, COLOSSUS był jednym z pierwszych na świecie działających, programowanych komputerów cyfrowych. Lecz była to maszyna o specjalnym przeznaczeniu, która w rzeczywistości nadawała się do wąskiego zakresu zadań (na przykład nie potrafiła mnożyć dziesiętnie). Gdy to już stwierdziliśmy, musimy jednak przyznać, iż COLOSSUS pomimo tego, iż był komputerem o specjalnym zastosowaniu, to jednak dowiódł on swojej wystarczającej elastyczności, aby można go było programować do wykonywaniu przeróżnych zadań. W 1952 roku włamano się do domu Alana Turinga, który poinformował o tym fakcie policje. W wyniku jej śledztwa Turing potwierdził, iż jest homoseksualistą[1]. Wówczas został oskarżony o naruszenie moralności publicznej, wytoczono przeciwko niemu proces. Jako karę orzeczono odebranie klauzuli dostępu do poufnych informacji oraz zakazano udziału w badaniach związanych z konstrukcją komputera. Zmuszono go do konsultacji z psychiatrą i rocznej kuracji hormonalnej, polegającej na przyjmowaniu estrogenu (zob. terapia konwersyjna). Efektem kuracji była między innymi ginekomastia. 7 czerwca 1954 Alan Turing zamknął się w swojej sypialni i popełnił samobójstwo spożywając jabłko zanurzone wcześniej w cyjanku.

1954 Samobójstwo Turinga Źródło: http://www.egrafik.pl/tutoriale-photoshop/inne-efekty/nagryzione-jablko/

Maszyna Turinga Turing pracował na problemem rozstrzygalności i obliczalności zadań matematycznych; Rozważył obliczanie od strony czynności, które wykonuje rachmistrz, a nawet każde dziecko, gdy na kartce papieru, etap po etapie, przeprowadza obliczenia. http://www.sxc.hu/pic/m/b/br/brokenarts/187211_hands_1_writing_hand_.jpg

Maszyna Turinga Na działanie „komputera” (rachmistrza) składają się zatem skończone instrukcje przechodzenia między poszczególnymi kratkami (częściowymi obliczeniami) na kartce wraz z wykonaniem pewnych działań – odczytywaniem i zapisywaniem. http://www.sxc.hu/pic/m/b/br/brokenarts/187211_hands_1_writing_hand_.jpg

Maszyna Turinga Wobec każdego problemu, wykonywanego przez rachmistrza istnieje maszyna uniwersalna, która może imitować jego obliczenia. „…Otóż moglibyśmy skonstruować maszynę, która wykonałaby pracę tego komputera…” A. Turing http://www.sxc.hu/pic/m/b/br/brokenarts/187211_hands_1_writing_hand_.jpg

Maszyna Turinga Maszyna Turinga składa się z: Nieskończonej taśmy zawierającej komórki z symbolami Ruchomej głowicy zapisująco-odczytującej. Układu sterowania głowicą. http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Taśma Nieskończona taśma dzieli się na komórki, w których umieszczone zostały symbole, (przetwarzane znaki). MT odczytuje symbole z kolejnych komórek i przetwarza na inne symbole. Wyniki obliczeń są zapisywane w komórkach taśmy. A C D 1 4 B … http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php, Graf. taśma: wikipedia

Maszyna Turinga Głowica Głowica odczytuje i zapisuje symbole na taśmie. Głowice zawsze znajduje się nad jedną z komórek taśmy. Może ona odczytywać zawartość tej komórki oraz zapisywać do niej inny symbol (przetwarzanie danych). Pomiędzy odczytami głowica porusza się w prawo i w lewo do sąsiednich komórek. W ten sposób może się ona przemieścić do dowolnie wybranej komórki taśmy. Przed rozpoczęciem pracy głowica jest zawsze ustawiana nad komórką taśmy zawierającą pierwszy symbol do przetworzenia. http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Układ sterowania (odpowiednik procesora) Zarządza przetwarzaniem informacji. Odczytuje za pomocą głowicy symbole z komórek taśmy, przesyła do głowicy symbole do zapisu w komórkach oraz steruje jej przemieszczaniem. Podstawą działania MT są stany układu sterowania. Stan układu sterowania określa jednoznacznie jaką operację wykona MT gdy odczyta z taśmy określony symbol. http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Układ sterowania Zatem operacje wykonywane przez układ sterowania zależą od dwóch czynników: symbolu odczytanego z komórki na taśmie. bieżącego stanu układu sterującego. Stany będziemy określać kolejnymi nazwami: q0, q1, q2, ... ,qn, gdzie q0 jest stanem początkowym http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Instrukcje MT Instrukcje składają się z piątki symboli: http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Instrukcje MT S0 i qi są tzw. częścią identyfikacyjną instrukcji. MT wykonuje tyle różnych instrukcji, ile zdefiniujemy części identyfikacyjnych. W programie nie może być dwóch różnych instrukcji o identycznej części identyfikacyjnej. http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Instrukcje MT Sz, qj i L/P są tzw. częścią operacyjną, która określa jakie działanie podejmuje dana instrukcja. Części operacyjne różnych instrukcji mogą być takie same. Oznacza to, iż instrukcje te wykonują dokładnie to samo działanie. http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Przykład Instrukcja: (A, q0 , B, q0, P)   Jeżeli odczytanym przez głowicę symbolem z taśmy będzie A, a układ sterowania znajduje się w stanie q0, to głowica zamieni ten symbol na B, stan wewnętrzny nie zmieni się (pozostanie dalej q0), a głowica przesunie się do sąsiedniej komórki po prawej stronie (P – prawo). http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Przykładowe programy MT Program zamiany bitów 0,q0,1,q0,L bit 0 zamień na 1 1,q0,0,q0,L bit 1 zamień na 0 http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Przykładowe programy MT … ? 1 … ? 1 … ? 1 … ? 1 … ? 1 symbol nierozpoznany - koniec … ? 1 http://edu.i-lo.tarnow.pl/inf/prg/003_mt/0001.php

Maszyna Turinga Bardziej złożone programy składają się z wielu instrukcji, dlatego wygodniej zapisywać je w postaci tzw. tablicy charakterystycznej MT, gdzie każdy ruch R (instrukcja) związany jest z odczytanym symbolem si oraz stanem qj, czyli Rij = (sk, K, ql) Interpretacja tej tabeli jest następująca: Jeżeli będąc w stanie qj głowica odczytała symbol si, to należy zapisać na taśmie symbol sk, przesunąć taśmę w kierunku określonym przez K, a głowica ma przejść do stanu ql. Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

Maszyna Turinga Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

Maszyna Turinga Przykład: W zbiorze napisów trójliterowych utworzonych z liter a, b, c tylko napis abc jest poprawny. Zapisać dla MT program rozpoznawanie takiego zapisu. Jaki jest algorytm? Pobierz symbol. Jeżeli jest nim a, to pobierz następny symbol i idź do 2, w przeciwnym przypadku idź do 4. Jeżeli pobranym symbolem jest b, to pobierz następny symbol i przejdź do 3, jeżeli nie, idź do 4. Jeżeli pobranym symbolem jest c, idź do 5, w przeciwnym przypadku idź do 4. Sygnalizuj nieprawidłowy napis. Sygnalizuj napis poprawny. Ciąg poprawny niepoprawny Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

Maszyna Turinga Przykład: Zaprojektować maszynę Turinga obliczającą sumę dowolnej liczby zapisanej w systemie dziesiętnym i liczby 1. Aby do dowolnej liczby dodać 1, należy przeanalizować jej ostatnią cyfrę. Jeżeli jest nią któraś z cyfr 0 – 8, to dodanie jedynki sprowadzi się do zapisu w tym miejscu danej cyfry zwiększonej o jeden, tzn. jednej z cyfr 1 – 9. Jeśli ostatnią cyfrą jest cyfra 9, to należy w jej miejscu napisać cyfrę 0, a następnie dodać 1 do cyfry przedostatniej lub napisać jedynkę, jeżeli cyfra nie występuje. Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

Maszyna Turinga Przykład: Zaprojektować maszynę Turinga obliczającą sumę dowolnej liczby zapisanej w systemie dziesiętnym i liczby 1. Algorytm (głowica maszyny Turinga powinna być ustawiona na ostatniej cyfrze): 1. Jeżeli cyfra z zakresu 0 – 8 pisz odpowiednio 1 – 9 i idź do 3, w przeciwnym przypadku pisz 0, przesuń głowicę w lewo i idź do 2. 2. Jeżeli miejsce puste ∅ pisz 1, idź do 3, jeśli nie idź do 1. 3. Sygnalizuj koniec. Przykład działania dla liczby 89:

Maszyna Turinga Przykład: Zaprojektować maszynę Turinga obliczającą sumę dowolnej liczby zapisanej w systemie dziesiętnym i liczby 1. Tablica charakterystyczna MT: (przejścia dla liczby 89) Koniec Na podst. Wykłady z podstaw informatyki prof.. Stefana Węrzyna, wyd. Pol. Śl. Gliwice 2003

Podsumowanie Jakie znaczenie ma w Informatyce maszyna Turinga? Twierdzenie: Każdy algorytm może być realizowany przez odpowiednio zaprogramowaną (za pomocą tablicy charakterystycznej) maszynę Turinga. W postaci MT dokonało się przejście od ery automatycznych kalkulatorów do komputerów sterowanych algorytmami.

Podsumowanie Można rozważać bardzo wiele różnych wariantów maszyny Turinga. Istnieją maszyny Turinga wielotaśmowe lub niedeterministyczne (gdzie jednej parze (symbol, stan) może odpowiadać kilka instrukcji).

Podsumowanie Program dla maszyny Turinga jest tablicą instrukcji. Kolejność instrukcji w tablicy jest zupełnie dowolna. Program kończy się, jeśli program nie definiuje działania dla bieżącego symbolu wejściowego i stanu wewnętrznego. Praktyczne zastosowanie koncepcji Turinga jest trudne ze względu na słabą skalowalność programów, a także ich nieczytelność i trudność modyfikacji. We współczesnych komputerach program składa się z ciągu kolejno wykonywanych instrukcji.

Podsumowanie Jeden z wielu symulatorów MT: http://www.maszynaturinga.info/

Architektura Von Neumana Maszyna Turinga jest jednym z matematycznych modeli komputerów. Praktyczny model komputera podał John von Neuman. Margittai Neumann János Lajos (ur. Budapeszt 1903) Johann von Neumann (Niemcy) John von Neumann (USA) (zm. 1957 r.)

Zasady von Neumana: 1. instrukcje i dane mają być identycznie reprezentowane w maszynie; 2. program i dane muszą mieścić się w tej samej wewnętrznej pamięci (operacyjnej) komputera; 3. dzięki jednakowej reprezentacji danych i instrukcji maszyna powinna móc wykonywać operacje na instrukcjach i całym programie.

Architektura Von Neumana W architekturze Von Neumana wyróżniamy: Pamięć, jednostkę sterującą (procesor), jednostkę arytmetyczno-logiczną oraz układ wejścia/wyjścia Taką architekturę komputera nazywano sterowaną programem. Wobec tak sformułowanej definicji komputera ENIAC wszystkie poprzedzające go maszyny nie były komputerami wg. modelu Von Neumana.

Architektura Von Neumana We współczesnych komputerach architektura uległa pewnym modyfikacjom. Ogólny schemat jest następujący: Elementy: procesor (wraz z ALU) zegar magistrala danych magistrala adresowa magistrala sterująca pamięć sterowniki we/wy Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

Architektura Von Neumana Procesor układ dokonujący operacji na danych zgromadzonych w pamięci lub pochodzących z urządzeń we/wy, sterowany programem, którego kod znajduje się w pamięci. Do przechowywania swojego wewnętrznego stanu procesor wyposażony jest w pewną ilość rejestrów. Rejestry to komórki pamięci o niewielkich rozmiarach (najczęściej 4/8/16/32/64/128 bitów) służące do przechowywania tymczasowych wyników obliczeń, adresów lokacji w pamięci operacyjnej itd. Większość procesorów przeprowadza działania wyłącznie w oparciu o wewnętrzne rejestry, kopiując do nich dane z pamięci i po zakończeniu obliczeń odsyłając wynik do pamięci. Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

Architektura Von Neumana Zegar odmierza cykle wykonywania instrukcji programu, synchronizuje podzespoły komputera Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

Architektura Von Neumana Magistrale służą do przesyłania danych i synchronizacji elementów komputera: 1. Magistrala danych służy do przesyłania danych między pamięcią, układami we/wy, a procesorem. Ilość użytych tutaj linii (szerokość szyny) jest równa długości słowa maszynowego i jest równa rozmiarowi komórki pamięci, lub jest jego wielokrotnością. 2. Magistrala adresów służy procesorowi do wysyłania numerów komórek pamięci lub rejestrów we/wy na których będzie dokonane następne przesłanie danych. Ilość użytych tutaj linii decyduje o wielkości pamięci jaką można zaadresować. 3. Magistrala sterująca służy do wzajemnej synchronizacji oraz przekazywania i potwierdzania przyjęcia/wykonania zleceń. Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

Architektura Von Neumana Pamięć przechowuje dane i kod programu. Jeżeli jej konstrukcja umożliwia oprócz odczytu dokonywanie w niej modyfikacji nazywamy ją RAM, jeśli jej konstrukcja pozwala jedynie na odczyt nazywana jest ROM. Pamięć dzieli się na komórki, z których każda jest w stanie przechować liczbę całkowitą z ustalonego dla danej architektury zakresu (słowo bitowe). Każda komórka pamięci posiada unikalny numer zwany adresem fizycznym, który służy procesorowi do odwoływania się do niej. Na podst: http://www.neurosoft.edu.pl/akozioro/Maszyna_Turinga.pdf

Podsumowanie Maszyna von Neumanna była komputerem w pełni automatycznym, cyfrowym i uniwersalnym, z wczytywanym programem. Jej wewnętrzna architektura stała się wzorem dla komercyjnych maszyn następnej generacji i w znacznym stopniu pozostaje aktualna do dziś.

Podsumowanie Innym rodzajem architektury jest architektura harwardzka. W odróżnieniu od architektury von Neumanna, pamięć danych programu jest oddzielona od pamięci rozkazów. Jest to podstawowa architektura komputerów zerowej generacji i początkowa komputerów pierwszej generacji. Budowa ta często przekłada się na większą szybkość działania dlatego jest często wykorzystywana w procesorach sygnałowych oraz jednoukładowych.