Automatyka i Robotyka, Rok I Wprowadzenie do systemów operacyjnych PWSZ Gªogów, 2009
Denicja System operacyjny (ang. OS, Operating System) oprogramowanie zarz dzaj ce sprz tem komputerowym, tworz ce ±rodowisko do uruchamiania i kontroli zada«u»ytkownika.
Gªówne zadania W celu uruchamiania i kontroli zada«u»ytkownika system operacyjny zajmuje si : planowaniem oraz przydziaªem czasu procesora poszczególnym zadaniom, kontrol i przydziaªem pami ci operacyjnej dla uruchomionych zada«, dostarcza mechanizmy do synchronizacji zada«i komunikacji pomi dzy zadaniami (wielozadaniowo± ), obsªuguje sprz t oraz zapewnienia równolegle wykonywanym zadaniom jednolity, wolny od interferencji dost p do sprz tu (wzajemne wykluczanie). Dodatkowe przykªadowe zadania, którymi mo»e, ale nie musi zajmowa si system operacyjny to: ustalanie poª cze«sieciowych zarz dzanie plikami...
Elementy skªadowe i budowa OS musi udost pnia interfejs programowy pozwalaj cy na wykonanie pewnych operacji (np. metody pozwalaj ce na uruchomienie lub zatrzymanie wskazanego zadania) Zazwyczaj jest to zestaw funkcji zwanych API (Application Programming Interface) lub wywoªa«systemowych. Budowa systemu operacyjnego - gªówne elementy: j dro systemu wykonuj ce i kontroluj ce zadania u»ytkownika powªoka specjalny program komunikuj cy u»ytkownika z systemem operacyjnym system plików deniuje sposób i umo»liwia zapis danych na no±niku.
Elementy skªadowe i budowa J dro skªada si z nast puj cych elementów funkcjonalnych: planisty czasu procesora, ustalaj cego które zadanie i jak dªugo b dzie wykonywane przeª cznika zada«, odpowiedzialnego za przeª czanie pomi dzy uruchomionymi zadaniami Dodatkowo: moduªu zapewniaj cego synchronizacje i komunikacj pomi dzy zadaniami moduªu obsªugi przerwa«i zarz dzania urz dzeniami moduªu obsªugi pami ci, zapewniaj cego przydziaª i ochron pami ci innych zale»nie od funkcji i przeznaczenia systemu
Interfejs u»ytkownika Dzi ki niemu mo»liwa jest bezpo±rednia interakcja u»ytkownika z komputerem (np. bezpieczne wyª czenie maszyny) O ile interfejs programowy (API lub wywoªania systemowe) jest elementem koniecznym to interfejs u»ytkownika jest elementem opcjonalnym Obecnie zwykle jest to interfejs graczny (GUI - Graphical User Interface) zintegrowany z systemem operacyjnym b d¹ jako tzw. nakªadka dawniej tak»e interfejs tekstowy (np. DOS) lub nawet wiersz polece«
GUI: przykªady Microsoft Windows 1.01
GUI: przykªady Microsoft Windows 1.01
GUI: przykªady Microsoft Windows 3.11 for Workgroups
GUI: przykªady Microsoft Windows 7 (formalnie NT 6.1)
GUI: przykªady Amiga OS 3.5
GUI: przykªady IBM OS/2 Warp4
GUI: przykªady Apple Macintosh MacOS 9.2.2
GUI: przykªady Apple MacOS X 10.5
GUI: przykªady Linux, dystrybucja Red Hat 8.0
Nomenklatura program: obiekt pasywny - ci g rozkazów i instrukcji do wykonania przez procesor proces: jednostka pracy systemu, obiekt aktywny z licznikiem rozkazów, stosem procesu itp. (sam program nie jest procesem); mamy: procesy systemu operacyjnego, procesy u»ytkowe itd. Ka»dy proces otrzymuje unikalny numer, tzw. numer PID (ang. Process IDentier) w tek (ang. thread): - podstawowa jednostka wykorzystania procesora, w tki sa efektywniejsze w dziaªaniu od klasycznych procesów szybsze przeª czanie, stan w tku jest zdeniowany maª ilo±ci odr bnych danych, ªatwa i szybka komunikacja pomi dzy w tkami st d popularno± systemów wielow tkowych; w tki mog by obsªugiwane przez j dro systemu operacyjnego (MS Windows) lub zbiór funkcji bibliotecznych na poziomie u»ytkownika (Linux, biblioteka pthread). W tki wykonywane wspóªbie»nie w ramach 1 zadania (programu, procesu) wspóªdziel przestrze«adresow i struktury systemowe (np. listy otwartych plików). Pojawia si jednak problem synchronizacji w tków w celu unikni cia bª dnego wykonania programu (rozwi zanie: semafory, sekcje krytyczne)
Nomenklatura zadanie (ang. task): - w zasadzie to»same z procesem, poj cie u»ywane ci gle z powodów historycznych wieloprogramowo± : idea polega na takim wykonywaniu zada«,»eby procesor byª zawsze wykorzystany; gdy bie» ce zadanie czeka np. na zako«czenie operacji wej±cia-wyj±cia, system przechodzi do wykonania innego zadania wspóªbie»no± : mo»liwo± wykonywania wielu zada«jednocze±nie wielozadaniowo± : logiczne rozszerzenie wieloprogramowo±ci - jednocze±nie jest wykonywanych wiele zada«wielu u»ytkowników (dziel cych jeden komputer), przy czym ka»dy z u»ytkowników ma wra»enie,»e pracuje na na pojedynczej maszynie wielodost pno± : cecha, umo»liwiaj ca wielu u»ytkownikom prac na jednym systemie (komputerze)
Nomenklatura wielow tkowo± (ang. multithreading): cecha systemu operacyjnego, dzi ki której w ramach jednego procesu mo»e wykonywa kilka w tków lub jednostek wykonawczych. Nowe w tki to kolejne ci gi instrukcji wykonywane oddzielnie. Wszystkie w tki tego samego procesu wspóªdziel kod programu i dane. W systemach nie obsªuguj cych wielow tkowo±ci poj cia procesu i w tku uto»samiaj si. Wielow tkowo± mo»e tak»e odnosi si do samych procesorów. W takim wypadku oznacza to mo»liwo± jednoczesnego wykonywania wielu w tków sprz towych na pojedynczej jednostce wykonawczej rdzeniu procesora (ang. core), np. Hyper-Threading Technology rmy Intel dla procesorów Pentium 4 oraz Atom i Core i7.
Podziaª ogólny strategie dziaªania Ze wzgl du na cele do którego jest u»ywany system operacyjny mo»emy dokona podziaªu na (Nutt, 1997) systemy wsadowe (ang. batch): system wykonuje sekwencyjnie zadania przygotowane w tzw. pliku wsadowym, u»ytkownik nie ma wpªywu na wykonanie programów, gdy jest przetwarzany wsad systemy z podziaªem czasu (ang. timesharing), inaczej wielozadaniowe: procesor wykonuje na przemian wiele ró»nych zada«, przy czym przeª czenia nast puj tak szybko,»e u»ytkownicy mog wspóªdziaªa z ka»dym programem podczas jego wykonania systemy jednostanowiskowe (ang. personal computing): dedykowane komputerom osobistym, gdzie pojedynczy u»ytkownik uruchamia wiele programów na dedykowanej maszynie. Celem nadrz dnym zwykle jest dostarczenie u»ytkownikowi niezb dnej wygody i wªa±ciwej reakcji systemu na jego wymagania. Obecnie takie systemy s zarówno wielodost pne jak i wielozadaniowe. Nutt, G. (1997), Operating Systems: A Modern Perspective, First Edition, Addison-Wesley, Reading, MA.
Podziaª ogólny strategie dziaªania systemy dedykowane (ang. dedicated): nale» tutaj systemy czasu rzeczywistego (np. QNX), maj ce ±ci±le zdeniowane, staªe ograniczenia czasowe (przetwarzanie danych musi si zako«czy przed upªywem okre±lonego czasu, inaczej system nie speªnia wymaga«). Przykªadem s systemy steruj ce procesami przemysªowymi, robotami, satelitami a tak»e ró»nego rodzaju specjalizowane sterowniki (systemy wbudowane). Dodatkowo mo»na wyró»ni : systemy rozproszone (ang. distributed): system umo»liwia korzystanie przez u»ytkowników z wielu zycznie rozdzielonych zasobów (procesory, pami, itp. ), przy czym istniej 2 podstawowe strategie korzystania z usªug systemu: sieciowe systemy operacyjne gdzie u»ytkownicy s ±wiadomi wielo±ci maszyn (w celu uzyskania dost pu do zasobów zwykle trzeba dokona zdalnej rejestracji na odpowiednich maszynach) w peªni rozproszone systemy operacyjne gdzie u»ytkownicy nie musz by ±wiadomi wielo±ci maszyn, a dost p do zasobów zdalnych uzyskuje si tak samo, jak do zasobów lokalnych
Podziaª ogólny Ze wzgl du na planowanie i przydziaª czasu procesora poszczególnym zadaniom: systemy operacyjne czasu rzeczywistego systemy operacyjne czasowo niedeterministyczne Ze wzgl du na sposób realizacji przeª czania zada«: systemy operacyjne z wywªaszczaniem zada«, np. MS Windows (95, ME, NT, 2000, XP, Vista), systemy uniksowe systemy operacyjne bez wywªaszczania, np. MS Windows 3.x, Mac OS9 Wywªaszczenie - technika u»ywana w ±rodowiskach wielow tkowych, w której algorytm szereguj cy (planista, ang. scheduler) mo»e wstrzyma aktualnie wykonywane zadanie (np. proces lub w tek), aby umo»liwi dziaªanie innemu. zawieszenie jednego procesu nie powoduje blokady caªego systemu operacyjnego wywªaszczanie umo»liwia szczegóªowe okre±lanie czasu, w jakim dany proces mo»e korzysta z procesora. Wywªaszczanie w niektórych systemach operacyjnych mo»e dotyczy nie tylko programów, ale tak»e samego j dra, np. Linux.
Przeno±no± systemów operacyjnych Podobnie jak dla programów u»ytkowych: systemy pisane w j zyku niskiego poziomu (asembler) s nieprzeno±ne - np. system MS-DOS pisany w asemblerze mikroprocesora Intel 8088 byª dost pny tylko w rodzinie procesorów rmy Intel systemy pisane w j zykach wysokiego poziomu s ªatwo przeno±ne - np. system Unix czy OS/2 napisany w j zyku C mo»e pracowa na wielu ró»nych procesorach
Maszyna wirtualna (ang. Virtual Machine) Ogólna nazwa dla programów tworz cych ±rodowisko uruchomieniowe dla innych programów. Maszyna wirtualna kontroluje wszystkie odwoªania uruchamianego programu bezpo±rednio do sprz tu lub systemu operacyjnego i zapewnia ich obsªug. Dzi ki temu program uruchomiony na maszynie wirtualnej "my±li",»e dziaªa na rzeczywistym sprz cie, podczas gdy w istocie pracuje na sprz cie wirtualnym, "udawanym" przez odpowiednie oprogramowanie (maszyn wirtualn ). Wykonywanym programem mo»e by zarówno pojedyncza aplikacja jak i caªy system operacyjny lub nawet kolejna maszyna wirtualna. S one zupeªnie odizolowane przez maszyn wirtualn od maszyny zycznej, w odró»nieniu od klasycznego systemu operacyjnego, który tylko zarz dza uruchamianiem aplikacji na maszynie zycznej.
Maszyna wirtualna Rodzaje: interpretery, szczególnie kodu bajtowego, emulatory rzeczywi±cie istniej cego sprz tu, np. konsol kompilatory JIT (just-in-time compilation) (kompilacja do kodu maszynowego w locie, np. wirtualna maszyna Javy) kod ¹ródªowy jest kompilowany do kodu po±redniego (bajtowego), program jest rozpowszechniany w postaci kodu po±redniego, na maszynie, na której program zostaje uruchomiony, maszyna wirtualna przeprowadza kompilacj kodu po±redniego do kodu maszynowego.
Maszyna wirtualna Zastosowania: do uruchamiania istniej cych aplikacji i systemów operacyjnych w innych ±rodowiskach ni» pierwotne dla zapewnienia uniwersalnego ±rodowiska uruchomieniowego do bezpiecznego rozdzielania zasobów du»ych maszyn (mainframe, superkomputery) do uruchamiania jednocze±nie ró»nych systemów operacyjnych na jednym komputerze do uruchamiania na jednym komputerze programowych klastrów do uzyskania peªnej kontroli nad systemem operacyjnym, np. podczas analizowania jego pracy do optymalizacji pracy programów, poprzez kontrol ich ±rodowiska dziaªania i procesu translacji kodu Przykªad: MacWindows
Maszyna wirtualna Emulator systemu Windows dla komputerów Macintosh w dziaªaniu