System operacyjny (ang. skrót OS Operating System) – oprogramowanie zarządzające sprzętem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.
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,
* obsługuje sprzęt oraz zapewnienia równolegle wykonywanym zadaniom jednolity, wolny od interferencji dostęp do sprzętu.
Szukasz informatyka, który prawidłowo skonfiguruje system? Skontaktuj się z nami lub wypełnij formularz wyceny zlecenia! Ekspresowa odpowiedź!
Dodatkowe przykładowe zadania, którymi może ale nie musi zajmować się system operacyjny to:
* ustalanie połączeń sieciowych
* zarządzanie plikami.
Wiele systemów operacyjnych posiada środowiska graficzne ułatwiające komunikacje maszyny z użytkownikiem.
Potocznie ale niezbyt poprawnie, mówi się tak mając na myśli całość oprogramowania dostarczanego z zakupionym komputerem (zobacz: dystrybucja), czasem samo jądro systemu operacyjnego, czasem program rozruchowy (to ostatnie jest dużym nadużyciem). Czasem z kolei chodzi o całą rodzinę systemów operacyjnych (np. Mac OS, Microsoft Windows).
Wczesne komputery były urządzeniami bardzo kosztownymi, wobec czego właścicielom tych urządzeń zależało na maksymalnym wykorzystaniu ich możliwości, w sensie wykonania możliwie dużej ilości prac. Pozwalało to efektywniejsze zagospodarowanie nakładów poniesionych na zakup komputera. Należy przy tym dodać, że w Polsce jak i na zachodzie pojedynczy komputer pracował nie tylko na potrzeby swojego właściciela, ale i realizował usługi dla całego szeregu innych podmiotów gospodarczych. Rozpoczęło się wiec poszukiwanie możliwości zwiększenia wydajności komputera, a ponieważ proste rozwiązania w postaci zmiany CPU na szybszą itp. nie wchodziły w grę (ze względu na koszta) wobec tego szukano innych dróg.
Szybko dostrzeżono fakt, że szybkość działania interfejsów wejścia wyjścia jest niewspółmiernie mniejsza niż jednostki centralnej (zresztą ta zależność utrzymuje się dzisiaj i zdaje się pogłębiać). Wprowadzanie programu i danych z kart perforowanych a nawet taśm magnetycznych czy drukowanie wyników trwało dużo dłużej niż same obliczenia.
Pierwsza drogą jaką znaleziono było umieszczenie na stałe w pamięci komputera oprogramowania realizującego obsługę sprzętu oraz komunikację sprzętu z użytkownikiem. Dzięki czemu nie było już konieczne każdorazowe ładowanie kodu obsługi sprzętu i komunikacji z użytkownikiem przy ładowaniu programu użytkowego. Uzyskano w ten sposób pewną oszczędność czasu i poprawę efektywności.
Dalsze ulepszenie polegało na dostrzeżeniu faktu, że podczas samego wprowadzania programu lub wyprowadzania danych na drukarkę procesor komputera jest niewspółmiernie mniej obciążony pracą niż podczas wykonywania obliczeń. Zrodził się więc pomysł aby w tym czasie procesor był zajęty przetwarzaniem innego programu. Funkcjonalność taka, w której komputer wykonuje kilka zadań w tym samym czasie nazywa się wielozadaniowością i jest podstawową cechą nowoczesnych systemów operacyjnych.
Szukasz informatyka, który prawidłowo skonfiguruje system? Skontaktuj się z nami lub wypełnij formularz wyceny zlecenia! Ekspresowa odpowiedź!
Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:
* jądro systemu wykonujące i kontrolujące ww. zadania.
* powłoka – specjalny program komunikujący użytkownika z systemem operacyjnym,
* system plików – sposób zapisu struktury danych na nośniku.
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:
o modułu zapewniającego synchronizacje i komunikację pomiędzy zadaniami,
o modułu obsługi przerwań i zarządzania urządzeniami,
o modułu obsługi pamięci, zapewniającego przydział i ochronę pamięci.
o innych zależnie od funkcji i przeznaczenia systemu.
Podział systemów operacyjnych
Najszerszym ale najbardziej podstawowym kryterium podziału systemów operacyjnych jest podział na:
* system operacyjny czasu rzeczywistego (RTOS)
* systemy operacyjne czasowo niedeterministyczne
Podział ten odnosi się do najbardziej podstawowej funkcjonalności systemu operacyjnego jakim jest planowanie i przydział czasu procesora poszczególnym zadaniom.
Ze względu na sposób realizacji przełączania zadań systemy operacyjne można podzielić na:
* systemy z wywłaszczaniem zadań
* systemy bez wywłaszczania
Inny rodzaj podziału to podział na:
* otwarte systemy operacyjne
* wbudowane systemy operacyjne
Systemy otwarte można uruchomić na dowolnej maszynie wskazanego rodzaju np. PC i w określonym stopniu modyfikować. Systemy wbudowane jak sama nazwa wskazuje są zaszyte (wbudowane) wewnątrz urządzeń użytkowych, maszyn pojazdów itp. Aby uzyskać wysoką niezawodność pracy minimalizuje się w takich przypadkach możliwość dokonywania zmian w konfiguracji systemu operacyjnego.
Pod względem środowiska użytego do implementacji systemu można wprowadzić podział na:
* programowe
* sprzętowe
Szukasz informatyka, który prawidłowo skonfiguruje system? Skontaktuj się z nami lub wypełnij formularz wyceny zlecenia! Ekspresowa odpowiedź!
Sprzętowe systemy operacyjne to: sprzętowo programowe rozwiązania integrowane z wybraną architekturą procesora. W takim przypadku sprzętowa część systemu przyśpiesza wybrany zakres czynności wykonywanych przez system (przykładowo przełączania zadań i zachowywanie ich kontekstu).
Można ustalić pewną relację pomiędzy wymienionymi kryteriami podziału. Zazwyczaj jako otwarte systemy operacyjne spotyka się systemy w pełni programowe, czasowo niedeterministyczne stosujące wywłaszczenie przy przełączaniu zadań. Wbudowane systemy operacyjne są najczęściej czasowo deterministyczne, zazwyczaj nie stosują wywłaszczenia zadań, bywa że są realizowane również w sprzęcie.
Zasoby sprzętowe
Zasoby sprzętowe zarządzane przez system operacyjny:
* Procesor – przydział czasu procesora,
* Pamięć
o alokacja przestrzeni adresowej dla procesów,
o transformacja adresów,
* Urządzenia zewnętrzne
o udostępnianie i sterowanie urządzeniami pamięci masowej np. dysk twardy.
o alokacja przestrzeni dyskowej,
o udostępnianie i sterowanie drukarkami, skanerami, aparatami itp.
* Informacja (system plików)
o organizacja i udostępnianie informacji,
o ochrona i autoryzacja dostępu do informacji.
Zarządzanie zasobami
W przypadku środowiska wielozadaniowego, w którym wiele zadań wykonywanych jest w tym samym czasie, może dość do interferencji procesów. Aby zapobiec temu niekorzystnemu zjawisku organizuje się dostęp do sprzętu, plików, pamięci itp. poprzez ustanowienie zasobów systemowych. W takim przypadku zadania (procesy) użytkownika nie sięgają samodzielnie do sprzętu lub pliku ale używają systemu operacyjnego jako strażnika zarządcy zasobów. Dzięki takiej organizacji dostępu do zasobów, zadania “mają wrażenie”, że każde z nich pracuje na własnym komputerze. O realny porządek dostępu do rzeczywistego urządzenia, pamięci lub pliku dba system operacyjny.
Główne zadania systemu operacyjnego podczas zarządzania zasobami systemu komputerowego:
* tworzenie deskryptora zasobu,
* usuwanie deskryptora zasobu,
* realizacja żądania przydziału,
* zwolnienie i odzyskiwanie zasobu.
Szukasz informatyka, który prawidłowo skonfiguruje system? Skontaktuj się z nami lub wypełnij formularz wyceny zlecenia! Ekspresowa odpowiedź!
Zarządzanie zasobami systemu komputerowego:
* przydział zasobów,
* synchronizacja dostępu do zasobów (zapobieganie interferencji),
* ochrona i autoryzacja dostępu do zasobów,
* odzyskiwanie zasobów,
* rozliczanie – gromadzenie danych o wykorzystaniu zasobów.
Zarządzanie procesem – proces to program w stanie uruchomionym, każdy proces wymaga przydziału pewnych zasobów, włączając w to czas procesora, pamięć, pliki oraz urządzenia wejścia/wyjścia, aby w pełni wykonać swoje zadanie. System operacyjny jest odpowiedzialny w fazie zarządzania procesami za:
* tworzenie i usuwanie procesu,
* wstrzymywanie i przywracanie procesu,
* zapewnienie mechanizmów pozwalających na synchronizację procesów oraz komunikację między procesami.
Zarządzanie pamięcią operacyjną – pamięć to duża tablica słów lub bajtów, każda z własnym adresem, pamięć jest szybko dostępna i dzielona jest pomiędzy procesor oraz urządzenia wejścia/wyjścia. Pamięć główna jest ulotnym miejscem przechowywania danych, traci swoją zawartość w czasie awarii systemu. System operacyjny jest odpowiedzialny w fazie zarządzania pamięcią za:
* utrzymywanie informacji która część pamięci jest aktualnie używana i przez kogo,
* decydowania który proces powinien zostać wczytany do pamięci jeżeli pamięć jest wolna,
* przydzielanie i zwalnianie pamięci.
Zarządzanie plikami – plik jest zbiorem informacji zdefiniowanym przez twórcę pliku. Zazwyczaj, pliki reprezentują programy (źródła programów lub pliki wykonywalne) oraz dane. System operacyjny jest odpowiedzialny w fazie zarządzania plikami za:
* tworzenie i kasowanie plików,
* tworzenie i kasowanie katalogów,
* wsparcie dla użytkowników końcowych przy operacjach na plikach,
* mapowanie plików na nośniku danych,
* tworzenie kopii plików.
Zarządzanie wejściem/wyjściem – system wejścia/wyjścia składa się z: systemu buforowania, interfejsu urządzeń głównych, sterowników (kontrolerów) dla specyficznych urządzeń.
Zarządzenie nośnikami danych – pamięć główna jest ulotna i często za mała aby obsłużyć wszystkie programy i dane, dlatego stosuje się nośniki danych (najczęściej dysk twardy) do powiększania tej pamięci tak zwanej pamięć drugiego rzędu, na napędach tych mapuje się pamięć główną. System operacyjny jest odpowiedzialny w fazie zarządzania nośnikami danych za:
* zarządzanie wolną pamięcią,
* alokacją zapisu,
* planowaniem dysku.
Szukasz informatyka, który prawidłowo skonfiguruje system? Skontaktuj się z nami lub wypełnij formularz wyceny zlecenia! Ekspresowa odpowiedź!
Wsparcie sprzętowe dla systemów operacyjnych
Jedynym dodatkowym urządzeniem koniecznym do uruchomienia wielozadaniowego systemu operacyjnego jest licznik zliczający interwały czasowe. Każdy nawet najprostszy system operacyjny musi być taktowany, aby mógł odliczać czas pozostały do zakończenia jednego a rozpoczęcia innego zadania.
Jednak w celu uzyskania systemu komputerowego o dużym stopniu niezawodności nowoczesne procesory posiadają cechy wspierające implementacje i działanie systemów operacyjnych. Cechy te to:
* tryby pracy:
o uprzywilejowany (kernel/supervisor mode),
o chroniony (protected mode), w chronionym trybie pracy niektóre potencjalnie niebezpieczne instrukcje procesora są niedostępne, a próba wywołania ich spowoduje wystąpienie przerwania (obsługiwanego dalej przez system). Nawiązując do budowy systemu operacyjnego, wszelka aktywność zadań (aplikacji) użytkownika oraz powłoki odbywa się w chronionym trybie pracy (protected mode). Jądro systemu operacyjnego pracuje w trybie uprzywilejowanym (kernel mode).
* jednostki zarządzania i ochrony pamięci, pozwalające definiować obszary pamięci np. tylko do odczytu lub tylko do zapisu przez wybrany proces.
* kontrolery przerwań, gdy licznik taktujący system operacyjny wyliczy żądany interwał czasowy informacja o tym zdarzeniu przekazywana jest do procesora przy pomocy przerwania. Podobnie informacje na temat innych zdarzeń przekazywane są do procesora a w ten sposób do systemu operacyjnego przy pomocy mechanizmu przerwań.
* specjalistyczne akceleratory sprzętowe służące do przyśpieszania pewnych typowych czynności wykonywanych przez systemy operacyjne. Ta funkcjonalność jest rzadko spotykana i zazwyczaj spotyka się ją we wbudowanych systemach RTOS.
Ochrona i zarządzanie pamięcią
Jednym z podstawowych mechanizmów umożliwiających tworzenie niezawodnych środowisk wykonawczych są mechanizmy zarządzania i ochrony pamięci. Działanie tych mechanizmów opiera się na wsparciu sprzętowym dostarczanym przez kontrolery pamięci wbudowane w procesor (lub chipset).
Ogólna zasada polega na wydzielaniu poszczególnym procesom obszarów pamięci do wyłącznego użytku. Oznacza to, że tylko dany proces może pisać lub czytać tylko do/z danego obszaru. Próba zapisu odczytu z nieprzydzielonego procesowi obszaru kończy się wywołaniem przerwania przerywającego wykonywanie zadania.
Technicznie ochrona realizowana jest poprzez podział obszaru pamięci na segmenty i strony. Zadanie użytkownika, które jest aktywowane w danej chwili przywraca swój kontekst poprzez ustawienie odpowiednich rejestrów CPU jak i również rejestrów kontrolnych jednostki zarządzania pamięcią.
Dzięki ochronie pamięci awaria jednego zadania i próba błędnego nadpisana przestrzeni adresowej innych zadań jest niemożliwa. W ten sposób są również chronione dane potrzebne systemowi operacyjnemu do działania, przez co można zatrzymać uszkodzone zadanie. Należy zwrócić uwagę, że aktywność systemu operacyjnego jak i elementów typu sterowniki sprzętowe odbywa się w trybie kernel w którym ochrona pamięci nie działa lub jest mocno ograniczona (zależnie od rodzaju CPU). Wobec tego jest możliwe awaryjne zatrzymanie systemu na skutek błędnego działania kodu systemu operacyjnego lub sterowników sprzętowych.
Kołobrzeg ,Ciechanów ,Wejherowo ,Dębica ,Nysa ,Kutno ,Krosno ,Starogard Gdański ,Skarżysko-Kamienna ,Skierniewice ,Radomsko ,Wodzisław Śląski ,Puławy ,Tarnobrzeg ,Legionowo ,Zawiercie,Starachowice ,Ostrołęka ,Świętochłowice ,Pruszków ,Ełk ,Racibórz ,Biała Podlaska ,Zgierz ,Będzin ,Piekary Śląskie ,Świdnica ,Tczew ,Tarnowskie Góry ,Mielec ,Bełchatów ,Żory ,Łomża ,Leszno,Stalowa Wola ,Kędzierzyn-Koźle ,Tomaszów Mazowiecki ,Zamość ,Przemyśl ,Chełm ,Głogów ,Suwałki ,Gniezno ,Pabianice ,Stargard Szczeciński ,Siemianowice Śląskie ,Ostrów Wielkopolski ,Ostrowiec Świętokrzyski ,Piła ,Mysłowice ,Lubin ,Inowrocław ,Siedlce ,Piotrków Trybunalski ,Konin ,Nowy Sącz ,Jelenia Góra ,Jastrzębie-Zdrój ,Jaworzno ,Słupsk ,Grudziądz ,Legnica ,Koszalin ,Kalisz ,Chorzów,Tarnów ,Zielona Góra ,Włocławek ,Wałbrzych ,Gorzów Wielkopolski ,Elbląg ,Opole ,Płock ,Dąbrowa Górnicza ,Tychy ,Rybnik ,Ruda Śląska ,Rzeszów ,Bielsko-Biała ,Olsztyn ,Bytom ,Zabrze ,Gliwice,Kielce ,Toruń ,Sosnowiec ,Radom ,Częstochowa ,Gdynia ,Białystok ,Katowice ,Lublin ,Bydgoszcz ,Szczecin ,Gdańsk ,Poznań ,Wrocław ,Łódź ,Kraków ,Warszawa ,