Wykład nt. podstawy systemów operacyjnych -- wprowadzenie
Praca semestralna
Podstawy systemów operacyjnych
Poprzedni | Spis treści | Następny
Rozdział 1: Wprowadzenie
Architektura współczesnych komputerów - maszyna von
Neumanna
W drugiej połowie lat 40. John von Neumann zaproponował schemat blokowy
elektronicznej maszyny liczącej (rys. 1.1).
Schemat ten aż do dzisiaj z niewielkimi modyfikacjami jest podstawą
budowy komputerów.
Gdzie:
Procesor (ang. processor) - układ dokonujący operacji na danych zgromadzonych
w pamięci lub płynących z/do urządzeń wejścia wyjścia, sterowany programem,
którego kod znajduje się w pamięci. Do przechowywania swojego wewnętrznego
stanu procesor wyposażony jest w peną ilość rejestrów, z których najważniejsze
to:
Wskaźnik instrukcji (ang. instruction pointer) - wskazuje komórkę pamięci,
z której pobrany będzie następna instrukcja do wykonania.
Rejestr flag stanu (ang. flag register, flags) - składają się na niego
jednobitowe flagi przechowujące informacje o stanie procesora (np. dopuszczalności
przerwań) lub rezultacie ostatnio wykonanej instrukcji (np. czy otrzymano
zero).
Wskaźnik stosu (ang. stack pointer) - wskazuje pierwszą wolną komórkę pamięci
na stosie procesora - strukturze danych typu FILO (ang. first in last out
- pierwszy przyszedł,ostatni wyszedł) wykorzystwanej przy skokach do podprogramów
dla przechowywania adresu powrotu i zmiennych lokalnych.
Akumulator (ang. accumulator) - służy jako argument a zarazem miejsce umieszczania
rezultatów operacji arytmetycznych.
Pamięć (pamięć operacyjna, ang memory) - przechowuje dane i kod prgramu.
Jeżeli jej konstrukcja umożliwia oprócz odczytu dokonywanie w niej modyfikacji
nazywamy ją RAM (ang. random access memory), jeśli jej konstrukcja pozwala
jedynie na odczyt nazywana jest ROM (ang. read only memory). Obecnie konstruaowane
pamięci RAM tracą swoją zawartość w chwili wyłączenia zasilania w przeciwieństwie
do ROM. Niezależnie od typu, pamięć dzieli się na komórki, z których każda
jest w stanie przechować liczbę całkowitą z ustalonego dla danej architektury
zakresu. Najczęściej jest to 0, 1,...,255. Do zakodowania takich liczb
potrzeba 8 bitów t.j. 1 bajt. Każda komórka pamięci posiada unikalny numer
zwany adresem fizycznym, który służy procesorowi do owoływania się do niej.
Jeśli nie decydują o tym inne ważne względy, komórkom pamięci przydziela
się adresy fizyczne poczynając od zera bez luk w numeracji.
Zegar - odmierza cykle wykonywania instrukcji programu.
Magistrale (ang. buses) służą do przesyłania danych i synchornizacji między
elementami komputera:
Magistrala danych (ang. data bus) służy do przesyłania danych między pamięcią,
układami we/wy a procesorem. Ilość użytych tutaj linii jest równa długości
słowa masynowego i jest równa rozmiarowi komórki pamięci, lub jest jego
wielokrotnością.
Magistrala adresów (ang. address bus) służy procesorowi do wysyłania numerów
komórek pamięci lub rejestrów we/wy na których będzie doknane następne
przesłanie danych. Ilość użytych tutaj linii decyduje o ilości pamięci
jaką można zaadresować.
Magistrala sterująca (ang. control bus) służy do wzajemnej synchronizacji
oraz przekazywania i potwierdzania przyjęcia/wykonania zleceń.
Wejście/Wyjście pozwala kompuerowi kontaktować się z zewnętrznym światem
(klawiatura, monitor, czytniki, adaptery sieciowe itp) lub przechowywać
dane poza pamięcią operacyjną (dyski). Na wejście wyjście składają się
następujące układy i urządzenia:
Sprzętowe sterowniki wejścia wyjścia. Układy te potrafią się porozumiewać
z procesorem poprzez rejestry we/wy, przerwania, kanały DMA i własną adresowalną
przez procesor pamięć układu. Wykonując zlecenia procesora sterują urządzeniami
wejścia wyjścia. W technologii mikrokomputerowej są montowane jako karty
rozszerzające wewnątrz obudowy komputera.
Urządzenia zewnętrzne - zapewniają kontakt komputera ze światem. Mogą to
być klawiatury, monitory, dyski, drukarki, modemy ale także czujniki i
ramiona robotów w procesie produkcyjnym.
Interfejsy. Interfejs jest to specyfikacja sposobu przesyłania danych między
dwoma urządzenami. Pojęcie to bywa często przenoszone na realizację sprzętową
interfejsu w postaci gniazd, wtyków i kabli. Bywa też rozszerzane na komunikację
człowiek-maszyna, mówimy wtedy o interfejsie użytkownika.
Pod względem funkcjonalnym komputer von Neumanna składa się z uwidocznionego
na rys. 1.1 sprzętu i oprogramowania zawartego w pamięci (nieuwidocznionego).
Przez system komputerowy (informatyczny) rozumie się komputer (sprzęt +
oprogramowanie) i osoby związane z jego działaniem.
Wśród osób związanych z działaniem komputera wyodrębnia się następujące
typy:
Użytkownicy - wykorzystują komputery jako narzędzia ułątwiające pewne rutynowe
czynności przetwarzania informacji.
Administratorzy - personel dbający o poprawne działanie systemu informatycznego.
Twórcy oprogramowania - tworzą oprogramowanie działająceme w systemie informatycznym
i zapewniają mu serwis.
Dostawcy sprzętu - produkują i dostarczają sprzęt działający w systemie
informatycznym oraz zapewniają mu serwis.
Definicja systemu operacyjnego
Definicje
Oprogramowanie komputera daje się podzielić na oprogramowanie wykonujące
użyteczne dla użytkownika obliczenia i oprogramowanie dbające o poprawną
pracę systemu komputerowego jako całości, jednakże nie zawsze ten podział
jest oczywisty i precyzyjny. Oprogramowanie tworzone z przeznaczeniem do
wykonywania użytecznych obliczeń nazywamy aplikacjami. Oprogramowania tworzone
z przeznaczeniem do zapewniania poprawnej pracy systemowi informatycznemu
nazywamy oprogramowaniem systemowym.
Rdzeniem oprogramowania systemowego jest system operacyjny. Z powodu
trudności w precyzyjnym zdefiniowaniu tego co jest, a co nie jest systemem
operacyjnym, niektórzy autorzy definiują system operacyjny jako wszystko
to opragramowanie, które producent wkłada do pudełka z taką nazwą.
Silberschatz et al w [2] podają następujące definicje systemu operacyjnego:
System operacyjny jest dystrybutorem zasobów komputera.
System operacyjny jest programem sterującym. Program sterujący nadzoruje
działanie programów użytkownika, przeciwdziała błędom i zapobiega niewłaściwemu
użyciu komputera. Zajmuje się zwłaszcza obsługiwaniem i kontrolowaniem
pracy urządzeń wejścia/wyjścia.
Nie ma [...] w pełni adekwatnej definicji systemu operacyjnego.
Istnienie systemów operacyjnych jest uzasadnione tym, że pozwalają one
w rozsądny sposób rozwiązać problem kreowania użytecznego środowiska pracy.
Przez zasoby rozumie się wszystkie te elementy komputera, którymi daje
się dysponować jako odrębnymi obiektami, np: procesor (w sensie przydziału
jego czasu pracy), obszary pamięci, obszary dyskowe, drukarki itp.
Na potrzeby niniejszego wykładu system operacyjny zostanie zdefiniowany
jako zbiór programów i podprogramów wywoływanych przez inne programy
lub użytkownika, które mają zapewnić użytkownikowi i jego aplikacjom niezawodne,
zestandaryzowane, wygodne i wydajne środowisko pracy.
Można w związku z powyższym przyjąć, że oprogramowanie rozdziela się
na dwie warstwy, system operacyjny jest tą warstwą, która separuje warstwę
aplikacji od sprzętu, a przez to je od niego uniezależnia (rys. 1.2).
Dla użytku aplikacji system operacyjny tworzy pewne abstrakcje zasobów
sprzętowych, zrealizowane w postaci pewnych struktur danych i podprogramów,
w dalszej części wykładu również zwane zasobami. Separację aplikacji od
sprzętu należy rozumieć w ten sposób, że aplikacje nie sterują bezpośrednio
sprzętem, a jedynie posługują się strukturami danych dostarczonymi przez
system operacyjny (abstrakcjami zasobów sprzętowych) i wywołują systemowe
podprogramy.
Zalety istnienia w komputerze systemu operacyjnego
możliwość posługiwania się komputerem przez osoby nie będące ekspertami
budowy komputerów oraz możliwość wydajnej pracy tych osób,
brak konieczności gruntownych szkoleń personelu w razie wymiany komputerów
lub ich podzespołów,
minimalizacja ilości oprogramowania do wymiany w razie wymiany komputerów
lub ich podzespołów,
możliwość zamawiania, tworzenia, czy wreszcie kupowania aplikacji bez konieczności
dokładnego precyzowania parametrów sprzętu,
możliwość tworzenia sterowników programowych urządzeń niezależnie od aplikacji,
które ja wykorzystają,
w połączeniu z językami programowania wysokiego poziomu, można we względnie
łątwy sposób tworzyć wersje oprogramowania dla różnych komputerów,
możliwość wyegzekwowania zasad ochrony danych przed niepowołąnym dostępem,
dostępu do innych zasobów (jak drukarki) czy przestrzegania godzin pracy
systemu,
możliwość rozliczania użytkowników/klientów za wykorzystanie czasu pracy
procesora i innych zasobów.
Struktura systemu operacyjnego
Jądro systemu
Aby zabezpieczyć się przed możliwością bezpośredniego sterowania sprzętem
przez aplikacje, konstruktorzy procesorów podzielili
zbiór instrukcji procesora na dwie części (niekiedy na więcej, ale
pominiemy te przypadki). Jeden zbiór instrukcji, zawierający jedynie instrukcje
nie sterujące bezpośrednio sprzętem i odwołujące się do wydzielonych obszarów
pamięci, dopuszczono do użytku przez aplikacje (i oczywiście system operacyjny).
Drugi zbiór, zawierający instrukcje sterujące sprzętem, lub odwołujące
się do dowlnych miejsc w pamięci dopuszczono do użytku tylko przez system
operacyjny.
Aby w praktyce zorganizować właściwe użycie tych instrukcji wprowadzono
także dwa tryby pracy procesora: tryb użytkownika i tryb jądra. W trybie
użytkownika dopuszczone są tylko instrukcje nie sterujące sprzętem i o
ograniczonym dostępie do pamięci, jest on przeznaczony dla aplikacji. W
trybie jądra dopuszczone są wszystkie instrukcje, jest on przeznaczony
dla systemu operacyjnego.
Nie cały system operacyjnym musi się wykonywać w trybie jądra, wobec
czego wyodrębnia się z systemu operacyjnego zbiór podprogramów o żywotnym
znaczeniu. Zbiór ten nosi nazwę jądra systemu operacyjnego.
Wywołanie podprogramu jądra przez aplikację (w celu dostępu do zasobów)
powoduje natychmiastowe przełączenie się procesora w tryb jądra, w trybie
tym wykonuje się wielokrotnie sprawdzony podprogram jądra, który tuż przed
powrotem do aplikacji przełącza się z powrotem do trybu użytkownika.
Twórcy nowoczesnych systemów operacyjnych nadają jądru modułową budowę,
co między innymi pozwala wydzielić grupy podprogramów zwane sterownikami
programowymi we/wy (ang. driver) obsługujących konkretne urządzenia i włączać
je do jądra zależnie od potrzeb.
Programy
Użytkownik nie może wywoływać bezpośrednio podprogramów jądra systemu operacyjnego.
Oprogramowanie, które może być wywoływane bezpośrednio przez użytkownika
nazywamy programami. Zgodnie z tym, co zostało powiedziane wcześniej programami
są aplikacje i część systemu operacyjnego przeznaczona do bezpośredniego
wywoływania przez użytkownika tj. powłoki i programy narzędziowe.
Podstawową rzeczą jaką system operacyjny musi udostępnić użytkownikowi
jest możliwość wywoływania aplikacji i innych programów. Do tego służą
powłoki.
Powłoka jest to program przeznaczony do bezpośredniej konwersacji z
użytkownikiem, przyjmowania od niego zleceń i wywoływania na jego polecenie
innych programów.
Zadaniem programów narzędziowych jest wsparcie administratorów w pielęgnacji
komputera.
Zadaniem programów usługowych (zwanych serwerami lub demonami) jest
wspieranie jądra w tych czynnościach, których samo nie może z różnych względów
wykonać (np. wymiatanie pamięci podręcnej) lub zarządzanie abstrakcyjnymi
zasobami (np. kolejki wydruków, silniki baz danych, serwery stron www).
Start komputera
W czasie startu komputera (ang. boot) pierwsze ładowane jest jądro (np.
w MS-DOS są to pliki IO.SYS i MSDOS.SYS), następnie jądro ładuje wymagane
sterowniki (w MS-DOS następuje to w trakcie interpretacji pliku CONFIG.SYS),
startuje programy usługowe i uruchamia powłokę (COMMAND.COM w MS-DOS).
Jeśli system przewiduje kontrolę dostępu, przed uruchomieniem powłoki
autentykuje użytkownika.
Po starcie powłoki użytkownik może podjąć pracę, jao że powłoka daje
mu możliwość uruchamiania własnych aplikacji. Często startująca powłoka
wykonuje skrypt startowy aby skonfigurować środowisko użytkownika i uruchamia
przy tym odpowiednie aplikacje (w MS-DOS skryptem startowym jest AUTOEXEC.BAT).
Poprzedni | Spis treści | Następny
Wyszukiwarka
Podobne podstrony:
sysop upsysop paPrzygoda z usmiechem WP 3 latki cz 2 scenariusz tydz3sysop wePrzygoda z usmiechem WP 3 latki cz 2 scenariusz tydzDEFCON 18 Avraham Modern ARM Exploitation WPDisabling the wp cronwięcej podobnych podstron