Wstęp do informatyki i architektury komputerów

Transkrypt

Wstęp do informatyki i architektury komputerów
O czym będziemy mówić
Wstęp do informatyki
i architektury komputerów
Wiesław Pawłowski
Wstęp do informatyki i architektury komputerów
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
●
...
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
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ć
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
jako nauka
5
implementacją i zastosowaniami procesów
algorytmicznych
Wstęp do informatyki i architektury komputerów
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]
Wstęp do informatyki i architektury komputerów
7
Wstęp do informatyki i architektury komputerów
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!
Wstęp do informatyki i architektury komputerów
9
Wstęp do informatyki i architektury komputerów
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ą
Wstęp do informatyki i architektury komputerów
Euklides, 400-300 r. p.n.e.
algorytm wiązania krawata „windsor”
Wstęp do informatyki i architektury komputerów
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?
Wstęp do informatyki i architektury komputerów
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
●
Wstęp do informatyki i architektury komputerów
●
„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!
Wstęp do informatyki i architektury komputerów
15
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
17
Program
...
Program
Wstęp do informatyki i architektury komputerów
18
Twierdzenie [Rice, 1953]:
Problem
...
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
22
Problem wież Hanoi
23
Wstęp do informatyki i architektury komputerów
24
Problem wież Hanoi
Problem wież Hanoi
Wstęp do informatyki i architektury komputerów
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ę
Wstęp do informatyki i architektury komputerów
26
200
1/2500 s
ponad 400
bilionów
stuleci
Wstęp do informatyki i architektury komputerów
27
Wstęp do informatyki i architektury komputerów
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) ?
Wstęp do informatyki i architektury komputerów
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) !!!”
Wstęp do informatyki i architektury komputerów
–
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
Wstęp do informatyki i architektury komputerów
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) !!!”
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
Podwyższane przez lepszy
dowód
Oszacowanie dolne
33
Wstęp do informatyki i architektury komputerów
Problemy zamknięte
34
Ograniczenie górne = ograniczenie dolne
●
Oszacowanie górne
●
●
Oszacowanie dolne
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
39
Wstęp do informatyki i architektury komputerów
40
Pionierzy informatyki
Oryginalne krosno Jacquarda
Joseph-Marie Jacquard
(1752-1834)
krosno „sterowane
numerycznie” (1801)
Wstęp do informatyki i architektury komputerów
41
Wstęp do informatyki i architektury komputerów
42
Pionierzy informatyki c.d.
Nośnik danych - „karty perforowane”
Charles Babbage
(1791-1871)
maszyna różnicowa (1822)
maszyna analityczna (1833)
Wstęp do informatyki i architektury komputerów
43
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
45
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
46
●
47
na jej potrzeby zaprojektowano pierwszy język
programowania
koncepcyjny pierwowzór komputera Harvard Mark
I zbudowanego w roku 1944
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
pojęcie obliczalności
„Bomba” (1939-1942)
false
49
Maszyna Turinga
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
51
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
–
Uniwersalna maszyna Turinga – maszyna, która
może symulować wszystkie maszyny Turinga na
podstawie ich „opisu”
*
STOP
B
4)
●
*
B
3)
●
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
55
Wstęp do informatyki i architektury komputerów
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)
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
58
Ważniejsze wydarzenia
Komputery pierwszej generacji (1940-1956)
●
Wstęp do informatyki i architektury komputerów
1956 – pierwszy dysk twardy (IBM; 5MB; $10000/MB)
59
Wstęp do informatyki i architektury komputerów
60
Atanasoff-Berry Computer (ABC)
Pamięć bębnowa komputera ABC (1939)
Pojemność: 30 liczb 50-bitowych
Wstęp do informatyki i architektury komputerów
61
Colossus
Wstęp do informatyki i architektury komputerów
62
Dwie programistki i ENIAC
Pobór mocy: 160 kW (sic!)
Wstęp do informatyki i architektury komputerów
63
Wstęp do informatyki i architektury komputerów
64
ENIAC i programistka
Wstęp do informatyki i architektury komputerów
John von Neumann i EDVAC
65
Pamięć bębnowa
Wstęp do informatyki i architektury komputerów
Wstęp do informatyki i architektury komputerów
66
UNIVAC – pierwszy komputer „komercyjny”
67
Wstęp do informatyki i architektury komputerów
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 [...]
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
70
Ważniejsze wydarzenia
Druga generacja (1956-1963)
●
Wstęp do informatyki i architektury komputerów
71
Wstęp do informatyki i architektury komputerów
72
Pamięć rdzeniowa
Wstęp do informatyki i architektury komputerów
MIT TX-0
73
Wstęp do informatyki i architektury komputerów
DEC PDP-1
Trzecia generacja (1964-1971)
●
podstawa technologiczna
–
●
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
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)
Wstęp do informatyki i architektury komputerów
77
Wstęp do informatyki i architektury komputerów
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.)
Wstęp do informatyki i architektury komputerów
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ń
–
...
Wstęp do informatyki i architektury komputerów
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)
Wstęp do informatyki i architektury komputerów
81
●
●
82
1975: MITS Altair 8800
Komputery osobiste (1975- ...)
●
Wstęp do informatyki i architektury komputerów
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 !!!
Wstęp do informatyki i architektury komputerów
83
Wstęp do informatyki i architektury komputerów
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.
Wstęp do informatyki i architektury komputerów
Wstęp do informatyki i architektury komputerów
●
CPU: MOS Technology
6502 1 MHz
wyprodukowano ok. 2
miliony sztuk
Wstęp do informatyki i architektury komputerów
86
1981: Osborne 1 – pierwszy laptop
87
Wstęp do informatyki i architektury komputerów
●
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”
Wstęp do informatyki i architektury komputeró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
Wstęp do informatyki i architektury komputerów
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
Wstęp do informatyki i architektury komputerów
–
91
pojawiają się: Norton Utilities,
MS Fortran, PC-Cobol,
WordPerfect 1.0, Lotus 1-2-3
Wstęp do informatyki i architektury komputerów
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”
Wstęp do informatyki i architektury komputerów
93

Podobne dokumenty