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

Podobne dokumenty