Systop3

background image

3. PODSTAWOWE FUNKCJE SYSTEMÓW OPERACYJNYCH

Głównym celem istnienia systemu operacyjnego jest wygoda użytkowników

komputera. System musi

zatem umieć przyjmować polecenia od użytkowników i je wykonywać (lub

zgłaszać, że wykonać ich

nie jest w stanie, lub stwierdzać składniową niepoprawność wydanego polecenia).

Jedną z podstawo-

wych części składowych każdego systemu operacyjnego przeznaczonego do

bezpośredniego komuniko-

wania się z użytkownikiem jest interpretator poleceń (interpreter), który

współpracuje z użytkowni-

kiem w sposób interaktywny (konwersacyjny), czyli prowadząc z nim dialog.

Gdyby funkcjonowanie systemu operacyjnego porównać do funkcjonowania dużej

firmy, interpreter

poleceń pełniłby w niej rolę „biura obsługi klienta”.

Język porozumiewania się użytkownika z systemem musi podlegać pewnym

formalnym regułom

składniowym (gramatycznym). Projektanci systemów dążą do tego, aby język ten

był możliwie prosty

i wymagał jak najmniejszej wiedzy o konstrukcji systemu. Dlatego też zakładają

zawsze pewien

uproszczony, abstrakcyjny (tak zwany logiczny) model systemu komputerowego,

w którym są

pominięte różne nieistotne z punktu widzenia użytkownika szczegóły jego

fizycznej konstrukcji.

background image

Podstawowy sposób prowadzenia dialogu użytkownika z interpreterem poleceń
to naprzemienne

wypisywanie tekstów (obecnie na ekranie monitora, kiedyś na papierze konsoli
operatorskiej).

Dążąc do maksymalnego uproszczenia porozumiewania się, w połowie lat 80-
tych zaprojektowano

pierwsze graficzne interfejsy użytkownika, które umożliwiają wydawanie
poleceń dla systemu bez

wypisywania tekstów, tylko poprzez wykonywanie operacji przy użyciu
wskaźnika

(pointer)

na

wyświetlanych na ekranie obiektach graficznych. Zaoszczędza to użytkownikom
konieczności

pamiętania składni poleceń tekstowych (która jest na ogół traktowana jako
uciążliwość) i przyspiesza

komunikację.

Tryb tekstowy wydawania poleceń w dalszym ciągu uważany jest jednak za
podstawowy tryb

porozumiewania się z systemem, gdyż daje dużo szersze możliwości, niż tryb
graficzny (na ogół

obejmujący tylko najbardziej „pospolite” czynności). Co więcej, tryb tekstowy
umożliwia

konstruowanie poleceń złożonych oraz tworzenie plików wsadowych
(skryptów) zawierających

całe ciągi poleceń, które na przykład rutynowo wykonuje codziennie
administrator systemu.

Pewną namiastką możliwości zapamiętywania ciągów poleceń w trybie
tekstowym jest możliwość

tworzenia makr w trybie graficznym.

background image

Jakiego rodzaju typowe usługi są oczekiwane od systemu operacyjnego przez
użytkowników ?

Jest ich dużo, najbardziej typowe przykłady to:

1) ładowanie do pamięci i uruchamianie programów;

2) obsługa systemu plików (tworzenie i usuwanie plików i katalogów);

3) obsługa urządzeń zewnętrznych (na przykład drukowanie);

4) jeśli system jest wielodostępny, to umożliwienie otwarcia i zamknięcia sesji
pracy (zalogowanie

i wylogowanie się);

5) jeśli system jest sieciowy, to umożliwienie komunikacji w sieci (przesyłanie
plików, zdalne

sesje pracy, porozumiewanie się w czasie rzeczywistym);

6) jeśli system wielodostępny jest używany do celów komercyjnych, to
umożliwienie rozliczania się

z użytkownikami na podstawie rejestrowania wykorzystywania przez nich
zasobów systemowych.

Każda z tego rodzaju usług jest, z punktu widzenia programisty, czynnością bardzo
skomplikowaną.

W trakcie jej wykonywania system musi (w sposób niewidoczny dla użytkownika)
dbać o bardzo

wiele różnych jej aspektów - musi prawidłowo i bezkonfliktowo przydzielać zasoby
wielu procesom

wykonywanym współbieżnie, oszczędnie gospodarować pamięcią, chronić dane
przed zniszczeniem itp.

background image

Ze względu na swój stopień komplikacji systemy operacyjne (tak jak każdy duży
program) mają

strukturę warstwową. Oznacza to, że konstrukcja ich opiera się na dużej liczbie
podprogramów,

które są uporządkowane hierarchicznie - na bazie zbioru najbardziej
podstawowych procedur oparte

są procedury wykonujące bardziej złożone czynności itd.

Ogólnie, zbiór podprogramów wykorzystywanych jako „elementy konstrukcyjne”
systemu

operacyjnego i wykonywanych w całości w trybie jądra systemu (czyli w trybie,
w którym mogą być

wykonywane operacje uprzywilejowane) nazywamy funkcjami systemowymi.
Najbardziej podstawowe

funkcje systemowe wykonujące bezpośrednio operacje na urządzeniach i lokatach
pamięci nazywamy

niskopoziomowymi.

Co najmniej część spośród funkcji systemowych może być wywoływanych z
poziomu procesów

działających w trybie użytkownika - następuje wtedy czasowe przełączenie z trybu
użytkownika

w tryb jądra i „fachowe” wykonanie żądanej usługi przez system operacyjny, a
następnie zwrócenie

sterowania do procesu użytkownika. Te funkcje systemowe, które są dostępne dla
programistów

tworzących programy przeznaczone do pracy w trybie użytkownika nazywane są
wywołaniami

systemowymi, a ich zbiór zaimplementowany w postaci biblioteki w konkretnym
języku

programowania (na przykład w C lub BASIC-u) - interfejsem programisty

w

danym języku.

background image

Klasyfikacja rodzajów funkcji systemowych (według [A. Silberschatz
et al.])

1) Funkcje związane z nadzorowaniem procesów:

a) utworzenie, załadowanie, wykonanie, zakończenie (lub zaniechanie),
usunięcie procesu;

b) zawieszenie, wznowienie procesu;

c) pobranie, określenie (ustawienie) atrybutów procesu;

d) przydział pamięci, zwolnienie pamięci przydzielonej procesowi.

2) Funkcje wykonujące operacje na plikach:

a) utworzenie, usunięcie pliku;

b) otwarcie, zamknięcie pliku;

c) odczyt z pliku, zapis do pliku;

d) pobranie, określenie (ustawienie) atrybutów pliku.

background image

3) Funkcje wykonujące operacje na urządzeniach:

a) żądanie przydzielenia urządzenia, zwolnienie urządzenia;

b) logiczne przyłączenie, logiczne odłączenie urządzenia;

c) odczyt z urządzenia, zapis do urządzenia;

d) pobranie atrybutów urządzenia, określenie (ustawienie) atrybutów
urządzenia.

4) Funkcje operujące na informacji systemowej:

a) pobranie czasu lub daty, określenie (ustawienie) czasu lub daty;

b) pobranie danych systemowych, określenie (ustawienie) danych
systemowych.

5) Funkcje komunikacyjne

a) utworzenie połączenia, usunięcie połączenia;

b) nadanie komunikatu, odebranie komunikatu;

c) nadanie, odebranie informacji o stanie połączenia;

d) przyłączenie, odłączenie urządzenia wymiennego.

background image

Interfejs funkcji systemowych wykorzystują programiści (wymaga to dość
zaawansowanej wiedzy

technicznej), natomiast użytkownicy systemu komputerowego korzystają z
możliwości wydawania

poleceń systemowych interpreterowi poleceń, który prezentuje użytkownikom
znacznie prostszy

(będący na wyższym poziomie abstrakcji) logiczny model komputera.
Interpreter (przyjmujący

polecenia w trybie tekstowym lub w trybie graficznym) albo sam zajmuje się
obsługą wydanego

polecenia (jeśli jest to jego polecenie wewnętrzne), albo uruchamia w celu
obsłużenia go inny

program systemowy (mówimy wtedy o poleceniu zewnętrznym). W gruncie
rzeczy z punktu

widzenia interfejsu użytkownika nie ma różnicy pomiędzy wywołaniem i
wykonaniem polecenia

wewnętrznego, programu systemowego lub dowolnego innego programu
zainstalowanego lub

utworzonego przez użytkownika.

Polecenia systemowe w trakcie swojego wykonywania dokonują zazwyczaj wielu
wywołań

systemowych (na przykład otwarcie, odczyt i zamknięcie pliku).

background image

Jest rzeczą w dużym stopniu umowną, jakie elementy określa się jako części
składowe systemu

operacyjnego. Przyjmuje się, że sterowniki urządzeń oraz jądro systemu
składające się ze zbioru

funkcji systemowych oraz abstrakcyjnych struktur danych, na których te funkcje
operują, stanowią

jego integralne elementy. Często przyjmuje się również, że programy
wykonywane na poziomie

użytkownika, ale standardowo udostępniane przez producenta wraz z jądrem
(interpreter komend

oraz stowarzyszone z nim programy, edytory tekstu, kompilatory, programy
konfiguracyjne i dia-

gnostyczne itp.) również stanowią elementy systemu.

background image

Koncepcja maszyny wirtualnej

Systemy wielodostępne z podziałem czasu są konstruowane w taki sposób, żeby
ich użytkownicy

pracujący jednocześnie przy wielu terminalach nie mogli sobie wzajemnie
przeszkadzać. Często

system zapewnia wręcz poszczególnym użytkownikom całkowitą izolację od
innych tak, że mają

wrażenie, że są jedynymi użytkownikami komputera (co najwyżej nieco
wolniejszego i o mniejszej

pojemności pamięci). Taki logiczny obraz systemu z punktu widzenia
pojedynczego użytkownika

nazywany jest maszyną wirtualną. Każda maszyna wirtualna pozorowana przez
dany system

zapewnia taki sam interfejs programisty i interfejs użytkownika - umożliwia
wywoływanie funkcji

systemowych i ich wykonywanie w trybie jądra, udostępnia egzemplarz
interpretera komend oraz

innych programów realizujących polecenia systemowe, udostępnia wirtualny
dysk do zapisu plików

oraz inne wirtualne urządzenia zewnętrzne.

Wykonywanie programów na maszynach wirtualnych związane jest między
innymi z translacją

(przeliczaniem) adresów w wykonywanych instrukcjach programów tak, aby
niezależnie od

umiejscowienia programu we wspólnej pamięci fizycznej był on zawsze
wykonywany w taki sam

sposób, i nie powodował kolizji z innymi wykonywanymi współbieżnie
programami.


Document Outline


Wyszukiwarka

Podobne podstrony:
Systop2
Systop11
Systop14
Systop13
Systop8
Systop5
Systop10
Systop1
Systop9
Systop7
Systop2
Systop12
SystOper

więcej podobnych podstron