Wykład 7
Transkrypt
Wykład 7
Spis treści 1 Operacje wejścia/wyjścia 1.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Organizacja operacji we/wy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 System wejścia/wyjścia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 3 6 2 Inne zagadnienia 2.1 Architektury systemów operacyjnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Rozruch systemu komputerowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Bezpieczeństwo i ochrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 10 10 1 1.1 Operacje wejścia/wyjścia Wprowadzenie Schemat ogólny systemu komputerowego Rysunek 1: Ogólna struktura systemu komputerowego Współczesne systemy komputerowe moga˛ znacznie odbiegać od zaprezentowanego schematu, mimo to ogólna struktura pozostaje zachowana. W przypadku komputerów osobistych magistrala systemowa zwykle podzielona jest na odcinki charakteryzujace ˛ si˛e różna˛ przepustowościa.˛ Rol˛e interfejsów mi˛edzy nimi pełnia˛ mostek północny (umiejscowiony pomi˛edzy magistralami procesora, pami˛eci oraz “szybsza” ˛ magistrala˛ systemowa˛ — dawniej PCI, dziś, PCI Express) oraz mostek południowy (pomi˛edzy “szybsza” ˛ magistrala˛ systemowa˛ a “wolniejsza” ˛ — dawniej ISA Local Bus, dziś zwykle PCI). W niektórych systemach wyst˛epowała ponadto magistrala AGP przeznaczona dla kart graficznych, dołaczona ˛ do mostka północnego. Współczesne procesory coraz cz˛eściej przejmuja˛ z mostka północnego rol˛e kontrolera pami˛eci — np. architektury procesorów Intel Nehalem czy Sandy Bridge. Jednostka centralna (CPU) • Procesor, jednostka centralna - “serce” komputera • Odpowiada za przetwarzanie informacji • Komunikuje si˛e poprzez magistral˛e systemowa˛ – Pierwotnie wspólna szyna (także w systemach SMP) 1 – Z czasem rozbudowa i specjalizacja • Operuje na zawartości pami˛eci operacyjnej • Różne architektury (i386, Sparc, Power PC. . . ) • Obecnie integruje także kontroler pami˛eci, pami˛eć cache oraz sterowniki magistrali PCI-Express Termin “jednostka centralna” bywa odnoszony do całego komputera — obudowy z płyta˛ główna,˛ pami˛ecia,˛ procesorem i kartami rozszerzeń oraz dyskami twardymi czy nap˛edami optycznymi, ale bez urzadzeń ˛ peryferyjnych dołaczanych ˛ z zewnatrz. ˛ Sterownik (kontroler) urzadzenia ˛ • Dedykowany komunikacji z konkretna˛ klasa˛ urzadzeń ˛ • Procesor/układ specjalizowany • Posiada rejestry sterujace ˛ • Bufor do komunikacji poprzez magistral˛e systemowa˛ • Przykłady: – karty graficzne – karty muzyczne – kontrolery dysków twardych – karty sieciowe – kontrolery wejścia/wyjścia (USB, FireWire, Szeregowe) Sterownik (kontroler) urzadzenia ˛ Organizacja komunikacji z kontrolerem • Rozkazy wejścia/wyjścia • Wejście/wyjście odwzorowane w pami˛eci Rejestry kontrolera Statusu opisuje stan urzadzenia ˛ Sterujacy ˛ konfiguracja i sterowanie praca˛ Danych wejściowych dane przychodzace ˛ do systemu Danych wyjściowych dane wysyłane Rejestry danych najcz˛eściej sa˛ wielobajtowe lub maja˛ postać kolejek. Kontroler może mieć wi˛eksza˛ liczb˛e rejestrów sterujacych ˛ i statusu. 2 1.2 Organizacja operacji we/wy Struktura wejścia - wyjścia Sposoby realizacji operacji wejścia/wyjścia • Pooling (odpytywanie) • Przerwania • Bezpośredni dost˛ep do pami˛eci Pooling Procedura wysyłania bajtu (słowa) danych 1. Sprawdzanie flagi zaj˛ety, aż urzadzenie ˛ b˛edzie gotowe 2. Gdy urzadzenie ˛ jest gotowe: • Ustawienie rejestru sterujacego ˛ (wysyłanie danych) • Zapis do rejestru danych wyjściowych • Ustawienie flagi gotowości danych 3. Gdy urzadzenie ˛ stwierdzi ustawienie flagi gotowości: • Ustawia flag˛e zaj˛ety • Wykonanie operacji wejścia/wyjścia • Wyczyszczenie flagi gotowości, ewentualne ustawienie flagi bł˛edów oraz wyczyszczenie flagi zaj˛ety Spostrzeżenie: W punkcie 1 procesor realizuje aktywne oczekiwanie. Pooling Zalety i wady + Prostota – Komunikacja sprowadza si˛e do ustawienia rejestrów urzadzenia ˛ i sprawdzania rejestrów statusu – Obcia˛żenie procesora – Na systemie operacyjnym spoczywa konieczność periodycznego sprawdzania stanu urzadzenia ˛ – Ryzyko utraty danych, gdy obsługa urzadzenia ˛ si˛e spóźni – Aktywne czekanie na dost˛epność urzadzenia ˛ Wejście/wyjście z użyciem przerwań Synchroniczna obsługa I/O 1. Program użytkownika zgłasza zapotrzebowanie na operacj˛e we/wy 2. System operacyjny inicjuje operacj˛e we/wy i oczekuje na jej zakończenie 3. Urzadzenie ˛ informuje o zakończeniu operacji 4. System operacyjny obsługuje urzadzenie ˛ i zwraca sterowanie do programu użytkownika 3 Wejście/wyjście z użyciem przerwań Asynchroniczna obsługa I/O 1. Program użytkownika zgłasza zapotrzebowanie 2. System operacyjny inicjuje operacj˛e wejścia/wyjścia po czym wznawia przetwarzanie 3. Urzadzenie ˛ informuje o zakończeniu operacji 4. System operacyjny ponownie zawiesza wykonywanie programu i obsługuje urzadzenie ˛ 5. System operacyjny wznawia przetwarzanie programu użytkownika Wejście/wyjście z użyciem przerwań Schemat Rysunek 5: Schemat operacji wejścia/wyjścia z użyciem przerwań. Wejście/wyjście z użyciem przerwań Mechanizmy pomocnicze • Kontroler przerwań – określanie źródeł przerwań – kolejkowanie obsługi przerwań • Tablice stanów urzadzeń ˛ – informacje o stanie urzadzenia ˛ – informacje o aktualnie przetwarzanym zamówieniu – powiazanie ˛ przerwania od urzadzenia ˛ z oczekujacym ˛ procesem • Kolejki zamówień – kolejka zamówień na urzadzenie ˛ 4 Wejście/wyjście z użyciem przerwań Zalety i wady + Urzadzenia ˛ zgłaszaja˛ potrzeb˛e obsługi – w czasie trwania operacji procesor może być przydzielony innemu procesowi – minimalizacja możliwości “przeoczenia” zdarzenia – Zaangażowanie procesora – kopiowanie danych pomi˛edzy buforami urzadzenia ˛ a pami˛ecia˛ – za każdym razem operacja sprowadza si˛e do przesłania jednego słowa danych W przypadku terminala czy portu szeregowego, przerwanie generowane jest o każdym odczytanym/wysłanym znaku. Przy powolnym napływie danych nie stanowi to problemu, ale w przypadku szybkich urzadzeń ˛ mogło by paraliżować działanie systemu. Stad ˛ też zaistniała konieczność wypracowania mechanizmów przejmujacych ˛ od procesora cz˛eść obowiazków ˛ zwiazanych ˛ z przesyłaniem danych pomi˛edzy sterownikami urzadzeń ˛ a pami˛ecia˛ operacyjna.˛ Bezpośredni dost˛ep do pami˛eci PIO — programowane wejście/wyjście • Dane przesyłane do urzadzenia ˛ po jednym słowie • Wykorzystanie poolingu lub DMA • Podejście takie jest nieefektywne! DMA — bezpośredni dost˛ep do pami˛eci • Specjalizowany kontroler steruje przepływem danych pomi˛edzy sterownikami urzadzeń ˛ a pami˛ecia˛ operacyjna˛ • Stosowane przy transferze wi˛ekszych ilości danych DMA - Direct Memory Access 1. Urzadzenie ˛ zgłasza gotowość (przerwanie) 2. System operacyjny informuje kontroler DMA z jakiego urzadzenia ˛ i pod jaki adres ma przesłać dane po czym wraca do wykonywania programu 3. Kontroler DMA przeprowadza transfer po czym zgłasza systemowi jego zakończenie (przerwanie) 4. System obsługuje przerwanie i kontynuuje przetwarzanie DMA Tryby pracy Transfer blokowy kontroler DMA przejmuje kontrol˛e nad magistrala˛ systemowa˛ do czasu zakończenia transmisji Kradzież cykli kontroler DMA po każdym przesłanym słowie zwraca magistral˛e systemowa˛ procesorowi i wyst˛epuje z nowym zamówieniem Tryb transparentny kontroler DMA prowadzi transmisje w czasie, gdy procesor jest zaj˛ety obliczeniami 5 1.3 System wejścia/wyjścia Cechy urzadze ˛ ń wejścia/wyjścia • Tryb przesyłania danych – Urzadzenia ˛ blokowe — blok bajtów – Urzadzenia ˛ znakowe — po jednym znaku • Sposób dost˛epu – Dost˛ep sekwencyjny — uporzadkowanie ˛ danych narzucane przez urzadzenie ˛ – Dost˛ep swobodny — możliwość dost˛epu do danych w dowolnej kolejności • Organizacja transmisji – Synchroniczne – Asynchroniczne Cechy urzadze ˛ ń wejścia/wyjścia • Możliwość współdzielenia – Dost˛ep na zasadzie wyłaczności ˛ – Urzadzenie ˛ współdzielone • Kierunek transmisji – Tylko zapis – Tylko odczyt – Zapis i odczyt • Szybkość urzadzenia ˛ 2 2.1 Inne zagadnienia Architektury systemów operacyjnych Jadro ˛ systemu operacyjnego Jadro ˛ systemu operacyjnego pośredniczy pomi˛edzy sprz˛etem a programami użytkownika (aplikacjami). 6 Jadro ˛ systemu operacyjnego • Odpowiada za organizacj˛e pracy systemu operacyjnego – Zarzadzanie ˛ procesami – Zarzadzanie ˛ pami˛ecia˛ – Zarzadzanie ˛ urzadzeniami ˛ • Udost˛epnia aplikacjom mechanizm wywołań systemowych – Udost˛epnianie usług jadra ˛ programom użytkownika – Operacje wejścia/wyjścia, tworzenie i synchronizacja procesów itp. • Różne architektury – Jadro ˛ monolityczne – Mikrojadro ˛ – Jadro ˛ hybrydowe Tryby pracy CPU Tryb jadra ˛ Uprzywilejowany tryb pracy procesora, umożliwia dost˛ep do całego obszaru pami˛eci, w tym stron zarezerwowanych dla jadra ˛ systemu. Tryb użytkownika Pami˛eć udost˛epniana poprzez mechanizmy pami˛eci wirtualnej, możliwa zarówno izolacja jak i współdzielenie obszarów pami˛eci. • Kontrola dost˛epu do pami˛eci. • Dost˛ep do urzadzeń ˛ za pośrednictwem wywołań systemowych. Przestrzenie adresowe Przestrzeń jadra ˛ Obszar pami˛eci zarezerwowany dla jadra ˛ systemu operacyjnego, zależnie od architektury jadra ˛ może obejmować także sterowniki urzadzeń ˛ oraz systemy plików. Przestrzeń użytkownika Obszar pami˛eci użytkowany przez procesy użytkownika poprzez mechanizmy pami˛eci wirtualnej. Jadro ˛ monolityczne • Wszystkie elementy systemu operacyjnego pracuja˛ w trybie jadra ˛ – – – – – Zarzadzanie ˛ procesami i pami˛ecia˛ Systemy plików Wywołania systemowe Komunikacja mi˛edzyprocesowa Sterowniki urzadzeń ˛ • Programom użytkownika udost˛epniany jest interfejs do usług jadra ˛ w postaci wywołań systemowych • Niektóre systemy pozwalaja˛ na dynamiczne ładowanie modułów jadra ˛ — nie mylić z jadrami ˛ hybrydowymi! • Przykłady: Unix (*BSD, Solaris do 4.x, AIX, HP-UX), Linux, Windows 9x, DOS 7 Jadro ˛ monolityczne Rysunek 6: System z jadrem ˛ monolitycznym Mikrojadro ˛ • Jadro ˛ udost˛epnia podstawowe mechanizmy – Podstawowa komunikacja mi˛edzyprocesowa – Zarzadzanie ˛ procesami – Zarzadzanie ˛ pami˛ecia˛ • Usługi systemowe i sterowniki urzadzeń ˛ – Udost˛epniane przez programy zwane serwerami – Działaja˛ w przestrzeni użytkownika – Komunikacja mi˛edzy serwerami a aplikacjami za pośrednictwem serwera IPC – Komunikacja pomi˛edzy serwerami za pośrednictwem podstawowego IPC • Dodatkowy nakład czasowy na komunikacj˛e — niższa wydajność • Sterowniki urzadzeń ˛ oraz usługi systemowe obj˛ete sa˛ ochrona˛ pami˛eci • Przykłady: Hurd, QNX Mikrojadro ˛ Rysunek 7: System z mikrojadrem ˛ 8 Jadro ˛ hybrydowe • W trybie jadra ˛ działaja˛ podstawowe usługi systemowe – Komunikacja mi˛edzyprocesowa – Zarzadzanie ˛ procesami – Zarzadzanie ˛ pami˛ecia˛ – Sterowniki urzadzeń ˛ • W trybie użytkownika działaja˛ pozostałe usługi systemowe — analogicznie jak w przypadku mikrojadra ˛ • Mniejsze narzuty czasowe na przełaczanie ˛ kontekstu i przechodzenie mi˛edzy trybem użytkownika a jadra ˛ • Gorsza ochrona przed bł˛edami • Cz˛esto uważane za poj˛ecie marketingowe • Przykłady: Windows NT, XNU/Darwin, NetWare Jadro ˛ hybrydowe Rysunek 8: System z jadrem ˛ hybrydowym Exokernel • Koncepcja rozwijana w MIT • Obok tradycyjnego jadra ˛ — dodatkowe lekkie jadro ˛ – Niskopoziomowy dost˛ep do sprz˛etu – Współdzielenie urzadzeń ˛ i ochrona • Decyzja programisty – Wykorzystanie mechanizmów normalnego jadra ˛ – Implementacja dost˛epu niskopoziomowego 9 Rysunek 9: Egzokernel Źródło: wikipedia 2.2 Rozruch systemu komputerowego Rozruch systemu komputerowego 0. Właczenie ˛ zasilania 1. Uruchomienie programu rozruchowego (BIOS) 2. Testy POST (Power On Self-Test) • test konfiguracji procesora • test pami˛eci • test konfiguracji pami˛eci masowych 3. Inicjalizacja kart rozszerzeń z własnym BIOS 4. Załadowanie systemu operacyjnego i przekazanie mu sterowania 2.3 Bezpieczeństwo i ochrona Bezpieczeństwo i ochrona – czym sa˛ Ochrona Mechanizmy kontroli dost˛epu do zasobów systemu. Kontrola ta obejmuje użytkowników oraz uruchomione przez nich programy (procesy). Bezpieczeństwo Mechanizmy zapewniajace ˛ integralność systemu oraz danych w nim przechowywanych. Ochrona Ochrona systemu i jego zasobów przed zagrożeniami pochodzacymi ˛ z wn˛etrza systemu. • Kontrola dost˛epu do zasobów: – pami˛eci 10 – plików – czasu procesora – urzadzeń ˛ wejścia/wyjścia Bezpieczeństwo Ochrona systemu i jego zasobów przed zagrożeniami pochodzacymi ˛ z otoczenia systemu Poziomy bezpieczeństwa: 1. Fizyczne — zabezpieczenie fizycznego dost˛epu do sprz˛etu 2. Ludzkie — odpowiedni dobór użytkowników systemu 3. Sieciowe — ochrona przed zagrożeniami wia˛żacymi ˛ si˛e z wykorzystaniem sieci 4. Systemu operacyjnego — mechanizmy obronne wbudowane w system operacyjny Bezpieczeństwo systemu operacyjnego Uwierzytelnianie Uwierzytelnianie (autentykacja) Potwierdzenie tożsamości użytkownika. • Element fizyczny – klucz, karta • Wiedza użytkownika – login i hasło • Atrybut użytkownika – biometria, grafologia Hasła i ich słabości • Najprostsza i najpowszechniejsza metoda uwierzytelniania • Podatne na wiele ataków: – odgadni˛ecie ∗ na podstawie wiedzy o użytkowniku ∗ metoda˛ słownikowa˛ lub siłowa˛ – podgladanie ˛ ∗ rejestrowanie naciskanych klawiszy ∗ sniffing – zgubienie notatek – przekazanie hasła osobom trzecim Sposoby poprawy bezpieczeństwa haseł • Komplikowanie haseł: – minimum 8 znaków – wielkie/małe litery, znaki przestankowe, cyfry • Hasła losowe • Periodyczna zmiana haseł • Hasła jednorazowe Uwaga: Nadmierne skomplikowanie hasła powoduje, ze użytkownik je najprawdopodobniej zapisze (a potem zgubi. . . ). 11 Biometria • Wykorzystanie niepowtarzalnych cech człowieka: – odcisk palca – rozpoznawanie dłoni – wzór t˛eczówki oka – rozpoznawanie twarzy • Coraz wi˛eksza popularność Bezpieczeństwo systemu operacyjnego Zagrożenia programowe Koń trojański Oprogramowanie (lub jego fragmenty), które pod przykrywka˛ niegroźnych funkcji użytkowych wykonuje inne działania Boczne/tylne wejście (back door) Ukryta w oprogramowaniu użytkowym możliwość uzyskania nieautoryzowanego dost˛epu do systemu. Ataki typu przepełnienie stosu/bufora Atak polega na umieszczeniu fragmentu kodu w pami˛eci atakowanego komputera, a nast˛epnie nadpisaniu adresu powrotu z funkcji adresem poczatku ˛ umieszczonego kodu. Bezpieczeństwo systemu operacyjnego Zagrożenia systemowe Robaki Programy umiejace ˛ si˛e samodzielnie rozprzestrzeniać w środowisku sieciowym. Moga˛ przenosić złośliwy kod. Wirusy Mniej lub bardziej szkodliwe oprogramowanie, w przeciwieństwie do robaków nie maja˛ możliwości samodzielnego rozmnażania si˛e. Ataki DoS/DDoS Ataki polegajace ˛ na uniemożliwieniu korzystania z systemu. 12