Wstęp do informatyki i architektury komputerów

Podobne dokumenty
Historia komputera. Architektura komputera Historia komputera. Historia komputera. Historia komputera. Historia komputera

Architektura komputerów Historia systemów liczących

Wstęp do Informatyki. dr inż. Paweł Pełczyński

Architektura komputerów

O informatyce i jej historii. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Komputery. Komputery. Komputery PC i MAC Laptopy

algorytm przepis rozwiązania przedstawionego zadania komputer urządzenie, za pomocą którego wykonywane są algorytmy

Systemy operacyjne i sieci komputerowe

Algorytm. Krótka historia algorytmów

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Wykład pierwszy Rys historyczny rozwoju sprzętu komputerowego

Pytania do egzaminu część historyczna [Na podstawie:

Przeszłość i przyszłość informatyki

Podstawy Informatyki. Podstawy Informatyki. Warunki zaliczenia. Program wykładów. Metalurgia, I rok. Czym jest informatyka? Z czego się uczyć?

Historia komputerów. Szkoła Podstawowa nr 8 im. Jana Wyżykowskiego w Lubinie

Podstawy Informatyki

Historia komputera. Lubię to! - podręcznik

Wstęp do Informatyki dla bioinformatyków

12:00 1 MAJA 2015, CZWARTEK

Wstęp do architektury komputerów

JAKIE IDEE WPŁYNĘŁY NAJSILNIEJ NA ROZWÓJ I EWOLUCJĘ INFORMATYKI?

Język ludzki kod maszynowy

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: , WWW: ssamolej.prz-rzeszow.

Technika mikroprocesorowa

Algorytm. a programowanie -

Historia komputera. Narzędzia informatyki

Wprowadzenie do inżynierii przetwarzania informacji

Programowanie Niskopoziomowe

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

PROBLEMY NIEROZSTRZYGALNE

Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. Informacje organizacyjne

Informatyka. Michał Rad

Technologie Informacyjne

Wstęp do informatyki. Informacje organizacyjne. Literatura. 1. David Harel, Rzecz o istocie informatyki - algorytmika, WNT 2000

Wstęp do informatyki. Informacje organizacyjne. Literatura. Informatyka jako dyscyplina naukowa

Systemy operacyjne III

Wstęp do programowania

HISTORIA KOMPUTERÓW 2014/15. Bartosz Klin.

PRACA ZALICZENIOWA Z WORDA

Komputery. Historia i budowa.

Elementy historii INFORMATYKI

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Lata 40-te. Powstaje pierwszy komputer (I generacja)

O ALGORYTMACH I MASZYNACH TURINGA

Informatyka 1. Złożoność obliczeniowa

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Algorytm. Krótka historia algorytmów

WOJEWÓDZKI KONKURS INFORMATYCZNY DLA UCZNIÓW DOTYCHCZASOWYCH GIMNAZJÓW ETAP SZKOLNY BIAŁYSTOK, 22 LISTOPADA 2017 R.

Podstawy informatyki (2)

Architektura Systemów Komputerowych. Paweł Pełczyński

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D108A, tel: , WWW: ssamolej.prz-rzeszow.

Powrót do przeszłości i przyszłości

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

KARTA MODUŁU KSZTAŁCENIA

Wstęp do współczesnej inżynierii EKS i komputery sterowane myślami. Andrzej Materka, listopad 2010

Podstawy Informatyki Organizacja prostego komputera dydaktycznego

Alan M. TURING. Matematyk u progu współczesnej informatyki

Historia informatyki

DOS (ang. Disk Operating System). 1 DOS

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Historia maszyn liczących

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Programowanie komputerów

Opracował: Jan Front

Przeszłość i Przyszłość Informatyki

Teoretyczne podstawy informatyki

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału ciągłego.

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Języki Programowania. Generacje języków programowania. Wojciech Sobieski

Opis efektów kształcenia dla modułu zajęć

Algorytmy, reprezentacja algorytmów.

Jak liczono dawniej? 1

Zaawansowane algorytmy i struktury danych

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Podstawy i języki programowania

d. Główny sterownik pamięci operacyjnej na płycie głównej komputera

LEKCJA TEMAT: Zasada działania komputera.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

2.8. Algorytmy, schematy, programy

Techniki multimedialne

Architektura systemów komputerowych

Podstawy informatyki. Podstawowe pojęcia Historia informatyki

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

1 Wprowadzenie do algorytmiki

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

Jako pierwszych do liczenia używano palców.

Podstawy informatyki (1)

Podstawy Programowania. Złożoność obliczeniowa

OPIS PRZEDMIOTU ZAMÓWIENIA

Etap I V Gminnego Konkursu Informatycznego.

Transkrypt:

O czym będziemy mówić Wstęp do informatyki i architektury komputerów Wiesław Pawłowski 1 czym jest/czym zajmuje się informatyka? nieco historii od liczydła do ipod'a architektura komputerów systemy operacyjne języki programowania narzędzia programistyczne... Czym jest informatyka? Czym jest informatyka? pojęcie informatyki jest tak obszerne, a jej zastosowania tak różnorodne, że trudno o zwięzłą odpowiedź w bardzo dużym stopniu zależeć ona będzie od tego, kogo zapytamy... jako przyszli zawodowcy przyjrzymy się zagadnieniu od podstaw 2 3 nauką o komputerach (??) nie obejmuje (bardzo ważnych) prac teoretycznych, które nie używają prawdziwych komputerów, a jedynie ich formalnych modeli spora część codziennej pracy informatyków odbywa się przy pomocy kartki i ołówka (tak, tak!!!) informatyka pojawiła się wcześniej niż same komputery informatyka mówi o komputerach w stopniu nie większym niż astronomia o teleskopach, czy chemia o probówkach nie chodzi o narzędzie, ale o to jak i do czego możemy je użyć 4

Czym jest informatyka? nauką o programowaniu (??) Czym zajmuje się informatyka? programowanie jest ważną, ale nie najważniejszą częścią informatyki nauką o użytkowaniu i zastosowaniach komputerów i programów (??) nauka użytkowania komputerów i oprogramowania ma się tak do informatyki jak kurs prawa jazdy do inżynierii motoryzacyjnej problemami przechowywania, przesyłania, przetwarzania i interpretowania informacji systematycznym badaniem, analizą i projektowaniem procesów algorytmicznych jako inżynieria informatyka odpowiedzialna jest za projektowanie i konstruowanie oprogramowania jako nauka 5 implementacją i zastosowaniami procesów algorytmicznych 6 Algorytm - co to takiego? algorytm - przepis postępowania prowadzący do rozwiązania określonego zadania; zbiór poleceń dotyczących pewnych obiektów (danych) ze wskazaniem kolejności, w jakiej mają być wykonane; wykonawcą jest układ, który na sygnały reprezentujące polecenia reaguje ich realizowaniem może nim być człowiek lub urządzenie automatyczne, np. komputer.[...] U podstaw informatyki leży pojęcie algorytmu [Encyklopedia PWN] 7 8

Algorytm najważniejsze cechy Przykłady precyzyjnie i jednoznacznie zdefiniowany ciąg czynności (operacji) ciąg operacji musi być skończony problem: znajdź i wydrukuj setną w kolejności liczbę pierwszą algorytm (??): każda z operacji wchodzących w jego skład musi być obliczalna (dać się wykonać) 1. sporządź listę wszystkich liczb pierwszych algorytm musi dawać wynik w skończonej liczbie kroków (zastosowań operacji) 3. wydrukuj setny element listy 2. uporządkuj je w kolejności rosnącej czy jest to algorytm? NIE operacje 1 oraz 2 nie są efektywnie obliczalne! 9 Przykłady 10 Przykłady algorytmów problem: mycie włosów algorytm (??): 1. zwilż włosy wodą 2. użyj szamponu 4. powtórz czynności 2-4 czy jest to algorytm? 11 algorytmy dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych Król Edward VIII, lata 30-te XX w. NIE mycie włosów nigdy nie dobiegnie końca algorytm obliczania NWD Muhammad al-khwarizmi, IX w. n.e. 3. spłucz włosy wodą Euklides, 400-300 r. p.n.e. algorytm wiązania krawata windsor 12

Problemy algorytmiczne Poprawne dane wejściowe Specyfikacja poprawnych danych wejściowych + Czy wszystko da się obliczyć?? Definicja oczekiwanych wyników jako funkcji danych wejściowych Problem algorytmiczny Algorytm Spodziewany wynik 13 opis ciągu czynności A ( program ) dane wejściowe D pytanie (wynik) czy wykonanie A dla danych D zakończy się w skończonej liczbie kroków? Problem decyzyjny : czy istnieje algorytm testujący własność stopu dla dowolnych A i D? Załóżmy, że istnieje algorytm S, który dla dowolnego programu A i danych D zwraca: 1 jeżeli A zatrzymuje się dla danych D, oraz 0 w przeciwnym razie. 14 Własność stopu c.d. T(P) := if S(P,P)=1 then pętla else stop fi Załóżmy, że S(T,T)=1 wówczas... S(T,T) = 0 Niech T(P) := if S(P,P)=1 then pętla else stop fi Rozwiązanie Czy wszystko da się obliczyć? dane wejściowe Własność stopu Jaką wartość zwróci S(T,T)? Załóżmy więc, że S(T,T)=0 wówczas... S(T,T) = 1! W obu przypadkach sprzeczność z założeniem! 15 16

Weryfikacja programów jest nierozstrzygalna Nie wszystko da się obliczyć 1. Program A 2. Problem algorytmiczny P Wniosek: Nie istnieje algorytm pozwalający rozstrzygać własność stopu Weryfikator programów Istnieje wiele problemów nierozstrzygalnych (nieobliczalnych) tzn. takich, dla których nie istnieją rozwiązujące je algorytmy Tak, jeśli program A rozwiązuje problem P 17 Program... Program 18 Twierdzenie [Rice, 1953]: Problem... Obliczenia są... nieobliczalne Problemy, algorytmy i programy Algorytm Nie, jeśli program A nie rozwiązuje problemu P Jeśli własność W Algorytm Program... nie jest własnością wszystkich programów nie zależy od składni (jest własnością algorytmu) wówczas W jest nierozstrzygalna. Program 19 20

Obliczalność problemów algorytmicznych Złożoność (czasowa) algorytmów problem weryfikacji, własność stopu,... sortowanie, test pierwszości liczby,... Problemy nieobliczalne Problemy obliczalne 21 Złożoność algorytmów - przykłady O(log N) : wyszukiwanie w zbiorze uporządkowanym O(N) : proste wyszukiwanie O(N log N) : sprytne sortowanie O(N2) : proste sortowanie O(2N) : problem wież Hanoi Złożoność algorytmu jak rośnie koszt wykonania wraz ze wzrostem rozmiaru danych. Złożoność w notacji O O(1) stała (niezależna od wielkości danych) O(log N) logarytmiczna ( sub-liniowa ) O(N) liniowa O(N log N) prawie liniowa O(Nk) wielomianowa O(CN) - wykładnicza 22 Problem wież Hanoi 23 24

Problem wież Hanoi Problem wież Hanoi 25 Złożoność algorytmu a czas jego wykonania 10 N 2 N5 2N NN 1/10000 s 1/10 s 1/1000 s 2.8 h 20 50 100 1/400 s 1/100 s 1/25 s 3.2 s 5.2 min 2.8 h 3.7 dni 1s 3.3 biliona lat 35.7 lat 70-cyfrowa liczba stuleci 185cyfrowa liczba stuleci Wzrost wielomianowy i wykładniczy 1E+280 1E+266 1E+252 1E+238 1E+224 1E+210 1E+196 1E+182 1E+168 1E+154 1E+140 1E+126 1E+112 1E+98 1E+84 1E+70 1E+56 1E+42 1E+28 1E+14 1 45-cyfrowa liczba stuleci 445cyfrowa liczba stuleci 5N N^3 N^5 N^10 1.2^N 2^N N^N 2 4 8 16 Liczba mikrosekud w ciągu dnia Założenie: nasz komputer wykonuje 1 milion operacji na sekundę 26 200 1/2500 s ponad 400 bilionów stuleci 27 32 64 128 256 512 1024 2048 Liczba mikrosekund od Wielkiego Wybuchu 28

Czy można lepiej? Złożoność algorytmu i złożoność problemu Przykład: dwa algorytmy sortowania sortowanie bąbelkowe : O(N2) sortowanie przez scalanie : O(N log N) Pytanie: Czy istnieje algorytm sortujący o złożoności niższej niż O(N log N)? 29 Określa, że problem możemy rozwiązać co najmniej tak dobrze Być może istnieje lepsze rozwiązanie... Obniżane przez znalezienie lepszego algorytmu np. dla problemu X najlepszy znany algorytm miał złożoność O(N3), a mój nowy ma złożoność O(N2)!!! oszacowanie górne : zdefiniowane przez algorytm oszacowanie dolne : ustalane na podstawie dowodu matematycznego 30 Oszacowanie dolne złożoności problemu Zdefiniowane przez algorytm Złożoność problemu Oszacowanie górne złożoności problemu Złożoność algorytmu ustalana na podstawie jego analizy Określone przez dowód matematyczny Stwierdza, że problemu nie da się rozwiązać lepiej Być może nie znajdziemy tak dobrego rozwiązania... Podwyższone przez znalezienie lepszego dowodu 31 np. dla problemu X najmocniejszy znany dowód mówił o złożoności O(N), a mój nowy - o złożoności O(N2)!!! 32

Oszacowanie dolne i oszacowanie górne Oszacowanie górne Problemy otwarte Obniżane przez lepszy algorytm Oszacowanie górne Obniżane przez lepszy algorytm Luka algorytmiczna (o. górne o. dolne) Oszacowanie dolne Podwyższane przez lepszy dowód Oszacowanie dolne 33 Problemy zamknięte 34 Ograniczenie górne = ograniczenie dolne Oszacowanie górne Oszacowanie dolne Podwyższane przez lepszy dowód 35 Przykłady problemów zamkniętych: wyszukiwanie w liście uporządkowanej sortowanie problem wież Hanoi Lepsze algorytmy wciąż możliwe Różnica w złożoności niewykrywalna za pomocą dużego O - ewentualny zysk w kosztach stałych 36

Algorytmy i komputery Informatyka a maszyny liczące algorytm pomysł algorytmu programowanie program wykonanie przez komputer ludzie od najdawniejszych czasów ułatwiali sobie życie poprzez konstruowanie różnego rodzaju maszyn liczących bez pojawienia się prawdziwych komputerów dynamiczny rozwój informatyki jaki obserwujemy dzisiaj nie byłby możliwy kompilacja jak i kiedy wynaleziono komputery? kod wykonywalny 37 Pierwsze maszyny liczące 38 Pierwsze maszyny liczące c.d. abakus (liczydło) Suwak logarytmiczny Babilon Grecja Rzym Chiny Wilhelm Schickard (1623) Japonia Blaise Pascal (1642) Majowie Gottfried von Leibniz (1673)... William Oughtred (1622) suwak logarytmiczny Oughtreda liczydło rzymskie Kalkulatory mechaniczne liczydło chińskie zrekonstruowany kalkulator Schickarda 39 40

Pionierzy informatyki Oryginalne krosno Jacquarda Joseph-Marie Jacquard (1752-1834) krosno sterowane numerycznie (1801) 41 42 Pionierzy informatyki c.d. Nośnik danych - karty perforowane Charles Babbage (1791-1871) maszyna różnicowa (1822) maszyna analityczna (1833) 43 44

Maszyna różnicowa (1822) Maszyna różnicowa c.d. niech: f(x) = 2x2-3x + 2 zadanie: wyliczyć wartości: f(0), f(0.1), f(0.2), f(0.3),... tabulator wielomianów nigdy nie zrealizowana przez Babbage'a f(0.0)=2.00 2.00-1.72=0.28 f(0.1)=1.72 0.28-0.24=0.04 1.72-1.48=0.24 f(0.2)=1.48 0.24-0.20=0.04 1.48-1.28=0.20 f(0.3)=1.28 0.20-0.16=0.04 1.28-1.12=0.16 f(0.4)=1.12 Szwed George Scheutz (1785-1873) zbudował kilka sztuk, począwszy od 1855 r. zbudowany w 1991 według planów Babbage'a egzemplarz pozwala tabulować wielomiany st. 7 z dokładnością 31 cyfr dziesiętnych f(0.5) = 1.12 - (0.16-0.04) = 1.00 45 Maszyna analityczna (1833) Maszyna analityczna c.d. tabulator dowolnych funkcji napędzana maszyną parową programowalność wymiary: 30 x 10 x 2 m rozdzielenie funkcji programu oraz danych projekt nigdy nie doczekał się realizacji nośnik programu i danych: karty perforowane pamięć na 1000 liczb 50-cyfrowych procesor ( młyn ) zdolny do wykonywania kompletu operacji arytmetycznych 46 47 na jej potrzeby zaprojektowano pierwszy język programowania koncepcyjny pierwowzór komputera Harvard Mark I zbudowanego w roku 1944 48

Pionierzy informatyki c.d. Pionierzy informatyki c.d. George Boole (1815-1864) Alan Turing (1912-1954) algebra logiki (1848) maszyna Turinga (1936) A B A & B true true true true false false false true false false false pojęcie obliczalności Bomba (1939-1942) false 49 Maszyna Turinga 50 Maszyna Turinga - sterowanie Ogólna postać instrukcji (polecenia) sterowanie (program) (stan, symbol wejściowy) głowica odczytująco/zapisująca (symbol wyjściowy, ruch głowicy, nowy stan) taśma (pamięć) Program = ciąg instrukcji 51 52

Przykład: maszyna dodająca 1+2 A 1) Maszyna uniwersalna (A, ) -> ( _, prawo, A) (A, nic) -> (, prawo, B) (B, ) -> ( _, prawo, B) (B, nic) -> ( _, lewo, C) (C, ) -> ( nic, stop, STOP) A 2) B 5) C 6) 7) maszyna program w języku programowania maszyna uniwersalna interpreter języka programowania napisany w nim samym 53 Maszyna Turinga kilka uwag bardzo prosty model obliczeniowy pełna moc obliczeniowa Maszyny Turinga a programy =3 Uniwersalna maszyna Turinga maszyna, która może symulować wszystkie maszyny Turinga na podstawie ich opisu STOP B 4) B 3) 54 Pionierzy informatyki c.d. Claude E. Shannon (1916-2001) teoria obwodów (1937) wszystko co da się obliczyć da się obliczyć za pomocą (uniwersalnej) maszyny Turinga koncepcyjny (choć nie architekturalny!) protoplasta wszystkich dzisiejszych komputerów implementacja algebry logiki Boole'a 55 56

Pionierzy informatyki c.d. Pionierzy informatyki c.d. Konrad Zuse John von Neumann (1910-1995) (1903-1957) Z3 (1941) pierwszy programowalny komputer binarny (zbudowany na przekaźnikach) projekt maszyny z Princeton (1945) EDVAC (1951) pierwowzór współczesnej architektury komputerowej ploter (1958) 57 1939-41 ABC (Atanasoff-Berry Computer), pierwszy komputer cyfrowy (w pełni lampowy) podstawa technologiczna lampy elektronowe, pamięć bębnowa 1943 Colossus (używany do deszyfrowania Enigmy) najważniejsze cechy 1944 Harvard Mark I ogromne rozmiary olbrzymia energochłonność i duża zawodność 1946, 1948 ENIAC karty/taśmy perforowane i wydruki jako wej-wyj 1947 tranzystor (Bell Labs) programowane w języku maszynowym lub języku asemblera 1950 UNIVAC, pierwszy komputer komercyjny 1953 IBM 650, sprzedano 1.5 tys sztuk programy trzymane w pamięci zewnętrznej 58 Ważniejsze wydarzenia Komputery pierwszej generacji (1940-1956) 1956 pierwszy dysk twardy (IBM; 5MB; $10000/MB) 59 60

Atanasoff-Berry Computer (ABC) Pamięć bębnowa komputera ABC (1939) Pojemność: 30 liczb 50-bitowych 61 Colossus 62 Dwie programistki i ENIAC Pobór mocy: 160 kw (sic!) 63 64

ENIAC i programistka John von Neumann i EDVAC 65 Pamięć bębnowa 66 UNIVAC pierwszy komputer komercyjny 67 68

Wizja komputera domowego - 1954 Wizja komputera domowego - 1954 Naukowcy z RAND Corporation stworzyli ten model, aby zilustrować, jak może wyglądać komputer domowy w roku 2004. Jednakże wymagana do tego celu technologia nie będzie zapewne w zasięgu przeciętnego gospodarstwa domowego. [...] Z konsolą dalekopisową oraz językiem programowania Fortran [1954-57, John Backus] komputer ten będzie prosty w użyciu [...] 69 podstawa technologiczna 1956 - TX-0 (pierwszy komputer tranzystorowy ) tranzystory, pamięć rdzeniowa najważniejsze cechy 1958 układ scalony (Texass Instruments); International Algorithmic Language (protoplasta Algolu); pierwszy modem telefoniczny (Bell Labs) mniejsze, szybsze, tańsze i bardziej niezawodne niż 1 generacja, choć wciąż podatne na uszkodzenia nadal nośniki perforowane i wydruki jako wej-wyj 1960 PDP-1, komputer z klawiaturą i monitorem, Algol 60 (nowoczesny język programowania) programowane w językach wysokiego poziomu, jak Fortran, Cobol czy Algol 60 1963 pierwsza mysz komputerowa programy ładowane do pamięci operacyjnej 70 Ważniejsze wydarzenia Druga generacja (1956-1963) 71 72

Pamięć rdzeniowa MIT TX-0 73 DEC PDP-1 Trzecia generacja (1964-1971) podstawa technologiczna 74 75 układy scalone (wiele tranzystorów na jednej płytce krzemu) najważniejsze cechy zdecydowanie mniejsze, szybsze i bardziej niezawodne niż maszyny poprzednich generacji klawiatura i monitor jako urządzenia wej-wyj system operacyjny ułatwiający pracę z komputerem 76

Ważniejsze wydarzenia Denis Ritchie, Ken Thompson i DEC PDP-7 1967 Simula 67 (pierwszy język obiektowy; OleJohan Dahl) 1968 powstaje firma Intel 1969 pierwsza wersja systemu Unix (PDP-7) 1970 dyskietka 8, pamięć półprzewodnikowa, pełnowartościowa wersja systemu Unix (PDP-11/20) Thompson (język B), Ritchie (język C) 77 Czwarta generacja (1971-...) Czwarta generacja (1971-...) podstawa technologiczna mikroprocesory (tysiące układów scalonych na jednej płytce krzemu; Marcian Hoff) najważniejsze cechy miniaturyzacja, wysoka niezawodność, duża wydajność i (stosunkowo) niska cena przyjazne dla użytkownika środowisko systemowe (interfejs graficzny, nowe urządzenia wej-wyj itp.) 78 79 konsekwencje rozwoju rozkwit języków programowania wysokiego poziomu oraz oprogramowania narzędziowego wprowadzenie i rozkwit sieci komputerowych stopniowe zacieranie się granic pomiędzy sprzętem komputerowym a urządzeniami powszechnego użytku ekspansja technik cyfrowych we wszystkich dziedzinach zastosowań... 80

Ważniejsze wydarzenia 4-bitowy Intel 4004 (1971) 1972 pierwsza transmisja e-mail (Ray Tomlinson), język C (Dennis Ritchie) 1973 Unix przepisany w C 1975 powstaje firma Microsoft Pierwszy komercyjny mikroprocesor jednoukładowy (740 khz, 46 instrukcji, 2300 tranzystorów) 81 82 1975: MITS Altair 8800 Komputery osobiste (1975-...) rewolucja mikroprocesorowa znacznie obniża koszt maszyn, choć wciąż są zbyt drogie dla przeciętnego śmiertelnika CPU: Intel 8080 2MHz RAM: 256 B (sic!) rośnie zainteresowanie komputerami i ich nieobliczeniowymi zastosowaniami rośnie podaż i spadają ceny podzespołów elektronicznych czas na komputer osobisty!!! 83 zestaw do samodzielnego składania przełączniki i diody jako wej-wyj (programowany w kodzie binarnym) pierwszy komputer domowy 84

1976: Apple I 1977: Apple II CPU: MOS Tech. 6502 1 MHz RAM: 4-32 KB złącze klawiatury wyjście TV (24x40 znaków) OS: System Monitor (zajmował 256 bajtów) Apple BASIC (ładowany z taśmy magnetofonowej) 85 Microsoft Corporation w roku 1978 RAM: 4-64 KB klawiatura (tylko duże litery!) wyjście TV (80x24) wbudowany BASIC wyprodukowano ok. 200 szt. CPU: MOS Technology 6502 1 MHz wyprodukowano ok. 2 miliony sztuk 86 1981: Osborne 1 pierwszy laptop 87 CPU: Zilog Z80 4 MHz RAM: 64 KB monitor 5 matryca 53x24 OS: CP/M waga: 12,25 kg opcjona: modem 300 bps SuperCalc, WordStar, Basic sprzedano 11 tys. sztuk 88

1981: IBM PC Model 5150 Rozwój komputerów klasy PC CPU: Intel 8080 4.77 MHz RAM: 16-64 KB klawiatura (pełna) i monitor w komplecie matryca 25x80 znaków; opcjonalna grafika 8kolorowa (CGA) OS: MS DOS lub CP/M-86 początek ery PC-tów 89 IBM PC zawiera tylko jeden zastrzeżony element BIOS; pozostałe części oraz system MS-DOS (przez IBM nazwany PC-DOS) są dostępne dla konkurencji w 1982 firmy Columbia i Compaq niezależnie opracowują własne wersje BIOS-u (na drodze tzw. reverse-engineering) i rozpoczynają produkcję pierwszych klonów IBM PC niezależne firmy jak Phoenix Tech. zaczynają oferować producentom komputerów BIOS praktyczne w 100% zgodny z IBM PC Dekada DOS-a i PC-tów 1980 90 Dekada DOS-a i PC-tów 1981 1982 1983 Microsoft kupuje system DOS od Seattle Computer Products i przystosowuje go dla potrzeb powstającego IBM PC MS-DOS 1.0 MS-DOS 1.25 MS-DOS 2.0 Intel 8087 Intel 80286 (16-bitowy) pojawia się IBM PC IBM zleca firmie Microsoft implementację języków: Basic, Fortran, Cobol i Pascal na potrzeby IBM PC firma Commodore wprowadza komputer domowy VIC-20 poprzednika słynnego C64 (najlepiej sprzedającego się komputera w historii) firmy Columbia i Compaq rozpoczynają produkcję pierwszych klonów IBM PC pojawiają się: IBM PC-XT, Apple IIe i Apple Lisa pojawiają się Commodore C64 i Sinclair ZX Spectrum ('82-'88) powstają firmy: Adobe, Compaq, Hercules, Maxtor i Sun (4 pracowników) Microsoft rozpoczyna prace nad Xenix-em (wersją Unix-a na PC) Sinclair Research wprowadza ZX81 (poprzednika słynnego ZX Spectrum) powstają firmy: Adaptec, CTX, Logitech powstają firmy: FIC, Iomega, Quantum 91 pojawiają się: Norton Utilities, MS Fortran, PC-Cobol, WordPerfect 1.0, Lotus 1-2-3 Apple Lisa rewolucyjne GUI i zupełny niewypał rynkowy magazyn Time ogłasza PC Człowiekiem Roku Bill Gates prorokuje: nikt nigdy nie będzie potrzebował więcej niż 640 KB RAM 92

Dekada DOS-a i PC-tów 1984 1985 MS-DOS 3.0 i 3.1 Intel 80386 (32-bitowy) IBM wprowadza IBM PC-AT oraz kartę graficzną EGA (640x350) firma Microtek wprowadza pierwszy skaner (300 dpi) pojawia się Apple Macintosh idea graficznego interfejsu użytkownika odnosi sukces MS Windows 1.0 Microsoft i IBM rozpoczynają prace nad systemem OS/2 powstają firmy: ATI, Corel, Gateway 2000, Gravis rodzi się idea wolnego oprogramowania (manifest GNU) powstają firmy: Cirrus, Dell, ESS Technologies magistrala ISA poszerzona do 16 bitów; pojawiają się dyskietki 3.5 93