wykład t i 2008 1


Technologie informacyjne
kierownik przedmiotu:
dr inż. Zbigniew Sroka
prowadzący ćwiczenia:
dr inż. Ireneusz Laks
dr inż. Zbigniew Walczak
Katedra Mechaniki Budowli i Budownictwa Rolniczego
Piątkowska 94 pok. 222
SZCZEGÓAOWY PROGRAM NAUCZANIA
SZCZEGÓAOWY PROGRAM NAUCZANIA
Kierunek studiów: Inżynieria Środowiska (studia dzienne inżynierskie)
:
Semestr: 2
Liczba godzin wykładu 15
Liczba godzin ćwiczeń 15 (2godz. co 2 tygodnie)
I
" Elementy historii informatyki. Komputery i ich klasyfikacja.
Generacje technologiczne
" Bloki funkcjonalne komputera i ich podstawowe cechy
" Podstawowe parametry funkcjonalne i technologie wykonania
elementów typowego komputera klasy PC: mikroprocesory,
pamięci półprzewodnikowe, nośniki i urządzenia pamięci
masowej
" Urządzenia zewnętrzne i ich cechy: drukarki, plotery, skanery
" Arytmetyczne i logiczne podstawy działania komputera: binarny
" Arytmetyczne i logiczne podstawy działania komputera: binarny
system numeracji, algebra Boole a
" Przechowywanie danych: reprezentacja tekstu, zapis obrazów,
zapis liczb całkowitych, zapis liczb ułamkowych, kompresja
danych
" Operowanie danymi: cykl rozkazowy, program i jego wykonanie
" Systemy operacyjne: systemy użytkowania komputerów jedno i
wieloprocesorowych, podział oprogramowania, elementy systemu
operacyjnego
" Komunikowanie się z jądrem systemu operacyjnego poprzez interfejs
użytkownika: (i) interfejs znakowy, (ii) interfejs graficzny;
" Podstawowe cechy przykładowych systemów operacyjnych: Linuks i
Windows; realizacja najważniejszych poleceń
" Sieci komputerowe: sieci lokalne, sieci rozległe, intersieci,
" Sieci komputerowe: sieci lokalne, sieci rozległe, intersieci,
" Podstawowe usługi w INTERNECIE:
- poczta elektroniczna,
- WWW,
- przesyłanie plików przez FTP.
" Ochrona prawna oprogramowania. Programy destrukcyjne.
Bezpieczeństwo sieci otwartych
II
" Arkusz kalkulacyjny:
- formuły, adresy względne i bezwzględne,
- realizacja operacji na macierzach,
- przykłady zastosowań do obliczeń inżynierskich
III
" Systemy baz danych:
- pojęcia podstawowe,
- pojęcia podstawowe,
- relacyjny model danych
- podstawy SQL
Literatura
podstawowa:
1. Beynon-Davies P.: Systemy baz danych. WNT Wa-wa, 2003
2. Brookshear J.G.: Informatyka w ogólnym zarysie. WNT Warszawa
2003.
3. Duch Wł.: Fascynujący świat komputerów. Wyd. Nakom. 1997. .
4. Wosiewicz B.: Elementy informatyki. Wyd. AR Poznań, 1989.
uzupełniająca:
1. Petersen R.: Arkana LINUX. wyd. RM. 1997.
2. Harel D.: Rzecz o istocie informatyki. WNT Wa-wa. 1992.
3. Comer D.E.: Sieci komputerowe i intersieci. WNT Wa-wa. 2000.
3. Comer D.E.: Sieci komputerowe i intersieci. WNT Wa-wa. 2000.
4. Gruber M.: SQL. wyd. Helion. 1996.
Technologie informacyjne
( informatyka )
(1) Badania naukowe i postępowanie praktyczne związane
przechowywaniem, przesyłaniem, przetwarzaniem informacji
(2) Zespół dyscyplin naukowych i technicznych zajmujących
się gromadzeniem, przetwarzaniem, udostępnianiem danych
zwłaszcza przy użyciu środków automatycznych
(3) Dziedzina wiedzy i działalności zajmująca się algorytmami
informatyka (Niemcy i Europa)
computer science - nauki komputerowe USA
computational science -  nauki obliczeniowe Kanada
przechowywanie,
przetwarzanie, algorytmy
przesyłanie, przetwarzania
udostępnianie,
środek automatyczny komputer
informacje dane
Teoria informacji
Teoria informacji zajmuje się badaniem ilości przekazywanych
informacji, kodowaniem, przesyłaniem  ma podstawowe znaczenie w
łączności, telekomunikacji.(obecnie teleinformatyka)
Twórcą jej jest C.Shannon (podstawowe prace 1948-1949).
Najbardziej znane: twierdzenie Shannona określa maksymalną prędkość
przesyłu sygnału w systemach z szumami.
przesyłu sygnału w systemach z szumami.
Najmniejszą jednostką informacji jest bit (kawałek).
yródło wysyła informację wielkości jednego bita gdy może przesyłać jeden z
dwóch komunikatów.
Historia
" czasy starożytne liczydło (urządzenie cyfrowe!!!)
" 1622 suwak logarytmiczny (urządzenie analogowe)
" 1833 maszyna różnicowa Charlesa Babbage a (Cambridge);
koncepcja maszyny analitycznej;
(z Babbagem współpracowała Augusta Ada, księżna Lovelace, córka Lorda Byrona)
maszyna analityczna uwa\ana za
mechaniczny pierwowzór komputera
skład-przechowywanie wyników
pośrednich (pamięć)
młyn-arytmometr
mechanizm sekwencyjny-decydował o
kolejności wykonywanych operacji
(program)
Do wprowadzania danych miały być używane karty
dziurkowane (wzorowane na sterowaniu maszyn tkackich
J.Jacquarda
1944 Komputer MARK I Howarda Aikena; (przekazniki),
1942 Komputer ABC Johna Atanasoffa i Clifforda Bery (lampy elektronowe) -
pierwszy  prawdziwy komputer (Iowa State College)
1945 Opublikowanie artykułu Johna von Neumanna (uznawany za wynalazcę komputera)
zawierającego teoretyczne podstawy współczesnych komputerów,
początek okresu komputerów pierwszej generacji;
 maszyna z Princeton -
- (1) dane i program w pamięci,
- (1) dane i program w pamięci,
- (2) kodownie danych i rozkazów w systemie binarnym
1946 komputer ENIAC Johna Mauchly i Prospera Eckerta;(lampy elektronowe, 30ton)
od projektów MARK I oraz ENIAC rozwinął się przemysł komputerowy
1951 Komputer UNIVAC pierwszy komputer zastosowany w działalności komercyjnej;
Generacja 0 I II III IV
Technologia przekazniki lampy tranzystory półprzewodnikowe obwody o dużej skali scalania
obwody scalone LSI i VLSI
Rok 1945 1958 1966 1971
Szybkość 10-3 10-5 10-7 10-8
(średni czas wykonania operacji maszynowej)
superkomputer CRAY 4 100 mld operacji na sekundę t=10-11 s (wieloprocesorowy)
V-
V- . (1991 - 1997) maszyny te rozwijają masowe
przetwarzanie równoległe (massive parallel processing -
MPP), z nowymi technologicznymi rozwiązaniami np.
Cray 1 arsenek galu zamiast krzemu
1976
VI- ? biokomputery
Komputery i ich klasyfikacja
" komputer - urządzenie do automatycznego przetwarzania danych
(informacji), działający bez żadnej lub prawie żadnej interwencji człowieka
" inne nazwy maszyna matematyczna, mózg elektronowy
" cyfrowe, analogowe, hybrydowe.
Komputery cyfrowe operują danymi dyskretnymi. Obecnie właściwie wszystkie
komputery to komputery cyfrowe.
informacja cyfrowa (dyskretna) informacja analogowa
4,5 4,5
4 4
3,5 3,5
3 3
2,5 2,5
2 2
1,5 1,5
1 1
0,5 0,5
0 0
1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8
Klasyfikację można przeprowadzić np. według:
" liczby adresów w rozkazach (cecha zastosowanego procesora)
" liczby realizowanych jednocześnie programów (raczej cecha systemu operacyjnego)
" liczby procesorów
" wielkości
Podział komputerów ze względu na wielkość i obszar zastosowań
" sterujące - wbudowane w urządzenie (pralka, wtrysk paliwa w samochodzie itp.)
" domowe - prosta konstrukcja, często odbiornik TV zamiast monitora
" osobiste (PC)- z reguły prosty system operacyjny, komputer o małej mocy
obliczeniowej, programy  biurowe , klient w sieci
" przenośne - często konieczny do diagnostyki i ustawiania parametrów pracy
różnych urządzeń mających wbudowane komputery sterujące np.. nowoczesne
 inteligentne pompy
" stacja robocza- wielodostępny system operacyjny (Unix, NetWare), serwer
sieciowy
" minikomputer -obsługa małej firmy
" mainframe - obsługa dużej firmy, obsługa wielu urządzeń
" superkomputer - ogromne moce obliczeniowe, systemy wieloprocesorowe,
realizowane przetwarzanie równoległe (parallel processing)
Klasyfikacja komputerów według Flynna (ok. roku1970)
(modelu przetwarzania)
" model przetwarzania
SISD  single-instruction-stream-over- single-data-stream
SIMD - single-instruction-stream-over- multiple-data-streams
MISD - multiple instruction streams over single data stream
MIMD - multiple-instruction-streams-over-multiple-data-streams
Bardziej praktyczna (niż Flynna) klasyfikacja komputerów
" komputer klasyczny obliczenia wg modelu SISD
" komputer wektorowy obliczenia wg. modelu SIMD
" komputer SMP (SymmericMultiProcessing)
wiele procesorów, połączonych z RAMem wspólną magistralą, zwiększanie liczby procesorów
sensowne do pewnego poziomu, współdzielona magistrala łącząca je z RAM stanowi wąskie gardło
sensowne do pewnego poziomu, współdzielona magistrala łącząca je z RAM stanowi wąskie gardło
(obecne nowoczesne PC mogą być zaliczane do tej klasy, często możliwe 2-4 procesory na płycie)
" komputer MPP (MassiveParallelProcessing) każdy procesor ma swoją
pamięć, bardzo wydajne przetwarzanie równoległe - współczesne superkoputery
" konglomeraty komputerów- klastry, farmy, metakomputery
Bloki funkcjonalne komputera (klasycznego)
" procesor,
" pamięć,
" magistrala (dane, adresy, sygnały sterujące)
" układy sprzęgające
" urządzenia zewnętrzne (peryferyjne)
Zegar systemowy generuje impulsy umożliwiając odpowiednią koordynację
działań poszczególnych elementów systemu.
Procesor (CPU)
Procesor przetwarza informacje i steruje pozostałymi elementami
komputera. (pewne elementy komputera posiadają jednak dużą autonomię, własny
procesor, pamięć układy sterowania itd)
W prostym procesorze wyróżnić można bloki funkcjonalne:
" układ sterowania
" jednostka arytmetyczno-logiczna (ALU)
" rejestry
" rejestry
(bloki połączone są wewnętrzną szyną danych i sygnałów sterujących)
Procesor wymienia informacje z otoczeniem poprzez:
" szynę danych
" szynę adresową
" szynę sygnałów sterowania
szyna danych
bufor
wewnętrzne sygnały sterowania
jednostka
układ
sterowania arytmetyczno-
szyna sygnałów
szyna sygnałów
logiczna
logiczna
sterowania
blok
rejestrów
bufor
szyna adresów
Jednostka arytmetyczno-logiczna (ALU)-arytmometr
wykonuje wszystkie operacje arytmetyczne i logiczne
W układzie sterowania występuje między innymi
dekoder rozkazów.
W bloku rejestrów można wyróżnić:
" akumulator,
" rejestry uniwersalne,
rejestry uniwersalne,
" rejestr znaczników (poszczególne bity informują o stanie poprzednich
operacji, np. czy wystąpiło przeniesienie)
" rejestr rozkazu (kod rozkazu)
" rejestry specjalne:
- licznik rozkazów LR,(adres następnego rozkazu)
- wskaznik stosu,
- wektor przerwań
- licznik odświeżania itd..
Podstawowe parametry procesora:
" długość słowa 8,16,32 bity
" częstotliwość taktowania np. 266Mhz, 1,2Ghz
" lista rozkazów
" architektura (CISC, RISC, VLIW)
Popularne procesory:
Popularne procesory:
8 bitowe Zilog Z80
16 bitowe Intel 8086 80286
32 bitowe Intel 80386
Intel Pentium, AMD K6, Cyrix M2
64 bitowe Intel Itanium, AMD Opteron
Mikroprocesor
Za wynalazcę mikroprocesora uważany jest T.Hoff (1969) pracujący
dla firmy Intel.
Mikroprocesory to układy półprzewodnikowe VLSI.
(planowane jest wprowadzenie technologii 0,06 mikrona, już nie aktualne)
Najnowsze technologie: w 2007 Intel wyprodukował
mikroprocesory (Core2DUO, Xeon) w technologii 45nm
Szacuje się, że teoretyczna granica
częstotliwości taktowania wynosi ok. 5GHz
(pomimo ogromnej miniaturyzacji )
Częstotliwość pracy procesora (taktowanie)
Światło przebiega 0,3m w 1 nanosekundę (1*10-9s).
Sygnały elektryczne przebiegają z prędkością nie przekraczającą
prędkości światła.
Z uwagi na małe wymiary przesyłanie danych wewnątrz procesora
może być sterowane sygnałem zegarowym o bardzo dużej częstotliwości
(GHz). Np. Intel Pentium4 Extreme Edition 3,73GHz
(GHz). Np. Intel Pentium4 Extreme Edition 3,73GHz
Natomiast są silniejsze ograniczenia przy zwiększaniu taktowania
magistrali systemowej (większe odległości, problem miniaturyzacji, zakłócenia).
Pobranie i wykonanie rozkazu musi trwać kilka nanosekund.
Architektura procesora
CISC- procesor o złożonej liście rozkazów
(Complex Instruction Set Computer)
RISC- procesor o zredukowanej liście rozkazów
(Reduced Instruction Set Computer)
Obecnie podział na na te dwie grupy zaciera się.
Obecnie podział na na te dwie grupy zaciera się.
Niektóre procesory CISC (np. PentiumPro) wyposażone są w wewnętrzny
dekoder tłumaczący złożone instrukcje x86 na sekwencje
instrukcji prostych.
Można powiedzieć, że jądro procesora pracuje w trybie RISC.
Z drugiej strony niektóre konstrukcje procesorów RISC (np. PowerPC 601)
ma bogatą listę rozkazów.
Pamięć operacyjna (PAO)
Zbiór komórek w których przechowywane są zarówno dane jak i rozkazy.
Pamięć operacyjna jest pamięcią ulotną.
Pamięć ma struktura bajtową
Ze względu na możliwość dokonywania zapisu i/lub
odczytu pamięć dzielimy na :
odczytu pamięć dzielimy na :
RAM - pamięć o dostępie swobodnym, możliwy zapis i odczyt
ROM - pamięć tylko do odczytu
Podstawowe parametry charakteryzujące pamięć:
" pojemność podawana w bajtach B
1KB=210=1024 B 1MB= 210=1024 KB
" czas dostępu
szybkie pamięci (półprzewodnikowe) kilka nanosekund (ns = 10-9s)
Pamięć podręczna (cache)
Bardzo szybka pamięć (ale droga!)
Podręczna pamięć wewnątrz procesora L1. Dołączona do struktury
procesora
Pamięć podręczna wyższego poziomu L2. Kontroler pamięci L2 może
być zintegrowany z CPU lub na płycie głównej- sama pamięć L2
być zintegrowany z CPU lub na płycie głównej- sama pamięć L2
często umieszczona poza CPU.
W niektórych rozwiązaniach zastosowano także L3.
Pamięć podręczna jest zarządzana przez specjalny kontroler.
Koniec (1,2 wykład)
Schemat blokowy współczesnego procesora
kolejka rozkazów
do wykonania
Kod programu
prefetch
pamięć ROM
adres
procesora
dekoder
ROM
dane
BU
BU
AU
Sygnały sterujące
EU
Alu Fpu
dane
blok komunikacyjny
jednostka
blok wykonawczy
adresująca
Zwiększanie wydajności procesora
Przetwarzanie potokowe rozkazów (pipeline)
Przetwarzanie każdego rozkazu podzielone jest na fazy (stopnie)
Po wykonaniu pierwszej fazy pierwszego rozkazu następuje pobranie
następnego rozkazu i dalej wykonywana jest 2 faza rozkazu 1 i równocześnie
1 faza rozkazu 2 itd.
1 faza rozkazu 2 itd.
Procesor przetwarza równocześnie kilka rozkazów
Np. procesor Pentium I - liczba stopni w potoku wynosi 5
PentiumPro - 12 stopni w potoku
Zastosowanie kilku potoków
np. procesor Pentium I posiada dwa potoki przetwarzania operacji
stałoprzecinkowych oznaczonych U i V oraz jednostkę FPU
Przepowiadanie
Rozkazy w których następuje skok zmieniają sekwencję wykonywanych
instrukcji. Jakie instrukcje będą wykonane tzn. jaką ścieżką należy
podążyć, okazuje się w trakcie przetwarzania.
Program przed wykonaniem jest analizowany i instrukcje skoku są
opisywane w specjalnej tablicy:
" adres rozkazu do którego ma być wykonany skok
" bity (lub tylko 1 bit) sygnatury
" bity (lub tylko 1 bit) sygnatury
Bity sygnatury informują czy przewidywane jest wykonanie skoku.
Przepowiadanie :
" statyczne (przepowiedzenie już w fazie kompilacji, wystarczy 1 bit)
" dynamiczne
00 - mocne założenie o braku skoku
01 - słabe założenie o braku skoku
10 - słabe założenie o skoku
11 - mocne założenie o skoku
(a) przyjmuje się założenie o braku skoku 00 dla nie realizowanych jeszcze
instrukcji
(b) przejście bez skoku nie modyfikuje sygnatury; przejście ze skokiem
powoduje zmianę sygnatury na 01 -lecz nadal przepowiada się brak skoku
( c ) następne przejście bez skoku powoduje powrót do 00;
( c ) następne przejście bez skoku powoduje powrót do 00;
przejście ze skokiem daje 11 - od tego momentu przewidywany jest skok
Caching (pamięć podręczna)
L1, L2, L3
Bardzo istotna gdy procesor przetwarza tak szybko, że przesłania do/z RAMu
spowalniają (procesor musi bezczynnie czekać)
Pamięć
Pamięć operacyjna i pamięć zewnętrzna (masowa)
Ze względu na sposób dostępu można wyróżnić pamięć :
" o dostępie cyklicznym
" o dostępie sekwencyjnym
" o dostępie swobodnym
najważniejsze parametry charakteryzujące pamięć
najważniejsze parametry charakteryzujące pamięć
(urządzenia i nośniki):
" pojemność
" czas dostępu
" trwałość zapisu (szczególnie dot. nośników)
" przepustowość (transfer) MB/s lub Mb/s
" odporność na błędy (kontrola poprawności, możliwość korekcji błędów)
Pamięć operacyjna (PAO)
Ze względu na możliwość dokonywania zapisu i/lub
odczytu pamięć dzielimy na :
RAM - pamięć o dostępie swobodnym, możliwy zapis i odczyt
ROM - pamięć tylko do odczytu
technologie wykonania
rdzeniowa (historia), półprzewodnikowa
Technologie półprzewodnikowych pamięci ROM
mask ROM program wprowadzany w trakcie produkcji
PROM możliwość jednokrotnego zapisu w specjalnym programatorze
EPROM możliwość wielokrotnego zapisu w programatorze
można wymazać jej zawartość za pomocą promieniowania ultrafioletowego
EEPROM możliwy wielokrotny zapis (nie jest potrzebny programator)
wymazywanie impulsami elektrycznymi
FLASH udoskonalony EEPROM, duże upakowanie, duża szybkość, wytrzymują ok.100 tyś
cykli programowania i kasowania, moduł pamięci flash programowany poprzez interfejs USB
to tzw. Pendrive (obecnie do 16GB!)
Technologie półprzewodnikowych pamięci RAM
" SRAM statyczne (przerzutniki),
pamięć SRAM stosowane są jako pamięć podręczna
" DRAM dynamiczne (kondensator) konieczne odświeżanie częściej niż raz w ciągu
sekundy
różne typy (asynchroniczne i synchroniczne)
Pamięć masowa (urządzenia pamięci masowej i nośniki)
Pamięć masowa
urządzenia pamięci masowej są połączone z systemem komputerowym poprzez
interfejs (kontroler)  są to urządzenia zewnętrzne
" bębny magnetyczne (historia)
" taśmy magnetyczne (częściowo historia)
" dyski magnetyczne (elastyczne, sztywne)
" dyski optyczne, magneto-optyczne
Technika zapisu na dyskach magnetycznych
" jeden lub kilka talerzy umieszczonych jest na wspólnej osi
" powierzchnia talerzy pokryta jest ferromagnetykiem
" zapis na koncentrycznych ścieżkach, ścieżki podzielone są na sektory,
zbiór równooddalonych ścieżek na wszystkich talerzach nazywamy
cylindrem
Pamięć dyskowa opracowana w 1956r. w IBM o pojemności 5MB
złożona była z 50 talerzy o średnicy 24 cale.
Informacja jest zapisywana na dysku przez głowicę.
Zapis i odczyt za pomocą indukcyjnej głowicy uniwersalnej
(zapisująco-odczytująca)
Od 1961r. stosowane są głowice ślizgające się po powierzchni dysku.
(efekt Bernoulliego i tak dawniej nazywano te dyski)
Prędkość liniowa ferromagnetyka na dysku względem głowicy przekracza 100km/h,
a odległość unoszącej się nad nim głowicy  50 milionowych części milimetra.
Warstwę magnetyczną pokrywa się cienką warstwą węgla utwardzonego do
diamentu! Podnosi to trwałość zapisu do MTBF rzedu mln. godzin
(średni czas pomiędzy awariami)
Nowe technologie (od 1991r)- głowice magneto-oporowe MR i GMR
Osiągnięto (1997r) gęstość zapisu 10Gb/cal^2
interfejsy pamięci masowych (w komputerach PC)
" ATA(IDE), ATAPI(EIDE), SATA, SCSI
" ATA(IDE), ATAPI(EIDE), SATA, SCSI
obecnie średni czas dostępu dla szybkich dysków to ok. 10ms
pojemność ponad 100GB, prędkość obrotowa 7200rpm
Technologie zapisu na dyskach optycznych
Konstrukcja płyty CD
Krążek poliwęglanowy o średnicy 12 cm (lub 8cm mini CD)
Rowek o długości ok. 7km ułożony w spiralę. Początek ścieżki
od strony wewnętrznej (inaczej niż na klasycznej płycie gramofonowej)
Scieżka o szerokości 0,66m co 1,6 m - daje to zapis o gęstości
16000 tpi (ścieżek na cal, na dyskietkach mamy gęstość 96tpi)
Ścieżka pokryta jest warstwą aluminium jako warstwą odblaskową.
Światło lasera (arsenek galu) o długości fali 780nm.
Prędkość obrotowa nośnika jest zmieniana tak aby zachować stałą prędkość
liniową - 1,25m/s dla czytników 1x
(dla nowszych odpowiednia wielokrotność np. 24x, 52x).
Różne technologie: CD-ROM, CD-R, CD-RW, CD-DVD
CD-ROM
Zapis wprowadzany jest poprzez wytłoczenie nośnika odpowiednio przygotowaną matrycą -
opłacalne tylko przy masowej produkcji
z uwagi na duży koszt wytworzenia matrycy
CD_R
Możliwy jest jednorazowy zapis (wielokrotne odtwarzanie). Naniesiona jest warstwa
organicznego barwnika ciemniejącego pod wpływem naświetlania wiązką laserową w trakcie
nagrywania. Czysty CD-R posiada fabrycznie wytłoczoną ścieżkę prowadzącą głowicę
lasera. Jako warstwę odbijającą używa się złota
CD-RW
CD-RW
Możliwy jest wielokrotny zapis.Technologia Phase-Change lub MO (magneto optyczna)
MO - dane na dysku zapisane są w formie magnetycznej. Odczyt realizowany jest optycznie.
Różnie namagnesowany nośnik daje inny kąt polaryzacji odbitej wiązki światła laserowego
(efekt Kerra). Zapis -wytwarzane jest pole magnetyczne, zmiana namagnesowania następuje
jednak tylko w miejscu podgrzania laserem do temperatury 1800 C (temp. Curie stopu
nośnika)Po ostudzeniu zapis magnetyczny jest praktycznie nieusuwalny.Trwałość szacuje się
na 30-50lat a liczba zapisów 1000
PCH  promień lasera podgrzewa warstwę czynną aż do temp. topnienia, krzepnąc wolniej
lub dłużej (zależy od mocy promienia) tworzy formę krystaliczną lub amorficzną , które mają
inne własności optyczne
Zapis na taśmach magnetycznych
Dawniej zapis na szpulach taśmy magnetycznej. Obecnie wyłącznie
na kasetach z taśmą. Urządzenie zapisująco-odczytujące dane na kasetach z
taśmą magnetyczną to streamer.
Jest to pamięć o dostępie sekwencyjnym
Stosowane do tworzenia kopii archiwalnych
Dwie technologie zapisu:
" liniowa
" liniowa
" helikalna (ukośny)
Napędy nośników wymiennych
FDD - starsza wersja 5,25 o pojemności 1,2MB (obecnie już nie używana)
3,5 o pojemności 1.44MB (firmowe nośniki trwałość zapisu powyżej 20lat)
300 obr/min, transfer do 62,5kB/s; zapis praktycznie z szybkością 30kB/s
135 tpi
LS-120 (laser servo) - obsługa starych 3,5  dyskietek oraz specjalnych nośników
o pojemności 120MB - szybkość 720 obr/min, gęstość 2490 tpi, transfer 250kB/s
Urządzenia wejścia/wyjścia
1 Jednokierunkowe urządzenia wejścia:
" czytnik kart perforowanych (historia)
" czytnik taśmy perforowanej (historia)
" czytniki dokumentów (ankiety)
" digitizery (czytnik obrazów wektorowych)
" digitizery (czytnik obrazów wektorowych)
" skanery (czytnik obrazów rastrowych)
Cyfrowy zapis obrazów
dwie techniki: wektorowa i rastrowa
Obraz rastrowy tworzy siatka punktów (pikseli). Obraz wektorowy tworzy zbiór
podstawowych elementów graficznych (linia, okrąg, prostokąt) zapisanych w postaci
formuł matematycznych.
UWAGA! Obraz pokazywany na ekranie monitora komputerowego ma postać obrazu
rastrowego (plamki).
Cyfrowy zapis obrazów
dwie techniki: wektorowa i rastrowa
Obraz rastrowy tworzy siatka punktów (pikseli). Obraz wektorowy tworzy zbiór
podstawowych elementów graficznych (linia, okrąg, prostokąt) zapisanych w postaci
formuł matematycznych.
UWAGA! Obraz pokazywany na ekranie monitora komputerowego ma postać obrazu
rastrowego (plamki).
przykład obrazu rastrowego
i jego powiększony fragment
i jego powiększony fragment
Najważniejszym parametrem urządzenia (lub obrazu) do tworzenia obrazów
rastrowych jest rozdzielczość  ppi  piksele na cal, dpi  punkty na cal, spi 
próbek na cal
Skaner- urządzenie do digitalizacji obrazu, przetwarza obraz analogowy na
rastrowy.
Parametry skanera: rozdzielczość, rozdzielczość bitowa (głębia barw), wymiary
materiałów do skanowania, dynamika (gęstość optyczna 0-4, 4-najlepsza jakość)
Rozdzielczość:
600dpi  popularne skanery;
profesjonalne, używane w poligrafii nawet ponad 10000dpi
Głębia barw  w modelu RGB używając 8 bitów na każdy kanał (rozdzielczość 24
bitowa) mamy 256x256x256= 16 777 216 paletę barw
Technika skanowania
" CCD (półprzewodnikowe elementy światłoczułe)
" PMT fotopowielacze (technika lamp elektronowych)
Rodzaje skanerów:
" ręczne
" płaskie
schemat skanera płaskiego
" bębnowe
Schemat skanera bębnowego
2. Jednokierunkowe urządzenia wyjścia:
" perforator kart (historia)
" perforator taśmy (historia)
" drukarka: wierszowa (historia), sztyftowa, termiczna,
atramentowa, laserowa, specjalne np. systemem Braile a
" ploter (pisakowy, tnący, z głowicą atramentową)
3.Urządzenia zwrotne
" monitor ekranowy (alfaskop) (monitor w trybie znakowym +klawiatura)
" monitor graficzny wraz z urządzeniem wskazującym
Koniec (3,4 wykład)
Arytmetyczne podstawy działania komputerów
Do zapisu liczb stosuje się system binarny
Pozycyjne systemy numeracji
" podstawa systemu (zasada numeracji) p>1
" cyfry liczba cyfr wynosi p np. system dziesiętny
" cyfry liczba cyfr wynosi p np. system dziesiętny
cyfry od 0 do 9, system szesnastkowy 0-9 A B C D E F
w systemie binarnym tylko 0 i 1
" liczba to ciąg cyfr
an an-1an-2...a2a1a0,a-1a-2a-3...a-n
poszczególnym kolumnom przypisana jest waga, wagami są
kolejne potęgi podstawy
liczba X zapisana za pomocą ciągu cyfr systemu pozycyjnego
o podstawie p ma wartość:
X = an pn + an-1 pn-1 +...+ a1 p1 + a0 p0 + a-1 p-1 + a-2 p-2 +...
np. (10110,0011)2 = 22+1/8 +1/16=22,1875
" dla każdego systemu konieczne jest podanie tabliczek dodawania
oraz mnożenia, w systemie binarnym jest to bardzo proste:
+ 0 1 * 0 1
0 0 1 0 0 0
1 1 10 1 0 1
przykłady dodawania, odejmowania, mnożenia i dzielenia
w systemie binarnym (sprawdzić):
dodawanie
1111,111+1011,011 = 11011,010
1 1 1 1 1 1 1 przeniesienia
1 1 1 1,1 1 1
+1 0 1 1,0 1 1
+1 0 1 1,0 1 1
--------------------
1 1 0 1 1,0 1 0
(1111,111)2=8+4+2+1+1/2+1/4+1/8=15,875
(1011,011)2=8+2+1+1/4+1/8=11,375
15,875+11,375=27,25
odejmowanie
mnożenie
10 10 10 pożyczki
1 0 1 1 0 1,1 0 1
1 1 0 1 1,1 1
- 0 1 0 0 1 0,0 1 0
* 1 0 1,0 1 1
---------------------------------
------------------------------------------
1 1 0 1 1,0 1 1
1 1 0 1 1 1 1
+ 1 1 0 1 1 1 1
sprawdzenie
------------------------------------------
45,625-18,25=27,375
1 0 1 0 0 1 1 0 1
0 0 0 0 0 0 0
+ 1 1 0 1 1 1 1
+ 1 1 0 1 1 1 1
------------------------------------------
1 0 0 1 1 0 0 0 1 0 1
0 0 0 0 0 0 0
+ 1 1 0 1 1 1 1
------------------------------------------
1 0 0 1 0 1 0 1,0 0 1 0 1
sprawdzenie
27,75*5,375=149,15625
dzielenie
1 1 0 1 1 1 0 1 1 0 1: 1 0 1 1= 1 0 1 0 0 0 0 1, 0 0 1 0 1 1 1
1 0 1 1
0 0 1 0 1 1
1 0 1 1
0 0 0 0 0 1 1 0 1
1 0 1 1
0 0 1 0 0 0 0
1 0 1 1
1 0 1 1
0 1 0 1 0 0
1 0 1 1
1 0 0 1 0
1 0 1 1
0 1 1 1 0
1 0 1 1
0 0 1 1
sprawdzenie:
1773:11= ok. 161,18
Translacja z systemu dziesiętnego na binarny
" zamiana liczby całkowitej: liczbę dzielimy całkowicie przez dwa i
zapisujemy resztę, uzyskany wynik w dalszym kroku dalej dzielimy,
postępujemy tak długo aż w wyniku uzyskamy zero
np. dokonać translacji liczby 203
203:2 =101 + reszta 1
101:2= 50 + reszta 1
101:2= 50 + reszta 1
50:2= 25 + reszta 0
25:2 = 12 + 1
12:2 = 6 + 0
6:2= 3 + 0
3:2= 1 + 1
1:2= 0 + 1
wynik odczytujemy  od końca w=11001011
" liczbę ułamkową zamieniamy wg następującego algorytmu:
mnożymy część ułamkową razy dwa,
zapisujemy część całkowitą,
część ułamkowa przechodzi do dalszego postępowania
np. dokonać translacji liczby 0,68
0,68*2=0,36 +1
0,36*2=0,72 +0
0,72*2=0,44 +1
0,72*2=0,44 +1
w=0,1010111.......
0,44*2=0,88 +0
0,88*2=0,76 +1
0,76*2=0,52 +1
0,52*2=0,04 +1
.........
uwaga ! translacja liczby ułamkowej nie musi być skończona
np. 0,1 skończone rozwinięcie w systemie dziesiętnym
lecz w systemie binarnym już nie
Zamiana liczb z układu o szesnastkowego i ósemkowego
na binarny
(i translacja w drugą stronę)
podstawy tych systemów są ze sobą związane w szczególny sposób
23=8 24=16
" każdą cyfrę szesnastkową zamieniamy oddzielnie
" każdą cyfrę szesnastkową zamieniamy oddzielnie
na czterocyfrową liczbę binarną
przykład (1F)16= (0001 1111)2
" każdą cyfrę ósemkową zamieniamy oddzielnie
na trzycyfrową liczbę binarną
przykład (370,24)8=011 111 000,010 100
każdej cyfrze przypisana jest odpowiednia liczba 3 lub 4 cyfrowa binarna
(patrz tabela)
binarny  ósemkowy binarny - szesnastkowy
bin oct
bin hex bin hex
000 0
0000 0 1000 8
001 1
0001 1 1001 9
010 2
011 3
0010 2 1010 A
100 4
0011 3 1011 B
101 5
110 6
0100 4 1100 C
111 7
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F
Zamiana z systemu binarnego na szesnastkowy (heksadecymalny)
i ósemkowy analogicznie
" cyfry liczby binarnej dzielimy na grupy cztero cyfrowe -przy
zamianie na układ szesnastkowy i trzycyfrowe przy zamianie
na układ ósemkowy
" każdej grupie przypisujemy jedną cyfrę systemu szesnastkowego
(lub ósemkowego)
(lub ósemkowego)
przykład
0100 1100 = (4 C)16= 4*16+12*1=76
001 001 100 = (114)8=1*64+1*8+4=76
Przypisanie 3 i 4 cyfrowych liczb binarnych cyfrom szesnastkowym
lub ósemkowym odbywa się według tabeli
Zapisywanie liczb w komputerze
Zapis stałoprzecinkowy i zmiennoprzecinkowy
Zapis stałoprzecinkowy
bit znaku, część całkowita, część ułamkowa  określona liczba bitów
przewidziana na część całkowitą i na część ułamkową,
0 0 1 1 0 1 0 0 1 1 1 0 1 0 0
taki sposób zapisu dla liczb rzeczywistych nie jest wygodny
(przy zapisie bardzo dużych liczb potrzebnych jest wiele bitów na zapis części całkowitej,
przy bardzo małych liczbach odwrotnie)
Taki zapis stosuje się tylko do zapisu liczb całkowitych
Ten sposób kodowania nazywany jest znak-moduł
Inny wygodniejszy sposób zapisu to zapis z uzupełnieniem do dwóch
(inna nazwa kod U2)
kod U2
" kod o ustalonej długości (liczba bitów)
" najbardziej znaczący bit ma wagę ze znakiem minus
" jednolicie zapisujemy liczby dodatnie i ujemne
" operacje dodawania i odejmowania wykonuje się w taki
sam sposób (odejmowanie to dodawanie liczby ujemnej)
sam sposób (odejmowanie to dodawanie liczby ujemnej)
" przeniesienie (ze skrajnej lewej kolumny) pomijamy
przykład kod U2 6-cio bitowy (dodawanie 28+2)
zapis wartości 28 w U2 011100
zapis wartości 2 w U2 000010
---------
suma 011110
przykład kod 6-cio bitowy
sumowanie liczb ujemnych (-29)+(-1)
zapis liczby (-29) w U2 100011
zapis liczby (-1) w U2 111111
---------
suma w U2 (-30) 100010
(pomijamy przeniesienie z najstarszej pozycji)
" zapis liczb ujemnych w U2
a) zapisujemy liczbę dodatnią o takim samym module
a) zapisujemy liczbę dodatnią o takim samym module
b) dokonujemy zamiany znaku - prosty algorytm (operacje na bitach)
zamiana znaku- kopiujemy wszystkie bity od prawej strony (tzn. od bitów najmłodszych) aż do napotkania jedynki
(łącznie z nią) dalsze bity z tzw. uzupełnieniem 0 zamieniamy na 1 a 1 na 0
przykład zapisać liczbę (-4) w 6-cio bitowym kodzie U2
zapis liczby 4 000100
zmiana znaku 111100 to zapis (-4) w U2
" nadmiar - występuje gdy sumujemy dwie liczby o takim samym bicie znaku a
w wyniku otrzymujemy inny bit znaku
przykład
(6cio bitowy kod U2)
wykonując sumowanie (-30)+(-4)=-34 wystąpi przepełnienie bo wyniku
nie można poprawnie zapisać w 6-cio bitowym kodzie
(tylko liczby zakresu od -32 do 31 )
(-30) 100010
(-30) 100010
(-4) 111100
---------
wynik 011110 błędna wartość 30 !
(wystąpił nadmiar)
Zapis zmiennoprzecinkowy
liczbę zapisujemy w postaci półlogarytmicznej
L=M2C
M-mantysa C-cecha
nakładając na mantysę warunki aby 2-1<= |M|<1
mamy tzw. zapis znormalizowany
mamy tzw. zapis znormalizowany
0 0 1 1 0 1 0 0 1 1 1 0 1 0 0
mantysa
cecha
od liczby bitów przeznaczonych na mantysę zależy dokładność zapisu liczby
natomiast od liczby bitów przeznaczonych na cechę zakres
szczegóły dotyczące konkretnej implementacji zapisu liczb znalezć można najczęściej w dokumentacji kompilatorów
np. zapis liczby na PC stosowany przez kompilator TP
----------------------------------------------------------------------------------------------
liczba typu real  6 bajtów pamięci
48 bitowy - 39 bitów mantysa 8 bitów cecha 1 bit znak liczby
bz (bit znaku)
0 0 1 1 0 1 0 0 1 1 1 0 1 0 0
39 bitów na mantysę m (część mantysy)
8 bitów na cechę c
L= 0 gdy c=0 L=(-1)bz *2c-129 *1,m gdy c<>0
dokładność 2-39 (11-12 cyfr dziesiętnych)
zakres modułu od 1*2-128 do (2-2-39)*2126 oraz 0
dziesiętnie od 2,9 *10-39 do 1,7 *1038
Logiczne podstawy działania komputera
Proces obliczeń oraz operacje arytmetyczne wykonywane są w komputerze za
pomocą sieci układów logicznych.
Skomplikowane układy buduje się z najprostszych elementów nazywanych
bramkami.
Układy logiczne można opisywać za pomocą 2 elementowej algebry Boole,a.
ALGEBRY BOOLE A
Algebra Boole a to zbiór zawierający co najmniej dwa elementy
(1) Dwa elementy muszą być opisane 1 i 0
(2) Określone są operacje: sumy, iloczynu, dopełnienie
oznaczenia tych operacji
c
suma iloczyn dopełnienie ' Ź
" )" '"
" *" ("
Spełniają one następujące prawa :
x " y = y " x x " y = y " x
" przemienności
(x " y) " z = x " ( y " z) x " ( y " z) = (x " y) " z
" łączności
" rozdzielności
x " ( y " z) = (x " y) " (x " z)
x " ( y " z) = (x " y) " (x " z)
x " ( y " z) = (x " y) " (x " z)
x "1 = x x " 0 = x
" identyczności
x " 0 = 0 x "1 = 1
" dopełnienia
x " x'= 0 x " x'= 1
" dalsze prawa np. prawa idempotentności
x " x = x x " x = x
Operacje sumy, iloczynu i uzupełnienia bulowskiego można zdefiniować
poprzez zestawione poniżej tabele zero-jedynkowe
a b a"b a b a"b
a a
1 1 1 1 1 1
1 0 1 1 0 0 1 0
1 0 1 1 0 0 1 0
0 1 1 0 1 0
0 1
0 0 0 0 0 0
uzupełnienie
suma
iloczyn
Skomplikowane układy logiczne buduje się z najprostszych
elementów nazywanych bramkami
Bramki :
OR  realizuje sumę bulowską
AND  realizuje iloczyn bulowski
NOT  realizuje uzupełnienie bulowskie
Konstruowane i wykorzystywane w praktyce są także inne bramki
NOR, NAND, XOR
a b XOR(a,b)
1 1 0
1 0 1
0 1 1
0 0 0
xor(a,b) = (a'"b) " (a " b')
Oznaczenia bramek (przykłady)
A " B
A
suma (OR)
B
A' uzupełnienie (NOT)
A
o
A " B
A
iloczyn (AND)
B
A NAND
A NAND
(A " B)'
(A " B)'
o
B
różnica
symetryczna XOR
Zestaw bramek umożliwiających zapis dowolnie skomplikowanego
układu logicznego tworzą zbiory zupełne:
" NOT, OR
" AND, OR
" NAND
" NOR
S = (A " B) " (A " B)'
P = A " B
A
S
"
"
B
A B S P
0 0 0 0
0 0 0 0
0 1 1 0
"
1 0 1 0
P
1 1 0 1
Schemat półsumatora jednobitowego
A,B - cyfry binarne
S- suma
P- przeniesienie
przykład: rozrysować układ logiczny realizujący następującą funkcję logiczną
f (a,b) = a'"b " a'"b' " a " b'
a'"b
a
a
b
b
a'"b'
a " b'
przekształcając wyrażenie można je bardzo uprościć:
f (a,b) = a'"b " a'"b' " a'"b' " a " b'
zastosowano prawo idempodentności
x " x = x
f (a,b) = a'"(b " b') " b'"(a'"a)
zastosowano prawa przemienności i rozdzielności
f (a,b) = a'"1 " b'"1
zastosowano prawo dopełnienia
f (a,b) = a'"b'
zastosowano prawo identyczności
układ można zatem zrealizować używając trzech bramek:
dwie bramki NOT oraz jedną OR, po zastosowaniu praw
de Morgana jedną bramką NAND
wypisać tabele 0 1
prawa de Morgana
(a " b)'= a'"b'
(a " b)'= a'"b'
przeanalizować schemat (i wypisać tabele 0 1)
rozpisać sumator jednobitowy
dane: a, b  cyfry binarne
dane: a, b  cyfry binarne
p -przeniesienie z poprzedniej pozycji
wynik: s  suma , pk- przeniesienie do następnej
pozycji
pk = a " (b " p) " (b " p)
s = a " b " p " (a " b " p) " pk'
bit górny bit dolny
AND
XOR
przeniesienie
przeniesienie z
przeniesienie z
OR
OR
AND
AND
poprzedniej
kolumny
XOR
schemat sumatora (jednobitowego)
suma
Układy logiczne:
" kombinacyjne (bezpamięciowe)
" układy sekwencyjne (z pamięcią)
najprostsze układy z pamięcią to przerzutniki
WY
WE_1 zapala
or
or
(0)
(0)
(0 lub 1)
(0 lub 1)
and
WE_2 gasi
not
o
(0)
Koniec (5,6 wykład)
Kodowanie danych (ciąg dalszy), kompresja danych
wykrywanie i korekcja błędów przy przesyłaniu danych
1. zapis (kodowanie) znaków
" najpowszechniej stosowany kod ASCII
American Standard Code for Information Interchange
kod siedmiobitowy  umożliwia zapis 128 znaków; znakom przypisane są
liczby (pozycje w tableli kodowej) od 0 do 127
liczby (pozycje w tableli kodowej) od 0 do 127
pozycje 0-31 opisują znaki sterujące
pozycje od 32 do 127 odpowiada znakom widocznym
na standardowej klawiaturze
np. 32 spacja 42 * 88 X 120 x
rozszerzony kod ASCII 8bitowy umożliwia zapis dalszych 128 znaków
znaki semigrafiki, znaki narodowe (zasadniczo dodatkowy bit nie jest ujęty
w standardzie; często jest traktowany jako bit parzystości niekiedy pomijany)
" Unikod  zapis znaków w postaci ciągu 16 bitowego (dwa bajty)
umożliwia zakodowanie 65536 różnych znaków
2. Kompresja danych
" kodowanie grupowe - zapis powtarzających się bloków danych
w zwartej postaci
np. 11 11 11 11 15 15 15 15 15
można zapisać 11*4 15*5
" kodowanie względne  zapisywane są różnice pomiędzy
kolejnymi blokami danych
" kody zależne od częstości występowania (kody Huffmana)
np.
np.
przy zapisie tekstu  pewne znaki występują często i im przypisany jest
krótszy kod, inne znaki występują rzadko i one reprezentowane są
dłuższym kodem
kod Morse a
" kody ze słownikiem adaptacyjnym  słownik zawiera powtarzające
się fragmenty kodowanego ciągu, słownik może być uzupełniany w trakcie
procesu kompresji
np. kod Lempela-Ziva LZ77
(5,4, )(0,0, )(8,6, )
(0,0, )(8,6, )
(8,6, )
3.Kompresja obrazów (rastrowych)
bardzo popularny system kompresji obrazów rastrowych  skany,
fotografia cyfrowa opracowany został przez
Joint Photographic Experts Group (JPEG)
system ten zawiera różne metody kompresji
" kompresja bez straty (rzadziej stosowana, gdy zależy na dokładności)
" kompresja ze stratą informacji
grupie czterech sąsiednich pikseli przypisuje się 2 parametry opisujące
wyśrednioną barwę a każdemu pikselowi 1 parametr opisujący jasność
wyśrednioną barwę a każdemu pikselowi 1 parametr opisujący jasność
utrata informacji nie zmienia znacząco obrazu
(oko ludzkie bardziej reaguje na zmianę jasności niż barwy)
" w praktyce system JPEG umożliwia zredukowanie objętości
zapisu nawet do 1/20 (w stosunku do typowego zapisu ze skanera)
4. Wykrywanie błędów przy przesyłaniu danych
" bity parzystości  dodaje się bit =1 gdy w bloku danych wystąpiła
parzysta liczba jedynek a 0 gdy liczba jedynek była nieparzysta
np.
1 01000001
bit parzystości przesyłany bajt
0 01000110
bit parzystości przesyłany bajt
Gdy nie było przekłamania to przesyłany blok łącznie z bitem parzystości
zawiera nieparzystą liczbę jedynek (parzysta liczba świadczy o błędzie)
Wykryć można jedynie nieparzystą liczbę błędów!
Większą pewność wykrycia błędów daje np. kod CRC
5. Korekcja błędów przy przesyłaniu danych
" istnieją systemy kodowania umożliwiające nie tylko stwierdzenie
błędu ale także jego korekcję (ECC)
np. liczba bitów różniących się
A 00 00 00 2 6
B 00 11 11 4 2
C 01 00 11 3 3
D 01 11 00 1 najmniejsza różnica 3
E 10 01 10 3 3
F 10 10 01 5 3
F 10 10 01 5 3
G 11 01 01 2 2
H 11 10 10 4 2
w kodzie tym każdy znak różni się co najmniej trzema bitami od pozostałych
jest to tzw. odległość Hamminga
można rozpoznać do 2 błędnych bitów a przy jednym błędzie dokonać korekty
kody z dłuższą odległością Hamminga dają większe możliwości korekty
np. 01 01 00 jest to ciąg z przekłamaniem 1 bitu jest to D z 1 bitem przekłamanym
11 11 11 jest to ciąg z 2 błędami (ale nie można go już skorygować!)
Operowanie danymi
" dane przechowywane są w pamięci, operacje na danych wykonuje
jednostka centralna (procesor)
" przesyłanie pomiędzy PAO a procesorem (rejestry procesora)
odbywa się poprzez magistralę; przesyłane informacje mają znaczenie
sygnałów sterujących, adresów komórek pamięci, danych
" przesyłane dane mogą być zakłócone i z tego względu stosuje się
różne techniki kontroli i ewentualnej korekty błędów (ECC, CRC, bit parzystości)
różne techniki kontroli i ewentualnej korekty błędów (ECC, CRC, bit parzystości)
" przesyłanie danych do/z urządzeń (np. z dysku) odbywa się poprzez
porty  adresy komórek pamięci którym przypisane są urządzenia
(właściwie sterowniki tych urządzeń ang. controller)
PAO
CPU
port
sterownik
urządzenie
" jednostka centralna (procesor) realizuje operacje wykonując algorytm
nazywany cyklem rozkazowym
(2)
W najprostszym rozwiązaniu
(1)
cykl ten składa się z:
(1) pobrania
(2) dekodowania
(3)
(3) wykonania
(1) - pobranie z pamięci kolejnego rozkazu do rejestru rozkazu RR
(1) - pobranie z pamięci kolejnego rozkazu do rejestru rozkazu RR
oraz zwiększenie licznika rozkazów LR:=LR+1
(2) - dekodowanie rozkazu zapisanego w RR
(3) - wykonanie rozkazu
W rzeczywistości wykonanie cyklu rozkazowego jest bardziej skomplikowane
Program (wykonywalny, binarny, maszynowy) sekwencja rozkazów procesora
Proces  program w trakcie wykonania
Zapisywanie i wykonywanie programów
Program, który ma zostać wykonany (egzekucja programu) jest
umieszczony w PAO
(koncepcja, której autorstwo przypisywane jest J.von Neumannowi;
wcześniej program był częścią komputera  zmiana programu następowała poprzez
odpowiednie skrosowanie połączeń w układzie sterującym)
" rozkazy zapisywane są w postaci binarnej  ciąg zer i jedynek
" rozkaz składa się z kodu operacji oraz argumentu
kod operacji to numer rozkazu z listy rozkazowej danego procesora
argumentem może być: adres komórki pamięci, rejestr procesora, wypisana wprost wartość
argumentem może być: adres komórki pamięci, rejestr procesora, wypisana wprost wartość
" zapisywanie programów w takiej postaci (kod maszynowy) jest dla człowieka bardzo
niewygodne.
" opracowano sposób zapisu programu wygodniejszy dla człowieka  binarne reprezentacje
kodu operacji zastąpiono mnemonikami (nazwami), wprowadzono adresy symboliczne.
Powstały w ten sposób języki programowania pierwszej generacji  języki asemblerowe.
np. ADD ax, bx - dodaj do siebie zawartość rejestrów ax i bx a wynik umieść w ax
" Program zapisany w języku asemblerowym musi zostać przetłumaczony
do postaci kodu maszynowego
" Tłumaczenie takie realizuje program nazywany asemblerem
Należy pamiętać, że program napisany w asemblerze jest bardzo silnie powiązany z danym
komputerem (procesorem)  nie można go przenieść na innego typu komputer.
" dalszym etapem w rozwoju technologii oprogramowania było
wprowadzenie języków wysokiego poziomu. Dają uniezależnienie od
sprzętu oraz istotne ułatwienie programowania. Programy dokonujące
translacji do postaci binarnej nazywane są kompilatorami bądz
interpreterami
Problemem jest wprowadzenie komputera w taki stan, w którym binarny program
umieszczony jest w PAO a licznik rozkazów zawiera adres komórki z pierwszym
rozkazem danego programu.
Oczywiście po zakończeniu działania programu należy procesorowi dostarczyć następną
sekwencję rozkazów do realizacji.
SYSTEM OPERACYJNY
SYSTEM OPERACYJNY (ang. Operating System)
Pakiet oprogramowania (zbiór zintegrowanych programów) pośredniczący
pomiędzy aplikacjami a sprzętem nazywa się systemem operacyjnym (OS)
Aplikacja  program użytkowy
Oprogramowanie dzieli się na: systemowe, narzędziowe i użytkowe
Uruchamianie komputera:
Uruchamianie komputera:
(1) po włączeniu komputera do licznika rozkazów ładowana jest wartość
adresu pamięci z obszaru ROM zawierająca pierwszy rozkaz
(2) wykonywane są programy zapisane w ROMie - testowanie sprzętu itp.
(3) w końcowym etapie uruchamiany jest program ładujący z pamięci masowej
do PAO system operacyjny (ang. bootstrap)
(bardzo proste systemy operacyjne mogą w całości rezydować w ROM)
(4) uruchomiony zostaje OS i od tej chwili pod jego kontrolą pracuje komputer
NAJWAŻNIEJSZE ELEMENTY SYSTEMU OPERACYJNEGO
Jądro systemu + powłoka
Jądro systemu rezyduje na stałe w pamięci operacyjnej. Powłoka to program
pośredniczący pomiędzy wydającym polecenia a jądrem, które je realizuje.
W jądrze znajdują się między innymi następujące moduły:
" zarządca plików
" program obsługi urządzeń
" zarządca pamięci (bardzo istotne znaczenie gdy realizowana jest tzw.
pamięć wirtualna)
pamięć wirtualna)
" moduł szeregujący procesy (planista ang. scheduler)
" moduł nadzorujący realizację procesów (ang. dispatcher)
Rozwój systemów operacyjnych odbywa się wraz z rozwojem sprzętu. Wraz z
rozwojem OS zmienia się także sposób użytkowania komputerów.
(można powiedzieć odwrotnie  różne sposoby użytkowania wymagają
różnych OS)
Systemy użytkowania komputerów
" tradycyjny (dawniej)  przygotowanie do wykonania programu
(egzekucji) wykonanie różnych czynności operatorskich, realizacja
obliczeń, wyprowadzenie danych na urządzenia zewnętrzne, pewien czas
przestoju i realizacja następnego programu
bardzo nieefektywne wykorzystanie jednostki centralnej  długie okresy
bezczynności procesora w trakcie realizacji zadania na wolnych
urządzeniach zewnętrznych oraz pomiędzy  seansami
korzyść  możliwa praca w trybie interakcyjnym
korzyść  możliwa praca w trybie interakcyjnym
" przetwarzanie wsadowe  przygotowanie zestawu programów do
realizacji, zestaw taki nazwano wsadem (ang. batch), po umieszczeniu w
PAO zadania oczekują na wykonanie w kolejce FIFO (ang. first in- first
out)
efektywiejsze wykorzystanie jednostki centralnej (likwidacja przerw
miedzy seansami); nie jest możliwa praca w trybie interakcyjnym
" przetwarzanie wielokrotne  wiele zadań (procesów) przetwarzanych
jest w tym samym czasie
1. w systemach jednoprocesorowych  technika z podziałem czasu
(ang. time sharing)
2. przetwarzanie w systemach wieloprocesorowych 
problemy:
- równoważenia obciążenia (ang. load balancing)  rozdzielania zadań na
poszczególne procesory tak aby były równo obciążane
- skalowania- podział zadań na podzadania i rozdzielenie tych podzadań
na poszczególne procesory (jeden program może być równocześnie realizowany przez
wiele procesorów)
" wielodostęp  (wieloprzetwarzanie) wielu użytkowników pracuje
jednocześnie na tym samym komputerze  specyficzne problemy związane
pracą wielu użytkowników (zapewnienie bezpieczeństwa, poufności itd.)
pracą wielu użytkowników
" sieci komputerowe
(wiele problemów związanych z działaniem sieci komputerowych jest analogiczne jak w
systemach realizujących przetwarzanie wielokrotne)
" metaprzetwarzanie (metakomputer  konglomeraty komputerów)
Systemy pracy z komputerem
- bez interakcji  użytkownik przygotowuje program i dane i nie
podejmuje żadnych działań w trakcie jego egzekucji (np. system
wsadowy);
nie ma związków czasowych wykonywanego programu ze
środowiskiem
- konwersacyjny  pewne zależności czasowe się pojawiają
- praca na bieżąco  komputer steruje procesem przebiegającym
bardzo szybko np. naprowadzanie rakiety na cel
System operacyjny LINUX
- lata  60 projekt badawczy Multics
- 1969 powstaje system UNIX (Ken Thompson)
- 1970 zapisanie kodu zródłowego w języku C
(Thompson i Ritche  twórca języka C)
- dwie gałęzie systemu UNIX  BSD, System V
- 1991 Linus Torwalds (fin) napisał pierwszą wersję systemu
LINUX, który można określić jako wersję UNIXa
LINUX, który można określić jako wersję UNIXa
przeznaczoną do pracy na komputerach PC (procesor Intel)
- LINUX jest zgodny ze standardem POSIX  standard dla
systemów UNIXowych
Cechy funkcjonalne LINUXA:
- system wielozadaniowy, wielodostępny, może działać na
komputerach wieloprocesorowych (od wersji 2.0)
- system darmowy ale w pełni użyteczny (stabilny, sprawdzony)
- pamięć stronicowana (strony o wielkości 4KB)  rozwiązanie
lepsze niż tzw. wymiatanie (ang. swapping) czyli zapisywanie
na dysku całej pamięci procesu
- duża niezależność sprzętowa  działa na różnych platformach
sprzętowych
sprzętowych
- współdzielone biblioteki
- rozpoznaje (i realizuje) różne formaty plików wykonywalnych
- obsługa różnych narodowych zestawów czcionek i klawiatur
- obsługuje wiele różnych systemów plików (także np. MS-DOS,
Windows NT )
- obsługa sieci
Praca użytkownika w systemie LINUX
- systemem zarządza administrator systemu (root, superuser),
ma on szczególne uprawnienia np. tylko on może wpisać
nowego użytkownika
- praca odbywa się sesjami  logowanie do systemu (należy
podać nazwę użytkownika oraz hasło), praca z systemem,
wylogowanie, które kończy sesję
- uruchamianie systemu i wyłączanie wykonuje administrator!!!
- uruchamianie systemu i wyłączanie wykonuje administrator!!!
- użytkownik komunikuje się z jądrem systemu pośrednio
korzystając z powłoki (ang. shell)
- powłoka może pracować w trybie znakowym lub graficznym
- najczęściej używana powłoka znakowa to bash
Kilka przykładowych poleceń powłoki BASH:
dotyczące systemu plików
- ls, pwd, cd, mkdir, rmdir, cp, rm
- chmod - zmienia uprawnienia do pliku
np. chmod 644 dane_5.txt
(nowe uprawnienia podane bezwzględnie)
dotyczące procesów
- who, ps
- who, ps
- proces można uruchomić w tle (nazwa pliku binarnego i &)
- zatrzymanie procesu (stop) ^z
- wznowienie przetwarzania procesu fg lub bg
- anulowanie zadania kill
- wykonanie procesu o określonej porze at
- PID  numer identyfikacyjny procesu  jest nadawany przez system; poprzez
ten numer można odwoływać się do takiego przetwarzanego procesu
System plików
Każdy system operacyjny posiada własny system plików (FAT 
systemy Dos i Windows, NTFS  windows NT, Unix File
System )
LINUX obsługuje wiele różnych typów systemów plików;
udostępnia je poprzez VFS (Virtual File System Swich)
stanowiący łącze pomiędzy jądrem OS i poszczególnymi
systemami plików
W uniksowych OS dane przechowywane są w systemie
hierarchicznym.
System plików Linuksa widoczny jest dla użytkownika jako
jednolita hierarchiczna struktura (drzewo). Katalog główny
(korzeń) nie ma nadanej nazwy, jest identyfikowany znakiem  /
na początku ścieżki
Systemy plików na poszczególnych urządzeniach muszą zostać
zamontowane;
zamontowane;
główny system plików (ang.root file system) montowany jest w trakcie
uruchamiania systemu operacyjnego
Partycje dysków twardych są zwykle montowane automatycznie po
starcie systemu operacyjnego i odmontowywane w trakcie procesu
zamykania systemu (polecenie shutdown).
Procesy i uprawnienia
" każdy użytkownik ma w systemie nadany numer UID
(numerowi przypisana jest także nazwa,użytkownikowi nadane są uprawnienia)
" istnieją grupy użytkowników, które rozpoznawane są poprzez numer GID
(numerowi temu jest przypisana także nazwa)
" każdemu plikowi przypisane są UID oraz GID
(inaczej - każdy plik ma właściciela)
" każdy proces ma nadany unikalny numer procesu PID
" nowy proces powstaje z procesu już działającego
w wyniku operacji rozwidlenia (funkcja systemowa fork),
powstaje w ten sposób hierarchiczna struktura procesów,
procesowi potomnemu nadany jest nowy numer PID,
zapamiętywany jest także numer przodka PPID,
nowy proces przejmuje uprawnienia od przodka
" aby zrealizować zadanie, procesy często muszą mieć większe uprawnienia
niż użytkownik który je uruchomił
" wprowadzono tzw. efektywny numer użytkownika (właściciela procesu)
EUID; proces może mieć zatem inne uprawnienia niż użytkownik,
który ten proces uruchomił.
(często oczywiście będzie EUID=UID)
np. polecenie passwd służy do zmiany hasła
np. polecenie passwd służy do zmiany hasła
plik wykonywalny z poleceniem może być uruchomiony przez
każdego użytkownika, aby jednak proces mógł dokonać zmiany
hasła musi mieć uprawnienia administratora,
plik z programem wykonywalnym passwd należy do administratora
i proces ustawia EUID=0 (UID roota)
lista z informacjami o procesach generowana przez polecenie ps (przykład)
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
. . . . . . . . .
. . . .
0 S 500 4716 3905 0 75 0 - 5843 schedu ? 00:00:01 kdesktop_lo
0 S 500 5311 3868 0 75 0 - 22451 schedu ? 00:00:07 mozilla-bin
0 S 500 5855 3868 0 81 0 - 1064 pipe_w ? 00:00:00 mozilla
0 S 500 5858 5857 0 84 0 - 994 schedu ? 00:00:00 mozilla-xre
5 S 0 7834 3529 0 76 0 - 1688 schedu ? 00:00:00 sshd
5 S 504 7836 7834 0 75 0 - 1698 schedu ? 00:00:00 sshd
0 S 504 7837 7836 0 75 0 - 1104 wait4 pts/1 00:00:00 bash
0 S 0 7970 7837 0 75 0 - 693 schedu pts/1 00:00:00 passwd
1 S 0 7971 3529 0 75 0 - 1695 schedu ? 00:00:00 sshd
1 S 0 7971 3529 0 75 0 - 1695 schedu ? 00:00:00 sshd
4 S 0 7973 7971 0 75 0 - 1122 wait4 pts/2 00:00:05 bash
1 S 500 8177 3868 0 75 0 - 5245 schedu ? 00:00:00 kdeinit
4 R 0 8428 7973 0 81 0 - 803 - pts/2 00:00:00 ps
terminal pts/2  zalogowany użytkownik UID=0 (root)
terminal pts/1  zalogowany użytkownik UID=504 który uruchomił passwd zobacz, że UID związany z tym
procesem to nie UID rodzica procesu ale właściciela programu (czyli roota) jest to efektywny identyfikator
procesu; przodkiem jest proces o PID=7837 należący do UID=504


Wyszukiwarka

Podobne podstrony:
Wyklad04 2008 handout
Poprzedni rok ETYKA WYKLADY 2008 czarno biale
Wyklad04 2008
Wyklad V 2008
wyklady 2008 urban i plan przestrz
Wyklad1 2008 handout
Wyklad03 2008 handout
Wyklad5 2008
RACHUNKOWOSC WYKLAD 2008
Rynki finansowe WYKŁAD 2008
Wyklad03 2008
Wyklad2 2008
Wyklad2 2008 handout
Wyklad05 2008 handout
Wyklad05 2008
Wyklad I 2008
wyklad 7 emocje stres niestacjonarne WSEiP 16 2008
Wyklad III 2008

więcej podobnych podstron