Oprogramowanie systemów komputerowych
instrukcja |
bajt |
A |
B |
C |
|
1 |
10100001 |
|
|
I |
2 |
00000101 |
MOV CL5 |
|
|
3 |
10100000 |
|
|
II |
4 |
00000000 |
MOV A (B2, B3) |
A=A+5 |
|
5 |
00001111 |
|
|
|
6 |
00000000 |
|
|
III |
7 |
11001000 |
ADD CL,A |
|
|
8 |
11100110 |
|
|
IV |
9 |
10101010 |
OUT (B2) |
Program składa się z 4 instrukcji które mają 9 bitów
Program dodawania 2 liczb w trzech językach
A - przykładowe ułożenie programu w pamięci komputera w kodzie maszynowym
B - program w języku Asemblerowym mnemoniczny zapis rozkazu
C - program w języku wysokiego poziomu FORTRAN
Instrukcja I to zapisanie do jednego rejestru procesora pierwszego składnika sumy (języki niskiego poziomu bazują na rejestrach zaś w języku wysokiego poziomu rejestrów się nie pokazuje) trzy ostatnie bity 1 bajtu I instrukcji wskazuję na rejestr CL do którego ma być przekazana wartość zaś pierwszy bajt wskazuje że następny bajt ma być interpretowany jako argument oznacza to że do rejestru CL ma być zapisany argument w tym przypadku liczba 5
Instrukcja II wskazuje że przesłanie ma nastąpić do innego rejestru ostatnie trzy bity zerowe mówią że jest to rejestr A i że argument tej operacji znajduje się w komórce pamięci
4 i 5 bajt II instrukcji mówi nam jaki jest adres tej komórki pamięci, w wyniku wykonania rozkazu w rejestrze A zostanie umieszczona liczba 2
Instrukcja III jest dodawaniem dwóch liczb, 6 bajt w tej instrukcji mówi że jest to instrukcja dwu bajtowa 7 bajt wskazuje miejsce skąd należy odczytać argument dwa pierwsze bity 7 bajtu w tej instrukcji mówią że argumenty znajdują się w dwóch rejestrach procesora i że do drugiego z nich ma być zapisany wynik 3,4 i 5 bit tego bajtu mówią nam że pierwszym rejestrem jest CL natomiast 6,7 i 8 bit tego bajtu mówią nam że drugim rejestrem jest rejestr A
Instrukcja IV jest to rozkaz przesłania zawartości rejestru A do urządzenia wyjściowego umieszczonego pod adresem który pokazuje nam 9 bajt w IV instrukcji
Sekwencje czynności procesora w czasie wykonywania I instrukcji tego programu
Faza pobrania kodu rozkazu
Dekodowanie rozkazu
Faza pobrania argumentu
Faza wykonania rozkazu
Wszystkie te fazy tworzą cykl instrukcji I
Inicjalizacja wykonania programu polega na odpowiednim załadowania licznika rozkazu LE, wpisuje się taką wartość która wskaże miejsce w pamięci gdzie znajduje się I instrukcja programu. Następuje faza odczytania rozkazu przez procesor z pamięci (faza pobrania kodu rozkazu).Odczytany z pamięci kod jest wpisany do rejestru rozkazu RR, zawartość tego rejestru jest przesyłana do dekodera który uruchamia odpowiedni proces wykonania rozkazu. Następuje następnie 3 faza wykonania instrukcji (pobranie argumentów) licznik rozkazów LR zostaje zwiększony o jedność i odczytana zostaje następna komórka pamięci i następuje następna faza wykonania rozkazu.
Systemy operacyjne.
System operacyjny to zbiór programów które umożliwiają wykonanie programu a tym samym takich zadań jak redagowanie programu, sprawdzenie, zamiana na kod operacyjny rozkazów komputera, uruchomieni programu itp.
Szeregowanie wykonywania zadań odbywa się ono na trzech poziomych
Zarządzanie pamięcią operacyjną
Szeregowanie wysokiego poziomu gdzie podejmowane są decyzje czy dany program ma zostać dołączony do kolejki do wykonania
Szeregowanie krótkoterminowe gdzie podejmowane są decyzje o zleceniu procesorowi wykonania danego zadania
Szeregowania zleceń wejście wyjście tj. podejmowanie decyzji o kolejności programu żądających dostępu do urządzeń wyj/wej
Zadanie jest to skompilowany program połączony z programami bibliotecznymi oraz z plikami które są przez ten program wywoływane, a więc jest to program całkowicie przygotowany do wykonania.
Proces jest to zadanie którym aktualnie zajmuje się komputer i który w każdej chwili przyjmuje jakiś stan. Proces może przyjmowań jeden z pięciu stanów (stan nowy, stan gotowości, stan wykonywania, stan oczekiwania, stan zatrzymania)
Diagram przejść procesu ze stanu do stanu
Wprowadzenie w stan Nowy procesu odbywa się przez szeregowanie wysokiego poziomu, liczba procesów ustawiony w stan nowy zależy od tzw. stopnia wieloprogramowości tj. liczby programów które jednoczenie mogą być w pamięci operacyjnej. W stan Gotowości procesy są wprowadzane przez szeregowanie krótkoterminowe jest to stan w którym zadanie czeka na wolny czas procesora. W stan Wykonywania procesy przechodzą ze stanu gotowości w takiej kolejności w jakiej uszeregowano je w stanie gotowości. W stan Oczekiwania procesy mogą być w prowadzone ze stanu Wykonywania gdy pojawią się operacje wej/wyj. W stan Zatrzymania proces wchodzi po wykonaniu programu przez procesor.
Obsługa kolejek programu może być realizowana według różnych algorytmów, algorytmy są wybierane na podstawie określonych kryteriów, tymi kryteriami może być
wykorzystanie czasu pracy komputera
przepustowość komputera która wskazuje nam na pracochłonność procesów oczekujących w kolejce
czas oczekiwania jest to czas od momentu ustawienia procesu w kolejkę aż do momentu rozpoczęcia wykonywania procesu
Z pośród algorytmów których jest bardzo dużo najczęściej stosuje się dwa algorytm wyboru najdłużej oczekującego procesu oraz algorytm wyboru najkrócej wykonywanego procesu
tP1 =24 jt (jednostki czasowe)
tP2=3 jt P1,P2,P3 0 24 27 30
tP3=3jt
P2,P3,P1 0 3 6 30
Średni czas wykonywania programu wynosi dla I przypadku wynosi (24+27+30)/3=27 a w II przypadku wynosi (3+6+30)/3=13 czyli charakterystyka wykorzystywanych tych algorytmów przez średni czas jest różny.
Zarządzanie pamięcią
Ze względu na wymuszoną pojemność pamięci operacyjnej rezydują w niej tylko te programy które ustawiono w kolejkę programów gotowych i oczekujących pozostałe programy znajdują się w pamięci dyskowej. W pamięci operacyjnej powinien znajdować się co najmniej jeden proces w stanie gotowości. Efektywność pracy komputera zależy od sposobu wymiany zawartości pamięci operacyjnej i dyskowej, czynność ta jest nazywana wymianą zawartości. Stosowane są dwie strategie:
I strategia odbywa się poprzez wymianę zawartości pod całkowitym nadzorem systemu operacyjnego
II strategia odbywa się ona również pod tą kontrolą ale występuje możliwość ingerencji użytkownika
Dla zwiększenia tej efektywności wymiany zawartości stosuje się dwa sposobu przydziału obszaru pamięci operacyjnej dla danego procesu
Podział pamięci
Stronicowanie pamięci
Podział pamięci polega na przydzieleniu każdemu procesowi wspójnego obszaru pamięci operacyjnej
Podział pamięci
Podział stały Pamięć zmienna
W podziale stałym pamięć operacyjna dzielona jest na niezmienne (stałe ) obszary przy czym obszary te mogą być nierówne. W podziale zmiennym wymiana procesów pomiędzy pamięcią operacyjną a dyskową polega na tym że część procesów wyrzucam a część wstawiamy. Przy podziale zmiennym przyjmujemy że w pamięci operacyjnej znajdują się 4 procesy przy czym nie ma miejsca na 5 proces, zakładamy że usuwamy program 3 a wstawiamy 5 następnie robimy to samo z procesem 1 czyli usuwamy proces 1 a wstawiamy 6 i otrzymujemy trzeci obszar zakreskowany w tym podejściu następuje przemieszczenie procesu (alokacja procesu) w celu otrzymania jednego wspólnego obszaru pamięci.
Stronicowanie pamięci
Stronicowanie pamięci polega na tym że cały obszar pamięci dzielony jest na stosunkowo niewielkie obszary o stałej wielkości tzw. strony. Zwykle wielkość stron jest kilkakrotnie mniejsza od obszaru pamięci zajmowanego przez proces, tzn. że każdy proces zajmuje kilka stron. System operacyjny w każdym momencie dysponuje aktualną listą stron i w czasie gdy dany proces ma zostać zapisany do pamięci system sprawdza czy jest wystarczająca liczba stron, jeżeli ten warunek będzie spełniony to załadowuje cały proces do wolnych stron. Dla każdego procesu jest tworzona tabela stron która mówi nam na której stronie znajduje się dany proces.
A |
12,15 |
B |
11,13,18 |
Koncepcja stronicowania pamięci umożliwiła zaprojektowanie pamięci wirtualne, jest to taka organizacja pamięci operacyjnej i pamięci dyskowej która umożliwia wykonanie programów które wymagających większego obszaru pamięci niż wynosi pojemność pamięci operacyjnej.
Bazy danych
Baza danych to zintegrowany zbiór informacji między którymi istnieją relacje logiczne. Mamy trzy rodzaje baz danych:
Bazy hierarchiczne
Bazy relacyjne
Bazy obiektowe
Na potrzeby wyszukiwania informacji z bazy danych są tworzone języki manipulacji danymi które wchodzą w skład systemu zarządzania bazą danych. Różnice między plikiem danych a bazą danych polega na tym że w bazie danych istnieją związki między poszczególnymi danymi, w pliku te związki mogą ale nie muszą być. W zależności od tego jaki model danych wykorzystujemy przy projektowaniu bazy danych mówimy o bazach hierarchicznych, bazach relacyjnych oraz bazach obiektowych.
Model bazy hierarchicznej
Pomiędzy poszczególnymi typami danych istnieją związki hierarchiczne
Model bazy relacyjnej
Rodzaj |
Producent |
Cena |
|
|
|
Sieć semantyczna jest to graf którego węzły stanowią obiekty, łuki zaś stanowią relacje
a b
Sieć symantyczna pozwala nam na logicze wnioskowanie
np. ta sieć mówi nam gdy pracoiwnik należy do “b” (jest umysłowy) to jest podatny na stres i ponosi odpowiedialność, gdy należy do “a” (jest fizyczny) to jest sprawny i jest wykonawcą poleceń. W ten sposób wykożystując sieć symantyczną można stwożyć bazy wiedzy, gdyż popżez relacje oraz obiekty mamy możliwość logicznego rozumowania.
wykład 4 Informatyka
1
N
O
Z
W
G
SO
P4
P3
P2
P1
P2
P1
SO
P3
P4
SO
P1
P2
P5
P4
SO
P6
P2
P5
P4
wykonawca
pracownik
umysłowy
fizyczny
sprawny
odpowie-dzialność
stres
ponosi
należy do
jest
jest
podatny na
należy do