Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

advertisement
Zbigniew S. Szewczak
Podstawy Systemów
Operacyjnych
Wykład 1
Ewolucja systemów operacyjnych.
Toruń, 2004
O czym będzie?
☛Wstęp
☛System komputerowy
☛System operacyjny
☛Systemy wsadowe
☛Systemy z podziałem czasu
☛Systemy operacyjne na PC
☛Systemy równoległe
☛Systemy rozproszone
☛Systemy czasu rzeczywistego
☛Przykłady systemów operacyjnych
Literatura
☛A. Silberschatz, P.B. Gavin, Podstawy systemów
operacyjnych, wyd. III, WNT, 2000 (tł. 5th ed.)
☛http://www.bell-labs.com/topic/books/os-book
☛W. Stallings, Organizacja i architektura systemu
komputerowego. Projektowanie systemu a jego
wydajność, PWN, Warszawa, 2000 (tł. 4th ed.)
☛http://William.Stallings.com/
Literatura dodatkowa
☛Per Brinch Hansen, Podstawy systemów
operacyjnych, PWN, 1979 (klasyka)
☛M. Bach, Budowa systemu operacyjnego Unix, WNT,
1995
☛A. Tannenbaum, Rozproszone systemy operacyjne,
PWN, 1997
☛M. Beck,H. Bohme,M. Dziadzka,U. Kunitz,R. Magnus,
D. Verworver, Linux Kernel. Jądro Linuxa, Mikom,
1999
Literatura dodatkowa
☛U. Vahalia, Jądro systemu UNIX, WNT,
Warszawa, 2001
☛D. P. Bovet & M. Cesati, Linux Kernel,
Wydawnictwo RM, Warszawa, 2001
☛A. Tannenbaum, Modern Operating Systems,
2nd ed., Prentice Hall, 2001
☛http://www.cs.vu.nl/~ast/books/mos2/
Strony WWW
☛http://www.computerhope.com/os.htm
☛http://www.linux.org/
☛http://linuxvm.org/
☛http://www.pl.freebsd.org/
☛http://www.osweb.net/
☛http://tunes.org/Review/OSes.html
☛http://www.freeos.com
☛http://compnetworking.about.com/cs/networknos/
☛http://www.cs.arizona.edu/people/bridges/oses.htm
☛http://www.serpentine.com/~bos/os-faq/
Inne zasoby
☛grupy dyskusyjne (Usenet)
☛comp.os.system
☛comp.os.linux.development.system
☛pl.comp.os.linux
☛prezentacje
☛https://plas.mat.uni.torun.pl/moodle
☛
System komputerowy
☛Sprzęt (ang. hardware) - zasoby o specyficznej
architekturze oraz organizacji zarządzane przez
system operacyjny
☛System operacyjny - program, który nadzoruje
i koordynuje dostęp programów do zasobów
☛Programy użytkowe - realizują potrzeby
użytkowników systemu komputerowego
(kompilatory, bazy danych, gry,....)
☛Użytkownicy - ludzie, maszyny, komputery..
Sieciowy system komputerowy
☛Sieciowy system komputerowy jest częścią
systemu komputerowego odpowiedzialną za
komunikowanie się komputerów przez łącza
☛sprzęt - medium transmisji danych, karta sieciowa, modem
☛system operacyjny - implementacja protokołu (TCP/IP,
NetBEUI, IPX/SPX ) w jądrze
☛sieciowy podsystem operacyjny : NFS, SMB, NCP
☛programy użytkowe - mount,przeglądarka WWW, telnet, ftp
☛użytkownicy: zdalny komputer, osoba używająca ftp, itp.
Model systemu (13 warstwy)
☛Model hierarchiczny (R. Brown &..., Computer,
1984)
☛Warstwy dzielone (procesy, systemy zdalne..)
☛13: Powłoka (ang. shell)
☛12: Procesy użytkownika
☛11: Katalogi
☛10: Urządzenia zewnętrzne (drukarki)
☛ 9: System plików (pliki)
☛ 8: Komunikacja (potoki)
Model systemu (c.d.)
☛Warstwy procesora (niepodzielne)
☛ 7: Pamięć wirtualna (segmenty, strony)
☛ 6: Lokalna pamięć zewnętrzna (bloki danych)
☛ 5: Procesy (kolejki procesów gotowych)
☛Warstwy sprzętowe
☛ 4: Przerwania (programy obsługi przerwań)
☛ 3: Procedury
☛ 2: Instrukcje maszynowe (mikroprogramy)
☛ 1: Obwody elekroniczne (rejestry, szyny)
Co to jest system operacyjny ?
☛System jest pewnym zbiorem obiektów oraz
realcji między tymi obiektami i między ich
własnościami (Hall, Fagen)
☛System operacyjny jest programem, który
działa jako pośrednik między użytkownikiem
komputera a sprzętem komputerowym
☛ Nie mam dobrej definicji systemu operacyjnego
☛”To nie to, że czegoś nie wiemy, gnębi nas, lecz to, że
wiemy, iż coś nie jest tak” (W. Rogers)
Zadania systemu operacyjnego
☛Zdania systemu operacyjnego
☛tworzenie środowiska do wykonywania programów
☛powodowanie aby system komputerowy był wygodny w
użyciu
☛System operacyjny nadzoruje i koordynuje
posługiwanie się sprzętem
System operacyjny - definicje
☛Dystrybutor zasobów (ang. resource allocator) przydziela zasoby poszczególnym zamawiającym
(programom)
☛Program sterujący (ang. control program) nadzoruje wykonanie programów użytkowych
oraz operacji wejścia/wyjścia, kontrola błędów
☛Jądro systemu (ang. kernel, ang. nucleus) program działający w komputerze nieustannie,
często jest synonimem systemu operacyjnego
Wczesne systemy - „Goła
maszyna” ( lata 50-te)
☛Struktura
☛wielkie maszyny obsługiwane z konsoli
☛programista/użytkownik jako operator maszyny
☛wejście z taśmy papierowej lub karty perforowanej
☛cel systemu operacyjnego (monitora) : automatyczne
przekazywanie sterowania następnemu zadaniu
☛Wczesne oprogramowanie
☛asemblery, kompilatory, programy ładujące i łączące,
biblioteki modułów ładowalnych
☛Bezpieczne
☛Nieefektywne wykorzystanie drogich zasobów
Proste systemy wsadowe
☛Wynajęty operator (bardzo ważna osoba!) do
wczytywania zadań tzw. wsadu (ang. batch)
☛Dodany czytnik kart perforowanych
☛Redukcja czasu wykonania przez wsad o
podobnych parametrach
☛Automatyczne kolejkowanie zadań
☛Rezydentny monitor (system)
☛inicjowanie zadań, komendy operatorskie
☛przekazywanie kontroli wykonywanym zadaniom (ang.
job)
☛przejęcie kontroli po zakończeniu zadania
Wygląd pamięci operacyjnej prosty system wsadowy
Monitor
(system
operacyjny)
Obszar
programów
użytkownika
Język opisu zadań - JCL
☛Problemy
☛skąd monitor ma czerpać wiedzę o naturze
zadania (np. asembler, Fortran) lub jaki
program wykonać
☛jak monitor ma rozróżniać
☛zadania
☛dane od programów
☛Rozwiązanie
☛język opisu zadań (Job Control Language)
Język opisu zadań - JCL (c.d.)
☛Karty sterujące określają jak monitor ma
funkcjonować
☛//MYJOB JOB MSGLEVEL=(1,1), CLASS=A
//STEP1 EXEC PGM=EDIT
//OUT
DD DSNAME=MYSET,DISP=OLD,
//
DCB=(LRECL=80, RECFM=FB)
//SYSIN DD *
.....................dane..................
/*
//STEP2 EXEC SORTC
Język opisu zadań - JCL (c.d.)
☛Składniki rezydentnego monitora
☛interpreter JCL
☛program inicjujący/kończący zadania
☛obsługa we/wy, komendy operatora
☛Problem: mała wydajność - we/wy i procesor nie
mogą działać jednocześnie; powolny czytnik kart
☛Rozwiązanie: praca pośrednia (ang. off-line
operation) - wczytywanie zadań z taśmy i
drukowanie off-line
Spooling
☛Simultaneous Pheripheral Operation On-Line umożliwia wykonywanie zadań w czasie operacji
we/wy innych zadań
☛wczytanie zadania z czytnika kart na dysk do kolejki zadań
(ang. job queue)
☛wyprowadzenie wydruku zakończonego zadania do kolejki
na dysku (ang. print queue) a potem drukarkę
☛Pula zadań (ang. job pool ) - zadania na dysku
są wybierane do wykonania w taki sposób aby
zwiększyć wykorzystanie procesora
Wieloprogramowane systemy
wsadowe
☛Wiele zadań jest przechowywanych w pamięci
operacyjnej a procesor, w czasie oczekiwania
jednego zadania na jakąś usługę np. operację
wejścia/wyjścia lub zamontowanie taśmy jest
przydzielany innemu zadaniu
☛pierwszy przypadek gdy monitor decyduje za
użytkowników a w zasadzie za operatora systemu (stąd
możliwe wytłumaczenie nazwy system operacyjny)
☛początek końca wszechwładzy operatora systemu
komputerowego
Wielozadaniowość - wymagania
systemu
☛Wieloprogramowanie daje wielozadaniowość
(ang. multitasking)
☛Obsługa we/wy przez system
☛Zarządzanie przydziałem pamięci (ang. memory
management)
☛Planowanie przydziału procesora (ang. CPU
scheduling) - wybór zadania do wykonania
☛Przydział urządzeń zewnętrznych (dyski, taśmy)
(ang. I/O management)
Systemy z podziałem czasu ang. Time-Sharing Systems
☛Rozszerzenie wieloprogramowości (ang.
multiprogramming)
☛Procesor jest przydzielony jedynie zadaniom w
pamięci operacyjnej i wykonuje na przemian
wiele zadań, przy czym przełączenia następują
tak często, że użytkownicy mogą współdziałać z
programem podczas jego wykonania
☛Jedno z zadań w pamięci: dialog z użytkownikiem
(sesja)
Systemy z podziałem czasu - (c.d)
☛Zadania usuwane z pamięci są zapisywane na
dysk do zbioru wymiany (ang. swap)
☛Bezpośrednia komunikacja użytkownika z
systemem (ang. on-line) dzięki wielozadaniowości
☛zadanie = sesja (ang. session) lub proces (ang. process)
☛IBM OS/360 MVT/TSO - system interakcyjny
☛Phoenix modyfikacja TSO realizowana w UMK
Wymiana - ang. swapping
☛Problem: we/wy jest wolniejsze od procesora
więc nawet wieloprogramowany system może
powodować przestoje w pracy procesora
☛Inne rozwiązania:
☛zwiększenie pamięci
☛drogie
☛wzrasta apetyt
☛wymiana
Co to jest wymiana?
☛Zadanie zamiast przebywać bezczynnie w
pamięci (z powodu niespełnialności żądań) jest
zapamiętane (ang. swapped out) na dysku w
zbiorze wymiany
☛Zadanie (inne) zostaje wczytane (ang. swapped
in ) ze zbioru wymiany do pamięci komputera i
wykonywane
☛Zadanie kończy się i jest usuwane z pamięci
Systemy operacyjne na PC
☛Zmniejszenie cen sprzętu
☛Komputer osobisty (ang. personal computer) przeznaczony dla jednego użytkownika
☛Urządzenia we/wy : klawiatura, myszka,
monitory, małe drukarki
☛Przenoszenie technologii wcześniej rozwiniętej
dla „dużych komputerów” ( ang. mainframe) na
stacje robocze (ang. workstations)
☛systemy jednoprogramowane, jednostanowiskowe (MSDOS, Macintosh)
Systemy równoległe
☛Systemy równoległe (ang. parallel systems) systemy z wieloma współpracującymi
procesorami (ang. multiprocessor systems)
☛Systemy ściśle powiązane (ang. tightly coupled)
- procesory dzielą zegar, pamięć; komunikacja
zwykle poprzez pamięć dzieloną
☛Korzyści:
☛zwiększona przepustowość (ang. throughput)
☛zdolność do kontynuowania usług na poziomie
proporcjonalnym do ilości ocalałych zasobów
☛łagodna degradacja (ang. graceful degradation)
☛systemy tolerujące awarie (ang. fault-tolerant)
Systemy równoległe (c.d.)
☛Wieloprzetwarzanie symetryczne (ang.
Symmetric MultiProcessing - SMP)
☛każdy z procesorów wykonuje identyczną kopie systemu
☛Wieloprzetwarzanie asymetryczne (ang.
asymmetric multiprocessing)
☛każdy procesor ma przypisane inne zadanie; procesor
główny planuje i przydziela prace procesorom
podporządkowanym
☛procesor: IBM 4381 (VM SP/6) i procesor czołowy (ang.
front-end ): IBM 3705 - węzeł sieci EARN/BITNET
(PLTUMK1) w UMK, 1991
Wieloprzetwarzanie
symetryczne
CPU
CPU
CPU
Pamięć
CPU
Systemy rozproszone
☛Rozproszone przetwarzanie za pomocą wielu
procesorów zwanych węzłami (ang. nodes)
☛Systemy luźno powiązane (ang. loosely coupled)
lub rozproszone (ang. distributed systems) każdy procesor ma własną pamięć lokalną;
procesory komunikują się szybkim łaczem
☛Powody:
☛podział zasobów: zdalne drukowanie plików
☛przyspieszenie obliczeń, dzielenie obciążeń (ang.load
sharing)
☛niezawodność, komunikacja: poczta (ang. e-mail)
Systemy rozproszone (c.d.)
☛Sieciowe systemy operacyjne
☛dzielenie plików (NFS, Samba, NetWare)
☛protokół komunikacyjny (TCP/IP, NetBEUI, NCP)
☛przetwarzanie niezależne od innych komputerów w sieci,
duża autonomia
☛Rozproszone systemy operacyjne
☛mniejsza autonomia systemów (System Andrew)
☛powstaje wrażenie jednego dużego systemu operacyjnego
kontrolowanego poprzez sieć rozległą
Systemy czasu rzeczywistego
☛Ang. Real-Time Systems - stosowane często do
sterowania urządzeniami dedykowanymi do
konkretnych zastosowań (proces produkcji)
☛Ściśle zdefiniowane, stałe ograniczenia czasowe
☛Rygorystyczny system czasu rzeczywistego
(ang. hard real-time)
☛tylko pamięć o krótkim czasie dostępu
☛Łagodny system czasu rzeczywistego (ang. soft
real-time)
☛krytyczne zadanie do obsługi w czasie rzeczywistym ma
najwyższy priorytet
Minisystemy
☛systemy podręczne (ang. handheld systems)
☛PDA (ang. personal digital assistants)
☛palmtopy (PalmOS, Windows CE)
☛telefony komórkowe (interpreter Javy)
☛technologia bezprzewodowa (podczerwień, BlueTooth)
☛512KB-8MB pamięci, mały display, wolny procesor
☛Inne
☛sprzęt domowy (mikrofalówki, pralki, ...)
☛sprzęt elektroniczny (aparaty, odtwarzacze, TV, ...)
Przykłady: System Atlas
☛Uniwerystet w Manchester (Anglia) - koniec lat
50-tych/początek lat 60-tych
☛System wsadowy
☛Główna część systemu: moduły sterujące
wejściem/wyjściem
☛Planowanie zadań - spooling
☛Pamięć rdzeniowa jako pamięć podręczna
☛Nowatorski, wiele jego cech przetrwało w
systemach operacyjnych do dziś
Przykłady: System CTSS
☛Compatible Time-Sharing System
☛System na komputer IBM 7090 zrealizowany w
MIT (Massachusetts Institute of Technology),
1962
☛System z podziałem czasu
☛Umożliwiał konwersację 32 użytkownikom
☛Wielkość systemu: 32,000 słów 36-bitowych
☛Wielki sukces, w użyciu do 1972
Przykłady: System MULTICS
☛MULTiplexed Information and Computing Service
☛Naturalne rozszerzenie CTSS napisane w języku PL/I
na maszyny o mocy IBM PC 386
☛Wspólne przedsięwzięcie MIT (m.in. Dennis Ritchie),
General Electric i Bell Laboratory (AT&T), 1965
☛Protoplasta systemów:IBM OS/360(1966),Unix(1970)
☛Wielkość: 20M instrukcji maszynowych (1975)
☛1969, Bell Labs rezygnuje z projektu : Unics
modyfikacja Multicsa na PDP-7 (Ken Thompson,
Dennis Ritchie)
☛cross-assembler Honeywell 635->gra „Space Travel” na PDP-7
Przykłady: System OS/360
☛System z podziałem czasu jednolity dla
wszystkich komputerów od małych maszyn
biurowych po wielkie komputery obliczeniowe
☛„Wszystko dla wszystkich”
☛Skomplikowany i zbyt wielki: >1,000,000
instrukcji maszynowych
☛Błędne założenie: moc obliczeniowa ma być
uzyskiwana zdalnie z wielkiego komputera
☛OS/MFT, OS/MVT+TSO; poźniej IBM 370:
OS/MVS+CMS
☛Polska : System RIAD 32 (przełom 80/90)
Przykłady: Systemy operacyjne
na IBM PC
☛CP/M (Gary Kildall, 1974) na 8080,2MHz,8b i floppy
☛IBM PC, 8086,5MHz,16b (1981): MS DOS 1.0 - 8KB
☛interpreter BASICa +DOS, wielkość: 4000 linii kodu
☛IBM PC XT, 10MHz, 16b (1983): MS DOS 2.0 - 24KB
☛1MB RAM, HDD: jeden katalog, 64 pliki
☛IBM PC AT,80286,12MHz (1984): MS DOS 3.0 - 36KB
☛16MB RAM, sieć (v. 3.1)
☛Microsoft Windows 1.0 - GUI (ang. Graphical User Interface)
☛IBM PC 386,33MHz,32b (1987): MS DOS 3.3 - 46KB
☛Microsoft Windows 3.0,3.1, Linux (1991)
☛IBM PC 486,50MHz(1990):MS DOS + Win3.1, Linux
Przykłady: Systemy operacyjne
firmy Microsoft
☛Windows NT 3.1 (1993)
☛6M linii kodu, aplikacje MS DOS, OS/2, Windows 3.1
☛Windows 95, Pentium,300MHz (1995):
☛fragmenty 16b kodu, system plików FAT-32
☛Windows NT 4.0 (1996)
☛kompatybilność z W95/98, 16M linii kodu, system plików -NTFS
☛Windows 98 (1998) - 32-bitowy
☛fragmenty 16k kodu assemblerowego, błędy
☛Windows ME (2000) - poprawiony W98
☛Windows 2000 (2000) = Windows NT 5.0
Współczesne systemy operacyjne
☛Cechy wspólne
☛architektura mikrojądra- zawiera jedynie niezbędne funkcje
☛architektura monolityczna
☛wielowątkowość
☛proces (zadanie) składa się z wątków
☛SMP
☛(pod)system sieciowy
☛systemy grafiki (GUI) i wydruku
☛Windows: 2K/XP
☛Unix: Solaris 2.x, 4.4BSD, Linux
☛Maszyny wirtualne: JavaVM, VMware
Współczesna architektura Centrino
☛Procesor Pentium-M (L1 64kB, L2 1MB)
☛Magistrale
☛FSB - 400 MHz
☛AGP 4x
☛PCI Express 16x
☛Chipset
☛i855GM/PM: CPU, RAM,
☛Bridge (mostek) ICH4-M
☛PCI, USB, ATA, Ethernet 10Gb, WLAN
☛DVD - Blue-ray: do 50GB, transfer danych 4,5MBps
☛Przeznaczenie: notebooki
System operacyjny Windows
2000
☛wielozadaniowy system operacyjny z
wywłaszczaniem na procesory 32-bitowe
☛4 wersje zależne od ilości pamięci i procesorów
☛Professional, Server, Advanced Server, Datacenter Server
☛realizuje standard POSIX (IEEE Std. 1003.1)
☛architektura mikrojąder
☛kod napisany w C i C++
☛29M linii kodu źródłowego
☛wydzielony kod zależny od procesora
☛HAL (Hardware Abstraction Layer)
Windows 2000 Professional wymagania
☛Procesor: Intel Pentium, 133(200)MHz lub nowszy
☛Pamięć: 64(128)MB RAM lub więcej
☛Dysk twardy: 2000MB lub więcej
☛650MB wolnego miejsca
☛Monitor: VGA (SVGA) lub o większej rozdzielczości
☛Stacja CDROM 4(12)x lub DVD
☛Stacja dyskietek 3,5˝
☛Mysz Microsoftowa, klawiatura,.....
System operacyjny Linux
☛System Linux jest bezpłatnie rozpowszechnianą
wersją systemu operacyjnego UNIX
☛System Linux stworzył student Uniwersystetu w
Helsinkach (Finlandia) - Linus Torvalds, 1991
☛Monolityczny system operacyjny, którego centralną
część stanowi jądro (Linux Kernel)
☛Wielodostępny, wielozadaniowy system operacyjny
z wywłaszczaniem zgodny ze standardem POSIX
☛System Linux zawiera sieciowe systemy
operacyjne:NCP(Mars),SMB(Samba),TCP/IP(NFS)
System operacyjny Linux - (c.d.)
☛System operacyjny Linux może działać na
różnych architekturach: Intel x86, SPARC, DEC
Alpha, PowerPC, MIPS, m68k
☛System Linux może współistnieć na jednym
komputerze z innymi systemami operacyjnymi:
Windows 98, Windows NT, Windows 2000,
Solaris, FreeBSD, OS/2,.....
☛System operacyjny Linux może symulować inne
systemy operacyjne np. MS-DOS, Windows,...
☛http://www.vmware.com
☛v2.2 - 1M linii kodu źródłowego
Wymagania sprzętowe
☛Procesor Pentium II taktowany zegarem
233MHz
☛Pamięć RAM - 64 MB
☛Karta graficzna 4MB
☛Dysk twardy 2GB
☛Czytnik CD-ROMów (opcjonalnie)
☛Dostęp do sieci Internet (opcjonalnie)
Prawo Haeckla
☛Haeckel Ernst (1834 -1919), profesor anatomii
w Jenie (1862-1909), ewolucjonista
☛Ontogeneza jest rekapitulacją filogenezy
☛Rozwój osobniczy (ontogeneza) jest skróconym i
szybkim powtórzeniem (rekapitulacją) rozwoju
rodowego (filogenezy)
☛Komputery główne, minikomputery,
mikrokomputery, komputery sieciowe,
komputery osobiste, itd. w swoim rozwoju
przechodzą etapy podobne jak ich poprzednicy
Podsumowanie
☛Co to jest system operacyjny?
☛nie ma dobrej definicji (i nigdy nie będzie)
☛wygodnie jest przyjąć, że jest to program rezydentny (tzw.
jądro systemu) pośredniczący między sprzętem a
człowiekiem lub maszyną
☛zadania: sterowanie programami, rozdzielanie zasobów,
szeregowanie, sterowanie we/wy, zarządzanie danymi
☛Co to jest system komputerowy?
☛sprzęt
☛system operacyjny
☛oprogramowanie użytkowe (np. komenda who)
☛ludzie lub maszyny
Podsumowanie (c.d.)
☛Jakie cele wpłynęły na rozwój systemów
operacyjnych w ciągu ostatnich 40 lat?
☛efektywne działanie systemu komputerowego a zwłaszcza
wykorzystanie procesora (jednostki centralnej)
☛wygodne środowisko do opracowywania i wykonywania
programów lokalnie i zdalnie
☛W jaki sposób osiągnięto te cele?
☛wsad, spooling
☛wieloprogramowanie, podział czasu, swapping
☛komputery osobiste, wieloprocesorowość
☛sieci komputerowe
☛fundamentalny wkład IBM
Ciąg dalszy
☛O czym będzie mowa dalej?
☛zarządzanie programami (procesami)
☛zarządzanie pamięcią
☛zarządzanie wejściem/wyjściem
☛zarządzanie tym wszystkim razem (zdalnie)
☛Model: komputer<->system<->użytkownik
☛architektura komputera ( czyt. rozwój technologii)
decyduje o systemie operacyjnym
☛potrzeby użytkownika (np. multimedialne) wymuszają
rozwój technologii
☛ważne: architektura i organizacja komputera
Download