40
1 Praca semestralna Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie 1. Architektura wspólczesnych komputerów - maszyna von Neumanna 2. Definicja systemu operacyjnego 3. Struktura systemu operacyjnego 2. Zarzdzanie czasem procesora 1. Definicje procesu, wieloprocesowoci, wielodostpu i wywlaszcania procesora 2. Graf stanów procesu 3. Kolejki i priorytety 4. Wtki 5. Kontekst procesu 6. Procesy interakcyjne i wsadowe 3. Zarzdzanie pamici 1. Do czego procesowi pami 2. Gospodarka pamici w systemach bez mechanizmu pamici wirualnej 3. Mechanizm pamici wirtualnej 4. Zarzdzanie wejciem-wyjciem 1. Ogólna architektura podsystemu wejia/wyjcia 2. Zasoby urzdze fizycznych 3. Sterowniki i urzdzenia logiczne 4. Urzdzzenia dyskowe 5. Systemy plików 5. Zagadnienia bezpieczestwa 1. Autentykacja na przykladzie hasel wielokrotnych 2. Autoryzaja czyli o uprawnieniach 3. Audyt 4. Kopie bezpieczestwa 5. Kryptografia 6. Inne zagadnienia Literatura Literatura podstawowa (dla zainteresowanych) 1. Zbigniew Weiss "Komputery jak ludzie", WNT, Warszawa 1996; 2. Abracham Silberschatz, James L. Peterson, Peter B. Gavin "Podstawy systemów operacyjnych", WNT, Warszawa 1993; 3. Maurice J. Bach "Budowa systemu operacyjnego Unix", WNT, Warszawa 1995; 4. Simson Garfinkel, Gene Spafford "Bezpieczestwo w unixie i internecie", Wydawnictwo RM, Warszawa 1997; 5. Helen Custer "Inside Windows NT", Microsoft Press 1992;

Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

Embed Size (px)

Citation preview

Page 1: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

1

Praca semestralna

Podstawy systemów operacyjnych Spis tre�ci

1. Wprowadzenie 1. Architektura współczesnych komputerów - maszyna von Neumanna 2. Definicja systemu operacyjnego 3. Struktura systemu operacyjnego

2. Zarz�dzanie czasem procesora 1. Definicje procesu, wieloprocesowo�ci, wielodost�pu i wywłaszcania procesora 2. Graf stanów procesu 3. Kolejki i priorytety 4. W�tki 5. Kontekst procesu 6. Procesy interakcyjne i wsadowe

3. Zarz�dzanie pami�ci� 1. Do czego procesowi pami�� 2. Gospodarka pami�ci� w systemach bez mechanizmu pami�ci wirualnej 3. Mechanizm pami�ci wirtualnej

4. Zarz�dzanie wej�ciem-wyj�ciem 1. Ogólna architektura podsystemu wej�ia/wyj�cia 2. Zasoby urz�dze� fizycznych 3. Sterowniki i urz�dzenia logiczne 4. Urz�dzzenia dyskowe 5. Systemy plików

5. Zagadnienia bezpiecze�stwa 1. Autentykacja na przykładzie haseł wielokrotnych 2. Autoryzaja czyli o uprawnieniach 3. Audyt 4. Kopie bezpiecze�stwa 5. Kryptografia 6. Inne zagadnienia

Literatura

Literatura podstawowa (dla zainteresowanych)

1. Zbigniew Weiss "Komputery jak ludzie", WNT, Warszawa 1996; 2. Abracham Silberschatz, James L. Peterson, Peter B. Gavin "Podstawy systemów

operacyjnych", WNT, Warszawa 1993; 3. Maurice J. Bach "Budowa systemu operacyjnego Unix", WNT, Warszawa 1995; 4. Simson Garfinkel, Gene Spafford "Bezpiecze�stwo w unixie i internecie",

Wydawnictwo RM, Warszawa 1997; 5. Helen Custer "Inside Windows NT", Microsoft Press 1992;

Page 2: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

2

6. Paul Tyler "Windows NT server - czarna ksi�ga administratora", Helion, Gliwice 1997;

Podr�czniki dla pocz�tkuj�cych u�ytkowników komputerów

7. T. Kołodziejczak "Podstawy Informatyki", Prószy�ski i S-ka, Warszawa 1992; 8. Witold Wrotek "PC i ty, pierwszy krok", PLJ, Warszawa 1995; 9. Stanisław Jachimek "Informatyka dla szkół", Helion, Gliwice 1996/97; 10. Anna Kurzydłowska et al "Kompendium Obsługi Komputera", Mikom, Warszawa

1997; 11. Zdzisław Dec, Robert Konieczny "Abc komputera", Edition 2000, Kraków 1998; 12. Shelly O'Hara "Komputer od A do Z", Read Me, Warszawa 1998; 13. Dan Gookin "Komputer dla opornych", Read Me, Warszawa 1997;

Literatura pomocnicza

14. Don Sellers "Nie daj si�, czyli jak komputer mo�e ci� wyko�czy�", Helion, Gliwice 1996.

Page 3: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

3

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:

o Wska�nik instrukcji (ang. instruction pointer) - wskazuje komórk� pami�ci, z której pobrany b�dzie nast�pna instrukcja do wykonania.

o Rejestr flag stanu (ang. flag register, flags) - składaj� si� na niego jednobitowe flagi przechowuj�ce informacje o stanie procesora (np. dopuszczalno�ci

Page 4: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

4

przerwa�) lub rezultacie ostatnio wykonanej instrukcji (np. czy otrzymano zero).

o 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.

o 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: o 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�.

o 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�.

o 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:

o 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.

o 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.

o 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.

Page 5: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

5

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).

Page 6: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

6

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

Page 7: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

7

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

Page 8: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

8

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).

Rozdział 2: Zarz�dzanie czasem procesora Definicje procesu, wieloprocesowo�ci, wielodost�pu i wywłaszcania procesora

Pierwsze systemy operacyjne pozwalały na wykonanie jednego programu na raz. W raz z rozwojem informatyki w szczególno�ci pojawieniem si� interakcyjnych wielodost�pnych systemów operacyjnych, a pó�niej wprowadzeniem graficznych interfejsów u�ytkownika wyst�piła opotrzeba jednoczesnego uruchamiania na tym samym procesorze wielu programów w taki sposób by zminimalizowa� mo�liwo�ci wzajemnych zakłóce� mi�dzy procesami. System operacyjny nazyway wielodost�pnym, je�eli wielu u�ytkowników mo�e jednocze�nie z nim pracowa�, ka�dy z nich ma wra�enie ci�głej pracy systemu na jego rzecz. Podobn� drog� przeszły mikrokomputery od systemu CP/M i MS-DOS do dzisiejszych MAC-OSa i MS Windows NT. W nowoczesnym systemie operacyjnym dany program mo�e by� wykonywany przez wielu u�ytkowników jednocze�nie, w zwi�zku z tym wprowadza si� poj�cie procesu. Silberschatz et al w [2] definiuj� proces jako program, który jest wykonywany. Sprecyzowa� nale�y, �e ka�dy załadowany do pami�ci operacyjnej celem wykonania egzempla� programu razem z danymi na których operuje stanowi oddzielny proces. System operacyjny nazywamy wieloprocesowym je�eli dopuszcza jednoczesne istnienie w nim wielu procesów. Takim systemem jest np. MS-DOS, przy czym w tym wypadku proces raz uruchomiony blokuje innym procesom dost�p do procesora a� do swego zatrzymania, dopiero wówczas mo�e na nowo podj�� swe wykonanie jego proces macierzysty. Takim systemem nie jest np. CP/M, w którym mo�e istnie� tylko jeden proces. Jak to ju� stwierdzono w MS-DOSie po uruchomieniu procesu potomnego dany proces był zamra�any i faktycznie nie mógł si� wykonywa� a� do zako�czenia potomka. Je�eli oczekujemy od komputera z jednym procesorem aby był wielodost�pny, musimy zadba� o to by dzieli� czas procesora mi�dzy ró�ne procesy, niezale�nie od tego, czy aktualnie wykonuj�cy si� proces ma ochot� zwolni� procesor, czy nie. Takim mechanizmem jest wywałaszczanie procesora. Ka�dy proces w systemie wieloprocesowym z wywłaszczaniem w chwili uzyskania procesoraotrzymuje te� kwant czasu. Po wyczerpaniu swego kwantu czasu proces jest przerywany, a na jego miejsce wykonywany jest inny proces. Wywłaszczony proces trafia na koniec kolejki procesów ubiegaj�cych si� o procesor. Przykładami takich systemów s� Unix, Windows NT i Windows 95.

Page 9: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

9

Graf stanów procesu

Współbie�na praca wi�cej ni� jednego procesu niesie z sob� mozliwo�� konfliktów przy dost�pie do zasobów. W takich warunkach ujawnia si� rola systemu operacyjnego jako dystrybutora zasobów. System operacyjny (a w zasadzie jego j�dro) rozstrzyga konflikty o zasoby przydzielaj�c je jednym ubiegaj�ceym si� o nie procesom a innne procesy powstrzymuj�c do czasu zwolnienia zasobów przez dotychczasowych zwyci�zców. Proces, który za��dał dost�pu do zasobu (w szczególno�ci wykonania operacji we/wy) i go nie otrzymał nie mo�e by� dalej wykonywany a� do chwili uzyskania zasobu (zako�czenia operacji we/wy). O takim procesie mówi si� �e jest w stanie u�pionym. Zwalnia on procesor pozwalaj�c innym procesom na wykonywanie si�. W systemach z wywłaszczaniem procesora wyró�nia si� pewien specjalny stan - oczekiwanie na przydział procesora. Mamy z nim do czynienia gdy proces posiada wszystkie niezb�dne mu zasoby, nie wykonuje operacji wej�cia wyj�cia a czeka jedynie na przydzielenie mu [czasu] procesora. O takim procesie mówimy, �e jest w stanie gotowy do wykonania. Ró�ne systemy operacyjne wyró�niaj� ró�ny zestaw stanów, przez które przechodzi proces w trakcie �ycia, ale w ka�dym systemie wieloprocesowym z wywłaszczaniem mo�na wyró�ni� nast�puj�ce stany:

• Wykonywany - jest aktualnie wykonywany przez procesor, • Gotów do wykonania - oczekuje na swoj� kolejk� do wykonania, • U�piony - oczekuje na dost�p do zasobu lub operracj� wej�cia/wyj�cia, np. wcisni�cie

klawisza przez u�ytkownika, • Niszczony - w trakcie zwalniania zasobów po zako�czeniu.

Kolejki i priorytety

Procesy oczekuj�ce na zwolnienie procesora mog� mie� ró�n� wa�no��. Przykładowo, mo�e to by� proces dokonuj�cy pomiaru w tocz�cym si� eksperymencie, edytor teksu, proces systemowy uruchomiony celem zrobinia okresowych porz�dków i zadanie symulacji numerycznej pewnego układu fizycznego wykonywane długi czas w tle. Pierwsze dwa procesy maj� to do siebie, �e wi�kszo�� czasu oczekuj� na zaj�cie operacji wej�cia wyj�cia, a gdy ju� to nast�pi, powinny natychmiast reagowa�, z kolei dwa ostatnie wykorzystuj�

Page 10: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

10

głównie czas procesora, ale nie s� na tyle pilne, by nie mogły ust�powa� w razie potrzeby innym. W zale�no�ci od pilno�ci zadania i jego dotychczasowego przebiegu, system operacyjny nadaje procesowi priorytet. Generalnie, czym mniejsz� liczb� jest wyra�ony, tym lepiej z punktu widzenia procesu - ma wi�ksy dost�p do procesora. Dla ka�dego priorytetu tworzona jest osobna kolejka procesów gotowych do wykonania. Dopóki w kolejce o priorytecie wyra�onym mniejsz� liczb� czekaj� procesy, prcesy z kolejki wi�kszego priorytetu nie b�d� wykonywane. Najmniejsze priorytety s� zarezerwowane dla u�ytku systemu operacyjnego, s� one do tego stopnia uprzywilejowane, �e procesy wykonuj�ce si� z tymi priorytetami nie s� wywłaszczane. St�d te� s� u�ywane jedynie w wyj�tkowych okoliczno�ciach przez krótkie procedury systemowe. U�ytkownik ma zwykle mo�liwo�� wyboru priorytetu dla uruchamianego procesu, jednak�e jest w swym wyborze ograniczony "z dołu". System operacyjny rezewuje sobie mo�liwo�� zmiany priorytetu w trakcie działania procesu, celem wyrównania szans ró�nych procesów.

W�tki

Niektóre systemy operacyjne dopuszczaj� współbie�no�� w ramach jednego procesu. Okre�la si� wówczas w�tek jako jednostk� wykonania. Ka�dy wykonuj�cy si� proces ma przynajmniej jeden w�tek, ka�dy w�tek wykonuje si� w ramach jednego procesu. W�tki konkuruj� ze sob� o czas procesora. Pozostałe zasoby przydzielane s� na rzecz procesu. System operacyjny zostawia programi�cie aplikacji woln� r�k� w rozstrzyganiu konfliktów pomi�dzy w�tkami o dost�p do zasobów przydzielonych procesowi. System operacyjny nazywamy wielow�tkowym, je�eli dopuszcza istnienie wielu w�tków wykonania w ramach jednego procesu. Przykładami systemów wielow�tkowych s� Windows NT, Windows 95 i niektóre odmiany Uniksa. W systemach nie b�d�cych wielow�tkowymi poj�cie w�tku i prcesu uto�samia si�. Przedstawiony na rys. 2.1 graf stanów procesu oraz kolejkowanie w systemie wielow�tkowym dotyczy oczywi�cie w�tków. Proces nie posiada stanów, jest ko�czony w momencie gdy sko�czy si� jego ostatni w�tek. Je�eli nie b�dzie to wyra�nie zaznaaczone, w dalszej cz��ci wykładu procesy i w�tki b�d� ze sob� uto�samiane.

Kontekst procesu

Aby proces/w�tek mógł by� wznowiony od miejsca w którym przerwane zostało jego wykonanie, nale�y zachowa� pewne informacje o stanie procesora w chwili przerywania działania procesu. Zbiór wszystkich informacji niezb�dnych do podj�cia prez proces działania z miejsca, w którym si� znajduje nazywamy kontekstem procesu. Zdarzenie zapami�tania kontekstu aktualnego procesu i wprowadzenia do procesora wcze�niej zachowanego kontekstu innego procesu celem rozpocz�cia jego wykonania nazywamy przeł�czeniem kontekstu. Kontekst procesu składa si� z zawarto�ci rejestrów procesora, w szczególno�ci wska�nika instrukcji, rejestru flag stanu i wska�nika stosu. W przypadku systemów z pami�ci� wirtualn� w skład kontekstu wchodz� tablice stron.

Procesy interakcyjne, wsadowe i demony

Page 11: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

11

Nie wszystkie procesy wymagaj� ci�głej współpracy u�ytkownika w trakcie działania. Te które wymagaj� - nazywamy interakcyjnymi. S� to m.in. edytory tekstu, programy do odbierania poczty itp. Programy interakcyjne maj� zawsze przypisany jaki� zasób umo�liwiaj�cy konwersacj� z u�ytkownikiem. W przypadku Uniksa jest to terminal znakowy. W przypadku programu z graficznym interfejsem u�ytkownika jest to okienko graficzne na ekranie komputera. Procesy nie wymagaj�ce uwagi u�ytkownika dziel� si� na dwie kategorie:

• demony - programy �wiadcz�ce usługi dla systemu jako cało�ci (program wymiataj�cy pami�� podr�czn�) lub dla ogółu u�ytkowników (silnik bazy danych) oraz

• zadania wsadowe - zadania uruchomione przez jednego u�ytkownika, wykonuj�ce długotrwałe obliczenia, których nie trzeba nadzorowa�, np: sysmulacje numeryczne, tworzenie grafiki w oparciu o techniki �ledzenia promieni, itp.)

System operacyjny dostarcza administratorowi narz�dzi do uruchamiania i nadzorowania procesów pierwszego typu, a pozostałym u�ytkownikom drugiego typu.

Rozdział 3: Zarz�dzanie pami�ci� Do czego procesowi pami��

Ka�dy prces działaj�cy w komputerze wymaga pami�ci operacyjnej do przechowywania kodu swego prograamu i danych które przetwarza. Dane, które przetwarza proces reprezentowane s� przez zmienne programu. Przez zmienn� programu rozumie si� obszar pami�ci o ustalonym adresie pocz�tkowym i długo�ci, do którego mo�na odwoływa� si� z programu poprzez symbol zwany nazw� zmiennej. Ka�da zmienna posiada swój typ, definiowany jako zbiór, którego elementy mog� by� kodowane przez warto�ci zmiennej, np. typ char j�zyka C koduje znaki zbioru ASCII lub liczby z przedziału -128 do 127. Typ decyduje o długo�ci obszaru przeznaczonego na zmienn�. Wa�nymi typami zmiennych s� zmienne wska�nikowe. Przechowuj� one adresy (adresy pocz�tku obszaru) innych zmiennych. Z punktu widzenia zarz�dzania pami�ci� wyró�nia si� trzy klasy zmiennych:

• Zmienne statyczne - s� tworzone przy starcie procesu i istniej� przez cały czas jego �ycia. Okre�lenie zmienna statyczna mo�e by� myl�ce. Zmienna ta, oczywi�cie, mo�e by� modyfikowana przez program. Okre�lenie statyczna odnosi si� do sposobu gospodarowania pami�ci� tej zmiennej - rezerwuje si� j� przy starcie a zwalnia przy ko�cu procesu. Przez cały czas �ycia procesu dany obszar pami�ci wykorzystywany jest w ten sam sposób - na przechowywanie aktualnej warto�ci danej zmiennej.

• Zmienne lokalne podprogramów zwane te� automatycznymi - s� tworzone dla ka�dego wywołania podprogramu i usuwane po jego zako�czeniu.

• Zmienne dynamiczne - s� tworzone i usuwane w miar� potrzeby.

Wyró�nia si� trzy zasadnicze grupy obszarów pami�ci, z których korzysta proces:

Page 12: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

12

• Obszary zajmowane przez kod programu i bibliotek. Na pami�ci wchodz�cej w skład tych obszarów po załadowaniu programu (lub biblioteki) procesor wykonuje jedynie operacje odczytu. Obszary te mog� by� wspólny dla ró�nych procesów wykonuj�cych ten sam program, lub korzystaj�cych z tej samej bibloteki ładowanej dynamicznie.

• Obszary zajmowany przez prywatne dane programu, w tym zmienne statyczne i dynamiczne. Obszar ten jest inicjowany przy starcie procesu pocz�tkowymi warto�ciami zmiennych globalnych (cz�sto zerami). W trakcie �ycia procesu dokonywane s� zarówno operacje odczytu jak i zapisu. Obszar przechowuj�cy zmienne dynamiczne nazywany jest stert�. Tworzenie i niszczenie zmiennych dynamicznych mo�e powodowa� zwi�kszanie si� i zmniejszanie tego obszaru w trakcie �ycia procesu. Ka�dy proces wymaga własnego obszaru prywatnych danych. Je�eli proces składa si� z w�tków, w�tki współdziel� obszar danych procesu.

• Obszar stosu. W obszarze tym zapami�tuje si� adresy powrotów z podprogramów oraz przechowuj zmienne lokalne (dla ka�dego wywołania podprogramu tworzony jest jego własny komplet zmiennych lokalnych). Obszar ten jest rezerwowany w pami�ci przy starcie procesu. Z pocz�tku jest pusty. Wypełnia si� i opró�nia w miar� jak wywoływane i ko�czone s� poszczególne podprogramy. Ka�dy w�tek wymaga własnego obszaru stosu.

Powy�sze obszary pami�ci bywaj� cz�sto nazywane segmentami odpowiednio kodu, danych i stosu. Mo�na wyró�ni� dodatkowe obszary pami�ci dost�pnej procesowi:

• Obszary systemowe. W nowoczesnych systemach operacyjnych dost�p do tych obszarów proces ma tylko wtedy, gdy wykonuje w trybie j�dra podprogram j�dra systemu operacyjnego.

o Dane systemu operacyjnego w tym np. bufory dyskowe, o kod j�dra systemu operacyjnego, o kod sterowników urz�dze� w pami�ci ROM, o adresowalna pami�� urz�dze� wej�cia wyj�cia, np. pami�� obrazu karty

graficznej. • Pami�� dzielona - obszary pami�ci przechowuj�ce dane, do których dost�p ma wi�cej

ni� jeden proces. • Pliki dyskowe mapowane na pami��.

Rozwa�my prosty program w C #include <stdio.h> #include <string.h> char napis[] = "Hello world!"; void main() { char *tymczasowa; tymczasowa=strdup(napis); printf("%s\n",tymczasowa); free (tymczasowa); } Rys. 3.1 Przykładowy program w C u�ywaj�cy ró�nych klas zmiennych W trakcie działania powy�szego programu tworzone s� (a potem usuwane) nast�puj�ce zmienne:

Page 13: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

13

• zmienna statyczna ``napis '' zawieraj�ca ła�cuch "Hello World!"; • bezimienna zmienna statyczna zawieraj�ca ła�cuch "%s\n"; • zmienna lokalna funkcji ``main'' typu wska�nikowego (wska�nik do typu char) o

nazwie ``tymczasowa''; • zmienna dynamiczna, b�d�ca duplikatem zmiennej ``napis'', wska�nik do niej

podstawiany jest do zmiennej ``tymczasowa''. • inne zmienne zadeklarowane w standardowej bibliotece C, których deklaracje

znajduj� si� w plikach nagłówkowych stdio.h i string.h

Przy starcie procesu wykonuj�cego powy�szy program w obszarze kodu programu znajdzie si� skompilowana funkcja ``main'' oraz skompilowane niezb�dne funkcje biblioteczne w tym funkcje ``printf'', ``strdup'' i ``free''. W obszarze danych statycznych utworzone b�d� zmienne ``napis'', bezimienna zmienna zawieraj�ca ła�cuch "%s\n" oraz niesprecyzowane tutaj bli�ej zmienne tworzone dla potrzeb bibliotek. Po zainicjowaniu pami�ci proces zaczyna wykonywa� swój kod poczynaj�c od funkcji ``main''. W trakcie prologu tej funkcji rezerwowane jest na stosie miejsce na zmienn� ``tymczasowa''. W trakcie wykonania (druga linijka) tworzona jest zmienna dynamiczna b�d�ca duplikatem zmiennej ``napis'' a jej adres wstawiany jest do zmiennej ``tymczasowa''. Przy ko�cu programu zmienna dynamiczna (której adres wci�� przechowuje zmienna ``tymczasowa'') jest niszczona. Epilog funkcji ``main'' niszczy zmienn� lokaln� ``tymczasowa''. Zako�czenie si� tej funkcji ko�czy jednocze�nie proces. W trakcie usuwania zako�czonego procesu niszczone s� pozostałe zmienne.

Gospodarka pami�ci� w systemach bez mechanizmu pami�ci wirtualnej

CP/M

Najprostsz� gospodark� pami�ci� prezentuje system operacyjny CP/M. Poniewa� w systemie tym mo�e istnie� tylko jeden proces, dostaje on cał� pami�� w swoje władanie. System operacyjny iinformuje go jedynie, gdzie znajduj� si� jego obszary pami�ci. Poza tym ostrze�eniem, system operacyjny nie chroni swej pami�ci przed procesem.

Systemy wieloprocesowe

W wieloprocesowych systemach operacyjnych nale�y stworzy� mechanizmy przydzielania pami�ci wielu procesom oraz ochrony pami�ci przydzielonej poszczególnym procesom i pami�ci zajmowanej przez kod i dane j�dra przed innymi procesami. W pierwszych sysemach wieloprocesowych z ochron� pami�ci uruchamiany proces otrzymywał sztywn� pul� pami�ci wyznaczn� przez adresy graniczne. Proces musiał zmie�ci� swój kod i dane w zadanym obszarze. U�ycie zmiennych dynamicznych było w zwi�zku z tym ograniczone. W przypadku odwołania si� do adresów spoza wyznaczonych granic proces wpadał w pułapk� i był ko�czony.

MS-DOS

W systemie operacyjnym MS-DOS proces przy starcie mo�e zarezerwowa� pewn� ilo�� tzw. segmentów pami�ci operacyjnej poło�onej poni�ej adresu 655360. W trakcie �ycia mo�e zarezerwowa� dodatkowe segmenty lub zwolni� je. Mo�e te� rezerwowa� i zwalnia� pami�� powy�ej 1MB. Nowy proces b�dzie uruchomiony pod warunkiem, �e jest do�� segmentów dla niego w obszarze pierwsych 640kB pami�ci. MS-DOS nie zapewnia ochrony pami�ci.

Page 14: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

14

MS-Windows 3.x

Windows 3.x s� nakładk� na MS-DOS cz��ciowo modyfikuj�c� jego zachowanie, m in. zarz�dzanie pami�ci�. Przede wszystkim znika ograniczenie wielko�ci pami�ci procesu do 640kB. MS-Windows równie� nie zapewniaj� pami�ci. Obszary pami�ci mo�na rezerwowa� jako:

• Fixed - Obszar ten cały czas dost�pny jest pod adresami przydzielonymi mu przy rezerwacji. W obszarach tej klasy lokuje si� kod, dane statyczne i stos procesu.

• Movable - Aby odwoływa� si� do adresów w tym obszarze, nale�y go zablokowa�. System operacyjny gwarantuje, �e po odblokowaniu zawarto�� obszaru nie b�dzie zniszczona, jednak nie gwarantuje, �e po powtórnym zablokowaniu znajdowa� si� b�dzie w tym samym miejscu pami�ci. W zwi�zku z tym, adresy zmiennych zawartych w tym obszarze, po jego odblokowaniu trac� wa�no��. Obszary tej klasy wykorzystuje si� na współdzielone dane i pewne mniej potrzebne zmienne dynamiczne.

• Discardable - Aby odwoływa� si� do adresów w tym obszarze, nale�y go zablokowa�. Po odblokowaniu obszaru mo�e on zosta� zniszczony. W zwi�zku z tym, adresy zmiennych zawartych w tym obszarze, po jego odblokowaniu trac� wa�no��. Obszary tej klasy wykorzystuje si� na pewne mniej potrzebne zmienne dynamiczne.

MS-Windows zapewnia dwa mechanizmy gospodarowania pami�ci�:

1. Konsolidacja. W przypadku gdy dla nowotworzonego procesu, lub procesu, który zarz�dał pami�ci brak miejsca, odblokowane obszary klasy discardable s� niszczone, a odblokowane obszary klasy movable przesuwane tak by utworzy� spójny obszar

Page 15: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

15

mog�cy zaspokoi� ��danie.

2. Wymiana. Je�eli powy�sze operacje nie pozwalaj� uzyska� spójnego obszaru pami�ci

odpowiedniej wielko�ci, jeden lub wi�cej z obszarów klasy fixed, lub zablokowanych obszarów klas movable i discardable nale��cych do innych procesów trafia na dysk do pliku wymiany. Zmiana kontekstu (uzyskanie procesora przez inny proces) powoduje �e obszary pami�ci danego procesu umieszczone w pliku wymiany s� sprowadzane do pami�ci operacyjnej, a obszary nale��ce do innych procesów, pokrywaj�ce si� w pami�ci operacyjnej z nimi s� konsolidowane lub trafaj� do pliku wymiany.

Jak wida� na rysunku 3.2 pomimo zastosowania konsolidacji pami�ci, jest ona wci�� pofragmentowana, cho� najwi�kszy spójny obszar znacz�co wzrósł. Fragmentacja pami�ci powoduje, �e ��dania przydziału pami�ci, domagaj�ce si� mniej pami�ci ni� jest w sumie wolne, ale wi�cej ni� zawiera najwi�kszy spójny obszar mog� nie zosta� spełnione. Z pomoc� przychodzi wymiana (mechanizm zapewniany przez system operacyjny) i nakładkowanie (mechanizm zapewniany przez programist� lub jego kompilator). Polegaj� one na czasowym usuwaniu pewnych obszarów pami�ci na dysk do specjalnie utworzonego pliku wymiany. Mechanizmem nakładkowania nie b�dziemy si� tu zajmowa�, jest on zbli�ony do mechanizmu wymiany, a dotyczy głównie wymiany zestawów podprogramów. Wad� mechanizmu wymiany jest to, �e pami�� jest usuwana na dysk wielkimi blokami, a w razie przeł�czenia kontekstu cała pami�� procesu musi by� przeniesiona od razu z pliku

Page 16: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

16

wymiany do pami�ci operacyjnej. Nie mo�na równie� zarezerwowa� obszaru wi�kszego ni� dost�pna pami�� operacyjna.

Mechanizm pami�ci wirtualnej

Zalety i wady

Mechanizm pami�ci wirtualnej nie posiada wad przedstawionych w poprzednim paragrafie. Jego cechy to:

• Powstanie prywatnych przestrzeni adresowych dla ka�dego procesu. Procesy nie widz� nawzajem swoich przestrzeni adresowych.

• Niewidoczny dla procesu podział pami�ci na niewielkie (rz�du 1kB) obszary pami�ci podlegaj�ce wymianie zwane stronami.

• Praktyczne nieistnienie problemu fragmentacji pami�ci. • Mo�liwo�c przechowywania w pami�ci operacyjnej w trakcie wykonywania procesu

jedynie najcz��ciej ostatnio u�ywanych stron. Długo niewykorzystywane strony trafiaj� na dysk do pliku wymiany. Przy przeł�czaniu kontekstu nie ma potrzeby ładowa� całej przestrzeni adresowej do pami�ci operacyjnej, wystarczy strona z komórk� zawieraj�c� nast�pn� instrukcj� programu, oraz strona z wierzchem stosu.

• Proces ma iluzj� posiadania przez maszyn� znacznie wi�kszej ilo�ci pami�ci operacyjnej ni� ma ona w rzeczywisto�ci, w szczególno�ci mo�na tworzy� zmienne o rozmiarze przekraczaj�cym rozmiar pami�ci operacyjnej.

• Mo�liwo�� poddania ochronie obszarów przestrzeni adresowej procesu, w szczególno�ci obszarów systemowych, obszaru kodu i pami�ci współdzielonej.

• Mo�liwo�� spójnego implementowania pami�ci wirtualnej, pami�ci współdzielonej, mapowania pliku na pami�� operacyjn� i buforowania operacji dyskowych.

Wadami mechanizmu pami�ci wirtualnej s�

• Narzut na pami�� zwi�zany z przechowywaniem dodatkowych struktur danych t.j. tablic stron.

• Narzut na wydajno�� i zło�ono�� procesora zwi�zany z wyliczaniem adresów fizycznych z adresów wirtualnych.

• Narzut na wydajno�� systemu zwi�zany z konieczno�ci� wczytania do procesora cz�sci tablicy stron nowego procesu przy przeł�czaniu kontekstu.

• Narzut na wydajno�� systemu zwi�zany z operacjami dyskowymi wymiany stron. Trzeba tu jednak zaznaczy�, �e dobre algorytmy wymiany stron minimalizuj� ten narzut.

Zasada działania

Najistotniejszym elementem mechanzmu jest rozró�nienie mi�dzy adresem logicznym a fizycznym komórki pami�ci i sposób odwzorowania adresu logicznego na fizyczny. Adresem fizycznym komórki nazywamy adres, jaki wysyła na magistral� adresow� procesor, aby odwoła� si� do tej komórki. Ka�da komórka pami�ci operacyjnej ma swój niezmienny adres fizyczny. Ka�dy adres fizyczny odnosi si� zawsze do tej samej komórki pami�ci lub jest zawsze bł�dny. Adresem logicznym (lub wirtualnym) nazywamy adres jakim posługuje si� program, aby odwoła� si� do zmiennej lub instrukcji. Adres logiczny mo�e odnosi� si� zarówno do komórki

Page 17: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

17

pami�ci operacyjnej jak i słowa maszynowego zapisanego na dysku. Przypisanie adresu logicznego do konkretnej komórki pami�ci, czy konkretnego miejsca na dysku jest inne dla ka�dego procesu i mo�e si� zmienia� w trakcie jego �ycia. Pami�� operacyjna dzielona jest na ramki, to jest spójne obszary o stałym romiarze zwanym wielko�ci� ramki. Przestrze� adresów wirtualnych dzielona jest na strony, to jest spójne obszary o stałym rozmiarze zwnym wielko�ci� strony. Wielko�� strony równa si� wielko�ci ramki i jest wielokrotno�ci� rozmiaru sektora dyskowego. Wielko�� strony jest rz�du 1kB, i tak, w systemie VMS wynosi ona 512B, w Linuksie - 1kB a w Windows NT - 4kB. Analogicznie do pami�ci operacyjnej, mo�na przyj��, �e plik wymiany dzieli si� równie� na ramki. Strona pami�ci wirtualnej mo�e znajdowa� si� w jednej z ramek pami�ci operacyjnej, jednej z ramek pliku wymiany lub by� stron� niezarezerwowan� (bł�dn�). Odwzorowania stron pami�ci wirtualnej w ramki pami�ci operacyjnej lub ramki pliku wymiany dokonuje procesor za ka�dym razem, gdy oblicza adres fizyczny z adresu wirtualnego (celem pobrania instrukcji, lub odwołania si� do zmiennej). Do odwzorowywania stron w ramki słu�� mu tablice stron wirtualnych. Szczegóły tłumaczenia adresu logicznego na fizyczny w prypadku, gdy strona znajduje si� w pewnej ramce pami�ci operacyjnej ilustruje rys. 3.3.

Adres logiczny składa si� z dwóch c��ci: numery strony i przesuni�cia na stronie. Numer strony słu�y jako indeks do tablicy stron wirtualnych. W tablicy tej odnajdywana jaest pozycja odpowiadaj�ca dnej stronie. Na podstawie atrybutów procesor ustala, czy strona znajduje si� w pami�ci operacyjnej i je�li tak, pobiera numer ramki po czym ł�czy go z przesuni�ciem na stronie otrzymuj�c adres fizyczny, który mo�e by� wysłany na magistral� adresow�. Je�eli atrybut dost�pno�ci strony wskazuje, �e znajduje si� ona w pami�ci wymiany, nast�puje tzw. ``page fault'' - wyj�tek pami�ci wirtualnej. Procesor przerywa proces (w�tek), który

Page 18: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

18

odwołał si� do nieobecnej strony i przenosi go w stan u�piony. Jednocze�nie podejmowane s� działania maj�ce na celu sprowadzenie strony do pami�ci t.j. wyszukiwana jest wolna ramka. Je�li wolnej ramki brak, jedna z ramek zaj�tych zapisywana jest na dysk i zwalniana. Uzyskana ramka pami�ci operacyjnej zapełniana jest zawarto�ci� przywracanej strony przechowywan� w pliku wymiany. Tablice stron mog� rezydowa� tak jak to pokazano na rysunku w specjalnych obszarach pami�ci, które s� znane procesorowi przez ich adres fizyczny (a nie logiczny) lub te� mog� by� cz��ciowo przechowywane w podr�cznej pami�ci asocjacyjnej procesora. Wiele systemów operacyjnych dopuszcza by cz��� tabeli stron mogła by� przenoszona do pliku wymiany. Du�a cz��� mechanizmu pami�ci wirtualnej musi by� realizowana sprz�towo przez procesor. System operacyjny dochodzi do głosu gdy nast�puje page fault i trzeba sprowadzi� stron� do pami�ci, usuwaj�c by� mo�e inn� stron� oraz dokona� przeł�czenia kontekstu. Mechanizm ten mo�e zatem działa� jedynie w systemach operacyjnych działaj�cych na procesorach wspieraj�cych go, takich jak np. Intel i386 i nowsze procesory Intela, procesory Alpha, nowsze procesory Motorolli itd.

Izolacja procesów i ochrona pami�ci.

Aby zapewni� ka�demu procesowi prywatn� przestrze� adresow�, dostaje on własn� tablic� stron wirtualnych. W zwi�zku z tym tablica ta jest elementem kontekstu procesu. Przeł�czenie kontekstu wymaga wczytania do procesora tablicy stron nowego procesu (a przynajmniej jej cz��ci). Atrybutem strony mo�e by� uprawnienie procesu do posługiwania si� t� stron�:

• Uprawnienie do odczytu i zapisu (read/wite). To uprawnienie otrzymuj� strony obszarów danych i stosu programu.

• Uprawnienie do odczytu (read only). To uprawnienie nadaje si� m.in. stronom zawieraj�cym kod programu. Mo�na dzi�ki temu współdzieli� te strony mi�dzy procesami wykonuj�cymi ten sam program bez obawy, �e jeden proces zmodyfikuje kod programu i tym samym wpłynie katastrofalnie na przebieg działania drugiego procesu.

• Uprawnienie zabraniaj�ce wszelkich operacji (no access). Tym atrybutem oznacza si� strony przechowuj�ce kod i dane j�dra systemu operacyjnego oraz strony nie zarezerwowane dot�d przez proces.

Niektóre systemy operacyjne wyró�niaj� bardziej zło�ony system uprawnie� np. copy on write i execute only, pod warunkiem, �e procesor wspiera takie upranienia. Proces, diałaj�c w trybie u�ytkownika, nie ma mo�liwo�ci bezpo�redniej zmiany zawarto�ci tablicy stron. Mo�e on zleci� systemowi operacyjnemu rezerwacj� nowych stron (np. na zmienne dynamiczne) lub zwolnienie tych które przestał u�ywa�. Odbywa si� to przez wywołanie odpowiednich podprogramów j�dra (działaj�cych w trybie j�dra).

Rozdział 4: Zarz�dzanie wej�ciem-wyj�ciem Ogólna architektura podsystemu wej�ia/wyj�cia

Page 19: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

19

Ogóln� architektur� wej�cia/wyj�cia przedstawiono na rys. 4.1.

Na sprz�t (patrz rozdział 1 i rys. 1.1) składa si� pewna ilo�� urz�dze� wej�cia wyj�cia zwanych dalej urz�dzeniami fizycznymi (ang. phisical device), ka�de z tych urz�dze� sterowane jest przez sterownik sprz�towy (ang. hardware controller). Do komunikacji z urz�dzeniami fizycznymi wykorzystuje si� zasoby urz�dze� t.j. rejestry we/wy, przerwania, adresowaln� pami�� urz�dze� i kanały DMA. J�dro systemu operacyjego zawiera pewn� ilo�� modułów zwanych stertownikami programowymi urz�dze� (ang. device driver), które potrafi� sterowa� urz�dzeniami. Jeden sterownik mo�e obsługiwa� wiele urz�dze� podobnego typu (np. sterownik dysków) lub uzupełniaj�cych si� typów (np. sterownik terminala obsługuje klawiatur� i kart� graficzn� wraz z monitorem). Sterowniki programowe tworz� dla wy�szych warstw oprogramowania urz�dzenia logiczne (ang. logical device). Urz�dzenie logiczne jest obiektem b�d�cym abstrakcj� urz�dzenia fizycznego. Na urz�dzeniu logicznym mo�na dokonywa� operacji zapisu i odczytu poprzez podprogramy dostarczane przez sterownik. Wy�sze warstwy oprogramowania nie musz� zna�

Page 20: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

20

szczegółów sterowania danym urz�dzeniem. Wsród urz�dze� logicznych mo�na wyodr�bni� nast�puj�ce typy:

• Urz�dzenia znakowe lub strumieniowe (ang. character device). Z urz�dzenia znakwego mo�na czyta� w sposób sekwencyjny ci�gi bajtów, lub w sposób sekwencyjny zapisywa� ci�gi bajtów. Przykłady urz�dze� fizycznych dla których tworzy si� logiczne urz�dzenia znakowe: zegar systemowy, porty szergowe i równoległe oraz widoczne przez nie drukarki, modemy, myszy i terminale, komsola, streamery itp.

• Urz�dzenia blokowe (ang. block device). Z urz�dzenia blokowego mo�na odczytywa� i zapisywa� bloki bajtów okre�lonej dla danego urz�dzenia wielko�ci. Dost�p do danych w urz�dzeniu blokowym w przeciwie�stwie do urz�dze� znakowych jest swobodny t.j. poprzez podanie adresu bloku. Przykłady urz�dze� fizycznych dla których tworzy si� logiczne urz�dzenia blokowe: dyski, niektóre skanery.

• Inne. Urz�dzenia te oferuj� funkcje, która wykraczaj� znacz�co poza operacje odczytu/zapsu na urz�dzeniu znakowym lub blokowym. Przykłady urz�dze�: karty sieciowe, karty graficzne.

Modyły j�dra odpowiedzialne za wy�sze funkcje to moduły systemów plików, protokołów sieciowych, interfejsu u�ytkownika itp. Systemy plików mog� by� zakładane na urz�dzeniach blokowych. System plików umo�liwia przechowywanie na tym samym urz�dzeniu ró�nych informacji w sposób pozwalaj�cy wyszuka� potrzebne zbiory danych oraz zabezpieczy� dane przed niepowołanym dost�pem. Wy�sze funkcje we/wy dost�pne s� przez tzw. API (application programmer's interface - interfejs programisty aplikacji) czyli zbiory podprogramów dost�pnych do wywołania przez aplikacje. Istniej� pewne zło�one operacje, które nie powinny lub nie musz� by� wykonywane w j�drze systemu operacyjnego ze wzgl�du np. na wydajno�� systemu, d��enie do zmniejszenia stopnia komplikacji j�dra czy bezpiecze�stwo. Do wykonania tych operacji uruchamia si� przy starcie systemu programy usługowe zwane te� demonami (ang. daemon). Przykłady zastosowa�: zarz�dzanie kolejkami wydruków, implementacja cz��ci usług sieciowych czy wymiatanie buforów dyskowych. Programy usługowe i aplikacje mog� si� odwoływa� bezpo�rednio do urz�dze� logicznych, je�eli konfiguracja systemu na to pozwala lub do odpowiednich API. �adna warstwa oprogramowania z wyj�tkiem sterowników programowych nie odwołuje si� bezpo�rednio do sprz�tu.

Zasoby urz�dze� fizycznych

Zasoby urz�dze� fizycznych umo�liwiaj� procesorowi i wykonywanemu si� na nim oprogramowaniu komunikowa� si� z urz�dzeniami fizycznymi. Wyró�nia si� cztery klasy zasobów urz�dze� fizycznych:

• rejestry we/wy (ang. I/O registers), • przerwania (ang. interrupts), • adresowalna pami�� sterownika, • kanały DMA.

Rejestry we/wy

Page 21: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

21

Rejestry we/wy to rejestry sterowników sprz�towych, do których procesor mo�e wpisywa� (lub odczytywa�) dane podane na magistral� danych, podaj�c na magistral� adresow� adres rejestru. Wiele procesorów informuje o operacjach na rejestrach we/wy podaj�c sygnał na specjaln� �cie�k� w magistrali steruj�cej, co pozwala oddzieli� przestrze� adresow� pami�ci fizycznej od przestrzeni adresowej rejestrów we/wy. Rozwi�canie to zastosowano w procesorach Intela. Istniej� procesory, które nie rozró�niaj� pami�ci operacyjnej i rejestrów we/wy, jak np. Motorolla 6502. Komplikuje to prac� projektantom magistral. Funkcje rejestrów we/wy mog� by� ró�ne. Zapis do pewnego rejestru mo�e by� komend� dla sterownika sprz�towego urz�dzenia. Inne rejestry słu�� jako bufory wej�cia wyj�cia - nale�y do nich wpisyswa� dane wysyłane do urz�dzenia a odczytywa� dane przychodz�ce z urz�dzenia. Jeszcze inne rejestry pozwalaj� odczyta� status urz�dzenia lub ostatnio wykonanej operacji. Adresy rejestrów we/wy danego sterownika sprz�towego cz�sto mog� by� modyfikowane. Nadaje si� je ustawiaj�c zworki na karcie sterownika (np. dawne modele kart sieciowych zgodnych z NE2000), konfiguruj�c programem SETUP (np. adresy portów szeregowych) lub programem dostarczonym przez producenta urz�dzenia (np. karty sieciowe ISA 3Com) lub poprzez fakt wł�czenie karty w konkretne gniazdo magistrali (np. karty PCI). O ustawieniu adresów we/wy na sterowniku sprz�towym nale�y poinformowa� sterownik programowy (ang. driver), aby mógł si� poprawnie odwoływa� do danego urz�dzenia. Nowsze sterowniki programowe potrafi� same wykry� adresy we/wy swoich sterowników fizycznych. Adresy we/wy nie musz� tworzy� spójnej przestrzeni adresowej jak to było z pami�ci� fizyczn�. Je�eli adresy we/wy dwóch sterowników pokrywaj� si�, to urz�dzenia te nawzajem przeszkadzaj� sobie w pracy. Mówimy wtedy o konflikcie adresów we/wy. Konflikt rozwi�zuje si� nadaj�c jenemu z urz�dze� inne adresy we/wy i informuj�c o tym sterownik programowy danego urz�dzenia. Rejestry we/wy zapewniaj� przepływ niewielkich paczek informacji w obie strony (procesor <-> urz�dzenie). Inicjatorem komunikacji jest zawsze procesor.

Przerwania

Przerwana to sygnały jakie wysyłaj� sterowniki sprz�towe aby poinformowa� procesor o istotnym zdarzeniu, które wymaga po�wi�cenia przez procesor uwagi danemu urz�dzeniu. Przykładami takich wydarze� mo�e by� wci�ni�cie klawisza, zako�czenie operacji dyskowej, nadej�cie pakietu informacji do karty sieciowej itp. Aby odró�ni� zdarzenia pochodz�ce od ró�nych urz�dze�, poszczególnym sterownikom sprz�towym przypisuje si� numery przerwa� w podobny sposób jak to było z adresami we/wy, przy czym zakres numerów przerwa� sprz�towych jest niewielki i przykładowo wynosi od 0 do 15 dla komputerów o architekturze PC/AT. Konflikt numerów przerwa� mo�e by� równie katastrofalny w skutkach jak konflikt adresów we/wy. Podobnie jak z adresami we/wy, o ustawieniu numeru przerwania w sterowniku sprz�towym nale�y poinformowa� odpowiedni sterownik programowy. Po otrzymaniu przerwania procesor przerywa aktualnie wykonywany proces, zapisuje cz��� swego kontekstu na stosie (przynajmniej wska�nik instrukcji i rejestr flagowy) i przechodzi do wykonania podprogramu obsługi przerwania zarejestrowanego dla danego numeru przerwania. Podprogram ten pochodzi ze sterownika programowego danego urz�dzenia i został zarejestrowany w trakcie inicjacji sterownika. Po zako�czeniu obsługi przerwania sterowanie wraca do przerwanego procesu, który wykonuje si� dalej tak jakby nie został przerwany. Istnieje hierarchia przerwa�, tzn. pewne przerwania mog� by� przerywane przez inne

Page 22: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

22

umieszczone wy�ej w hierarchii. Aby zwi�kszy� szybko�� reagowania na przerwania podprogram obsługi przerwania wykonuje si� w kontek�cie procesu, który został przerwany, co poci�ga za sob� mo�liwo�� manipulowania danymi procesu przez podprogram obsługi przerwania pochod�cy ze �le lub zło�liwie napisanego sterownika programowego.

Adresowalna pami��

Adresowalna pami�� sterownika to cz��� pami�ci RAM lub ROM sterownika sprz�towego, która jest widoczna dla procesora w przestrzeni adresów fizycznych pami�ci. Przykłady zastosowa�: pami�� obrazu karty graficznej, pami�� ROM zawieraj�ca kod podprogramów wchodz�cych w skład sterownika programowego danego urz�dzenia.

Kanały DMA

Kanały DMA (direct memory access - bezpo�redni dost�p do pami�ci) s� to narz�dzia jakie udost�pniaj� magistrale sterownikom sprz�towym we/wy, aby te mogły bezpo�rednio czyta� lub pisa� do pami�ci operacyjnej (bez pochłaniania uwagi procesora). Podczas gdy sterownik sprz�towy dokonuje operacji przez kanał DMA magistrala stgeruj�ca blokuje procesorowi dost�p do cało�ci lub cz��ci pami�ci. Z kanałów DMA korzystaj� sterowniki urz�dze� przesyłaj�cych dane z wielkimi pr�dko�ciami takich jak dyski, karty sieciowe czy kardt d�wi�kowe. Kanały DMA maj� swoje numery, do których przydzielania odnosz� si� podobne uwagi co do przydziału adresów we/wy.

Sterowniki i urz�dzenia logiczne

Sterownik programowy (ang. device driver) to zbiór podprogramów pozwalaj�cych sterowa� danym urz�dzeniem (urz�dzeniami) fizycznym. Dla poprawnej pracy sterownik musi zna� zasoby sterownika sprz�towego urz�dzenia fizycznego, poprzez które mo�e si� z nim komunikowa�. Je�eli sam nie potrafi ich znale��, nale�y poda� mu je podczas konfiguracji. Pojedy�czy sterownik mo�e obsługiwa� wiele urz�dze� fizycznych tego samego typu (np. dysków) lub typów uzupełniaj�cych si� (np. klawiatura i ekran). Wy�szym warstwom oprogramowania sterownik prezentuje pewn� ilo�� urz�dze� logicznych (ang. logical device). Ka�de urz�dzenie logiczne ma swoj� unikaln� nazw� np. "A:", "C:", "COM1:" w MS DOS czy "/dev/fd0", "/dev/hda1", "/dev/cua0" w Linuksie (podobne nazwy s� w innych systemach uniksowych). W MSDOSie nazwy urz�dze� logicznych nie mog� by� dłu�sze ni� 9 znaków ł�cznie z obowi�zkowym ko�cowym znakiem dwukropka ":". W MS Windows NT nazwy urz�dze� logicznych umieszczone s� w drzewie nazw obiektów systemowych, dodatkowo istnieje mechanizm tłumaczenia nazw MSDOSa na nazwy obiektów MS Windows NT. W uniksie ka�demu urz�dzeniu logicznemu udost�pnionemu przez administratora odpowiada plik specjalny w katalogu "/dev", st�d nazwy urz�dze� zaczynaj� si� na "/dev/". Urz�dzenia logiczne reprezentuj� abstrakcje urz�dze� fizycznych:

• Urz�dzenia logiczne mog� wprost odpowiada� urz�dzeniom fizycznym. Np. w MSDOS urz�dzenie logiczne "COM1:" odpowiada pierwszemu portowi szeregowemu i w konsekwencji przypi�tej do niego myszce.

• W niektórych przypadkach wiele urz�dze� logicznych odpowiada temu samemu urz�dzeniu fizycznemu. Dzieje si� tak gdy urz�dzenie daje si� na pewnym poziomie

Page 23: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

23

abstrakcji podzieli� na kilka odr�bnych fragmentów. Np. w systemie MSDOS działaj�cym na komputerze z jednym dyskiem podzielonym na dwie partycje, urz�dzenia logiczne "C:" i "D:" odpowiadaj� poszczególnym partycjom tego samego dysku fizycznego. Inny przykład: na�wietlarka t.j. urz�dzenie do na�wietlania klisz do offsetu mo�e by� widoczna jako kilka drukarek logicznych, ka�da drukarka logiczna reprezentuje inne parametry na�wietlania (takie jak rozdzielczo��).

• Mo�liwa jest równie� sytuacja gdy jedno urz�dzenie logiczne odpowiada wi�cej ni� jednemu rz�dzeniu fizycznemu, np. "/dev/console" w linuksie odpowiada konsoli znakowej, czyli klawiaturze i monitorowi.

Sterownik programowy urz�dzenia zapewnia m.in.:

• podprogramy obsługi przerwa� obsługuj�ce przerwania danego urz�dzenia, • podprogramy implementuj�ce operacje na urz�dzeniach logicznych jakie dany

sterownik dostarcza wy�szym warstwom, • podprogramy do wykonania czynno�ci organizacyjnych zlecanych przez system

operacyjny takich jak np. inicjacja urz�dzenia.

Sterowniki programowe urz�dze� mog� by� dostarczne przez firmy niezale�ne od producenta systemu operacyjnego w szczególno�ci przez proucentów urz�dze� we/wy. Najbardziej fundamentalne sterowniki takie jak sterowniki dysków, klawiatury, karty graficznej i monitora przychodz� razem z systemem operacyjnym. System operacyjny musi dawa� si� rozszerza� o inne sterowniki oraz definiowa� i egzekwowa� normy, których przestrzeganie pozwoli współistnie� w jednym systemie operacyjnym sterownikom programowym pochodz�cym od ró�nych producentów. Po zainstalowaniu, sterownik programowy staje si� cz��ci� systemu operacyjnego, w zwi�zku z czym, sterowniki nieznanego pochodzenia mog� stanowi� wyłom w bezpiecze�stwie systemu.

Urz�dzenia dyskowe

Budowa urz�dze� dyskowych

Dysk jest urz�dzeniem blokowym przeznaczonym do przechowywania du�ych ilo�ci danych. Najmniejsz� porcj� danych jaka mo�e by� odczytana/zapisana na dysk nazywamy sektorem. Obecnie budowane dyski składaj� si� z pewnej ilo�ci talerzy (ang. plate) na których dwustronnie zapisywana jest informacja przez kolumn� głowic (ang. head) odczytuj�co-zapisuj�cych. Na ka�dym talerzu wyodr�bni� mo�na �cie�ki (ang. track) w postaci koncentrycznych okr�gów, na których przy ustalonym poło�eniu kolumny głowic zapisywana jest informacja. cie�ki nale��ce do ró�nych dysków odpowiadaj�ce ustalonemu poło�eniu kolumny głowic nazywa si� cylindrem (ang. cylinder). Na ka�dej �cie�ce wyodr�bnia si� pewn� ilo�� sektorów. Bezpo�redni kontroler dysku jest najcz��ciej zintegrowany z dyskiem. Do komputera dysk jest przył�czony poprzez magistral� dyskow� i adapter - sterownik sprz�towy magistrali dyskowej. Popularnie stosowane s� dwa rodzaje magistral dyskowych i zwi�zanych z nimi protokołów komunikacji z dyskami:

• IDE (Integrated Drive Electronics - zintegrowany kontroler dysku), którego nowsze wersje wyst�puj� pod akronimami: ATA (AT Attachment Interface - interfejs przył�cza architektury AT), EIDE (Enhanced IDE - rozszerzony IDE), ATA-2, Fast-

Page 24: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

24

ATA, ATAPI (ATA Packet Interface - interfejs pakietowy do ATA, wzorowany na SCSI, u�ywany do nap�dów CD-ROM). Do magistrali IDE mo�na prezył�czy� 1 adapter i maksymalnie 2 dyski. Jeden z dysków pełni rol� nadrz�dn� (ang. master) w stosunku do drugiego (ang. slave). W wytwarzanych obecnie komputerach PC najcz��ciej dwa adaptery (pierwszy - primary i drugi - secondary) IDE s� zintegrowane z płyt� główn�, pozwalaj�c obsługiwa� maksymalnie 4 dyski. Zalet� standardu IDE jest niski stopie� komplikacji sterowników sprz�towych a co za tym idzie niska cena. Wad� jest mała elastyczno��, rozszerzalno�� i wydajno��. Niska wydajno�� (w porównaniu ze SCSI) wynika z przyj�tego protokołu, który blokuje magistral� IDE, a przez to drugi dysk do czasu wykonania operacji.

• SCSI (small computer system interface - interfejs małych systemów komputerowych) zaprojektowany pocz�tkowo dla minikomputerów okazał si� bezkonkurencyjny przy budowie serwerów i silnych stacji roboczych oraz przył�czaniu do komputera urz�dze� niekoniecznie dyskowych produkuj�cych lub konsumuj�cych du�e ilo�ci danych (takich jak np. skanery i na�wietlarki). Do magistrali SCSI mo�na przył�czy� do 8 lub w nowszych wersjach do 16 urz�dze�. Jednym z nich jest adapter komputera zarz�dzaj�cy magistral� (ang. host adapter). Zalet� tego rozwi�zania jest jego elastyczno�� i du�a wydajno��. Protokół SCSI pozwala by adapter wysyłał zlecenia do urz�dzenia podczas gdy urz�dznie to lub inne przył�czonego do tej samej magistrali wci�� jeszcze wykonuje swoje poprzednie zlecenie. Wad� jest du�y stopie� komplikacji urz�dze� a przez to wyskoa cena.

Wydajno�� dysku (ang. overall disk speed) charakteryzuj� parametry:

• Pr�dko�� transferu danych z dysku do sterownika (ang. data transfer rate) - jest to pr�dko��, z jak� dysk jest w stanie przesyła� dane na magistral� ł�cz�c� go z adapterem. Traci na znaczeniu, gdy odwołania do dysku nast�puj� w du�ej ilo�ci do przypadkowych miejsc.

• redni czas dost�pu do sektora (ang. average seek time) - jest to �redni czas potrzebny głowicy na znalezienie si� nad losowo wybranym sektorem.

• Ilo�� obrotów dysku na minut� (rpm - ang. reverses per minute) i zwi�zany z tym �redni czas oczekiwania głowicy na odczyt/zapis sektora na tej samej �cie�ce (ang. average track seek time). Ten czynnik ma du�e znaczenie gdy odwołania nast�puj� w wiekszo�ci do s�siednich sektorów dysku, co dzieje si� przy wczytywaniu du�ych niepofragmentowanych plików.

• Ilo�� pami�ci podr�cznej na danym dysku (ang. internal disk cache size). Wewn�trzna pami�� podr�czna dysku pozwala przyspieszy� operacje na dysku:

o zmniejszeniu ulega ilo�� fizycznych odczytów/zapisów dysku dzi�ki przechowywaniu ostatnio odczytanych/zapisanych sektorów oraz

o mo�na zaimplementowa� mechanizm czytania sektorów z wyprzedzeniem.

Organizacja logiczna dysku

Dysk jest charakteryzowany przez nast�puj�ce zale�ne od siebie parametry, od których zale�y pojemno�� dysku:

• geometri�: ilo�� zapisywalnych stron talerzy (ang. sides) = ilo�� głowic (ang. heads), ilo�� cylindrów, ilo�� sektorów na �cie�ce (ang. sectors per track), rozmiar sektora (ang. sector size);

• ilo�� wszystkich sektorów, rozmiar sektora;

Page 25: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

25

Sektory na dysku mo�na posortowa� w/g numeru cylindra, numeru głowicy i numeru sektora na �cie�ce a nast�pnie w tej kolejno�ci ponumerowa�. Powstaje w ten sposób płaski numer sektora. Niektóre dyski dopuszczaj� by do ich sektorów odwoływa� si� poprzez podanie płaskiego numeru sektora, inne wymagaj� podania tzw. parametrów geometrycznych tj. numeru głowicy, numeru cylindra i numeru sektora na �cie�ce. Utworzenie na dysku �cie�ek i sektorów na �cie�kach nazywamy formatowaniem niskopoziomowym. Formatowanie niskopoziomowe przeprowadzane jest najcz��ciej u producenta lub jako pierwsza czynno�� po zainstalowaniu dysku w systemie. W czasie formatowania niskopoziomowego dokonywane jest tak�e sprawdzanie zdatno�ci no�nika magnetycznego. Przeprowadzenie formatowania niskopoziomowego wymazuje z dysku wszelkie informacje (ł�cznie z tablic� partycji). Na dysku mo�na wydziela� obszary zwne partycjami, przydzielane ró�nym systemom plików, by� mo�e nale��cych do ró�nych systemów operacyjnych. Wiele systemów plików wymaga aby ich partycje zawierały pełne cylindry. Opis podziału dysku na partycje znajduje si� w tzw. tablicy partycji umieszczonej na pocz�tku dysku. Zmiana podziału na partycje niszczy zawarto�� partycji, których rozmiar lub poło�enie uległo zmianie. Do manipulacji tablic� partycji słu�y program fdisk. Na ka�dym dysku obsługiwanym przez MSDOS, MS Windows 3.xx lub 95 mo�e istnie� jedna partycja podstawowa FAT16 lub FAT32 oraz jedna partycja rozszerzona z pewn� ilo�ci� podpartycji FAT16 lub FAT32. Po utworzeniu partycji nale�y na ka�dej z nich zapisa� dane niezb�dne do poprawnego funkcjonowania systemu plików. Ten proces nazywamy formatowaniem wysokopoziomowym. Formatowanie wyskokpoziomowe mo�e zniszczy� dane zapisane na danej partycji. Je�eli system operacyjny startuje z dysku, jedna z partycji, tzw. partycja aktywna powinna zawiera� program ładuj�cy j�dro systemu operacyjnego oraz wszystkie inne pliki niezb�dne do startu systemu. Program ładuj�cy jadro bywa umieszczany w zerowym sektorze dysku, zwieraj�cym te� tablic� partycji zwanym sektorem startowym (ang. bootsector). System operacyjny ł�czy sektory dyskowe w wi�ksze jednostki, które traktuje nierozdzielnie przy przydzielaniu ich plikom. Jednostki te nazywaj� si� w ró�nych systemach: jednostkami alokacji (ang. allocation unit), blokami (ang. block) klasterami (ang.cluster). Przykładowe rozmiary jednostek alokacji to:

• 512 B = 1 sektor - SCO Unix, MSDOS FAT16 dla partycji nie wi�kszych ni� 32 MB • 1kB = 2 sektory - Linux Ext2, MSDOS FAT16 dla partycji nie wi�kszych ni� 64 MB • 4kB = 8 sektorów - Novell Netware, MSDOS FAT16 dla partycji nie wi�kszych ni�

256MB, MS Windows NT NTFS, MS Windows 95 FAT32.

Programowe sterowniki dysków wykorzystuj� pami�� podr�czn� przy dost�pie do dysków. W pami�ci podr�cznej przechowywane s� jednostki alokacji, na których ostatnio dokonywano operacji (zapis na dysk nie nast�puje natychmiast) oraz te, o których s�dzi si�, �e w niedługim czasie b�d� odczytywane. Przyspiesza to czas operacji na cz�sto u�ywanych plikach, lub gdy wczytuje si� dane z pliku w sposób sekwencyjny. W MSDOSie i MS Windows 3.11 rozmiar dyskowej pami�ci podr�cznej nale�ało ustawi� r�cznie. W nowszych systemach rozmiar ten ustalany jest automatycznie na podstawie ilo�ci dost�pnej pami�ci i cz�sto�ci operacji na dysku.

Systemy plików

Pliki

Page 26: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

26

Systemy plików maj� zapewni� mo�liwo�� przechowywania zbiorów danych na urz�dzeniach zewn�trznych komputera w sposób pozwalaj�cy na pó�niejsze odwoływanie si� do danych, ich przetwarzanie oraz łatwe wyodr�bnianie, kopiowanie, przenoszenie i usuwanie do i z systemu. Plikiem lub zbiorem danych (ang. file) nazywamy ci�g bajtów okre�lonej długo�ci stanowi�cy dla systemu plików atomiczn� cało��, wyposa�ony w nazw� i inne atrybuty zale�ne od systemu plików takie jak daty utworzenia, ostatniej modyfikacji, dost�pu, flag� archiwizacji, czy uprawnienia. Strumieniem (ang. stream) nazywamy obiekt z którego mo�na czyta� lub do którego mo�na zapisywa� dane w sposób sekwencyjny (bajt po bajcie). Strumienie stanowi� wa�n� abstrakcj� danych, wykorzystywan� m.in. przy dost�pie do plików. Przykładami strumieni mog� by� poza zwykłymi plikami znakowe urz�dzenia logiczne (w szczególno�ci terminale). Wiekszo�� systemów plików zapewnia do zwykłych plików zarówno dost�p sekwencyjny (tak jak do strumienia) jak i swobodny (w dowolnym momencie mo�na powoływa� si� na dowolny bajt, lub ci�g bajtów pliku podaj�c adres pierwszego bajtu i długo�� ci�gu).

Katalogi

Aby ułatwi� odszukiwanie plików, tworzy si� hierarchiczn� struktur� zwan� drzewem katalogów. Katalogiem (ang. directory) nazywamy plik interpretowany przez system plików jako list� odwoła� do innych plików. Jako synonimy katalogu stosuje si� tak�e nazwy folder i kartoteka. Wszystkie obecnie spotykane systemy plików dopuszczaj� aby katalogi zawierały inne katalogi (tzw. podkatalogi ang. subdirectory), przy czym wymaga si�, aby graf katalogów był drzewem (ang. tree) skierowanym. Ka�dy katalog ma co najwy�ej jeden nadkataolg (ang. updir). Istnieje dokładnie jeden katalog b�d�cy korzeniem drzewa katalogów, który nie posiada swego nadkatalogu (lub sam jest sobie nadkatalogiem, ang. root directory). Niektóre systemy plików (np. uniksowe systemy plików) dopuszczaj� aby ten sam plik mógł si� znajdowa� w wielu katalogach jednocze�nie lub w tym samym katalogu pod ró�nymi nazwami. W takich systemach plików katalogi i pliki tworz� graf acykliczny. W systemach plików FAT16 i FAT32 stosowanych w MSDOS i MS Windows 3.xx i 95 pliki i katalogi tworz� drzewo.

Nazywanie plików

Jak wcze�niej stwierdzono, ka�dy plik posiada nazw� (ang. file name). Nazwa pliku musi by� unikalna w ramach katalogu. Ka�dy plik w systemie plików posiada (przynajmniej jedn�) pełn� (bezwzgl�dn�) nazw�, unikaln� w ramach całego systemu plików, tworzon� przez poł�czenie z nazw� pliku tzw. �cie�ki bezwzgl�dnej, t.j. nazw wszystkich katalogów, jakie nale�y przej�� aby osi�gn�� dany plik poczynaj�c od korzenia drzewa katalogów. Je�li pliki i katalogi tworz� drzewo to ka�dy plik posiada dokładnie jedn� pełn� nazw�. Mi�dzy innymi dla uproszczenia nazewnictwa plików wprowadza si� poj�cie katalogu bie�cego. Katalog bie��cy mo�e by� zwi�zany z procesem (jak np. w Uniksie) lub by� globalnym dla wszystkich procesów systemu (MSDOS). Nazwa utworzona z nazwy pliku i tzw. �cie�ki wzgl�dnej, t.j. nazw katalogów jakie nale�y przej�� aby osi�gn�� dany plik poczynaj�c od katalogu bie��cego nosi nazw� nazwy wzgl�dnej. Przej�cie do nadkatalogu sygnalizowane jest w �cie�ce i nazwie wzgl�dnej przez człon "..". Do ł�czenia nazw katalogów i plików w �cie�ki i nazwy wzgl�dne i bezwzgl�dne u�ywa

Page 27: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

27

znaku charakterystycznego dla danego systemu operacyjnego zwanego dalej znakem katalogu:

• "\" - w MSDOS, MS Windows XX, • "/" - w systemach zgodnych z uniksem, • "." - w VMSie

W MSDOSie, MS Windows XX i systemach zgodnych z uniksem katalog główny nosi nazw� tak� jak znak katalogu ("\" w MSDOS, "/" w uniksach), a nazwa bezwzgl�dna ró�ni si� tym od nazwy wzgl�dnej, �e nazwa bezwzgl�dna zaczyna si� znakiem katalogu, np. "\Windows\Command" - �cie�ka bezwzgl�dna, "Command" - nazwa wzgl�dna, (wzgl�dem katalogu "\Windows"). System operacyjny z ró�nych powodów narzuca pewne ograniczenia na nazwy plików, np. długo�� - 8 znaków nazwy wła�ciwej + 3 znaki rozszerzenia w MSDOS, 14 znaków w niektórych uniksach, 255 znaków w niektórych nowszych systemach operacyjnych. Innym ograniczeniem jest to jakie znaki mo�na stosowa� w nazwach. Uniksy dopuszczaj� wszystkie znaki oprócz (co jest oczywiste) znaku katalogu "/" i znaku ko�ca ła�cucha (znak o kodzie 0). Systemy te rozró�niaj� du�e/małe litery. MSDOS dopuszczał jesynie litery, cyfry, i kilka znaków nieliterowych, m.in. "_", "$" i "!". MS Windows 95 dopuszczaj� m.in. odst�p (czyli sacj� " "), "-" i wiele innych. Systemy te nie rozró�niaj� du�ych/małych liter przy odwołaniach do plików, cho� MS Windows 95 rozró�nia je przy wy�wietlaniu nazw plików. Kilku słów komentarza wymaga mechanizm pozwalaj�cy korzysta� z tego samego systemu plików zarówno przez MS Windows 95 (długie nazwy) jak i starsze wersje systemów Microsoftu. Mechanizm ten zwany jest Virtual FAT (vfat). Ka�dy plik posiada dwie nazwy, tzw. nazw� dług� tworzon� zgodnie z regułami MS Windows 95 i nazw� 8+3 tworzon� zgodnie z regułami MSDOSa na podstawie nazwy długiej. MSDOS widzi w danym katalogu tylko nazwy 8+3, natomiast MS Windows 95 widzi obie nazwy, a domy�lnie wy�wietla nazwy długie.

Systemy plików a dyski logiczne

Ka�dej partycji odpowiada urz�dzenie logiczne i zwi�zana z nim nazwa dysku logicznego. Istniej� dwa podej�cia do nazywania plików poło�onych na ró�nych partycjach:

1. Globalny system plików. Takie nazewnictwo wyst�puje w uniksach. Istnieje jeden katalog główny dla całego systemu operacyjnego. Katalog ten jest jednocze�nie katalogiem głównym wyró�nionej partycji, zwanej partycj� korzeniow� (ang. root). Katalogi główne pozostałych partycji s� montowane do li�ci drzewa partycji korzeniowej lub wcze�niej zamontowanych partycji, rozbudowuj�c drzewo. Rozmieszczenie poszczególnych katalogów i plików na partycjach jest przezroczyste dla u�ytkowników. Doło�enie nowego dysku lub przemieszczenie całych katalogów pomi�dzy partycjami nie musi powodowa� zmiany nazwy bezwzgl�dnej �adnego pliku. Pomaga w tym mechanizm dowi�za� symbolicznych (ang. symbolic link, czyli skrót, ang. shortcut, w terminologi MS Windows ).

2. Jawne nazwy dysków. Takie nazewnictwo wykorzystuj� m.in. MS DOS i MS Windows XX. Nie istnieje globalny system plików. Tworz�c pełn� nazw� pliku nale�y powoła� si� na nazw� dysku logicznego. Dyski logiczne maj� nazwy składaj�ce si� z pojedy�czej du�ej litery alfabetu łaci�skiego i dwukropka (np. "A:", "C:", takich nazw mo�e by� najwy�ej 26). U�ytkownik musi pami�ta� na którym dysku znajduj� si� jego pliki. Dodanie nowego dysku lub przemieszczenie katalogów mi�dzy dyskami

Page 28: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

28

powoduje zmian� bezwzgl�dnych nazw plików. Dla ułatwienia tworzenia nazw wzgl�dnych pojawia si� poj�cie dysku bie��cego. Je�eli nazwa pliku nie zawiera nazwy dysku, to przyjmuje si� �e odnosi si� do dysku bie��cego. Ka�dy dysk logiczny ma swój katalog bie�cy. Je�li w nazwie pliku podana b�dzie nazwa dysku, a po niej nie nast�pi znak "\", to plik jest poszukiwany id�c po �cie�ce poczynaj�c od bie��cego katlogu podanego dysku.

Typy plików

Systemy operacyjne wyró�niaj� typy plików, które s� traktowane w sposób specyficzny. Jeden spo�ród atrybutów pliku zwany typem pliku decyduje o sposobie traktowania pliku przez system operacyjny. Najcz��ciej spotykane typy plików to:

1. Katalogi. O katalogach była ju� mowa. 2. Pliki specjalne urz�dze� - wyst�puj� w systemach uniksopodobnych, słu�a do

nazywania urz�dze� logicznych. 3. Kolejki FIFO, kolejki komunikatów, gniazda (ang. sockets), strumienie - pliki

realizuj�ce bardziej zło�one sposoby dost�pu. Wyst�puj� w systemach uniksopodobnych i MS Windows NT.

4. Dowi�zania sybmoliczne (ang. symbolic link) inaczej skróty (ang. shortcut). Pliki które stanowi� odwołanie do innych plików lub katalogów. Wi�kszo�� operacji wykonywanych na tych plikach odnosi si� w rzeczywisto�ci do plików przez nie wskazywanych.

5. Pliki wykonywalne (ang. executables): programy, komendy, skrypty (ang. scripts), pliki wsadowe (ang. batch files) - pliki zawieraj�ce kod programu do wykonania przez procesor lub komendy do wykonania przez powłok� (lub inny interpreter). Programy mog� by� wyró�nione jak w systemach uniksopodobnych przez posiadanie specjalnego uprawnienia do wykonania lub przez nadanie odpowiedniego rozszerzenia, np. ".COM", ".EXE " i ".BAT" w MSDOSie.

6. Zwykłe pliki z danymi. Te dziel� si� na podtypy, zale�nie od posiadanego rozszerzenia, tj przyrostka nazwy pliku zaczyaj�cego si� zazwyczja znakiem kropki lub od tzw. liczby magicznej tj. pierwszych 2 lub 4 bajtów zawarto�ci pliku. Interpretacj� zawarto�ci plików z danymi róznych typów zajmuj� si� specjalizowane aplikacje (takie jak MS Word, AutoCAD itp.). System operacyjny nie próbuje interpretowa� tych plików, co najwy�ej powłoki u�ytkownika dostarczaj� narz�dzi do łatwego uruchamiania odpowiednich aplikacji, rejestrowania nowych typów plików z danymi i kojarzenia z nimi aplikacji.

ASCII

Na osobne omówienie zasługuje plik tekstowy ASCII. Otrzymuje on cz�sto rozszerzenia ".txt" lub ".asc". Bajty przechowywane w tym pliku interpretowane s� jako znaki alfanumeryczne kodowane w ASCII (Amercan Standard Code for Information Interchange). Kod ten koduje du�e i małe litery, cyfry, znaki przestankowe oraz podstawowe symbole matematyczne. Aby nada� danym przechowywanym w plikach ASCII form� podobn� do dokumentów pisanych na dwuwymiarowych kartkach, pewne znaki o kodach mniejszych od 32 oraz znak o kodzie 127 otrzymuj� specjalne znaczenie steruj�ce. Na znaczenia przypisane znakom steruj�cym powa�ny wpływ miały terminale teletekstowe (ang. teletype) stosowane w pocz�tkowych fazach rozwoju informatyki. Wa�niejsze znaki steruj�ce to:

Page 29: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

29

• CR (dziesi�tny kod znaku: 13) - Carriage Return - powrót karetki. Oznacza przesuni�cie głowicy drukarki na pocz�tek wiersza.

• LF (dziesi�tny kod znaku: 10) - Line Feed - przej�cie do nowego wiersza. W systemach uniksopodobnych słu�y do rozdzielnia wierszy pliku tekstowego. W systemach Microsoftu do tego celu słu�y para nastepuj�cych po sobie znaków CR LF.

• FF (dziesi�tny kod znaku: 12) - Form Feed - przej�cie do nowej strony. Powoduje wysuni�cie strony z drukarki i przej�cie do drukowania na nowej.

• HT (dziesi�tny kod znaku: 9) - Horizontal Tab - tabulacja pozioma. Powoduje przej�cie do nast�pnej pozycji przy tworzeniu tabel, zazwyczaj przej�cie do najbil�szej kolumny znaków o numerze podzielnym przez 8.

• BS (dziesi�tny kod znaku: 8) - BackSpace - wymazywanie wsteczne. Nakazuje wymazanie poprzedniego znaku.

• ESC (dziesi�tny kod znaku: 27) - Escape - kod ucieczki. Oznacza, �e po nim nast�pi zakodowana komenda dla urz�dzenie wy�wietlaj�cego lub drukuj�cego. W edytorach nazywany jest tak�e metaznakiem (ang. meta, metacharacter) słu��cym do konstruowania znaków niedost�pnych bezpo�rednio z klawiatury lub komend.

• Znak ko�ca pliku (kod dziesi�tny ró�ny w róznych systemach). Oznacza koniec pliku tekstowego lub transmisji tekstowej.

Oryginalny kod ASCII jest siedmiobitowy. Ósmy bit bajtu u�ywany był jako suma kontrolna. Obecnie wykorzystywane jest wszystkie osiem bitów. Tak uzyskane dodatkowe 128 znaków słu�y do przedstawiania semigrafiki lub znaków narodowych. Poniewa� jest to zamało do przedstawienia znaków narodowych, cho�by wszystkich alfabetów łaci�skich, wprowadzono strony kodowe, t.j. sposoby kodowania znaków spoza podstawowego alfabetu łaci�skiego. W Polsce obowi�zuje norma przemysłowa zgodna z norm� mi�dzynarodow� ISO 8895-2. Popularnie stosowane oprogramowanie Microsoftu z wyj�tkiem MS Windows NT stosuj�cych unikody (ang. unicode) nie jest zgodne z powy�szymi normami i wprowadza dwie własne strony kodowe CP 852 (MSDOS) i CP 1250 (MS Windows XX). Pliki ASCII ze wgl�du na prostot� kodowania informacji s� powszechnie wykorzystywane jako pliki konfiguracyjne, dzienniki odnotowuj�ce błedy programów, pliki przenosz�ce dane mi�dzy ró�nymi aplikacjami lub przechowuj�ce dane w sposób ułatwiaj�cy u�ytkownikowi ingerencj� niezale�nie od aplikacji.

Rozdział 5: Zagadnienia bezpiecze�stwa W j�zyku angielskim wyró�nia si� dwa terminy, którym odpowiada jedno polskie okre�lenie - bezpiecze�stwo:

• safety - bezpiecze�stwo u�ytkownika (i jego danych) przed niezgodnym ze specyfikacj� (awaryjnym) działaniem systemu i

• security - bezpiecze�stwo systemu przez destrukcyjnymi działaniami u�ytkownika.

S� to dwie strony tego samego medalu. System nie b�d�cy bezpiecznym w jednym z powy�szych znacze�, przestaje by� bezpieczny w drugim.

Autentykacja na przykładzie haseł wielokrotnych

Page 30: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

30

Autentykacja jest to proces, w którym komunikuj�cy si� partnerzy potwierdzaj� swoj� to�samo��. Najcz��ciej autentykacja ogranicza si� jedynie do potwierdzenia to�samo�ci u�ytkownika. Zakłada si� tutaj, �e u�ytkownik pracuje w otoczeniu zaufanych komputerów. Jednak zdarzaj� si� przypadki podszywania si� "wrogich" komputerów pod "przyjazne" serwery, aby np. przechwyci� hasła nie�wiadomych u�ytkowników. Wskazanie sposobów rozwi�zania tego problemu znajduje si� w punkcie po�wi�conym kryptografii. Tutaj omówiony b�dzie najprostszy przypadek, gdy komputery sieci lokalnej s� dostatecznie dobrze chronione przed podszywaniem by ka�dy u�ytkownik mógł ufa�, �e ka�dy komputer jest tym za którego si� podaje. U�ytkownik przyst�puj�c do pracy (lub ł�cz�c si� z kolejnym komputerem), proszony jest to podanie identyfikatora (konta lub profilu). Identyfikator jest jawny. Pozwala on innym u�ytkownikom i oprogramowaniu powoływa� si� na danego u�ytkownika. Identyfikator ten jest ci�giem znaków, najcz��ciej małych liter. Zaleca si�, aby miał jaki� zwi�zek z imieniem, nazwiskiem lub wydziałem, w którym pracuje u�ytkownik. Teraz u�ytkownik musi potwierdzi� swoje prawo do posługiwania si� identyfikatorem. Najcz��ciej proszony jest o podanie znanego tylko jemu hasła. Hasło nie pojawia si� na ekranie. Oczywi�cie, istniej� inne bardziej wyrafinowane sposoby potwierdzania to�samo�ci u�ytkownika oparte o biometri�, karty magnetyczne lub procesorowe, czy hasła jednorazowe, ale ich omówienie wykracza poza ramy tego wykładu. Zalet� haseł wielokrotnych jest "prostota obsługi" i brak konieczno�ci instalowania specjalizowanego sprz�tu. Wady s� rozliczne:

• U�ytkownicy wybieraj� hasła, które łatwo jest odgadn��. • Bywa, �e hasło jest zapisane w dost�pnym dla postronnych miejscu, lub jest gubione. • Hasła s� przechowywane w niektórych komputerach, lub przesyłane sieci� w postaci

jawnej (niezaszyfrowanej), co pozwala na ich przechwytywanie. • U�ytkownicy posługuj� si� tymi samymi hasłami w odniesieniu do kont na ró�nych

komputerach. Nieuczciwy administrator, lub włamywacz, przegl�daj�c pliki z hasłami na jednym komputerze wchodzi w posiadanie haseł na innych komputerach.

Wad tych nie mo�na w cało�ci wyeliminowa�, ale mo�na zrobi� wiele aby je zmniejszy�:

• Aby utrudni� odgadni�cie hasła: o W �adnym wypadku nie nale�y ustawia� sobie jako hasła, słowa, które łatwo

jest skojarzy� z własn� osob�, tj: nazwy konta, imienia, nazwiska (własnego, członka rodziny, znajomego lub zwierz�cia domowego), numeru telefonu, rejestracji samochodu, adresu, daty urodzin itp.

o Hasło powinno mie� przynajmniej 6 znaków, czym dłu�sze tym lepsze. o Niektórzy włamywacze próbuj� ró�nych haseł pochodz�cych ze specjalnie

sporz�dzonych słowników zawieraj�cych popularne słowa z danego j�zyka, nazwy geograficzne, słownictwo fachowe, imiona bohaterów powie�ci, filmów itp. Je�li zatem stosuje si� hasło, które jest popularnym słowem, nale�y wple�� w nie cyfr� lub znak nieliterowy, lub je�li pozwala na to oprogramowanie, cz��� znaków wpisa� du�ymi, a cz��� małymi literami.

o Dobre hasła uzyskuje si� bior�c pierwsze litery z wybranego zdania. • Przez pewien czas zalecano by haseł nie zapisywa�, lecz pami�ta� je. Obecnie zaleca

si� zapisywanie haseł, ale przechowywa� nale�y je w miejscach dla innych

Page 31: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

31

niedost�pnych, np. w portfelu. Dobrze jest te� zamaskowa� hasło wplataj�c je w inne napisy.

• Nale�y unika� ł�czenia si� przez niepewne sieci z usługami wymagaj�cymi haseł. Np. z domu przez publiczny modem telekomunikacji i dalej przez Internet do pracy (nale�y dzwoni� bezpo�rednio na firmowy modem, je�li takowy jest). Je�li tylko mo�na, nale�y skorzysta� z oprogramowania kryptograficznego.

• Dobrze jest posiada� inne hasło do ka�dego z kont. Czasem jest to uci��liwe, dlatego mo�na ograniczy� si� do posiadania jednego hasła do komputerów w pracy i drugiego do usług w Internecie. W �adnym razie nie nale�y zakłada� sobie takiego samego hasła w jakiejkolwiek usłudze internetowej, jakie ma si� w pracy.

Autoryzaja czyli o uprawnieniach

Autoryzacja, oznacza udzielanie dost�pu danemu u�ytkownikowi (reprezentowanemu przez zautentykowany identyfikator) do tych zasobów, które s� dla niego przeznaczone. W tym celu system operacyjny danego komputera utrzymuje baz� danych zawieraj�c� informacje o tym które zasoby (pliki, katalogi, urz�dzenia itp.) mog� by� udost�pniane poszczególnym u�ytkownikom i na jakich prawach. Baza ta zawiera nast�puj�ce informacje:

1. Obiekty podlegaj�ce ochronie. Najcz��ciej s� to pliki i katalogi, w ogólno�ci s� to zasoby danego komputera.

2. Podmioty uzyskuj�ce prawa dost�pu. Podmiotami tymi s� u�ytkownicy. Aby ułatwi� zarz�dzanie prawami du�ych zbiorowo�ci u�ytkownków wprowadza si� grupy u�ytkowników, które s� równie� podmiotami uzyskuj�cymi uprawnienia. U�ytkownicy s� przypisywani do grup. Dany u�ytkownik mo�e nale�e� do wielu grup. Przez fakt przynale�no�ci do danej grupy u�ytkownik zyskuje lub traci takie uprawnienia jakie zostały przypisane grupie.

3. Uprawnienia. We wszystkich systemach operacyjnych powtarzaj� si� prawa do zapisu i odczytu plików. Wiele systemów rozszerzaja te podstawowe uprawnienia o prawo do uruchamiania programów, prawo do kasowania lub tworzenia plików w katalogu, prawo do powoływania si� na katalogi itp.

Na poziomie systemu operacyjnego wyró�ni� mo�na kilka klas systemów autoryzacji, dokładn� klasyfikacj� daje "Pomara�czowa ksi�ga" Ministerstwa Obrony USA, na potrzeby tego opracowania ogranicz� si� do krótkiej listy:

1. Brak autoryzacji. Takie systemy nadaj� si� dla pojedy�czego u�ytkownika, lub tam gdzie autoryzacja nie jest wymagana. Np. MS DOS.

2. Profile u�ytkownika. Komputer rozpoznaje u�ytkowników, ka�demu daje spersonalizowane �rodowisko pracy, jednak nie zabezpiecza danych jednego u�ytkownika przed innym u�ytkownikiem. W praktyce takie systemy s� wi�c równowa�ne poprzedniej klasie. Nadaj� si� dla niewielkiej grupy zaufanych u�ytkowników. Np. MS Windows 9x.

3. Wspólne hasła. System nie wyró�nia u�ytkowników, wyró�nia natomiast zasoby maj�ce przypisane hasła. Ka�dy u�ytkownik, który poda hasło do zasobu, otrzymuje do niego dost�p. Utrzymanie bezpiecze�stwa takich systemów jest mo�liwe tylko w niewielkich grupach zaufanych u�ytkowników. Np. Microsoft Networks w wersji peer-to-peer tj. bez serwerów Netware i NT.

Page 32: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

32

4. Klasyczne systemy wielou�ytkownikowe. Wyró�niaj� u�ytkowników i grupy. Autentykacja u�ytkownika nast�puje w momencie rozpoczynania sesji pracy z systemem. Z ka�dym obiektem zwi�zana jest ograniczona liczba podmiotów jakie uzyskuj� do niego uprawnienia. Np. w standardowym uniksie ka�dy plik ma dokładnie jednego wła�ciciela-u�ytkownika, któremu przypisane s� pewne uprawnienia, dokładnie jednego wła�ciciela-grup� maj�c� uprawnienia, oraz uprawnienia stosowane do pozostałych. Podobnie jest w VMSie. Wiele takich systemów jest zgodnych z klas� bezpiecze�stwa C2 w sensie "Pomara�czowej ksi�gi". W oparciu o takie systemy uprawnie� działa spora cz��� serwerów w internecie. Pewn� wad� tego systemu jest to, �e jedynie administrator ma swobod� nadawania uprawnie�. Zwykły u�ytkownik ma ograniczone mo�liwo�ci okre�lania uprawnie� dla innych podmiotów do swoich zasobów.

5. Systemy z ACL (Access Control List - lista kontroli dost�pu). Systemy te ró�ni� si� tym od klasycznych, �e z ka�dym obiektem mo�na zwi�za� dowolnie lub wystarczaj�co dług� (np 32 elementow� w Netware) list� podmiotów maj�cych uprawnienia do danego zasobu. U�ytkownik mo�e bez pomocy administratora nadawa� uprawnienia innym podmiotom do swoich zasobów (z oczywistym ograniczeniem, �e nie mo�e nada� wi�kszych ni� sam ma). Do tej klasy nale�� takie systemy jak Novel Netware, Windows NT i niektóre uniksy np. Solaris. S� one wystarczaj�ce do wi�kszo�ci zastosowa� cywilnych.

6. Systemy z okre�leniem klas poufno�ci. Oprócz istnienia grup i ACL u�ytkownicy i zasoby komputera s� przydzieleni do klas poufno�ci. �aden u�ytkownik nie mo�e udzieli� uprawnie� do zasobów danej klasy poufno�ci innemu u�ytkownkowi nale��cemu do klasy gorszej. Utrudnia to przypadkowe przecieki informacji tajnych i z tego powodu jest stosowane w instytucjach o podobnym do wojskowego sposobie zarz�dzania dost�pem do informacji poufnych.

Wiele aplikacji, w szczególno�ci bazy danych ma własne mechanizmy autentykacji i autoryzacji, gdzie wyró�nia si� przywileje przypisywane u�ytkownikom do wykonywania pewnych charakterystycznych dla tych aplikacji operacji (np. nie ka�dy mo�e dokona� sprzeda�y). Wiele serwerów sieciowych rozszerza podstawowe systemy uprawnie� dostarczane przez system operacyjny, aby ograniczy� dost�p z zen�trz do charakterystycznych dla tych serwerów usług, np. serwer WWW Apache okre�la w których katalogach mo�na umieszcza� skrypty CGI, programy umieszczone poza tymi katalogami nie b�d� uruchamiane przez serwer. Oprócz uprawnie� do pojedy�czych zasobów mog� istnie� w systemie tzw, kwoty (ang. quota) tj. ograniczenia ilo�ci jednocze�nie wykorzystywanych zasobów danej klasy. Kwoty zabezpieczaj� system przed wyczerpaniem zasobów przez zachłannych u�ytkowników. Np. kwota dyskowa okre�la jak du�y obszar dysku mo�e by� jednocze�nie zaj�ty przez pliki danego u�ytkownika. Kwoty mog� te� dotyczy� procentu czasu pracy procesora na rzecz danego u�ytkownika w jednostce czasu, ilo�ci uruchomionych procesów itp. W wielu systemach istniej� mechanizmy do ograniczania u�ytkownikowi dost�pu do wydzielonych stanowisk lub okre�lonych godzin pracy. W�ród u�ytkowników wyró�nia si� administratorów i operatorów, czyli takich, do których zada� nale�y troska o poprawne działanie systemu. Maj� w zwi�zku z tym znacznie szersze prawa. W rozbudowanych systemach mo�na wyró�ni� kilka klas administratorów:

• główny administrator (w uniksie zwany tradycyjnie root, w innych systemach admin, sysadmin itp.), ma maksymalne prawa do systemu operacyjnego, mo�e w

Page 33: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

33

szczególno�ci nadawa� prawa innym, w zwi�zku z czym jego hasło nie powinno by� jego prywatn� tajemnic�, lecz tajmnic� firmy,

• operatorzy poszczególnych usług i aplikacji, przykładowo: o operatorzy backupu - maj� prawo nadzorowa� wykonanie kopii

bezpiecze�stwa systemu, o administratorzy baz danych - odpowiadaj� za integralno�� bazy danych i

poprawne działanie jej oprogramowania, o webmasterzy odpowiedzialni za poprawn� prac� serwisu WWW, o operatorzy drukarek - odpowidaj� za poprawn� prac� drukarek, mog� m.in.

wstrymywa� i usuwa� z kolejek wyduku zadania innych u�ytkowników.

Osobnym zagadnieniem s� prawa głównego administratora. Mo�na tu wyró�ni� dwa podej�cia:

• Administrator jest osob�, która doskonale zna system, która go zainstalowała na komputerze oraz ma pełne prawa zapisu i odczytu dysków i pami�ci operacyjnej, wi�c nie ma sensu broni� u�ytkowników przed nieuczciwym administratorem, poniewa� mo�e on wszystkie mechanizmy obej�� lub wył�czy�. Takie podej�cie prezentuje wi�kszo�� uniksów. Włamywacz, który przejmie prawa administratora mo�e nie zostawi� �ladów swej działalno�ci.

• Twórcy systemu operacyjnego utajniaj� pewne informacje (m. in. projekt i kod �ródłowy) dotycz�ce systemu operacyjnego, a w szczególno�ci systemu plików, dzi�ki czemu administrator nie mo�e wykona� z systemem wszystkiego w szczególno�ci usun�� �ladów swoich działa�. Takie podej�cie zastosowano w Windows NT. (Np. je�li administrator przejmie uprawnienia do jakiego� pliku, to nie mo�e si� potem tego wyprze�. Niestety tajemnice bywaj� wykradane jak to si� stało z kodem �ródłowym tego systemu i kwesti� czasu jest pojawienie si� oprogramowania usuwaj�cego �lady działania administratora w wystarczaj�co popularnym systemie.)

Audyt

Audyt oznacza �ledzenie działania systemu i poczyna� u�ytkowników. Pozwala ustali� przyczyny awarii oraz momenty i sprawców narusze� bezpiecze�stwa. U�ytkownicy komputerów powinni sobie zdawa� spraw�, �e ich prywatno�� jest w ka�dej chwili naruszana przez audyt. Jest to zło konieczne, z którego administratorzy nie zgodz� si� zrezygnowa�. Dost�p do dzienników systemowych powinien by� �ci�le limitowany.

Kopie bezpiecze�stwa

Awarii systemu ko�cz�cych si� utrat� danych nigdy nie da si� wykluczy�. Posiadanie starych wersji dokumentów, które przestały by� u�yteczne i zostały normaln� drog� usuni�te z systemu te� mo�e by� niekiedy cenne. Niekiedy archiwizacja wymuszana jest osobnymi przepisami, np. bazy danych ksi�gowo�ci. St�d jednym z zada� administratora jest rutynowe wykonywanie kopii bezpiecze�stwa plików. Systemy operacyjne i oprogramowanie narz�dziowe niezale�nych producentów dostarcza mu niezb�dnego wsparcia. Istniej� wyspecjalizowane firmy zajmuj�ce si� kompleksowo archiwizacj� danych komputerowych i tworzeniem elektronicznych baz dokumentów papierowych.

Narz�dzia

Page 34: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

34

Do tworzenia kopii bezpiecze�stwa słu�y specjalizowany sprz�t i oprogramowanie. Ze sprz�tu nale�y wymieni� przede wszystkim nap�dy i no�niki o du�ej pojemno�ci (rozmiary no�ników podane s� orintacyjnie):

• Do przeszło�ci odchodz� dyskietki, stosowane do archiwizacji drobnych plików. Przeci�tne pojemno�ci s� rz�du 1MB.

• Obecnie popularno�� zdobywaj� no�niki magnetooptyczne. Dost�pne technologie pozwalaj� zmie�ci� powy�ej 100MB na jednym no�niku. W niedługiej przyszło�ci pojemno�ci tych no�ników maj� wzrosn�� do rz�du 10GB i wi�cej. No�niki te charakteryzuj� si� dost�pem swobodnym i mo�liwo�ci� wielokrotnego zapisu.

• Najpopularniejszymi no�nikami kopii zapasowych s� streamery, b�d�ce kasetami z t�m� magnetyczn�. Pojemno�ci streamerów wahaj� si� od 100MB do 30GB, zapewne b�d� jeszcze rosły. Kasety s� wielokrotnie zapisywalne. Dost�p do nich jest sekwencyjny, co przy robieniu cało�ciowych zrzutów nie ma znaczenia. No�niki te s� najmniej wra�liwe na awarie nap�du w trakcie odczytu/zapisu.

• Dyski optyczne jednokrotnego zapisu. Niemo�no�� wymazania raz zapisanych danych w tym zastosowaniu mo�e by� ich zalet�. Najbardziej rozpowszechnione s� dyski CD-ROM o pojemno�ci 650MB, powoli standaryzuje si� technologia DVD o pojemno�ci rz�du 10GB. Wad� tych no�ników jest to, �e w czasie procesu zapisu komputer musi dostarcza� w odpowiednim tempie strumie� danych, co powoduje, �e w czasie zapisu komputer nie mo�e wykonywa� innych czynno�ci.

Niektórzy zalecaj� wybiera� takie no�niki, by zmie�cił si� na nich w cało�ci zrzut dysku bez robienia kompresji. Nap�dy backupuj�ce mo�na:

• wmontowa� na stałe po jednym do ka�dego komputera, • przył�cza� na czas robienia zrzutu przez magistral� SCSI lub w inny sposób, lub • umie�ci� na wydzielonym komputerze, który b�dzie �ci�gał zrzuty z innych

komputerów sieci�.

W�ród oprogramowania nale�y wyró�ni�:

• programy dokonuj�ce zrzutów i odtworze� cało�ci dysku bez kompresji: tar, cpio, dump/restore, backup/restore,

• programy kompresuj�ce/dekompresuj�ce: zip, gzip, pkzip, arj, lharc i in., • narz�dzia kryptograficzne, • narz�dzia do weryfikacji kopii bezpiecze�stwa, • zło�one programy rozwi�zuj�ce problem kompleksowo, w tym pozwalaj�ce planowa�

zakres zrzutów oraz ich automatyczne wykonanie np. sysadmsh w SCO Uniksie, Microsoft Backup i in.

Do robienia kopii zapasowych nale�y wybiera� narz�dzia, które b�d� dost�pne wiele lat po zrobieniu kopii.

Torzenie kopii bezpiecze�stwa

Istniej� ró�ne poziomy kopii bezpiecze�stwa:

• zerowy - pełna kopia - obejmuje cały dysk lub drzewo katalogów,

Page 35: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

35

• kopie ró�nicowe lub przyrostowe - obejmuj� tyko pliki, które zmieniły si� od ostatniej kopii, mo�e tu istnie� wiele poziomów (pierwszy, drugi, ...), dany poziom obejmuje te pliki, które zmieniły si� od czasu ostatniej kopii poziomu ni�szego.

System operacyjny wspiera tworzenie przyrostowych kopii bezpiecze�stwa utrzymuj�c informacje o datach modyfikacji plików lub flagi niezb�dno�ci archiwizacji. Przyjmuje si�, �e kopie poziomu zerowego powinno si� robi� nie rzadziej ni� raz na kwartał a zaleca si� raz na miesi�c. Kopie takie powinno si� przechowywa� przez czas nieokre�lony, dobrze sprawdzaj� si� tutaj streamery i CD-ROMy. Kopie wy�szych poziomów powinno sporz�dza� si� w połowie okresów wykonywania kopii poziomów ni�szych, nale�y je przechowywa� przynajmniej przez dwukrotno�� okresu jej sporz�dzania. Po upływie czasu przechowywania kopii, no�nik mo�na wykorzysta� powtórnie. Dobrze sprawdzaj� si� tutaj takie no�niki jak streamery i dyski magnetooptyczne. Nie wszystkie dane w komputerze s� równie nara�one na mo�liwo�c utraty, mo�na je podzieli� pod tym wgl�dem na kilka grup:

• Pliki tymczasowe. W zasadzie nie wymagaj� archiwizacji. • Oprogramowanie systemowe i inne oprogramowanie niededykowane. W razie utraty

mo�na je powtórnie zainstalowa� z no�ników instalacyjnych. Pod warunkiem zapewnienia ochrony no�nikom instalacyjnym nie wymagaj� archiwizacji.

• Dzienniki systemu (logi). Zawieraj� cenne informacje dla administratora, jednak ich utrata zazwyczaj nie uniemo�liwia bie��cego działania systemu. Warto archiwizowa�.

• Konfiguracja oprogramowania. Cz�sto łatwa do odtworzenia, zwłaszcza, gdy została udokumentowana na papierze, jednak w zło�onych programach odtworzenie mo�e wymaga� wielu godzin �mudnej pracy. Zaleca si� archiwizowa�.

• Oprogramowanie dedykowane i jego konfiguracja. Powtórna instalacja oprogramowania dedykowanego, takiego jak programy bankowe, oprogramowanie linii technologicznej itp. mo�e wymaga� obecno�ci przedstawicieli producenta a sam proces zazwyczaj jest długotrwały. Nale�y liczy� si� z tym, �e producent mo�e nie dysponowa� plikami instalacyjnymi pewnych modułów oprogramowania, je�li były robione dla potrzeb specyficznego klienta. Nale�y archiwizowa�.

• Dane przedsi�biorstwa, własna twórczo�� u�ytkownika itp. S� bezcenne. Bezwzgl�dnie archiwizowa�.

Do ró�nego stopnia wra�liwo�ci i zmienno�ci danych mo�na dostosowa� cz�sto�� robienia kopii zapasowych. I tak, przyrostowe kopie firmowych danych mo�na robi� codziennie, a kopie oprogramowania raz na kwartał oraz po wi�kszych instalacjach lub uaktualnieniach. Proste narz�dzia wymagaj� uwagi operatora przy tworzeniu kopii, zło�one (np. sysadmsh dla SCO Uniksa) potrafi� wł�cza� kopiowanie automatycznie w �rodku nocy w/g przygotowanego wcze�niej przez administratora planu. Po wykonaniu kopii bezpiecze�stwa nale�y j� zweryfikowa�. Nale�y sprawdza� tak�e kopie przechowywanez dłu�szy czas w archiwum przez losowe odtwarzanie zawartych w nich plików. Kopie bezpiecze�stwa, przynajmniej te poziomu zerowego nale�y robi� w kilku egzempla�ach, z których jeden powinien by� przechowywany w miejscu mo�liwie odległym od tego, w którym pracuj� obj�te kopi� komputery.

Kryptografia

Page 36: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

36

Techniki kryptograficzne pozwalaj� chroni� poufno�� i autentyczno�� informacji. Poufno�� oznacza, �e informacja mo�e by� poprawnie odczytana jedynie przez upowa�nione osoby (lub programy). Autentyczno�� oznacza, �e informacja mo�e (mogła) by� wygenerowana jedynie przez upowa�nione osoby w sposób daj�cy si� pó�niej poprawnie odczyta�. Nieco słabsz� cech� jest integralno�� oznaczaj�ca �e informacja nie uległ� zmianie w czasie przekazu, nie gwarantuje si� natomiast autentyczno�ci jej nadawcy. Kryptografia nie chroni przed nieupowa�nion� modyfikacj� danych (jest to zadanie autoryzacji) a jedynie pozwala odbiorcy wykry� i odrzuci� nieautentyczne wiadomo�ci (przez co mo�e by� wykorzystywana jako jeden z elementów algorytmów autoryzacji). Aby móc chroni� informacj� wykonuje si� na niej przekształcenie zwane szyfrowaniem. Operacja odwrotna zwana jest deszyfrowaniem. Wiadomo�� pocz�tkow� nazywamy tekstem jawnym lub otwartym, po zaszyfrowaniu - tekstem zaszyfrowanym lub kryptogramem. Przekształcenie szyfruj�ce i deszyfruj�ce zale�� od tzw. kluczy kryptograficznych. Podaj�c niewła�ciwy klucz przy deszyfrowaniu nie mo�emy poprawnie odszyfrowa� wiadomo�ci. Nie znaj�c klucza szyfrowania nie mo�emy zaszyfrowa� tekstu tworz�c daj�cy si� potem poprawnie odszyfrowa� wła�ciwym kluczem kryptogram. W zastosowaniach cywilnych nale�y stosowa� jedynie te przekształcenia szyfruj�ce, które nie pozwalaj� na systematyczne odgadywanie tekstu jawnego i klucza kryptograficznego osobom, które znaj� algorytm przekształcenia i dowoln� ilo�� tekstu zaszyfrowanego. Zaleca si� stosowanie szyfrów spełniaj�cych silniejszy warnek: nie powinno by� mo�liwe systematyczne odgadywanie klucza przez osoby, które mog� wygenerowa� z dowolnego tekstu jawnego kryptogramy i znaj� algorytm przekształcenia. W �adnym razie bezpiecze�stwo szyfru nie powinno si� opiera� na utajnieniu algorytmu. Wszystkie szyfry z wyj�tkiem niemo�liwego do zastosowania w praktyce szyfru z jednorazowym kluczem s� teoretycznie przełamywalne, to znaczy, �e w sko�czonym czasie mo�na odgadn�� klucz (i w konsekwencji tekst jawny). W praktyce stosuje si� zazwyczaj szyfry dla których czas potrzebny na przełamanie zale�y w sposób wykładniczy od długo�ci klucza. W przypadku wzrostu mocy obliczeniowych komputerów b�d�cych w ekonomicznym zasi�gu potencjalnego przeciwnika nale�y wymieni� klucze na dłu�sze. Ameryka�skie regulacje dotycz�ce eksportu broni zabraniaj� wywozu oprogramowania kryptograficznego posługuj�cego si� kluczami dłu�szymi ni� 40 bitowe. Beneficjentem tego ograniczenia miał by� wywiad USA dysponuj�cy superkomputerami, jednak obecnie szyfry takie mo�na łama� na PCtach. Powszechnie uwa�a si�, �e ograniczenie to powa�nie utrudnia powstawanie oprogramowania kryptograficznego dla potrzeb cywilnych i nara�a na straty równie� gospodark� USA. Wyró�nia si� dwa systemy szyfrowania:

• Szyfrowanie z kluczem prywatnym (symetryczne, klasyczne). • Szyfrowanie z kluczem publicznym (asymetryczne).

Szyfrowanie symetryczne

Zarówno do szyfrowania, jak i deszyfrowania wiadomo�ci stosuje si� ten sam klucz, lub te� klucze mo�na łatwo przekształci� jeden w drugi. W tym systemie nie da si� rozdzieli� ochrony poufno�ci i autentyczno�ci. Dla prowadzenia korespondencji mi�dzy n podmiotami potrzeba razem n*(n-1)/2 kluczy (ka�dy podmiot potrzebuje innego klucza dla ka�dego ze swych n-1 partnerów - innymi słowy ka�da para potrzebuje osobnego klucza). Przykłady historyczne: szyfr Cezara, Tablica Vigenere'a i Enigma oraz obecnie powszechnie

Page 37: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

37

stosowane: DES i IDEA.

Szyfrowanie asymetryczne

Podstawy teoretyczne opracowano dopiero w latach '70 tego stulecia. Metody te opieraj� si� na parze kluczy. Jeden z nich zwany jest kluczem publicznym, drugi - prywatnym. Wyznaczenie klucza publicznego na podstawie klucza prywatnego jest na ogół obliczeniowo łatwe. Wykonanie operacji w drug� stron� (wyznaczenie klucza prywatnego na podstawie publicznego) w rozs�dnym czasie, przy odpowiedniej długo�ci klucza mo�e by� poza zasi�giem technicznym. Je�li jednego z kluczy u�yto do szyfrowania to kryptogram daje si� odszyfrowa� tylko drugim. I na odwrót, je�li kryptogram daje si� odszyfrowa� pierwszym, to do szyfrowania mógł by� u�yty tylko drugi. W tym systemie mo�na chroni� osobno poufno��, osobno autentyczno�� lub obie te cechy na raz.

Tekst zaszyfrowany kluczem publicznym mo�e by� poprawnie odszyfrowany tylko kluczem prywatnym znanym jednej konkretnej osobie. Tak chroni si� poufno��.

Page 38: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

38

Kryptogram daj�cy si� poprawnie odszyfrowa� kluczem publicznym mógł by� sporz�dzony tylko przy u�yciu klucza prywatnego b�d�cego w dyspozycji tylko jednej konkretnej osoby. Tak zapewnia si� autentyczno��.

Klucze publiczne mo�na swobodnie rozpowszechnia� bez obawy ujawnienia kluczy prywatnych. Do prowadzenia komunikacji mi�dzy n podmiotami potrzeba razem n par kluczy (po parze kluczy prywatny/publiczny na podmiot). Ka�dy podmiot pami�ta swój klucz prywatny i klucze publiczne swoich partnerów. Dzi�ki szyfrowaniu asymetrycznemu mo�liwe stało si� sporz�dzanie podpisów (sygnatur) cyfrowych. Autor wiadomo�ci sporz�dza jej skrót znanym algorytmem haszuj�cym i szyfruje ten skrót swoim kluczem prywatnym. Ka�dy (kto zna klucz publiczny) mo�e sporz�dzi� skrót wiadomo�ci oraz odszyfrowa� podpis i sprawdzi� czy wynikowe ci�gi znaków s� identyczne. Jednocze�nie, je�li kto� zmodyfikuje wiadomo��, to nie b�dzie mógł doprowadzi� do sytuacji, �e b�dzie ona zgodna z dotychczasow� sygnatur�, ani sporz�dzi� sygnatury, która po odszyfrowaniu kluczem publicznym oryginalnego autora byłaby zgodna ze zmodyfikowan� wiadomo�ci�. Dokument opatrzony podpisem cyfrowym nazywamy certyfikatem cyfrowym. Opracowano pewnym mechanizmy pozwalaj�ce rozpowszechnia� klucze publiczne przez podatne na atak media przy zapewnieniu autentyczno�ci samych kluczy. Oznacza to, ka�dy podmiot ma mo�liwo�� sprawdzenia, czy klucze publiczne które posiada odpowiadaj� kluczom prywatnym jego partnerów i nie zostały mu podstawione przez przeciwnika.

Page 39: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

39

• Odciski palaca kluczy (fingerprints). S� to krótkie ci�gi znaków, b�d�ce skrótem całego (długiego) klucza, które mo�na np. przedyktowa� przez telefon i w ten sposób potwierdzi� autentyczno�� klucza przekazanego inn� drog�.

• Certyfikaty kluczy. Je�eli jeden z u�ytkowników, nazwijmy j� Al�, chce przekaza� innemu u�ytkownikowi, nazwijmy go Bolkiem, swój klucz publiczny przez kanał, który nie gwarantuje autentyczno�ci przekazu, mo�e poprosi� wspólnego znajomego, nazwijmy go Cze�kiem o udzielenie certyfikatu jej kluczowi publicznemu. Sytuacja jest taka: Czesiek zna klucz publiczny Ali, Bolek zna klucz publiczny Cze�ka ale nie zna klucza Ali i chciałby go otrzyma� w sposób nie budz�cy w�tpliwo�ci co do autentyczno�ci tego klucza. Czesiek podpisuje klucz publiczny Ali swoim kluczem prywatnym i taki certyfikat wysyła do Ali. Ala mo�e teraz wysła� go do Bolka. Bolek maj�c klucz publiczny Cze�ka, sprawdzi, �e certyfikat został podpisany jego kluczem prywatnym. Z certyfikatu odczyta klucz publiczny i informacj�, �e jest to klucz Ali. Nieprzyjazny im wszystkim Darek mo�e na pewnym etapie przechwyci� certyfikat i zmodyfikowa� go, jednak�e Bolek odrzuci taki zmodyfikowany certyfikat, gdy� Darek nie b�dzie mógł sporz�dzi� podpisu Cze�ka. Gdy Ala b�dzie chciała przekaza� swój klucz publiczny Ewie nie b�dzie musiała po raz drugi prosi� o pomoc Cze�ka, gdy� ju� ma jego certyfikat na swój klucz. Najsłabszym ogniwem jest tu wymiana kluczy publicznych z Cze�kiem. Czesiek musi by� zatem wystarczaj�co szeroko znanym i pot��nym indywiduum by podszycie si� pod niego było niemo�liwe. Mo�na sobie wyobrazi�, �e w roli Ali wyst�puje bank emitent kart kredytowych, w roli Bolka i Ewy - sprzedawcy przyjmuj�cy plastikowe pieni�dze, a w roli Cze�ka - ogólnokrajowa instytucja certyfikacyjna, jak� mo�e by� konsorcjum du�ych instytucji finansowych lub bank narodowy. W chwili pisania niniejszego opracowania, taki system w odniesieniu do powszechnego obrotu finansowego pozostawał w sferze wyobra�ni.

Przykłady: RSA (oparte na trudno�ci rozkładu du�ych liczb na czynniki pierwsze), szyfry oparte na problemie plecakowym, El-Gamal. Szyfry asymetryczne s� najcz��ciej powolne, dlatego stosuje si� techniki hybrydowe - przy pomocy szyfru asymetrycznego partnerzy uzgadniaj� klucz sesji słu�acy nast�pnie do szyfrowania szybkim algorytmem symetrycznym. Klucze sesyjne s� jednorazowego u�ytku.

Funkcje jednokierunkowe

W niektórych przypadkach do ochrony autentyczno�ci lub poufno�ci nie jest potrzebne lub wskazane szyfrowanie wiadomo�ci (daj�ce mo�liwo�� deszyfrowania). Stosuje si� wówczas funkcje jednokierunkowe. Funkcja jednokierunkowa jest to takie przekształcenie, które daje si� oblicza� szybko w jedn� stron�, ale dla którego wyznaczenie przekształcenia odwrotnego jest bardzo zło�one obliczeniowo. Zmiana pojedy�czego bitu argumentu powoduje zmiany wielu bitów wyniku według zło�onego schematu. Odgadywanie argumentu dla którego fukcjia przyjmuje zadan� warto�� najcz��ciej polega na przeszukaniu całej dziedziny argumentów funcji. Funkcje jednokierunkowe słu�� m.in. do przechowywania haseł, oraz do tworzenia streszcze� wiadomo�ci dla potwierdzania ich integralno�ci i autentyczno�ci (patrz wcze�niej - podpisy cyfrowe).

Inne zagadnienia

Page 40: Podstawy systemow operacyjnych - kolos.math.uni.lodz.plkolos.math.uni.lodz.pl/~archive/Systemy operacyjne/Podstawy... · Podstawy systemów operacyjnych Spis treci 1. Wprowadzenie

40

Inne zagadnienia maj�ce wpływ na bezpiecze�stwo komputerów to mi�dzy innymi piel�gnacja, konserwacja i wła�ciwe przechowywanie sprz�tu i oprogramowania, dobór wykwalifikowanego i odpowiedzialnego personelu, szkolenia oraz tworzenie polityki bezpiecze�stwa systemu informatycznego.