Systemy Operacyjne informacje dodatkowe Rodzaje oprogramowania Oprogramowanie Systemowe Użytkowe (aplikacje) SO Wspomagające, (Systemy pomocnicze Operacyjne) (utility) Oprogramowanie systemowe Zawiera programy, które kontrolują różne części systemu komputerowego i koordynują ich pracę tak, żeby mogły współpracować efektywnie i bez interferencji. Jego działanie obejmuje takie zadania jak: - tłumaczenie naszych poleceń i komend na zrozumiałe dla komputera; - zarządzanie naszymi plikami z programami i danymi; - umożliwienie współpracy sprzętu i oprogramowania użytkowego. Oprogramowanie systemowe dzieli się zazwyczaj na: - system operacyjny (OS- Operating System) - programy użytkowe (ale Utility, a nie application), pomocnicze, które spełniają funkcje wspomagające działanie systemu operacyjnego, jak np. sprawdzenie PC pod kątem wirusów, czy odzyskiwanie plików, straconych niechcący). System Operacyjny Główny zbiór programów, zarządzający działaniem systemu komputerowego. OS wiąże potrzeby: - użytkownika - aplikacji - sprzętu. Tworzy środowisko do uruchamiania i kontroli zadań użytkownika. W tym celu 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 zapewnia równolegle wykonywanym zadaniom jednolity, wolny od interferencji dostęp do sprzętu. Dodatkowe przykładowe zadania SO: • ustalanie połączeń sieciowych • zarządzanie plikami. System operacyjny jako interfejs pomiędzy komputerem a człowiekiem. Użytkownik Aplikacja System Operacyjny Sprzęt Użytkownik nie ma bezpośredniego dostępu do sprzętu. Funkcje API System operacyjny udostępnia: • Funkcje API (Application Programming Interface) lub • Zestaw wywołań systemowych Interfejs systemu (konieczny!) a interfejs użytkownika (opcjonalny) Budowa systemu operacyjnego Budowa systemu operacyjnego Trzy główne elementy: jądro systemu, wykonujące i kontrolujące zadania SO 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: - modułu zapewniającego synchronizację 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. Podział systemów operacyjnych Najszerszym, ale najbardziej podstawowym kryterium podziału systemów operacyjnych jest podział na: • systemy operacyjne czasu rzeczywistego (RTOS – Real Time Operating System) • 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. Podział systemów operacyjnych 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. Podział systemów operacyjnych Pod względem środowiska użytego do implementacji systemu można wprowadzić podział na: • programowe • sprzętowe. Zwykle 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. Różnice między SO Inne kryteria rozróżniania SO: typ interfejsu (GUI – Graphical User Interface vs. CL – Command Line) czy przeznaczony do użytku osobistego czy sieciowego? dla jakiego typu CPU był projektowany (czy wspiera wieloprocesorowy system, czy techniki przyśpieszające?) Funkcje SO: 1) Bootowanie komputera i konfigurowanie urządzeń. 2) Łączność z użytkownikiem. 3) Zarządzanie zasobami i zadaniami. Zarządzanie zasobami: • 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 - program w stanie uruchomionym) • tworzenie i usuwanie procesu, • wstrzymywanie i przywracanie procesu, • zapewnienie mechanizmów pozwalających na synchronizację procesów oraz komunikację między procesami. Algorytmy szeregowania Algorytmy planowania dostępu do procesora: a) FCFS (First-Come, First-Served) najprostszy, niewywłaszczający, implementowany za pomocą kolejki FIFO: może spowodować efekt konwoju; b) SJF (Shortest-Job-First) wiąże z każdym procesem długość jego najbliższej z faz procesora, zapewnia minimalny średni czas oczekiwania; może być wywłaszczający lub nie. Algorytmy szeregowania c) algorytm Round-Robin czas procesora podzielony na kwanty, kolejka procesów gotowych traktowana jako kolejka cykliczna, algorytm z wywłaszczeniem. Przykład: a) Proces 1 Proces 2 0 (24+27+30)/3=27 24 Proces 3 27 30 b) 0 3 (3+6+30)/3=13 6 30 c) Proces 2 Proces 1 0 cd. Proces 1 22 4 Proces 3 7 Proces 1 26 30 Proces 1 10 14 Proces 1 18 Funkcje SO –c.d.: 4) Monitorowanie działania 5) Zarządzanie plikami - pozwala zorganizować dysk - trzyma dostęp do plików na dysku Zwykle – struktura hierarchiczna. Ścieżka dostępu do pliku. Mapowanie plików na nośniku danych. 6) Bezpieczeństwo Hasła, logowanie. Funkcje SO –c.d.: 7) Zarządzanie pamięcią. 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. Pamięć wirtualna. Proces szamotania. Pamięć wirtualna pod Windows 7 Komputer (ppm) Właściwości Zaawansowane ustawienia systemu Efekty wizualne, planowanie użycia procesora, wykorzystanie pamięci i pamięć wirtualna (Ustawienia) Zaawansowane Opcje wydajności Pamięć wirtualna Zmień Zaplecze sprzętowe systemów operacyjnych Cechy wspierające implementacje i działanie systemów operacyjnych: • tryby pracy: - uprzywilejowany (kernel/supervisor mode), - chroniony (protected mode), • jednostki zarządzania i ochrony pamięci, • kontrolery przerwań, • specjalistyczne akceleratory sprzętowe. Funkcje SO –c.d.: 8) Zarządzanie We-Wy system buforowania, interfejs urządzeń głównych, sterowniki (kontrolery) dla specyficznych urządzeń. 9) Zarządzanie nośnikami danych • zarządzanie wolną pamięcią, • alokacją zapisu, • planowaniem dysku. Techniki zwiększające efektywność przetwarzania. Przetwarzanie Konkurencyjne: wielozadaniowość wielowątkowość podział czasu (time-sharing) Symultaniczne – przetwarzanie wieloprocesorowe. Spooling. Buforowanie. Konkurencyjne Rozpoczęcie edycji dokumentu (np. WORD) (1) Ładowanie strony WWW (2) Obliczenia w arkuszu kalkulacyjnym Kontynuacja (1) Zakończenie (2) (3) (4) (5) Symultanicznie CPU1 CPU2 (1) (2) (3) (5) (4) Przegląd popularnych SO 1) DOS (Disk Operating System): - PC DOS (dla IBM) - MS DOS (dla kompatybilnych) Ważne cechy: 16-bitowy z systemem plików FAT (File Allocation Table) jednozadaniowy ograniczenie na nazwy (8 znaków + 3 rozszerzenie) DOS tryb tekstowy (CLI – Command Line Interface) Przykładowe polecenia: COPY – kopiuje,(COPY BOSS:A WORKER) DIR – wyświetla pliki, (DIR A:) DEL – usuwa, (DEL A: DOLLAR) CD – przechodzi do katalogu,(CD HOME) FORMAT A: DR-DOS (Digital Research Disk Operating System) WINDOWS 2) WINDOWS: a) Windows 3.x, np. 3.0, 3.1, 3.11 - nakładki (a nie SO) - graficzny interfejs (GUI – Graphic User Interface) - adresowanie: do 1 MB RAMu b) Windows 95: - 32-bitowy - oparty na systemie plików FAT WINDOWS – interfejs graficzny GUI – wielozadaniowy – znosi ograniczenia na krótkie nazwy – dwa jądra (DOS i WINDOWS) c) Windows 98, Second Edition – to, co Windows 95 oraz : - obsługuje DVD i USB - lepsze wsparcie dla dużych dysków - wyższy stopień integracji z Internetem WINDOWS d) Windows NT – standardowy sieciowy SO, opracowany przez Microsoft przed 2000r: - oparty na systemie plików NTFS (New Technology File System) - wersja Workstation dla pojedynczych użytkowników - Serwer wersja dla małych LANów (Local Area Network) - pozostałe cechy – jak poprzednie Rozdwojenie? e) Windows ME (milenium Edition) - oparty na technologii Windows 9x - wspiera UPnP (Uniwersal Plug and Play) - używa standardowych protokołów internetowych - szybszy proces bootowania - poprawione możliwości multimedialne - lepszy system ochrony f) Windows 2000 – upgrade dla Windows NT: - edycje Professional i Server - bardzo stabilny - wieloprocesowy Jednocześnie – seria serwerowa: g) Windows Server 2003 WINDOWS h) Windows XP (for Experience) (2001) - nowy interfejs - przełączanie między kontami użytkowników bez rebootowania, a nawet zamykania programów - narzędzie automatycznej aktualizacji systemu (późniejsze Service Pack 1, SP 2, SP 3) - 64 bitowa edycja! WINDOWS i) Windows Vista (2007) - CCC (Clear Confident Connected) ??? - duże wymagania sprzętowe - bezpieczeństwo kosztem kompatybilności - możliwości sieciowe - wersja 32 bitowa i 64 bitowa WINDOWS j) Windows 7 (2009) – szybkość, prostota, łączność bezprzewodowa. Wymagania sprzętowe (dla wersji 32-bitowej): - procesor 1 GHz 1 GB pamięci RAM 16 GB miejsca na dysku karta graficzna zgodna z DirectX 9c Dla wersji 64-bitowej: - 2 GB pamięci RAM - 20 GB miejsca na dysku WINDOWS k) Windows 8 (2012) – kafelkowy SO Microsoftu: - nowy interfejs użytkownika (Modern UI -Microsoft design language lub Metro UI) - wszystkie opcje przygotowane z myślą o urządzeniach dotykowych - łączność pozwala na włączenie trybu samolotowego oraz modułu WiFi - update SO – jeden przycisk WINDOWS l) Windows 10 (2014) Priorytety – urządzenia mobilne oraz chmura: - wraca pełnoprawne menu Start - kafelkowy interfejs Metro nie będzie wyłącznie kafelkowy - obietnica działania na wszystkich platformach Inne przykłady SO • Mac OS (Macintosh OS) – od 1984 • Snow Leopard (następca Mac OS X 10.5) • UNIX – sieciowy SO, nie był zbudowany wokół jednej rodziny procesorów • LINUX („No Gates, No Windows and Apache Inside”) • Google Chrom OS – aplikacje internetowe • Android – dla urządzeń mobilnych LINUX – przykład wolnego i otwartego oprogramowania (WiOO, FLOSS) • 1991 Linus Torvalds – jądro systemu • 1994 – pierwszy system • Oprogramowanie Otwarte – na zasadach licencji GPL (General Public License) • wersje komercyjne(Red Hat, Debian, Mandrake, SUSE) • interfejs CL oraz GUI • środowiska serwerowe • bezpieczeństwo • wersja UBUNTU Przyszłość SO • • • • bardziej przyjazny (np. interfejs głosowy?) stabilny i samonaprawiający się wspierający wieloprocesorowość głównie do współpracy a oprogramowaniem z Internetu Chmura (Cloud computing) - wirtualna chmura dostępnych usług: - prywatna - publiczna (Amazon, Google, Microsoft itd.)