Najważniejsze daty w historii Informatyki

advertisement
TECHNOLOGIE
INFORMACYJNE
Tydzień 1
Prowadzący: Dr inż. Jerzy Szczygieł
Co to jest informatyka
Nauka o przetwarzaniu informacji za pomocą automatycznych
środków technicznych
INFORMACJA
Wielkość abstrakcyjna, która może być przechowywana w
pewnych obiektach, przesyłana pomiędzy obiektami,
przetwarzana w pewnych obiektach i stosowana do
sterowania pewnymi obiektami, przy czym przez obiekty
rozumie się organizmy żywe, urządzenia techniczne oraz
systemy takich obiektów.
Definicje - pojęcia
INFORMACJA
INFORMATYKA
Są to dane o otaczającej nas rzeczywistości
Jest
to
dziedzina
wiedzy
zajmująca
się
gromadzeniem, przetwarzaniem i wykorzystaniem
informacji
ALGORYTM
Jest to zbiór reguł rozwiązania określonego zadania,
tj. przetworzenia informacji wejściowych (danych)
na informacje wyjściowe (wyniki), w skończonej
liczbie kroków. (Al-Chorezmi
KOMPUTERY
Są to urządzenia, które mogą przetwarzać
informacje zgodnie z zadanym zestawem instrukcji
DANE WEJŚCIOWE
ALGORYTM
WYNIKI
Ewolucja społeczeństwa
Historia komputerów
Era prehistoryczna
9000 r. p.n.e.
• Palce u rąk (dlatego mamy system dziesiętny)
• Linie na ścianach
• Budowle kamienne
Historia komputerów
Pierwszy „komputer”
Liczydło
Abak - pierwsze starożytne liczydło (3000 r. p.n.e.)
wynalezione w starożytnym Babilonie.
Udoskonalany przez kolejne cywilizacje Greków,
Rzymian.
Soroban- liczydło stosowane w Chinach około 400 r. p.n.e.
Historia komputerów
Wilhelm Schickard
(1592-1635)
J. M. Jacquard
(1752-1834)
Charles Babbage
(1792-1871)
1821
Maszyna licząca
Schickarda
Maszyna tkacka
Jacquarda
Maszyna róznicowa
pierwszy
„prawdziwy”
komputer
Historia komputerów
Elektryczność, wynalezienie lampy elektronowej
1946 rok
Wreszcie prawdziwy komputer
ENIAC
Electronic Numerical Integrator Analyzer and Computer
Historia komputerów
Rozwój mikroelektroniki
• Wynalezienie tranzystora – „zawór” (1947)
• Wynalezienie układu scalonego (1958)
Najważniejsze daty w historii Informatyki
1623
1801
1833
Shickard jest uznawany za twórcę pierwszej historii
mechanicznej maszyny do liczenia. Jego maszyna miała
pomóc Keplerowi w jego astronomicznych rachunkach.
Maszyna ta wymagała od użytkownika manualnej pomocy
w wielu czynnościach związanych z kolejnymi krokami.
Mogła dodawać i odejmować 6 – cyfrowe liczby w układzie
dziesiętnym.
Francuz Jacquard buduje krosno tkackie, w którym wzorzec
tkaniny był programowany na swego rodzajach kartach
perforowanych. Proces tkania był kontrolowany przez
algorytm (czyli przepis) zakodowany w postaci sekwencji
otworów wybitych w karcie.
Anglik Babbagre buduje maszynę sterowaną programowo.
do
wyliczania
niektórych
formuł
matematycznych
Wykonywała ona obliczenia metodą różnicową.
Najważniejsze daty w historii Informatyki (cd)
1890
Pierwsze publiczne użycie na wielką skalę maszyny
bazujących na kartach perforowanych. Amerykanin
Hollerith użył swej maszyny do opracowywania danych
statystycznych w spisie ludności. Przedsiębiorstwo
Holleritha przekształciło się w 1911 r. w International
Busines Machines Corp., czyli IBM.
1939
MARK I pierwsze urządzenie na przekaźnikach czyli
urządzenie elektro-mechaniczne. Jest to praktyczna pełna
realizacja maszyny Babbage'a
1946
ENIAC (Elektronie Numerical Integrator and Computer) uznawany za pierwszy kalkulator elektroniczny
1951
Pierwszy komercyjny komputer IBM 704 (architektura
neumanowska
Generacje komputerów
Generacja Zerowa
Komputery budowane w oparciu o przekaźniki
elektro-magnetyczne. Przykład:
Mark I (1939)
Generacja Pierwsza (1946-1958)
Komputery pierwszej generacji budowano
z lamp elektronowych.
Przykład: ENIAC (1946)
Generacje komputerów
Generacja Druga (1959-1964)
Komputery budowane w oparciu o tranzystory.
Przykład: XYZ (1958)
Generacja Trzecia (1963-1970)
Komputery działające w oparciu o układy scalone.
Przykład: ODRA 1300
Generacje komputerów
Generacja Czwarta (1971- do dziś)
Komputery budowane na układach scalonych wysokiej skali
integralności.
Przykład: CRAY X - MP (1982)
Generacja Czwarta PLUS
Superkomputery o bardzo dużej mocy obliczeniowej
Przykład: japoński NEC
Generacja Piąta / i dalsze/
technika sztucznej inteligencji, zmiany w architekturze systemu
Budowa komputera
Budowa komputera
Magistrala
Procesor
Pamięć
Układy I/O
 procesor – (CPU) układ elektroniczny realizujący przetwarzanie
informacji
 pamięć – przechowywanie informacji.
 układy wejścia/wyjścia (I/O)– komunikacja z otoczeniem
Procesor
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
Algorytm cyklu rozkazowego
START
LR:=0
ODCZYT
WYKONANIE PROCEDURY
OBSŁUGI PZRERYWANIA
Start jest
inicjowany przez
sygnał RESET
Przerywanie
jest inicjowane
sygnałem INT
DEKODOWANIE
WYKONANIE
TAK
Czy jest żądana
obsł. przeryw.
LR:=LR+1
NIE
ZAPIS
Pamięć wewnętrzna
Magistrala (szyna):
Model komputera (szyna systemowa)
Komunikacja pomiędzy komponentami odbywa się
współdzielonymi zasobami zwanymi szyną systemową,
która składa się z:
•szyny danych,
•szyny adresowej,
•szyny sterującej.
CPU
System Bus
(ALU, Registers
and Control)
Memory
Input
and Output
(I/O)
Data Bus
Control Bus
Adress Bus
Typowy zestaw komputerowy
Typowy komputer
Jednostka centralna
Monitor
Drukarka
Modem
Klawiatura
Mysz
Wnętrze komputera
Zasilacz
Stacja dyskietek
Twarde dyski
Napędy CD-ROM DVD-ROM
Karty rozszerzeń
RAM
Złącza rozszerzeń
Procesor
Wnętrze komputera
Płyta główna
Schemat przepływu informacji
monitor
klawiatura
dysk twardy
mysz
skaner
Procesor + ROM + RAM
drukarka
napęd dysków
magnetofon
ploter
Urządzenia zewnętrzne:
Klawiatura
Mysz
urządzenie wskazujące używane podczas pracy z
interfejsem graficznym systemu komputerowego.
Wynaleziona została przez Douglasa Engelbarta
w 1963 r.
Monitor ekranowy
Obecnie dostępne są rodzaje monitorów: CRT i LCD
Podstawowe parametry monitora to:
•wielkość przekątnej ekranu podawana w calach np.
17”, 19”, 21 ”
•rozmiar plamki świetlnej tj. piksela np. 0,25 mm,
0,26 mm, 0,28 m,
•częstotliwość odświeżania obrazu np. 85 Hz.
Drukarki
igłowe (z ang.
dot printers)
atramentowe (z ang.
ink jet printers)
laserowe (z ang.
laser jet printers)
Ploter
Skaner
Skaner przetwarza dowolne obrazy (fotografie,
rysunki, dokumenty) z postaci analogowej na
cyfrową.
Dyski magnetyczne:
-dyski twarde,
W ploterze kreślenie odbywa się za pomocą
kolorowych pisaków poruszanych w kierunkach
X i Y przez dwa silniki krokowe.
Napędy dyskowe
Taśmy magnetyczne
-dyski elastyczne.
Dyski MO
Dyski optyczne:
-CD,
-DVD.
Możliwości komputerów
Komputery są zdolne do :
Analizy niezmiernej ilości danych
Sterowania robotami
Gry w szachy na poziomie
mistrzów
Komputery nie są w stanie:
Określić choćby w przybliżeniu
wieku osoby na podstawie
zdjęcia
Ze sterty gałązek ułożyć ptasie
gniazdo
Wygrać z amatorem w szachy
przy małej zmianie reguł
GRUPY ZASTOSOWAŃ KOMPUTERÓW
Obliczenia numeryczne, charakteryzujące się dość skomplikowanymi algorytmami i
stosunkowo niewielką ilością danych. Czasem nazywa się je obliczeniami naukowotechnicznymi.
Informacja i zarządzanie, charakteryzujące się na ogół prostymi algorytmami, ale zwykle
bardzo dużą ilością danych. Typowe przykłady takich zastosowań, to informacja bibliograficzna,
informacja turystyczna, systemy bankowe, systemy administracji, państwowej, itp.
Sterowanie procesami, głównie technologicznymi. Aktualna sytuacja o procesie przekazywana
jest do komputera poprzez system czujników. Komputer w oparciu o tzw. ‘ listę sytuacji i reakcji’
analizuje daną sytuację i w zależności od potrzeby odpowiednio reaguje. Domyślamy się że
komputer musi pracować w tzw czasie rzeczywistym (tzn. wystarczająco szybko, żeby zdążyć z
reakcją w każdej sytuacji wymagającej takiej reakcji)
Symulacja. Chodzi tu o takie zastosowania, w których komputer „udaje” (symuluje) coś lub
kogoś. Należą tu m.in. Wszelkiego rodzaju gry (szach, brydż, gry wojenne itd..), w których
komputer występuje w charakterze gracza lub kilku graczy. Do tej grupy należą także programy
komponujące muzykę, symulujące zachowanie rynku, itd.. Zastosowania tego typu należą do
tzw. sztucznej inteligencji.
Społeczeństwo Informacyjne
Kodowanie informacji
Sposób reprezentacji informacji w systemie
Jak to się dzieje ze w pamięci komputera można
przechowywać teksty, obrazy, dźwięki i liczby?
Dzięki kodowaniu informacji.
Kodowanie informacji jest to przedstawienie informacji w
postaci komunikatu zrozumiałego przez odbiorcę. Do
kodowania używamy określonego zbioru, np. cyfr, znaków,
impulsów.
• Kodowanie liczb
• Kodowanie znaków alfabetu/grafiki/dźwięku
Zapis Informacji
ASCII
American Standart Code for Information Interchange
KOD STANDARDOWEGO ZESTAWU ZNAKÓW
Cechy :
Znaki zapisywane są w jednym bajcie
Można zakodować 256 różnych znaków
Standard ASCII - 128 znaków
(znaki sterujące i alfanumeryczne)
Extended ASCII - 256 znaków
(standard ASCII + symbole naród)
Kod ASCII
Char
Dec
Hex Char Dec
Hex Char Dec
Hex Char Dec
Hex
NUL
0
0
SP
32
20
@
64
40
`
96
60
SOH
1
1
!
33
21
A
65
41
a
97
61
STX
2
2
"
34
22
B
66
42
b
98
62
ETX
3
3
#
35
23
C
67
43
c
99
63
EOT
4
4
$
36
24
D
68
44
d
100
64
ENQ
5
5
%
37
25
E
69
45
e
101
65
ACK
6
6
&
38
26
F
70
46
f
102
66
BEL
7
7
`
39
27
G
71
47
g
103
67
BS
8
8
(
40
28
H
72
48
h
104
68
HT
9
9
)
41
29
I
73
49
i
105
69
LF
10
a
*
42
2a
J
74
4a
j
106
6a
VT
11
b
+
43
2b
K
75
4b
k
107
6b
FF
12
c
,
44
2c
L
76
4c
l
108
6c
CR
13
d
-
45
2d
M
77
4d
m
109
6d
SO
14
e
.
46
2e
N
78
4e
n
110
6e
SI
15
f
/
47
2f
O
79
4f
o
111
6f
DLE
16
10
0
48
30
P
80
50
p
112
70
DC1
17
11
1
49
31
Q
81
51
q
113
71
DC2
18
12
2
50
32
R
82
52
r
114
72
DC3
19
13
3
51
33
S
83
53
s
115
73
DC4
20
14
4
52
34
T
84
54
t
116
74
INFORMACJA CYFROWA
Def.1. Informacją cyfrową nazywamy informację przedstawioną w postaci słów
cyfrowych
Def.2. Słowem cyfrowym nazywamy dowolny ciąg składający się z symboli 0 i/lub 1
Długość słowa
Oznaczenie
symboliczne
Nazwa
1
4
8
16
32
64
a0
a3...a0
a7.....a0
a15.......a0
a31.........a0
a63...........a0
bit
tetrada, kęs
bajt
słowo 16-bitowe, słowo
podwójne słowo, dwusłowo
słowo 64-bitowe, czterosłowo
1b - oznacza 1 bit
1B - oznacza 1 bajt
1B=8b
1kB=1024B (210)
1MB=1024kB
1GB=1024MB
Przykład: 20 MB jest ilością informacji ośmiokrotnie większą niż 20Mb
Systemy liczbowe
Przedstawiając
liczbę
dziesiętną
w
systemie binarnym lub heksadecymalnym
należy pamiętać, że w dalszym ciągu jest
to ta sama liczba lecz przedstawiona za
pomocą innego zestawu znaków.
Można więc mówić o kodzie binarnym czy
też kodzie heksadecymalnym.
DZIESIĘTNY SYSTEM LICZBOWY
Do zapisu dowolnej liczby system wykorzystuje
dziesięć symboli (cyfr):
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Dowolną liczbę w systemie dziesiętnym możemy
przedstawić jako następująca sumę:
n 1
(an-1...a1a0)D = an-1
gdzie:
*10(n-1)
+...+ a1
*101
i - numer pozycji w liczbie,
ai - dowolna z cyfr od 0 do 9,
n - ilość cyfr (pozycji) w liczbie
Przykład:
424D = 4*102 + 2*101 + 5*100
pozycja jedynek (0)
pozycja dziesiątek (1)
pozycja setek (2)
+ a0
*100 =
i
a

10
 i
i0
DWÓJKOWY SYSTEM LICZBOWY
Do zapisu dowolnej liczby system wykorzystuje
dwa symbole (cyfry):
0, 1
Dowolną liczbę w systemie dwójkowym możemy
przedstawić jako następująca sumę:
n 1
(an-1...a1a0)B = an-1
gdzie:
*2(n-1)
+...+ a1
*21
+ a0
*20 =
i
a

2
 i
i0
i - numer pozycji w liczbie,
ai - dowolna z cyfr (0 lub 1),
n - ilość cyfr (pozycji) w liczbie
Przykład:
10100B = 1*24 + 0*23 + 1*22 + 0*21 + 0*20
HEKSADECYMALNY (SZESNASTKOWY)
SYSTEM LICZBOWY
Do zapisu dowolnej liczby system wykorzystuje
szesnaście symboli (cyfr i liter):
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Dowolną liczbę w systemie heksadecymalnym
możemy przedstawić jako następująca sumę:n1
(an-1...a1a0)H = an-1
gdzie:
*16(n-1)
+...+ a1
*161
+ a0
*160 =
i - numer pozycji w liczbie,
ai - dowolna cyfra heksadecymalna,
n - ilość cyfr (pozycji) w liczbie
Przykład:
1C2H = 1*162 + C*161 + 2*160
i
a

16
 i
i0
KONWERSJA LICZB
2.
10100B = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 =
= 1*16 + 0*8 + 1*4 + 0*2 + 0*1 = 20D
20:2 = 10
10:2 = 5
5:2 = 2
2:2 = 1
1:2 = 0
czyli
reszta=0
reszta=0
reszta=1
reszta=0
reszta=1
20D = 10100B
kierunek odczytu wyniku
1.
KONWERSJA LICZB
1.
1C2H = 1*162 + C*161 + 2*160 =
= 1*256 + 12*16 + 2*1 = 450D
450:16 = 28
28:16 = 1
1:16 = 0
czyli
reszta=2
reszta=C
reszta=1
450D = 1C2H
kierunek
odczytu
wyniku
2.
reszty zapisujemy w postaci
cyfry heksadecymalnej
KONWERSJA LICZB
Do konwersji zapisu binarnego na heksadecymalny i odwrotnie
wykorzystuje się tabelę:
cyfra heksadecymalna
liczba binarna
liczba dziesiętna
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
A
1010
10
B
1011
11
C
1100
12
D
1101
13
E
1110
14
F
1111
15
Przykład - uzupełnij
132
201
206
121
222
Przykład – Co tu pisze ?
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
?
0
1
0
0
1
0
0
0
?
0
1
0
0
0
0
0
1
?
?
?
Dodawanie liczb binarnych
Do wykonywania dodawania niezbędna jest znajomość tabliczki
dodawania, czyli wyników sumowania każdej cyfry z każdą inną:
0+0=0
0+1=1
1+0=1
1 + 1 = 10
0101 = 5(10)
+0110 = 6(10)
1011 = 11(10)
1100 = 12(10)
+ 0011 = 3(10)
1111 = 15(10)
1010 = 10(10)
+1010 = 10(10)
10100 = 20(10)
1111 = 15(10)
+0001 = 1(10)
10000 = 16(10)
Dodawanie liczb binarnych zadanie
Zsumować liczby binarne:
•
1111001(2) oraz 10010(2)
•
01111111(2) oraz 1(2)
Dodawanie liczb binarnych – problem:
W pamięć komputera liczby binarne przechowywane są w postaci
ustalonej ilości bitów (np. 8, 16, 32 bity). Jeśli wynik sumowania
np. dwóch liczb 8 bitowych jest większy niż 8 bitów, to najstarszy
bit (dziewiąty bit) zostanie utracony. Sytuacja taka nazywa się
nadmiarem (ang. overflow) i występuje zawsze, gdy wynik
operacji arytmetycznej jest większy niż górny zakres danego
formatu liczb binarnych (np. dla 8 bitów wynik większy od 28 - 1,
czyli większy od 255):
11111111(2) + 00000001(2) = 1 00000000(2) (255+1=0)
Odejmowanie liczb binarnych
Przy odejmowaniu korzystamy z tabliczki odejmowania:
0–0=0
0 - 1 = 1 i pożyczka do następnej pozycji
1-0=1
1-1=0
Odejmując 0 - 1 otrzymujemy wynik 1 i pożyczkę (ang. borrow) do
następnej pozycji. Pożyczka oznacza konieczność odjęcia 1 od wyniku
odejmowania cyfr w następnej kolumnie. Identycznie postępujemy w
systemie dziesiętnym:
1101110(2) – 1111(2) =1011111(2) (110(10) – 15(10) = 95(10))
1
1101110
1111
1
11
1101110
1111
11
11111
1101110
- 0001111
1011111
Odejmowanie liczb binarnych :
zadanie
Odjąć liczby binarne:
• 10000000(2) - 0000001(2) = ???
• 10101010(2) - 01010101(2) = ???
Odejmowanie liczb binarnych – problem:
Przy odejmowaniu również może dochodzić do nieprawidłowej sytuacji. Jeśli
od liczby mniejszej odejmiemy większą, to wynik będzie ujemny. Jednakże w
naturalnym systemie binarnym nie można zapisywać liczb ujemnych.
Zobaczymy zatem co się stanie od liczby 0 odejmiemy 1, a wynik ograniczymy
do 8 bitów:
11111111
00000000
- 00000001
11111111
Otrzymujemy same jedynki, a pożyczka nigdy nie znika. Sytuacja taka
nazywa się niedomiarem (z ang. underflow) i występuje zawsze gdy wynik
operacji arytmetycznej jest mniejszy od dolnego zakresu formatu liczb
binarnych (dla naturalnego kodu dwójkowego wynik jest mniejszy od zera).
Konwersja
Konwersja dwójkowo-szesnastkowa i szesnastkowo-dwójkowa
0
0000
1
0001
2
0010
110101111011010101011101(2)
3
0011
1101 0111 1011 0101 0101 1101(2)
4
0100
5
0101
1101 0111 1011 0101 0101 1101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111
D
7
B
5
5
D
110101111011010101011101(2) = D7B55D(16)
D
7
B
5
5
D
1101 0111 1011 0101 0101 1101
D7B55G(16) = 111101010100000001(2)
Download