Wstęp do systemów
operacyjnych i oprogramowania
Jego siła i zdolność oddziaływania wynikają z faktu, że
komputer jako taki nic nie narzuca obszarom, w których jest
stosowany - żadnych własnych, indywidualnych cech.
Jest on jak gdyby przezroczysty dla programów, które są
umieszczane w jego wnętrzu i determinują jego zachowanie.
Sprzęt i oprogramowanie
" Komputer sam z siebie
nie potrafi niestety nic
zrobić.
" Do tego, żeby komputer
był użytecznym
urzÄ…dzeniem konieczne
jest, aby uruchomiony
był w nim program
sterujÄ…cy jego pracÄ….
Sprzęt i oprogramowanie
" Często właśnie program jest czynnikiem
decydującym o innowacyjności jakiegoś
rozwiÄ…zania technicznego.
" Komputery, a za ich pośrednictwem
także programy, są obecnie kluczowym
składnikiem większości systemów technicznych
i ekonomicznych.
" Są one przedmiotem ochrony własności
intelektualnej.
Oprogramowanie
" Oprogramowanie (software), program lub zbiór
programów, umożliwiający korzystanie
z komputera oraz ze sprzętu peryferyjnego
aparatury specjalistycznej, modemu, skanera, itp.
" Z innego punktu widzenia oprogramowanie to
program lub zbiór programów, pozwalający
rozwiązywać określone problemy stawiane przez
użytkownika systemu bez konieczności
każdorazowego pisania własnych programów
dla każdego zadania.
Cechy oprogramowania
" Oprogramowanie jest nieodłączną częścią
systemu komputerowego, dzięki swojej
wymienności może zmieniać jego
przeznaczenie.
" Dzięki wieloprogramowości i środowisku
okienkowemu może pełnić wiele różnych
funkcji jednocześnie.
" yródło: Wielka Internetowa Encyklopedia Multimedialna http://wiem.onet.pl
Klasyfikacja oprogramowania
" oprogramowanie systemowe (system operacyjny)
zbiór programów zarządzających pracą komputera,
" oprogramowanie narzędziowe
programy diagnostyczne, testujÄ…ce, archiwizujÄ…ce,
antywirusowe,
komunikacyjne, umożliwiające korzystanie z zasobów
sieciowych (np. sieci Internet) i inne programy pomocnicze,
" oprogramowanie służące do tworzenia innych
programów
translatory, kompilatory, linkery, biblioteki,
" uniwersalne programy użytkowe
edytory, arkusze kalkulacyjne, systemy zarzÄ…dzania bazami
danych, programy graficzne, programy matematyczne i
statystyczne,
Klasyfikacja oprogramowania c.d.
" programy pisane na zamówienie konkretnego
użytkownika (programy dedykowane)
np. wspomagające prace rachunkowo - księgowe w
konkretnym przedsiębiorstwie, sterujące procesem
technologicznym, symulujÄ…ce zachowanie siÄ™ badanego
systemu,
" programy pisane przez użytkowników na ich
własne potrzeby.
programy służące do rozwiązywania zadań
specyficznych dla danego użytkownika - np. problemy
obliczeniowe, makropolecenia wspomagajÄ…ce pracÄ™ z
zastosowaniem programów użytkowych.
System komputerowy
"
Elementy systemu komputerowego:
użytkownicy (ludzie, maszyny, inne komputery)
programy użytkowe (kompilatory, edytory, systemy baz
danych, gry)
system operacyjny
sprzęt (procesor, pamięć, urządzenia wejścia wyjścia)
1. System bankowy, rezerwacja biletów, gry komputerowe, ...
2. Kompilatory, edytory, interpretery.
3. System operacyjny.
4. Język maszynowy.
5. Mikroprogramowanie.
6. UrzÄ…dzenia fizyczne.
" System komputerowy wg. Tanenbauma
System komputerowy
Programy
Programy
usługowe
JÄ…dro
sprzęt
systemu
operacyjnego
systemu
operacyjnego
użytkowe
Poziomy abstrakcji współczesnych
systemów komputerowych
6 Użytkownik Programy wykonywalne
5 Język wysokiego poziomu C++, Java, FORTRAN, itd.
4 Asembler Kod asemblera
3 Oprogramowanie systemowe System operacyjny, biblioteki
2 Maszyna Architektura zbioru rozkazów
1 Sterowanie Mikrokod lub skonfigurowane
sprzętowo
0 Logika cyfrowa Obwody, bramki, itd.
" Wg. L. Null i J. Lobur. Struktura organizacyjna i architektura systemów
" komputerowych. Wydawnictwo Helion, Gliwice, 2004.
Co to jest system operacyjny?
" System operacyjny jest programem, który działa
jako pośrednik miedzy użytkownikiem
komputera, a sprzętem komputerowym.
" Zadaniem systemu operacyjnego jest tworzenie
środowiska, w którym użytkownik może
wykonywać programy.
" System operacyjny nadzoruje i koordynuje
posługiwanie się sprzętem przez różne
programy użytkowe, które pracują na zlecenie
różnych użytkowników.
Funkcje systemu operacyjnego
" zapewnienie komunikacji pomiędzy człowiekiem
użytkującym system komputerowy a komputerem,
" zarzÄ…dzanie procesami
proces jest to zbiór czynności, jakie wykonuje program
realizowany w systemie komputerowym,
" zarządzanie pamięcią operacyjną,
" zarządzanie pamięcią zewnętrzną,
" zarządzanie systemem wejścia wyjścia,
" zapewnienie bezpieczeństwa systemu komputerowego,
" realizacja funkcji sieciowych,
" konfigurowanie systemu komputerowego.
S.O. podsumowanie
" System Operacyjny jest niezbędnym
składnikiem każdego systemu
komputerowego.
" S.O. ukrywa szczegóły sprzętowe
systemu komputerowego poprzez
dostarczenie maszyny wirtualnej
np.:
jednolity sposób dostępu do
urządzeń zewnętrznych,
zbiory bloków dyskowych widziane
jako pliki o symbolicznych nazwach,
duża, szybka, dedykowana pamięć
operacyjna,
współbieżne wykonywanie
programów,
" Jadro (kernel) jest tą częścią
systemu operacyjnego, która działa
w komputerze nieustannie.
" Wszystkie pozostałe programy są
programami użytkowymi.
Komunikacja człowiek komputer
" Interfejs użytkownika oprogramowanie
pozwalające na komunikację pomiędzy
użytkownikiem a systemem informatycznym.
" Rodzaje interfejsów:
tekstowy
graficzny
Interfejs tekstowy
" tekstowy użytkownik wpisuje polecenia.
Przekazywane sÄ… one do realizacji
w chwili zaakceptowania.
" Użytkownik musi znać składnię poleceń.
" Realizacja takiego sposobu komunikacji
angażuje niewielkim stopniu zasoby
komputera
Interfejs graficzny
" graficzny interfejs typu WIMP (Windows,
Icons, Menus, Pointer Devices Okna,
Ikony, Menu, UrzÄ…dzenia wskazujÄ…ce).
" Podstawowe czynności wykonywane są w
prosty, intuicyjny sposób.
" Komunikacja w trybie graficznym ma duże
wymagania w zakresie zasobów
komputera (pamięci, czasu procesora,
dysku).
Rozwój systemów operacyjnych
" System indywidualnego użytkownika (brak systemu operacyjnego) -
faktyczny brak systemu operacyjnego, kontrolą całego urządzenia
zajmuje siÄ™ jedna aplikacja (jeden program).
" Systemy wsadowe - Zadania użytkowników w formie: Dane
wejściowe, Program, Wyniki, są pogrupowane w tzw. wsady. Wsady
tworzone były przez operatorów, aby zaoszczędzić ich czas, tak aby
mogli jednorazowo wczytać większą grupę zadań. Pierwsze
systemy wsadowe były protoplastami rzeczywistych systemów
operacyjnych.
" Wieloprogramowane systemy wsadowe (spooling) - Pewna część
zadań jest ustawiona w kolejce w jakiej mają zostać uruchomione.
Aby zwiększyć wykorzystanie urządzenia w czasie gdy wykonują się
obliczenia jakiegoÅ› zadania, wczytywane i przygotowywane sÄ… dane
wejściowe dla następnego zadania.
Rozwój systemów operacyjnych
" Systemy z podziałem czasu - (wielozadaniowość, multitasking)
Procesor wykonuje na przemian wiele zadań, przy czym
częstotliwość przełączania jest tak wysoka, że użytkownik może
współdziałać z każdym programem podczas jego wykonywania.
" Systemy operacyjne dla komputerów osobistych - Zamiast
maksymalizowania wykorzystania procesora i urządzeń
wewnętrznych położono nacisk na wygodę użytkowania oraz
wydajność użytkownika.
" Systemy równoległe - W systemach tego typu pewna liczba
procesorów ściśle współpracuje ze sobą, dzieląc szynę komputera,
zegar, pamięć i urządzenia zewnętrzne.
" Systemy rozproszone - Obliczenia sÄ… rozdzielone na wiele
procesorów które połączone są za pomocą sieci komputerowych.
Architektury systemów
operacyjnych
" Jednolita - system zawierający zbiór procedur, które mogą się
dowolnie wzajemnie wywoływać bez ograniczeń.
Utrzymanie takiego systemu jest trudne ze względu na problemy przy
wprowadzaniu zmian polegające głównie na tym że nie wiemy jaki
będzie faktyczny wpływ tych zmian (np. : Linux)
" Struktura warstwowa - system podzielony jest na moduły, które są
połączone w warstwy.
Każdy moduł spełnia funkcje, które zależą tylko od warstwy znajdującej
siÄ™ pod spodem.
Przeważnie najniższe warstwy są najważniejsze pod względem
niezawodności, mocy i wydajności. Wprowadzenie modularności
zmniejsza wzajemne zależności między składowymi systemu oraz
pozwala uniknąć niepożądanych powiązań (unix, np. Solaris).
Architektury systemów
operacyjnych
" Struktura klient-serwer - system podzielony jest
całkowicie wyodrębnione moduły, spełniające określone
zadania.
Moduły nie są rozmieszczane w warstwach, ale są traktowane
mniej lub bardziej równorzędnie.
Nie komunikują się poprzez wywoływanie procedur, ale wysyłają
komunikaty za pośrednictwem centralnego programu obsługi
komunikatów.
Komunikaty mogą być przesyłane w obie strony, dzięki czemu
można tą samą drogą przekazywać wyniki.
Moduły klient i serwer komunikujące się ze sobą mogą pracować
na oddzielnych procesorach maszyny fizyczej.
Najważniejszą częścią jest program centralny, który zajmuje się
przekazywaniem komunikatów. Program ten nazywa się
mikrojÄ…drem. (np. Windows NT)
Struktury wchodzące w skład
systemu operacyjnego
" ZarzÄ…dzanie procesami:
tworzenie, usuwanie procesów oraz wątków,
zawieszanie, przywracanie, przydział zasobów w trakcie działania,
synchronizacja międzyprocesowa.
" Zarządzanie pamięcią główną:
kontrolowanie, która część pamięci operacyjnej jest aktualnie zajęta,a
która wolna,
decydowanie który proces zostanie załadowany gdy powstanie wolny
obszar pamięci,
rezerwacja oraz uwalnianie pamięci na żądanie procesów.
" Zarządzanie pamięcią pomocniczą:
rezerwacja odpowiedniej ilość pamięci,
zapisywanie oraz pobieranie danych,
planowanie dostępu.
Struktury wchodzące w skład
systemu operacyjnego
" ZarzÄ…dzanie plikami:
tworzenie, usuwanie plików oraz katalogów,
mapowanie plików jako pamięci pomocniczej,
wykonywanie kopii zapasowych,
udostępnianie narzędzi do obsługi plików.
" Zarządzanie wejściem-wyjściem:
bufory, kolejki,
udostępnienie standardowego sposobu komunikacji z urządzeniami.
" Sieci komputerowe:
Implementacja protokołów sieciowych.
" Systemy zabezpieczeń:
mechanizm kontroli dostępu do zasobów przez:
programy,
procesy,
Użytkowników.
Struktury wchodzące w skład
systemu operacyjnego
" Usługi użytkownika:
uruchamianie programów,
manipulowanie plikami,
komunikacja,
wykrywanie błędów,
zarządzanie kontami użytkowników,
przydział zasobów,
bezpieczeństwo.
Cechy dobrego systemu
operacyjnego
" funkcjonalność
" wydajność
" skalowalność
" niezawodność (dostępność)
" łatwość korzystania i zarządzania
UNIX - historia
" Powstał w 1969; autorzy: Ken Thompson,
Denis Ritchie z Bell Laboratories, maszyna:
PDP-7; posiadał wiele cech wcześniejszego
systemu operacyjnego - MULTICS.
" 1974: wersja UNIX w napisana w języku C,
przedstawiona na ACM Symposium on
Operating Systems oraz w CACM, zyskuje
popularność.
" 1979: UNIX v.7, od którego pochodzą
współczesne wersje:
SVR4,
AIX,
SunOS,
Solaris,
Ultrix,
Mach,
OSF1,
4.4BSD.
Struktura systemu Unix
(użytkownicy)
Powłoki i polecenia
Kompilatory i interpretery
Biblioteki systemowe
interfejs funkcji systemowych jÄ…dra
Sygnały System plików Planowanie przydziału
Obsługa terminali Wymiana procesora
System znakowego System blokowego Zastępowanie stron
wejścia-wyjścia wejścia-wyjścia Stronicowanie na
Moduły sterujące Moduły sterujące żądanie
terminali dysków i taśm Pamięć wirtualna
Interfejs między jądrem a sprzętem
Sterowniki terminali Sterowniki urządzeń Sterowniki pamięci
terminale Dyski i taśmy Pamięć operacyjna
Linux - charakterystyka
" System wielodostępny (z podziałem czasu) i wielozadaniowy
" System wieloprocesowy, dostępne proste mechanizmy do tworzenia
hierarchii procesów
" Dostępny na wiele architektur
" Posiada prosty standardowy interfejs użytkownika, który można łatwo
podmieniać (shell -> interpretator poleceń)
" Udostępnia systemy (!) plików o wielopoziomowej strukturze drzewiastej
" Pliki są widziane jako ciągi bajtów (łatwość pisania filtrów)
" Napisany prawie w całości w języku wysokiego poziomu
" Aadowanie programów na żądanie (fork z kopiowaniem przy zapisie)
" Pamięć wirtualna ze stronicowaniem (w starszych wersjach UNIX-a -
wymiana)
" Dynamiczna pamięć podręczna dla dysku twardego
" Współdzielone biblioteki, ładowane do pamięci dynamicznie (jeden kod
używany równocześnie przez wiele procesów)
" Zgodność z normą POSIX 1003.1
" Różne formaty plików wykonywalnych
Wieloprogramowość
" Praca pośrednia, buforowanie, spooling mają swoje
ograniczenia. Jeden użytkownik nie jest w stanie
angażować stale urządzeń wej-wyj i jednostki centralnej!
monitor
zadanie 1
zadanie 2
zadanie 3
zadanie 4
" Realizacja wieloprogramowości wymaga
skomplikowanego systemu operacyjnego:
ochrona zadań miedzy sobą,
planowanie przydziału procesora,
kolejki,
partycje o stałych lub zmiennych wielkościach
Systemy z podziałem czasu
" praca wsadowa, a praca interakcyjna
" wieloprogramowość -> wielozadaniowość (= podział
czasu)
" system z podziałem czasu wielu użytkowników dzieli
jeden komputer
" systemy z podziałem czasu są skomplikowane,
ponieważ wymagają:
realizacji mechanizmów działań współbieżnych
zarządzania pamięcią
ochrony pamięci
planowania przydziału CPU
administrowania pamięcią dyskowa
systemu plików dostępnych bezpośrednio
Dualny tryb pracy
" System operacyjny musi gwarantować, że niepoprawny
program nie będzie zakłócał działania innych
programów.
niepoprawnie działający program musi generować przerwanie
ochronie musza podlegać wszelkie zasoby współdzielone
sprzęt pozwalający odróżnić dwa tryby pracy: tryb użytkownika
oraz tryb monitora (nadzorcy, systemu).
każde przerwanie powoduje przejście systemu z trybu
użytkownika do trybu monitora.
" dualny tryb pracy jest uzupełniony listą
uprzywilejowanych rozkazów maszynowych, które mogą
być wykonywane tylko w trybie monitora
Dualny tryb pracy c.d.
" Tryb nadzorcy (monitora)
w tym trybie wykonywane sa rozkazy uprzywilejowane,
np. rozkazy wejścia-wyjścia, zmieniające stan rejestrów zarządzających
pamięcią i czasomierzem, rozkaz halt, rozkazy włączania/wyłączania
przerwań
" Tryb użytkownika
program użytkownika wykonuje rozkazy uprzywilejowane poprzez
wywołanie systemowe (system calls).
Odwołanie do systemu jest traktowane przez sprzęt jak przerwanie
programowe. Poprzez wektor przerwań sterowanie przekazywane jest
do odpowiedniej procedury obsługi w systemie operacyjnym.
Rodzaj usługi, na która zgłasza zapotrzebowanie użytkownik jest
określony przez parametr odwołania do systemu.
System operacyjny wykonuje na życzenie użytkownika operacje
zastrzeżone dla nadzorcy.
Procesy
" W uproszczeniu możemy przyjąć następującą definicję:
Proces = program realizowany przez system komputerowy.
" Proces jest aktywny.
licznik rozkazów wskazuje następna instrukcje do wykonania.
Wykonanie procesu musi przebiegać w sposób sekwencyjny.
" Procesem jest program użytkownika, zadanie systemowe (spooling,
przydział pamieci itp.).
" Program jest bierny.
jest zbiorem bitów przechowywanych na dysku.
Program nie jest procesem.
" Proces to pojedynczy wykonywalny program, działający we własnej
przestrzeni adresowej.
Procesy c.d.
" Proces stanowi jednostkÄ™ pracy w
systemie.
" System składa się ze zbioru procesów.
" Rodzaje procesów:
procesy systemu operacyjnego
" programy uruchomione przez system operacyjny
procesy użytkowników
" programy uruchomione przez użytkownika
Wykonywanie procesu
" Wykonywanie procesu przebiega sekwencyjnie, zgodnie
z kolejnością instrukcji w przestrzeni adresowej procesu.
Można patrzeć na proces jak na abstrakcyjnego agenta,
który wykonuje program użytkowy i dostarcza
środowisko operacyjne na potrzeby tego wykonania.
Przestrzeń adresowa procesu to zbiór adresów pamięci, do
których proces może się odwoływać podczas wykonania.
Kontekst procesu to jego środowisko operacyjne. Obejmuje ono
zawartość rejestrów ogólnych i sterujących procesora, w
szczególności:
" licznik rozkazów (PC, program counter),
" wskaznik wierzchołka stosu (SP, stack pointer),
" słowo stanu procesora (PSW, processor status word),
" rejestry zarządzania pamięcią (umożliwiają dostęp do kodu i danych
procesu).
Dygresja:
Architektura von Neumanna
" Koncepcja architektury von Neumanna polega na podziale
komputera na cztery podstawowe części:
Jednostka Arytmetyczno Logiczna ALU wykonująca działania na
danych binarnych.
Jednostka sterujÄ…ca interpretujÄ…ca i wykonujÄ…ca rozkazy z
pamięci
pamięć zawiera dane programu i sam program (rozkazy)
urządzenia wejścia/wyjścia
Jednostka
arytmetyczno-logiczna
UrzÄ…dzenia
Pamięć
I/O
Jednostka sterujÄ…ca
Komputer von Neumanna
" Pamięć główna przechowuje dane i program.
" Jednostka arytmetyczno-logiczna (ALU) działa na
danych binarnych.
" Jednostka sterujÄ…ca interpretuje oraz wykonuje rozkazy
z pamięci.
" UrzÄ…dzeniami we/wy steruje jednostka sterujÄ…ca.
Jednostka
arytmetyczno-logiczna
UrzÄ…dzenia
Pamięć
I/O
Jednostka sterujÄ…ca
Uniwersalność systemu
komputerowego
" Architektura v. Neumanna pozwala na
przełączanie systemu z fazy wykonywania
określonego zadania (programu) na inne
bez fizycznej ingerencji w strukturÄ™
systemu.
" Model komputera wykorzystujÄ…cego
architekturę von Neumanna jest często
nazywany Przykładową Maszyną Cyfrową
(PMC).
Rozróżnienie
" Proces różni się od zadania czy polecenia, które w
systemach Unix składać się może z wielu wspólnie
działających procesów w celu wykonania określonej
pracy.
Proste polecenia, takie jak ls, sÄ… wykonywane jako jeden
proces.
Złożone polecenia, zawierające potoki, będą wykonywać jeden
proces dla każdego segmentu potoku.
" Obserwacja procesów:
pstree -ch,
top,
htop,
ksysguard
Uwaga
" Synonimami procesu, które są stosowane w
literaturze sÄ…: zadanie (job) lub praca (task).
Zadanie - systemy wsadowe, może być wykonywane
tylko jedno,
Praca - systemy z podziałem czasu (czas
wykorzystania zasobów w tym procesora) jest
dzielony na wiele prac (multitasking).
" W przypadku systemów jednoprocesorowych
równoległa praca jest realizowana za pomocą
chwilowego przydziału zasobów.
Status procesu ps
" Polecenie ps przedstawia status procesu.
" Polecenie to ma wiele opcji: http://linux.die.net/man/1/ps
" Domyślnie ps wyświetla procesy mające ten sam efektywny identyfikator użytkownika
(EUID), co bieżący użytkownik, oraz podłączone do tego samego terminala, do
którego podłączona jest osoba uruchamiająca polecenie:
% ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 Jul 03 ? 0:00 sched
root 2 0 0 Jul 03 ? 0:00 pageout
root 136 1 0 Jul 03 ? 0:27 /usr/sbin/rpcbind
root 17242 243 0 19:20:12 ? 0:00 /usr/samba/bin/smbd
-e lub A wybiera wszystkie procesy
-f dokonuje pełnego formatowania listy.
Status procesu ps
% ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 Jul 03 ? 0:00 sched
" Znaczenie:
UID: login name
PID: process id
PPID: process ID of the parent process
C: current scheduler value
STIME: start time
TTY: nazwa terminala z którego zostało uruchomione polecenie
TIME: accumulated CPU time
CMD: polecenie
" W przypadku polecenia ps można nie wpisywać znaku myślnika przed
parametrami z jakimi wywołanane jest polecenie.
Status procesu ps
" Polecenie ps może być używane w
potokach, aby wyświetlić informację o
wybranych procesach np. :
% ps -ef | grep httpd
UID PID PPID C STIME TTY TIME CMD
nobody 9538 299 0 15:29:23 ? 0:00
/usr/local/etc/httpd/httpd
nobody 9302 299 0 15:22:59 ? 0:00
/usr/local/etc/httpd/httpd
nobody 9557 299 0 15:31:29 ? 0:00
/usr/local/etc/httpd/httpd
Procesy w systemie Windows
Blok kontrolny procesu
" stan procesu
" numer procesu
" licznik rozkazów, stosu
" rejestry
" ograniczenia pamięci
" wykaz otwartych plików
" informacja o planowaniu przydziału procesora
" informacja o wykorzystanych zasobach (rozliczanie)
" Z procesem związana jest określona wirtualna
przestrzeń adresowa, segment programu, danych, stosu.
Stan procesu
" Proces jest wykonywany w sposób sekwencyjny.
Oznacza to, że w danej chwili może być
wykonywana jedna instrukcja kodu procesu.
" Proces może być:
nowy - proces został utworzony,
bieżący (aktywny) - są aktualnie wykonywane
instrukcje,
oczekujÄ…cy- czeka na wystÄ…pienie jakiegoÅ› zdarzenia
(np. na zakończenie operacji wejścia-wyjścia),
gotowy - proces czeka na przydział procesora,
zakończony - proces zakończył działanie.
Stan procesu
Procesy w Systemie Operacyjnym
" S.O. bez wywłaszczania (nonpreemptive)
planista jest wywoływany tylko wówczas kiedy proces
dobrowolnie zrezygnuje z CPU
" Np. wczesne systemy wsadowe stosowały podejście run to
completion.
" S.O. z wywłaszczaniem (preemptive)
system operacyjny odbiera CPU procesowi i wywołuje
planistÄ™
Np. jeśli wykonuje się zadanie o niskim priorytecie, a
jest gotowe do wykonania zadanie o wyższym
priorytecie, to zadanie o niskim priorytecie zostanie
wywłaszczone.
Zadania systemu operacyjnego
w zakresie zarzÄ…dzania procesami
" W chwili tworzenia procesu przedziela mu
zasoby komputera niezbędne do jego realizacji
(podstawowe zasoby komputera to: czas pracy
procesora oraz obszary pamięci operacyjnej).
" Gdy proces kończy swoje działanie, to
przydzielone mu wcześniej zasoby komputera
są zwalniane i system operacyjny może je
przydzielić innemu procesowi
Pseudoparalelizm i procesy
współbieżne
" Pseudoparalelizm
W systemie (jednoprocesorowym) z
podziałem czasu w danej chwili wykonuje się
tylko jeden proces,
Z uwagi na przełączanie (przełączanie
kontekstu) powstaje wrażenie równoczesnej
pracy wielu procesów.
" Współbieżność =przetwarzanie równoległe
Zadania SO zwiÄ…zane ze
współbieżną realizacją procesów
" przydziela każdemu procesowi
odpowiednie obszary pamięci operacyjnej,
" dzieli czas pracy procesora, tak aby
realizował on cyklicznie fragmenty
kolejnych procesów (przydziela każdemu
procesowi kwant czasu pracy procesora).
" rozstrzyga konflikty pomiędzy procesami
Współbieżne systemy operacyjne
" Systemy, które umożliwiają współbieżną
realizację procesów nazywane są:
systemami wielozadaniowymi gdyż w tym samym
czasie realizuje się więcej niż jedno zadanie
systemami z podziałem czasu gdyż czas pracy
procesora dzielony jest pomiędzy poszczególne
zadania.
systemami wielodostępnymi gdy poszczególne
procesy realizowane są na użytek różnych
użytkowników
Wielowątkowość
" Wielowątkowość polega na tym, że
współbieżnie mogą być realizowane różne
fragmenty tej samej aplikacji
np. w trakcie pracy z edytorem możliwa jest
jednoczesna edycja jednego dokumentu i
drukowanie innego.
ZarzÄ…dzanie procesami
" Proces wykonania określonego zadania korzysta
z zasobów:
procesor,
pamięć,
pliki,
urządzenia wejścia-wyjścia (klawiatura, ekran,
skaner, karta sieciowa, port szeregowy lub równoległy
itp.)
" Zarządzanie jest konieczne ze względu na
współdzielenie przez procesy zasobów
systemowych.
ZarzÄ…dzanie procesami
" Synchronizacja wykonywania.
trudno przewidzieć szybkość działania jednego
procesu w stosunku do drugiego.
" Blokada (deadlock),
sytuacja gdy kilka procesów współzawodniczy o
zasoby wzajemnie blokując sobie do nich dostęp.
" Semafory
sposób synchronizacji procesów.
semafory są włączane oraz wyłączane przez dane
procesy.
S.O. udostępnia procedury które automatycznie
czekajÄ… na zwolnienie semafora.
The Dining Philosophers
" Five philosophers are seated
around a circular table.
" They spend their lives just
thinking and eating.
" In the middle of the table is a
large bowl of Kung Pao
Chicken.
" Each philosopher has an
empty plate in front of him.
" Unfortunately there are only
five chopsticks, one between
each pair of philosophers.
Christopher Reedy (
http://faculty.cs.wwu.edu/reedyc)
The Dining Philosophers
" When a philosopher gets
hungry he picks up the two
chopsticks on either side of
him, one at a time.
It is not defined which
chopstick he picks up first.
If he cannot pick up a chopstick
(because the other philosopher
on that side of him already has
it) he waits until he can.
" Once the philosopher has
both chopsticks, he eats a
meal from the bowl.
" After completing his meal he
puts both chopsticks down
and thinks until he gets
hungry again.
The Dining Philosophers
" The problem is how
to design a set of
philosophers so
that:
There is not
deadlock (Every
philosopher has one
chop stick.
The Dining Philosophers
" The problem is how
to design a set of
philosophers so
that:
No one starves to
death.
Struktura procesu
" Kod programu (sekcja tekstu),
" Bieżąca czynność reprezentowana przez
licznik rozkazów,
" Stos procesu (process stack) -
przechowuje dane tymczasowe (adresy
procedur, zmienne tymczasowe itp.),
" Sekcja danych (data section) - zmienne
globalne.
Blok kontrolny procesu
" Jest to struktura przechowujÄ…ca informacjÄ™ o procesie.
" Blokiem kontrolnym procesu zarzÄ…dza system
operacyjny.
" Każdy proces musi mieć swój blok kontrolny.
" Jeżeli kod programu oraz pamięć operacyjna pozostaną
po procesie oraz nie są przypisane do żadnego bloku
kontrolnego zostajÄ… one tracone.
Jest to przypadek wycieku pamięci.
Bywa, że niektóre procesy zostają zakończone, następuje
zwolnienie zasobów, ale nie zostaje usunięty blok kontrolny
procesu. Innymi słowy: dla systemu operacyjnego proces
istnieje, ale nie wykorzystuje żadnych zasobów, proces taki nosi
nazwÄ™ procesu zombi.
Blok kontrolny procesu
" stan procesu,
" numer procesu,
" licznik rozkazów, stosu,
" rejestry,
" ograniczenia pamięci,
" wykaz otwartych plików,
" informacja o planowaniu przydziału procesora,
" informacja o wykorzystanych zasobach,
Planowanie procesów
" Kolejka zadań (job queue) - kolejka zawiera wszystkie
procesy systemu.
" Kwant czasu - w systemach wielozadaniowych,
jednoprocesorowych każdy proces otrzymuje procesor
(CPU) na wyłączność (są wykonywane jedynie jego
rozkazy) na określony i stały okres czasu.
Kontrolą zakończenia procesu zajmuje się specjalna jednostka
w procesorze, która jest uaktywniana w trybie chronionym
procesora momencie zakończenia generowane jest specjalne
przerwanie sprzętowe obsługiwane przez Planistę - program
szeregujÄ…cy.
" Planista - program szeregujÄ…cy (scheduler, dyspozytor)
wybierają odpowiednie procesy, które mają aktualnie
otrzymać dostęp do procesora.
Operacje na procesach
" załadowanie,
" zakończenie,
" utworzenie procesu/zakończenie procesu
" pobranie atrybutów/określenie atrybutów,
" czekanie czasowe,
" oczekiwanie na zdarzenie,
" przydział i zwolnienie pamięci
" W systemie Unix do wysyłania komunikatów do
działających procesów służy komenda: kill.
Drzewo procesów
" Procesy w systemie operacyjnym mogą uruchamiać inne procesy.
" Nowo uruchamiane procesy mogą mieć "więzy rodzinne", które przechowują
informację o tym, który proces go uruchomił oraz listę procesów potomnych,
które zostały uruchomione przez dany proces.
" Część procesów może zostać uruchomiona oddzielnie, tzn. bez więzów
rodzinnych. W tym przypadku procesy nazywa siÄ™ 'demonami (daemons).
Typowymi demonami są procesy które wykonują zadania serwera www, serwera
ftp, serwera plików, serwera autoryzacji (logowania,np. NIS)
CharakteryzujÄ… siÄ™ one brakiem terminala, czyli interaktywnego urzÄ…dzenia
wejścia-wyjścia.
" Więzy rodzinne wykorzystywane są do kontroli zbioru procesów.
Np. gdy zostanie zatrzymany (zakończony -> terminate) proces macierzysty
(główny, czyli rodzic) niektóre systemy operacyjne automatycznie zatrzymują ich
procesy potomne.
" W systemie Unix, aby obejrzeć drzewo procesów systemu należy wpisać
komendÄ™: pstree
WÄ…tki (threads)
" WÄ…tek (proces lekki) to podstawowa jednostka
wykorzystania procesora w skład której wchodzą:
własny licznik rozkazów,
własny zbiór rejestrów,
własny obszar stosu.
" WÄ…tki uruchamiane sÄ… w ramach jednego procesu oraz
współużytkują:
sekcjÄ™ kodu,
sekcjÄ™ danych,
zasoby systemu
" Odpowiednio zaprojektowana struktura wątków
powoduje, że w ramach jednego procesu może działać
szereg wątków, które wykonują się konkurencyjnie,
jednocześnie dzieląc wspólną przestrzeń adresową.
Dlaczego czego stosuje siÄ™ wÄ…tki?
" WÄ…tki sÄ… wygodniejsze w programowaniu.
wspólna sekcja danych nie wymaga
mechanizmów wymiany danych.
" Wątki poprawiają wydajność systemu
operacyjnego.
eliminujÄ… algorytmy skomplikowanego
przełączania procesów.
Dlaczego czego stosuje siÄ™ wÄ…tki?
" Przełączenie się procesora między wątkami jest
szybsze od przełączania się procesów.
W systemie Windows (NT, XP itd.) każdy proces ma
jeden wątek główny, który jest uruchamiany
automatycznie w momencie utworzenia procesu.
W systemie Windows obsługa wątków jest
podstawowym elementem architektury.
Podobne rozwiÄ…zanie zastosowano w systemie
operacyjnym Linux:
http://home.agh.edu.pl/~kozlak/PS2010/synchronizacja_lin
http://students.mimuw.edu.pl/SO/LabLinux/PROCESY/POD
Programy i wÄ…tki
" Najczęściej program
składa się tylko z jednego
wątku, zwanego też
wątkiem głównym
(primary thread, main
thread).
Jest on tworzony
automatycznie.
" Można jednak utworzyć w
programie kilka wątków.
W systemie Windows wÄ…tki
widoczne sÄ… w
Menedżerze Zadań po
włączeniu zakładki Wątki .
Ile wątków?
" Po co budować aplikacje wielowątkowe?
" Przykład:
jeden z wątków może zajmować się czasochłonnymi
zadaniami w tle (np. wczytywaniem danych) podczas
gdy wątek główny realizuje na pierwszym planie
zadanie zasadnicze (np. wyświetlanie filmu,
renderowanie sceny) i zarządza pozostałymi wątkami.
w efekcie przetwarzanie danych "w tle" nie przebiega
szybciej (wręcz przeciwnie), za to nie blokuje
(zbytnio) głównego wątku co sprawia wrażenie
płynności i stabilności działania aplikacji.
Planowanie przydziału procesora
" Polega na wybraniu procesu oczekującego w kolejce procesów
gotowych i przydzieleniu mu procesora.
" Przydziału dokonuje moduł jądra S.O.: ekspedytor (dyspozytor,
planista: dispatcher).
" ObowiÄ…zki dyspozytora:
przełączanie kontekstu,
przełączanie do trybu użytkownika,
wykonanie skoku do odpowiedniej komórki w programie użytkownika w
celu wznowienia działania programu.
" Wymagania:
dyspozytor musi być jak najszybszy,
minimalna strata czasu procesora.
" Opóznienie ekspedycji (ang. dispatch latency)
Jest to czas który zużywa ekspedytor na przełączanie między
procesami.
Przydział zasobów
" Sytuacje kiedy następuje podjęcie decyzji o przydziale zasobów
procesora (bez wywłaszczania).
" Gdy proces przeszedł w od stanu aktywności do stanu czekania
np. oczekuje na zakończenie operacji wejścia-wyjścia.
" Proces przeszedł od stanu aktywności do stanu gotowości:
gdy wystąpiło np. przerwanie.
" Zmiana ze stanu czekania na stan gotowości:
np. na skutek zakończenia operacji wejścia-wyjścia.
" Gdy proces kończy działanie.
" Dla przypadków 1 i 4 kandydatem do przydzielenia zasobów musi
być nowy proces,
" Dla przypadków 2 i 3 kandydatem może być inny proces lub ten
który był aktualnie wykonywany.
Planowanie z wywłaszczaniem
i bez wywłaszczania
" Z wywłaszczaniem - (ang. preemptive) - proces
zostaje przerwany w trakcie działania, oraz
zostaje automatyczne wywołana procedura
planowania z modułu dyspozytora.
" Bez wywłaszczania - program zwraca kontrolę
do systemu operacyjnego np. w momencie
zmiany jego stanu.
" W technologii z wywłaszczaniem podstawowym
pojawiającym się problemem jest możliwość
przerwania działania programu jądra w
momencie zapisywania przez nie ważnych
danych.
Planowanie z wywłaszczaniem
i bez wywłaszczania
" Systemy rodziny Unix zabezpieczają wywołania
systemowe uniemożliwiając ich przerwanie
przez wywłaszczenie.
" Model taki powoduje, że systemy te nie nadają
się do zastosowań w obliczeniach czasu
rzeczywistego, kiedy odpowiedz systemu
operacyjnego musi nastąpić w z góry
określonych odstępach czasowych.
" Blokowanie wywłaszczania może spowodować
opóznienie niektórych odpowiedzi.
Diagram kolejek w planowaniu
procesów
Planiści
" Planista długoterminowy (long term scheduler).
Planista zadań, wybiera procesy, które mają być
wprowadzone do pamięci do kolejki procesów
gotowych.
Planista ten wywoływany jest co kilka minut,
algorytmy których używa mogą być bardziej
skomplikowane.
" Planista krótkoterminowy (short term scheduler).
Planista przydziału procesora, wybiera proces
następny z kolejki procesów gotowych i przydziela mu
procesor.
Planista ten wywołany jest bardzo często, co kilka
milisekund, jego czas działania musi być bardzo
zoptymalizowany.
Kryteria planowania
" Poniższe kryteria służą do oceny planistów
zaimplementowanych w danym systemie operacyjnym:
wykorzystanie procesora (planista dąży do zmaksymalizowania
wykorzystania)
przepustowość (jest to liczba procesów kończonych w jednostce
czasu)
czas cyklu przetwarzania (na potrzebny na wykonanie procesu
od momentu uruchomienia do zakończenia procesu)
czas oczekiwania - algorytm planowania nie ma zasadniczego
wpływu na czas działania procesu, a jedynie na czas jego
oczekiwania na przydzielenie procesora
czas odpowiedzi - czas pomiędzy złożeniem żądania a czasem
odpowiedzi
Algorytm planowania
FCFS - First Come First Serve
" Załóżmy że procesy P1, P2, P3, nadejdą (zostanie zgłoszone żądanie wykonania) w
tym samym momencie (czyli w tej samej chwili) w kolejności P1,P2,P3.
" Załóżmy czas trwania procesów:
P1 - 24 kwanty czasu
P2 - 3
P3 - 3
" Zgodnie z algorytmem FCFS procesy zostanÄ… wykonane tak jak przedstawiono to na
rysunku.
Algorytm planowania
SJF - Shortest Job First
" Załóżmy cztery procesy o czasach trawania w kwantach czasu:
P1 - 6
P2 - 8
P3 - 7
P4 - 3
" Zgodnie z algorytmem SJF procesy zostaną wykonane w kolejności:
Planowanie priorytetowe
" Załóżmy następujący przypadek procesów:
Proces Czas trwania Priorytet
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
Planowanie rotacyjne
RR - Round-Robin
" Planowanie to zostało zaprojektowane dla systemów z podziałem
czasu (czyli dla systemów z wywłaszczaniem).
" Algorytm ten jest podobny do FCFS z dodanym wywłaszczaniem.
" Dla ustalonego kwantu czasu: 4ms oraz dla założonych procesów:
P1 - 24
P2 - 3
P3 - 3
Pamięć operacyjna
" Pamięć operacyjna jest tablicą ponumerowanych słów
lub bajtów, tzn., że każdy element tablicy ma swój adres.
odgrywa kluczowa role we współczesnych systemach
komputerowych, gdyż jest jedyną pamięcią, która system
operacyjny adresuje bezpośrednio RAM, Random Access
Memory.
podczas wykonywania programy oraz ich dane musza
znajdować się w pamięci operacyjnej.
Jeśli programy nie mieszczą się w pamięci, to system
operacyjny zaczyna gromadzić je w pamięci pomocniczej.
" Większość współczesnych systemów komputerowych
posługuje się w tym celu pamięcią dyskową.
Zarządzanie pamięcią
" Zarządca pamięci jest odpowiedzialny za:
przydział wolnych obszarów
odzyskiwanie uwolnionych obszarów
przenoszenie procesów z pamięci głównej do pamięci
pomocniczej
" Rodzaje systemów zarządzania pamięcią:
systemy, które cały program w czasie jego wykonania
przechowują w pamięci głównej
systemy, które stale przesuwają procesy pomiędzy
pamięcią główna, a pamięcią dyskową.
" wymiatanie i stronicowanie.
Systemy z wymianÄ…
" W systemach interakcyjnych dostępna pamięć
operacyjna jest zwykle mniejsza niż suma
pamięci zużywanej przez procesy.
" Nadmiar procesów musi być przechowywany w
pamięci pomocniczej.
" Przesuwanie procesów z pamięci głównej na
dyskowa i z powrotem określa się mianem
wymiany (swapping).
" Czas przełączania kontekstu w systemie, w
którym stosuje się wymianę jest stosunkowo
długi.
Zarządzanie pamięcią operacyjną
" W zakresie zarządzania pamięcią operacyjną
system operacyjny wykonuje następujące
zadania:
ewidencjonowanie zajętych obszarów pamięci,
przydzielanie i zwalnianie pamięci (często
dynamiczne, zwiÄ…zane ze zbiorami danych o
zmiennych rozmiarach),
nadzorowanie ustalonych alokacji pamięci
i zapobieganie naruszaniu przez jeden proces
zasobów przydzielonych innemu procesowi
pozorowanie dostępności większego zasobu pamięci
operacyjnej niż ten, który jest fizycznie dostępny
poprzez zrzucanie fragmentów nie używanych w
danym momencie kodów i danych na dysk (tzw.
swapowanie)
Organizacja pamięci
" Pamięć podzielona jest na 4kb od Pentium 4Mb
bloki (strony).
Proces uruchamiany jest w wirtualnej przestrzeni
adresowej.
" Gdy program użytkownika odwołuje się do
zmiennej lub procedury używa adresu
wirtualnego.
Jednostka zarządzająca pamięcią (Memory
Management Unit, MMU): odwzorowuje adresy
wirtualne na adresy fizyczne.
" Taki model organizacji pamięci umożliwia
systemowi operacyjnemu przydzielać obszary
pamięci fizycznej w dowolny sposób .
Organizacja pamięci
" Wirtualna przestrzeń adresowa składa się
z dwóch segmentów:
" segmentu jÄ…dra zawierajÄ…cego:
informacje o stanie procesu,
właścicielach np. użytkowniku i grupie,
stanie rejestrów procesora,
bufory wejścia-wyjścia,
" segmentu użytkownika zawierającego:
kod programu (ciąg rozkazów maszynowych),
dane programu użytkownika.
Rozwój technologii
" Mikroprocesor staje się mniejszy, gęściej upakowany i
bardziej wydajny.
" Prawo Moore a
Gordon Moore
(współzałożyciel firmy Intel)
przewidział w 1965 roku, że
gęstość upakowania
tranzystorów w chipie
półprzewodnika będzie się
podwajała co 18 miesięcy.
yródło: Jack Dongarra
Rozwój technologii, a efektywny
czas dostępu do pamięci
" Nastąpił szybki rozwój pojemności pamięci
i szybkości procesorów
" Wolniejszy przyrost szybkości przesyłania
danych pomiędzy procesorem i pamięcią.
100·106
10·106
Czas dostępu
1·106
Dysk
105
DRAM
104
SRAM
103
Czas cyklu CPU
102
10
1
1980 1985 1990 1995 2000
rok
Czas [ns]
Ewolucja procesorów i pamięci
DRAM
" Interfejs pomiędzy pamięcią główna, a
CPU stanowi krytyczny element
komputera.
Ponieważ jest on odpowiedzialny za przepływ
rozkazów i danych pomiędzy tymi układami.
" Jeśli dostęp do pamięci jest
niewystarczajÄ…cy, to marnowane sÄ… cykle
procesora.
GÅ‚odzenie procesora.
Rodzaj dostępu do pamięci:
" dostęp sekwencyjny
" dostęp bezpośredni
" dostęp swobodny
" dostęp skojarzeniowy
Rodzaje pamięci
półprzewodnikowych
" RAM (Random Access Memory ) pamięć o dostępie swobodnym
odczyt-zapis, wymazywanie/zapisywanie elektryczne na poziomie bajta
" ROM (Read-Only Memory ) pamięć stała
tylko odczyt, zapisywanie w trakcie wytwarzania
" PROM (Programmable ROM) programowalna pamięć stała
Tylko odczyt, wymazywanie promieniowaniem UV, zapisywanie
elektryczne
" EPROM (Erasable and Programmable ROM) wymazywalna i
programowalna
pamięć stała głównie odczyt, wymazywanie promieniowaniem UV,
zapisywanie elektryczne
" pamiec błyskawiczna (flash memory)
głównie odczyt, wymazywanie elektryczne na poziomie bloku, zapis
elektryczny
" EEPROM (Electrically Erasable and Programmable ROM)
wymazywalna i programowalna pamięć stała
głównie odczyt, wymazywanie/ zapisywanie elektryczne
Typy pamięci
" Pamięć podręczna (cache) - znajduje się
bezpośrednio na procesorze.
" Drugi poziom pamięci podręcznej - realizowany
przez dodatkowe układy (np. w starszych
architekturach SRAM (20ns)
" Pamięć rzeczywista robocza zrealizowana w
SRAM (60ns), DDR
Z punktu widzenia programowania (czyli aplikacji
użytkownika) pamięci cache są przezroczyste po
zainicjalizowaniu ich przez BIOS.
Organizacja pamięci DRAM
" Pojemność pamięci DRAM podzielona jest na n = 16 komórek
(super-komórek) zawierających po m = 8b.
Układ DRAM 16 x 8
kolumny
0
1 2 3
2b
0
/
adres
1
wiersze
Kontroler
2 komórka
Pamięci
komunikacja
(1,2)
z CPU
3
8b
/
dane
Bufor wewnętrzny
Czytanie danych z pamięci DRAM
1. Wybranie wiersza pamięci (Row Access Strobe)
RAS=1.
2. Wiersz 3 zostaje skopiowany z DRAM do bufora.
Układ DRAM 16 x 8
kolumny
0
1 2 3
2b
0
/
adres
1
RAS = 1
wiersze
Kontroler
2
Pamięci
komunikacja
z CPU
3
8b
/
dane
Bufor wewnętrzny
Czytanie danych z pamięci DRAM
1. Wybranie kolumny pamięci (Column Access Strobe) CAS=2 .
2. komórka (1, 2) zostaje skopiowana z bufora i umieszczona na
liniach magistrali danych, a następnie przesłana do CPU.
Układ DRAM 16 x 8
kolumny
0
1 2 3
2b
0
/
adres
1,2
1
CAS = 2
wiersze
Kontroler
2
Pamięci
komunikacja
z CPU
3
8b
/
dane
Bufor wewnętrzny
Modułowa organizacja pamięci
addr (row = i, col = j)
: superkomórka (i,j)
DRAM 0
64 MB
Moduł pamięci
składający się z
DRAM 7
8 8Mx8 układów DRAM
bity bity bity bity bity bity bity bity
56-63 48-55 40-47 32-39 24-31 16-23 8-15 0-7
63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
Kontroler
pamięci
64b słowo znajdujące się pod
jednym adresem w pamięci głównej
Organizacja pamięci operacyjnej
" Przestrzeń adresowa - mapa możliwej do zaadresowania przez
dany proces pamięci. Obejmuje ona pewien pamięci fizycznej i
ewentualnie pamięci wirtualnej.
" W skład przestrzeni adresowej procesu wchodzą:
kod wykonywalny (binarny) procesu
pamięć współdzielona - obszar pamięci, widziany przez kilka
procesów i odnoszący się do wspólnego obszaru danych w systemie
operacyjnym. Zmiany wprowadzone przez dany proces sÄ… widziane w
innych procesach. Dostęp do pamięci współdzielonej jest
synchronizowany, np. przy pomocy semaforów.
dane
biblioteki dynamiczne
Stos - (Stack) liniowa struktura danych, w której dane dokładane są
na wierzch stosu i z wierzchołka stosu są pobierane (bufor LIFO, Last
In, First Out).
Sterta (Heap) obszar przestrzeni adresowej procesu służący do
dynamicznej alokacji pamięci (odwołanie przez adres)
obiekty (pliki) odwzorowane w obszarze pamięci wirtualnej procesu za
pomocą wywołań systemowych typu mmap()
Segmentacja pamięci
" Segmentacja pamięci - jedna z metod ochrony
pamięci, przy wielozadaniowości.
" Polega ona na podzieleniu przez system
operacyjny pamięci fizycznej na fragmenty o
określonym początku, rozmiarze, atrybutach i
identyfikatorze.
" System tworzy segmenty na żądanie aplikacji,
przekazujÄ…c jej jedynie identyfikatory nie
pozwalające na odczytanie parametrów
segmentów.
Segmentacja pamięci
" Procesy odwołują się do kolejnych komórek
pamięci w ramach należących do nich
segmentów, nie wiedząc nic o tym, w jakie
miejsca pamięci fizycznej trafiają ich odwołania.
" Procesy nie widzą segmentów należących do
innych programów.
W momencie przekazywania kontroli danemu
procesowi S.O. musi zablokować definicje
segmentów należących do pozostałych procesów.
Przy każdym przełączeniu S.O. blokuje segmenty
wyłączanego programu i na nowo uaktywnia
segmenty programu aktywowanego.
Stronicowanie pamięci operacyjnej
Stronicowanie jest jednym ze sposobów
rozwiązania problemu zewnętrznej fragmentacji
polegającym na dopuszczeniu nieciągłości
logicznej przestrzeni adresowej procesu
Podstawowa metoda stronicowania:
" Pamięć fizyczna dzielona jest na bloki stałej
długości zwane ramkami.
" Pamięć logiczna dzielona jest na bloki stałej
długości zwane stronami.
" Rozmiary stron i ramek sÄ… identyczne.
Stronicowanie w architekturze i386
Struktura
" Pamięć fizyczna (max4GB) dzielona jest na 4kB bloki
nazywane ramkami.
" Pamięć logiczna dzielona jest 4 kB strony
Procesory Pentium i nowsze używają stron o rozmiarze 4 MB.
" Gdy program odwołuje się do pamięci, podaje adres
liniowy właściwej komórki pamięci.
" Adres liniowy jest 32-bitową liczbą, która składa się z
trzech części:
indeks w katalogu stron (liczba 10-bitowa),
indeks w tablicy stron (liczba 10-bitowa),
przesunięcie w obrębie strony (liczba 12-bitowa).
Stronicowanie w architekturze i386
Działanie
" indeks w katalogu stron (10b), wybiera z
katalogu stron tablicÄ™ stron.
" indeks w tablicy stron (10b), wybiera
pozycję z tablicy stron, która wyznacza
fizyczny adres konkretnej strony.
" przesunięcie (12b), jest adresem
lokalnym w obrębie wybranej strony.
Pamięć (4GB)
Katalog (10b) Tablica (10b) Przesunięcie (12b)
Katalog stron Tablica stron
4KB
Dodatkowe bity
" Każda pozycja w tablicy stron przechowuje dodatkowe informacje dotyczące
strony pamięci:
" Bit obecności (present) informuje czy strona znajduje się w pamięci
fizycznej.
Gdy system operacyjny usuwa stronę z pamięci (przenosi na dysk) zeruje ten bit.
Jeśli program odwoła się do strony nieobecnej w pamięci CPUgeneruje wyjątek,
wówczas S.O. wczytuje z dysku zapisaną tam zawartość strony.
" Bit użycia (accessed) jest ustawiany przez procesor, gdy nastąpi odwołanie
do danej strony.
Wartość zerowa bitu użycia oznacza brak odwołań do strony i jest sygnałem dla
S.O. że może być przeniesiona na dysk.
Ustawiony bit użycia może w pewnym stopniu zabezpieczać stronę przed
przeniesieniem na dysk.
" Bit modyfikacji (dirty lub modified) jest ustawiany podczas zapisu danych.
Jeżeli dana strona jest usuwana z pamięci, to w przypadku ustawienia bitu
modyfikacji musi być zapisana na dysk.
Wartość zerowa bitu modyfikacji oznacza, że strona w pamięci oraz strona na
dysku jest taka sama, nie ma konieczności ponownego zapisywania jej na dysk.
Stronicowanie w architekturze i386
Definicje
" Katalog stron zawiera wskazniki do tablic stron.
" Tablice stron przechowujÄ… adresy fizyczne
stron. (SO może zarządzać wieloma katalogami
i tablicami stron).
Ponieważ uzyskiwanie dostępu do pamięci w celu
odczytania informacji o stronie jest czasochłonne,
procesory posiadają pamięć podręczną (TLB,
Translation Lookaside Buffer), w której pamiętane są
ostatnio wyznaczone adresy fizyczne stron.
TLB przechowuje 32, 64, 256 lub więcej pozycji.
Adresowanie pamięci w
procesorach 80386 i nowszych
"
adres logiczny (segmentacja) używany w instrukcjach języka
maszynowego do określania adresów argumentów lub instrukcji
składa się z:
16-bitowego selektora segmentu
32-bitowego przesunięcia (offsetu), który oznacza oznacza odległość
od poczÄ…tku segmentu do aktualnego adresu
"
adres liniowy (stronicowanie) pojedyncza 32-bitowa liczba
całkowita bez znaku, która pozwala adresować do 4GB pamięci
"
adres sprzętowy używany do adresowania komórek pamięci
znajdujących się w układach pamięci. 32-bitowa liczba całkowita
bez znaku
"
Jednostka segmentacji MMU (Memory Management Unit), to
zestaw układów realizujących dostęp do pamięci fizycznej
żądanej przez CPU.
"
MMU tłumaczy adres logiczny na adres liniowy. Inny obwód
sprzętowy, zwany jednostką stronicowania, tłumaczy adres
liniowy na fizyczny.
Pamięć wirtualna
Zalety
" umożliwia wykonywanie procesów, pomimo że
nie są one w całości przechowywane w pamięci
operacyjnej ani nie zajmują spójnych obszarów
pamięci
" logiczna przestrzeń adresowa może być większa
od logicznej przestrzeni adresowej
" tworzy iluzję dużej, jednorodnej i szybkiej
pamięci
" procesy mogą współdzielić fragmenty swojej
przestrzeni adresowej
Techniki realizacji pamięci wirtualnej
Stronicowanie na żądanie
" Strona jest sprowadzana do pamięci dopiero gdy
występuje odwołanie do niej.
" Z każdą pozycją w tablicy stron jest związany bit
poprawności odwołania (1-strona w pamięci, 0 strona
poza pamięcią)
" Odwołanie do strony z bitem poprawności = 0 powoduje
błąd braku strony (page fault). Wówczas:
system znajduje wolnÄ… ramkÄ™
sprowadza stronę z dysku do pamięci
uaktualnia bit poprawności =1
restartuje instrukcję, która spowodowała błąd
Stronicowanie na żądanie
co siÄ™ dzieje gdy nie ma ramki?
" Następuje wymiana stron (page
replacement) system znajduje, według
pewnego algorytmu, w pamięci stronę
najmniej używaną i przenosi ją na dysk
(Swap).
" Strony mogą być sprowadzane do pamięci
wielokrotnie.
Problem lokowania bajtów w komórkch pamięci
Gdy rozmiar słowa danych jest większy od rozmiaru komórki pamięci.
Pytanie: czy młodszy czy najstarszy bajt słowa ma być przechowywany
pod najniższym adresem?
Przykład: 16-bitowa liczba ABCD(16), zapisana pod adresem 0:
msb ... lsb
AB CD
Little Endian
Big Endian
1
AB
1
CD
0
CD
0
AB
Klasyfikacja pamięci
" Kryterium klasyfikacji pamięci jest jej oddalenie" od
procesora. Odległość ta jest określana liczbą cykli
maszynowych, koniecznych dla uzyskania dostępu do
pamięci.
" Pamięć bliższa procesorowi powinna być szybsza. W
miarę oddalania się pamięci od procesora stosuje się
dłuższe czasy dostępu, oparte o tańsze technologie
(zasada im szybsze pamięci tym mniejsza pojemność).
Pamięcią podręczną jest bardzo szybka pamięć o niewielkiej
pojemności, w której tymczasowo mogą być przechowywane
dane pochodzące z często używanych lokacji pamięci.
Pamięć podręczna jest połączona ze znacznie pojemniejszą
pamięcią główną, która zazwyczaj cechuje się większym
czasem dostępu.
Pamięć główna jest uzupełniana przez bardzo pojemną pamięć
dodatkową, którą stanowią dyski twarde i różnego typu
przenośne nośniki danych.
Hierarchia pamięci
" Im szybsza jest pamięć, tym wyższy jest koszt
przechowywania w niej jednostki informacji.
" RozwiÄ…zaniem optymalizujÄ…cym efektywny czas
dostępu do pamięci jest zastosowanie pamięci
hierarchicznej zbudowanej z różnych typów
pamięci o różnych czasach dostępu i
pojemnościach.
" System komputerowy może uzyskać wydajność
wyższą niż bez użycia kombinacji pamięci
różnego typu.
Jak organizować pamięć?
" Podstawowe
rodzaje pamięci
wchodzÄ…ce w
skład pamięci
hierarchicznej:
rejestry,
pamięć
podręczną,
pamięć główną,
pamięć
dodatkowÄ….
Idea działania hierarchii pamięci
" Dla pobierania danych procesor wysyła pierwsze
żądanie do najbliższej pamięci (pamięć
podręczna).
" Jeśli dane znajdują się w pamięci podręcznej,
mogą zostać szybko pobrane przez procesor.
" Jeżeli jednak tak się nie stanie, żądanie jest
przekazywane do następnego niżej położonego
poziomu hierarchii pamięci i proces szukania
rozpoczyna się od nowa. Jeśli dane będą
znajdowały się na tym poziomie, do pamięci
podręcznej zostanie przesłany cały blok, w
którym są zlokalizowane.
Idea działania hierarchii pamięci
" Jeżeli jednak danych nie będzie na określonym
poziomie hierarchii, żądanie zostanie
przekazane do kolejnego niższego poziomu itd.
" Gdy na żądanie pobrania zawartości lokacji X,
przekazane z wyższych poziomów pamięci,
zostanie uzyskana odpowiedz udzielona przez
niżej położone poziomy hierarchii pamięci, do
pamięci znajdującej się na wyższym poziomie
zostanie przekazany cały blok danych
znajdujÄ…cych siÄ™ pod adresami X+1, X+2,...
" Zakłada się przy tym, że w najbliższym czasie
pojawi się odwołanie do tych dodatkowo
pobranych danych, co w większości przypadków
ma miejsce.
Idea działania hierarchii pamięci
" Hierarchia pamięci się sprawdza,
ponieważ programy wykazują cechę
lokalności (locality), co oznacza, że CPU
często żąda danych identyfikowanych
przez adresy X+1, X+2 i kolejne.
" Z powodu lokalności istnieje szansa
pewnej liczby trafień, związanych ze
znalezieniem w pamięci podręcznej
potrzebnego bloku.
Lokalność odwołań
" Procesor wykonuje operację dostępu do pamięci w sposób
systematyczny.
Gdy nie ma rozgałęzień programu, po pobraniu instrukcji licznik
rozkazów (PC) jest inkrementowany o jeden.
Programy mają tendencję wykorzystywać ponownie te same dane i
instrukcje.
" Jeśli w chwili t jest wykonywana operacja dostępu do lokacji X pamięci,
istnieje skończone prawdopodobieństwo, że w najbliższym czasie pojawi się
też żądanie pobrania danych identyfikowanych przez lokację X+1.
" Grupowanie się odwołań do pamięci nazywamy lokalnością
odwołań (locality of reference).
" Hierarchiczność pamięci oparta jest na lokalności odwołań.
" Przy przetwarzaniu chybienia do pamięci znajdującej się na
wyższym poziomie dokonywany jest transfer całego bloku
zawierajÄ…cego dane z otoczenia lokacji X.
Jest prawdopodobne, że w najbliższym czasie pojawi się
zapotrzebowanie na inne dane zawarte w przesłanym bloku, które będą
wówczas dostępne w szybszej pamięci.
Rodzaje lokalności
Można wyróżnić trzy podstawowe typy
lokalności:
" Lokalność czasowa
ostatnio pobrane dane mogą być ponownie potrzebne
w najbliższym czasie.
" Lokalność przestrzenna
operacje dostępu do danych grupują się w przestrzeni
adresowej (tablice, pętle).
" Lokalność sekwencyjna
dostęp do instrukcji jest realizowany w sposób
sekwencyjny.
specyficzny przykład lokalności przestrzennej.
Przykład lokalności
" Dane
" Procedura
Adresy kolejnych
obliczania sumy
elementów wektora
elementów
sÄ…siadujÄ… ze sobÄ….
wektora a:
W kolejnych
iteracjach odwołanie
sum = 0;
do wartości sumy
for (i = 0; i < n;
" Instrukcje
i++)
Odwołania do
sum += a[i];
sekwencji instrukcji,
return sum;
PowtarzajÄ…cy siÄ™ cykl
instrukcji w pętli.
Pamięć podręczna
" Procesor komputera zwykle szybciej przetwarza
pobrane informacje, niż wynosi czas dostępu do pamięci
w celu ich pobrania. Powoduje to sytuacjÄ™ wÄ…skiego
gardła.
" Remedium stanowi zastosowanie szybkiej pamięci
podręcznej (bufora) o małej pojemności. Procesor
korzysta z niej do chwilowego przechowywania danych,
których prawdopodobnie w najbliższym czasie będzie
ponownie potrzebował.
" Pamięć podręczna musi być tak zorganizowana, aby
można było zlokalizować znajdujące się w niej dane.
Lokalizacja nowego bloku danych w pamięci podręcznej
zależy od :
zasad odwzorowania pamięci podręcznej,
pojemności pamięci podręcznej (czy jest miejsce na zapisanie
nowego bloku).
Wydajność
" Wydajność pamięci podręcznej w zależności od
jej rozmiaru (skala log-log)
Terminologia
" Przy odwoływaniu się do hierarchii pamięci używana jest
następująca terminologia:
Trafienie - żądane dane zostały znalezione w pamięci określonego
poziomu.
Chybienie -żądane dane nie zostały znalezione w pamięci określonego
poziomu.
Współczynnik trafień - procentowa wartość operacji dostępu do pamięci
znajdującej się na określonym poziomie, które zakończyły się
pobraniem danych, brany pod uwagę w przypadku pamięci wyższych
poziomów.
Współczynnik chybień - procentowa wartość operacji dostępu do
pamięci znajdującej się na określonym poziomie, które nie zakończyły
siÄ™ pobraniem danych.
współczynnik chybień = 1 - współczynnik trafień
Czas trafienia. Czas wymagany do pobrania żądanych danych z pamięci
znajdującej się na określonym poziomie.
Czas chybienia. Czas wymagany na przetworzenie chybienia, który jest
sumą czasu potrzebnego na zastąpienie bloku pamięci znajdującej się
na wyższym poziomie i dodatkowego czasu związanego z
dostarczeniem żądanych danych do procesora. Czas przetworzenia
chybienia jest znacznie dłuższy niż czas przetwarzania trafienia.
Co siÄ™ dzieje w przypadku
wystÄ…pienia chybienia w L?
" Chybienie dotyczące instrukcji powoduje, że procesor
będzie musiał czekać na sprowadzenie instrukcji z MM.
" Chybienie dotyczÄ…ce czytania danych jest mniej
poważne.
Procesor może, w zasadzie, kontynuować przetwarzanie aż do
momentu kiedy będzie potrzebował tych brakujących danych,
jednak w praktyce dane są najczęściej używane niezwłocznie po
ich pobraniu.
" Chybienie związane z koniecznością zapisu słowa
danych ma jeszcze mniejsze znaczenie.
Jeżeli dane zostały buforowane procesor może kontynuować
działanie do momentu zapełnienia bufora. (niestety najczęściej
bufor ma pojemność 1 słowa)
Utrata cykli na skutek chybienia
" W wielu systemach pamięci koszty
chybienia dla procesu czytania i pisania sÄ…
jednakowe.
" Można wówczas zastosować pojedynczą
wartość wsp. chybień i kosztów chybień:
utr.cykl.pam.=czas.dost.pam.·wsp.chybieÅ„·koszt
chybień
Przykład
" Załóżmy, że Współczynnik chybień = 5%,
Wsp. Trafień = 95%.
" Czas dostępu do pamięci podręcznej tL= 20ns.
" Czas dostępu do pamięci głównej tMM=150ns.
" Średnia wartość czasu dostępu wyniesie zatem:
(1-0.05)·20ns+0.05 ·150ns = 26.5ns
Przykład
" Tabela pokazuje efektywny czas dostępu
jako funkcję współczynnika trafień.
Wsp. trafień % Efektywny czas dostępu (ns)
80 46
85 39.5
90 33
95 26.5
100 20
" Zaobserwować można znaczące
opóznienie dla dużej wartości Wsp.
chybień = 1- Wsp. trafień.
Organizacja pamięci podręcznej
" Do pamięci podręcznej procesor nie odwołuje
się przy użyciu adresu, lecz zawartości.
Z tego powodu pamięć podręczna czasem jest
nazywana pamięcią CAM ( content addressable
memory - pamięć adresowana przy użyciu
zawartości).
" W celu uproszczenia procesu lokalizacji
żądanych danych używane są różne algorytmy
odwzorowania pamięci podręcznej.
Schematy odwzorowania pamięci
podręcznej
" Procesor korzysta ze schematu
odwzorowania, dokonujÄ…cego konwersji
adresu pamięci głównej na lokację pamięci
podręcznej.
Schemat odwzorowania określa początkową
lokalizację danych skopiowanych do pamięci
podręcznej,
udostępnia procesorowi metodę identyfikacji
danych w niej umieszczonych.
Odwzorowanie pamięci podręcznej
" Pamięć główna, jak i podręczna dzielone są na jednakowe bloki (o
różnej wielkości).
" Konwersja adresów jest realizowana poprzez nadanie specjalnego
znaczenia bitom adresu pamięci głównej. Bity są dzielone na pola:
Znacznik Blok SÅ‚owo
Pole bloku jednoznacznie określa blok pamięci podręcznej.
Pole słowa (przesunięcia) jednoznacznie identyfikuje słowo zawarte w
określonym bloku, aby identyfikacja była możliwa, pole musi zawierać
odpowiednią liczbę bitów.
Pole znacznika jest nadmiarowe.
" Po skopiowaniu bloku MM do pamięci podręcznej razem z nim jest
przechowywany znacznik, który go w unikalny sposób identyfikuje.
" Suma wszystkich trzech pól po dodaniu daje liczbę bitów zawartych w
adresie pamięci głównej.
Pamięć podręczna z bezpośrednim
odwzorowaniem
" Odwzorowanie bezpośrednie polega na odwzorowaniu
bloku X pamięci głównej na blok Y pamięci podręcznej,
modulo N, gdzie N jest całkowitą liczbą bloków pamięci
podręcznej.
" Jeśli na przykład w pamięci podręcznej znajduje się 10
bloków,
blok 0 MM będzie odwzorowany na blok 0 L,
blok 1 MM na blok 1 L
" , ... ,
blok 9 MM na blok 9 L.
blok 10 MM na blok 0 L.
" Bloków pamięci głównej (MM) jest więcej niż bloków
pamięci podręcznej, więc rywalizują one o lokacje
pamięci podręcznej,
np. bloki pamięci głównej od 0 do 10 (20, 30 itd.) rywalizują o
blok 0 pamięci podręcznej.
System wejścia wyjścia
" System wejścia - wyjścia to zespół
elementów sprzętowych i programowych
pozwalających na komunikację pomiędzy
komputerem a światem zewnętrznym
ludzmi, innymi komputerami, aparaturÄ…
specjalistycznÄ… itp..
" W skład systemu operacyjnego wchodzi
między innymi oprogramowanie
pozwalające na korzystanie z portów
np. COM, LPT, USB.
Zarządzanie systemem wejścia
wyjścia
" System wejścia - wyjścia służy do
realizacja operacji zwiÄ…zanych z:
wprowadzaniem danych przez użytkownika,
wprowadzaniem danych pochodzÄ…cych z
różnych urządzeń pamięci masowej,
wskazujących, skanerów, urządzeń
pomiarowych,
wyprowadzanie informacji przeznaczonych
dla użytkownika,
przesyłanie informacji do różnych urządzeń.
Systemy z obsługa przerwań
" Synchroniczne i asynchroniczne operacje wej-wyj.
" W systemach wieloprogramowych i z podziałem czasu operacje
wej-wyj nakłada się na działanie jednostki centralnej
(asynchroniczne wej-wyj).
" Jak ma współdziałać jednostka centralna z urządzeniami wej-wyj?
" Jak zapewnić synchronizacje działania poszczególnych elementów
systemu komputerowego?
przesyłanie danych sterowane przerwaniami (w przeciwieństwie do
schematu opartego na aktywnym czekaniu i odpytywaniu.
przesyłanie danych na zasadzie bezpośredniego dostępu do pamięci
" DMA, Direct Memory Access
" Kontroler urzÄ…dzenia zwiÄ…zany jest z konkretnym urzÄ…dzeniem i
rozporządza lokalnym buforem i zbiorem rejestrów o specjalnym
przeznaczeniu.
" Odpowiada on za przesyłanie danych miedzy urządzeniem
zewnętrznym, a własnym buforem.
Systemy z obsługą przerwań
" Systemy z obsługa przerwań są
sterowane zdarzeniami generowanymi
przez:
sprzęt (zegar i urządzenia I/O) przerwania
oprogramowanie (błędy programisty,
nieprawidłowe operacje) wyjątki, pułapki
" Procedura obsługi przerwania jest częścią
sterownika urzÄ…dzenia, czyli kodu jadra
zarzÄ…dzajÄ…cego urzÄ…dzeniem.
SO komercyjne i wolne
oprogramowanie
" Systemy operacyjne (oraz inne elementy
oprogramowania) sÄ… obecnie rozwijane na dwa
konkurencyjne sposoby:
Jako oprogramowanie firmowe, wytwarzane przez
profesjonalne firmy
i sprzedawane (drogo!) użytkownikom nie mającym
wpływu na jego kształt (proprietary domain)
Jako oprogramowanie tworzone przez samych
użytkowników, wymieniane bezpłatnie i stale
doskonalone przez inicjatywy oddolne (open source)
UŻYWANE SYSTEMY KOMPUTEROWE
LINUX
WINDOWS
0 10 20 30 40 50 60 70
ILOŚĆ UŻYTKOWNIKÓW
SYSTEM
Na czym polega idea
Open Source?
" Dozwolone jest:
uruchamianie w dowolnym celu
analizowanie działania programu
rozpowszechnianie
udoskonalanie i dostosowywanie do własnych
potrzeb
Definicja wolnego oprogramowania
" Wytyczne Debiana StanowiÄ… one
formalną definicję Otwartego yródła.
2. Swobodna redystrybucja:
oprogramowanie może być swobodnie
przekazywane lub sprzedawane.
3. Kod zródłowy: musi być dołączony lub
dostępny do pobrania.
4. Programy pochodne: musi być
dozwolona redystrybucja modyfikacji.
Definicja wolnego oprogramowania
4. Integralność autorskiego kodu zródłowego:
licencje mogą wymagać, aby modyfikacje były
redystrybuowane jedynie jako patche.
5. Niedyskryminowanie osób
i grup: nikt nie może zostać wykluczony.
6. Niedyskryminowanie obszarów zastosowań: nie
wolno wykluczać żadnych, nawet komercyjnych
zastosowań.
Definicja wolnego oprogramowania
7. Dystrybucja licencji: prawa dołączone do
oprogramowania muszą się odnosić do
wszystkich odbiorców programu, bez
konieczności wykonywania przez nich
dodatkowej licencji.
8. Licencja nie może być specyficzna dla
produktu: program nie może być
licencjonowany tylko jako część szerszej
dystrybucji.
Definicja wolnego oprogramowania
9. Licencja nie może ograniczać innego
oprogramowania: licencja nie może
wymagać np. tego, aby inne
dystrybuowane
z pakietem oprogramowanie było typu
Open Source.
10. Licencja musi być technicznie neutralna.
Jeszcze jedna ideologia: copyleft
" Jest to sposób licencjonowania oprogramowania
zezwalajÄ…cy na swobodne modyfikacje i
rozpowszechnianie.
" Pomysłodawcą jest Richard Stallman
z Free Software Foundation
" Oprogramowanie copyleft to wolne programy, których
warunki rozpowszechniania nie pozwalajÄ…
redystrybutorom na dodawanie jakichkolwiek
dodatkowych ograniczeń przy dalszym
rozpowszechnianiu lub modyfikacji programu.
" Oznacza to, że każda kopia takiego oprogramowania,
nawet jeśli została zmodyfikowana, musi być wolnym
oprogramowaniem.
Oprogramowanie nie obięte
copyleft
" Różnica miedzy wolnym
oprogramowaniem na licencji copyleft a
wolnym oprogramowaniem nie objętym
copyleft sprowadza siÄ™ do zezwolenia
przez autora na modyfikowanie i
rozpowszechnianie oprogramowania z
możliwością nałożenia dodatkowych
ograniczeń.
Public domain software
" Oprogramowanie będące dobrem
publicznym.
" Są to programy nie objęte prawem
autorskim, a zarazem będące dobrem
publicznym, czyli zasobem dostępnym na
użytek ogółu bezpłatnie.
GNU
" GNU, skrot pochodzacy od GNU's Not
Unix, to projekt Free Software Foundation
majÄ…cy na celu stworzenie
wolnodostępnego systemu operacyjnego
kompatybilnego z systemem Unix
LINUX
" nowoczesny
" wolnodostępny
" stabilny
" system operacyjny klasy UNIX
Budowa Linuxa
" jÄ…dro
zarzÄ…dza urzÄ…dzeniami
oraz uruchamia programy
" powłoka,
jest to interfejs służący do przekazywania poleceń do jądra w
celu ich wykonania. Interfejs tekstowy lub graficzny (X-Window
System)
" system plików,
pliki sÄ… umieszczone
w katalogach ułożonych w strukturze hierarchicznej
przypominają drzewo rozpoczynają się od katalogu głównego
(root directory)
" programy użytkowe
Pamięć wirtualna, stronicowanie
" Przestrzeń adresów liniowych (wirtualnych) podzielona jest na
strony
" Pamięć fizyczna podzielona jest na ramki stron (bloki stronicowe)
strony i ramki stron sa zawsze tych samych rozmiarów od 512 B do 8
KB, w Linuksie 4 KB.
" Stronicowanie pozwala na implementacje mechanizmu
współdzielenia stron przez dwa lub więcej procesów
" W celu zwiększenia bezpieczeństwa wprowadza się bity ochrony
stron
strona zaznaczona np. tylko do odczytu,
próba jej zapisu spowoduje wygenerowanie odpowiedniej pułapki i
przejecie kontroli przez system operacyjny
" Stronicowanie pozwala na dynamiczne Å‚adowanie potrzebnych
fragmentów programów na żądanie.
Pamięć wirtualna i fizyczna
" Pamięć wirtualna jest abstrakcyjną
pamięcią główną w postaci wielkiej,
jednorodnej tablicy, która jest logiczna
oddzielona od pamięci fizycznej.
Adresy generowane w trakcie wykonywania
programu sa adresami w przestrzeni
wirtualnej (adresy liniowe).
Są one tłumaczone przez układ elektroniczny
(Memory Managment Unit, MMU) na adresy w
pamięci fizycznej (adresy fizyczne).
Pamięć wirtualna i fizyczna c.d.
" Zalety pamięci wirtualnej:
jednocześnie może być wykonywanych wiele programów
możliwe jest wykonywanie programów większych niż dostępna
pamięć fizyczna
procesy mogą wykonywać programy, których kod jest ładowany
do pamięci tylko częściowo
każdy proces może uzyskać dostęp do części dostępnej pamięci
fizycznej
procesy mogą współdzielić w pamięci pojedynczy obraz
biblioteki, programu
programy sÄ… relokowalne
można tworzyć kod niezależny od urządzenia
Stronicowanie na żądanie
Zapewnienie bezpieczeństwa
systemu
" ochrona obszarów pamięci przydzielonych jednemu procesowi
przed ingerencją innych procesów (np. aby uniemożliwić zawieszenie
systemu przez błędnie działający program),
" ochrona systemu przed innymi użytkownikami
identyfikatory i hasła
prawa dostępu do plików i katalogów,
" ochrona przed błędami ze strony użytkownika:
prośba o potwierdzenie operacji (kasowania pliku, usunięcia użytkownika),
czasowe przechowywanie usuniętych elementów (Kosz w systemie Windows),
" ochrona przed skutkami awarii (np. archiwizacja danych),
archiwizacja danych,
tworzenie kopii obszarów systemowych dysków (np.: dane dotyczące struktury
dysku, rejestry systemu Windows),
organizacja jednoczesnego zapisu na wielu nośnikach.
" szyfrowanie danych,
" ochrona przed atakami za pośrednictwem sieci komputerowej (ściany
ogniowe),
" ochrona antywirusowa.
Realizacja funkcji sieciowych
" Sieć komputerowa zestaw połączonych ze
sobą komputerów.
" Podstawowe funkcje systemu operacyjnego
związane z funkcjonowaniem w środowisku
sieciowym to:
zapewnienie możliwości korzystania ze wspólnych
zasobów (dysków, drukarek, nagrywarek),
zapewnienie komunikacji pomiędzy użytkownikami
komputerów przyłączonych do sieci (poczta
elektroniczna, komunikacja bezpośrednia, transfer
plików),
zapewnienie bezpieczeństwa systemom
komputerowym przyłączonym do sieci.
Wyszukiwarka
Podobne podstrony:
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]Wstęp Do Systemu Zabezpieczeń W Windows 2000System operacyjny i oprogramowanie dla fotografa2006 09 Wielozadaniowość w systemach operacyjnych [Inzynieria Oprogramowania]wstep historia sieciowych systemów operacyjnychProjektowanie oprogramowania Wstep do programowania i techniki komputerowej2006 08 Zarządzanie pamięcią w systemach operacyjnych [Inzynieria Oprogramowania]Główne kroki prowadzące do przygotowania własnego obrazu systemu operacyjnego stacji roboczej (2)67 1202 specjalista do spraw rozwoju oprogramowania systemow informatycznych2006 07 Jądro systemu operacyjnego [Inzynieria Oprogramowania]więcej podobnych podstron