System operacyjny Linux
|
|
- Irena Rosińska
- 9 lat temu
- Przeglądów:
Transkrypt
1 System operacyjny Linux Perspektywa historyczna Podstawy projektu Moduły jądra Zarządzanie procesami Planowanie Zarządzanie pamięcią Systemy plików Wejście i wyjście Komunikacja międzyprocesowa Bezpieczeństwo Wiesław Płaczek Systemy Operacyjne: Wykład 12 1
2 Perspektywa historyczna 1969: 1-sza wersja systemu UNIX opracowana przez Kena Thompsona w Bell Labs (AT&T) dla minikomputera PDP : 3-cia wersja systemu UNIX napisana w języku C przez Kena Thompsona i Dennisa Richiego (autor języka C) przenośność! Ważniejsze odmiany systemu UNIX: System V wersja 4 (SVR4) wersja opracowana przez AT&T. BSD (Berkeley Software Distribution) odmiana opracowana przez University of California w Berkeley; najnowsza wersja: FreeBSD. Solaris system operacyjny firmy Sun Microsystems, oparty o SVR4 i BSD; najbardziej rozpowszechniona komercyjna implementacja Uniksa. Linux system operacyjny oparty na SVR4 i 4.3BSD, ale jądro całkowicie oryginalne, napisane niezależnie; najpopularniejsza obecnie odmiana Uniksa. 1991: Linus Torvalds, student informatyki Uniwersytetu w Helsinkach, napisał małe, lecz kompletne jądro systemu operacyjnego dla 32-bitowego procesora Intel 80386, który nazwał Linux. Kod źródłowy Linuxa został od razu udostępniony bezpłatnie w sieci Internet, co spowodowało, że do jego dalszego rozwoju włączyło się wielu użytkowników z całego świata taki rozwój systemu trwa do dziś. Część elementów systemu została zapożyczona z innych projektów (np. GNU). Wiesław Płaczek Systemy Operacyjne: Wykład 12 2
3 Licencja i rozpowszechnianie Linuxa Jądro systemu Linux jest rozpowszechniane w ramach licencji GNU General Public Licence (GPL), określonej przez konsorcjum Free Software Foundation (FSF), jako tzw. oprogramowanie w wolnym obiegu (free software). Zakaz prywatyzacji produktów powstałych z wykorzystaniem Linuxa lub pochodnych systemu (tzn. odmian zachowujących standardy Linuxa). Oprogramowanie nie może być redystrybuowane w formie czysto binarnej wraz z każdą dystrybucją binarną musi być udostępniony kod źródłowy. Dystrybucje Linuxa: Standardowe, prekompilowane zbiory pakietów, zwane dystrybucjami, zawierają podstawowy system Linux, narzędzia do instalowania systemu i zarządzania nim oraz gotowe do instalowania pakiety typowych narzędzi systemu UNIX. Pierwsze dystrybucje zarządzały pakietami jedynie przez dostarczanie środków do rozpakowywania wszystkich plików w odpowiednie miejsca; współczesne dystrybucje zawierają zawansowane zarządzanie pakietami. Większość obecnych dystrybucji stosuje lub przynajmniej rozpoznaje pakiety plików RPM ułatwiające instalację, rozbudowę i usuwanie oprogramowania. Wczesne dystrybucje: SLS, Slackware. Popularne dystrybucje: RedHat, Debian, SuSE, Caldera, Fedora itd. Wiesław Płaczek Systemy Operacyjne: Wykład 12 3
4 Podstawy projektu Linux jest wielodostępnym (multiuser), wielozadaniowym (multitasking) systemem operacyjnym z pełnym zestawem narzędzi zgodnych z systemem UNIX. System plików Linuxa jest zgodny z tradycyjną semantyką uniksową. Linux realizuje w pełni sieciowy standard systemu UNIX. Głównymi celami projektowymi są: szybkość, wydajność i standaryzacja. Linux został zaprojektowany tak, aby pozostawał w zgodzie z istotnymi dokumentami standardu POSIX (zbiór specyfikacji dotyczących wspólnych własności systemu operacyjnego); co najmniej dwie dystrybucje Linuxa zdobyły oficjalne certyfikaty komitetu normalizacyjnego POSIX. Interfejs programisty w systemie Linux odpowiada semantyce systemu SVR4 UNIX, a nie zachowaniu systemu BSD do realizacji semantyki BSD w miejscach, gdzie oba sposoby działania istotnie się różnią, służy oddzielny zbiór bibliotek. Wiesław Płaczek Systemy Operacyjne: Wykład 12 4
5 Programy zarządzania systemem Procesy użytkowe Składowe systemu Linux Pomocnicze programy użytkowe Kompilatory Wspólne biblioteki systemu Jądro Linux Ładowalne moduły jądra System Linux składa się z trzech głównych fragmentów kodu: Jądro: jest odpowiedzialne za realizację wszystkich istotnych abstrakcji systemu operacyjnego. Kod jądra jest wykonywany w trybie jądra (kernel mode) z pełnym dostępem do wszystkich fizycznych zasobów komputera. Cały kod jądra ze wszystkimi strukturami danych przebywa w tej samej pojedynczej przestrzeni adresowej Biblioteki systemowe: Definiują standardowy zbiór funkcji, za pomocą których aplikacje mogą współpracować z jądrem i które realizują wiele właściwości systemu operacyjnego nie wymagających pełnych przywilejów kodu jądra. Pomoce systemowe: wykonują osobne, specjalizowane zadania administracyjne. Wiesław Płaczek Systemy Operacyjne: Wykład 12 5
6 Moduły jądra Moduły jądra Moduły jądra są to części kodu jądra, które mogą być kompilowane, ładowane i usuwane niezależnie od reszty jądra. Moduł jądra zazwyczaj steruje pracą urządzenia, systemem plików lub protokołem sieciowym. Moduły jądra są przydatne z następujących powodów: W celu dodania nowych właściwości do jądra wystarczy napisać nowy moduł jądra i korzystać z niego bez przebudowy całego jądra. Interfejs modułów jądra umożliwia osobom postronnym pisanie i rozpowszechnianie na własnych zasadach modułów sterujących urządzeń lub systemów plików, których nie można rozpowszechniać na zasadach licencji GPL. Moduły jądra pozwalają na zestawianie systemu Linux z minimalnym, standardowym jądrem bez wbudowywania w nie żadnych dodatkowych modułów sterujących urządzeń. Moduły jądra są wspomagane przez trzy następujące składowe: Zarządzanie modułami (module management); Rejestracja modułów sterujących (driver registration); Mechanizm rozwiązywania konfliktów (conflict resolution). Wiesław Płaczek Systemy Operacyjne: Wykład 12 6
7 Zarządzanie modułami Umożliwia wprowadzenie modułów do pamięci i ich kontakt z resztą jądra. Zadanie ładowania modułu jądra podzielone jest na dwie sekcje: Zarządzanie częściami kodu modułu w pamięci jądra; Manipulowanie symbolami, do których modułom wolno się odwoływać. Ładowanie modułu przebiega w dwu etapach: Ładowacz modułu (module loader) zgłasza zapotrzebowanie na ciągły obszar pamięci wirtualnej jądra potrzebny dla modułu, a jądro zwraca adres przydzielonej pamięci. Wywołanie systemowe przekazuje moduł do jądra wraz niezbędną tablicą symboli, które chce on eksportować (moduł jest słowo po słowie kopiowany do zarezerwowanego obszaru, a tablica symboli jądra jest aktualizowana za pomocą nowych symboli). Ostatnią składową zarządzania modułem jest procedura zamawiania modułu (module requestor). Zarządza ładowaniem zamawianych modułów, których aktualnie nie ma w pamięci. Regularnie odpytuje jądro, sprawdzając, czy dynamicznie załadowany moduł jest ciągle w użyciu, a gdy nie jest już potrzebny, usuwa go z pamięci. Wiesław Płaczek Systemy Operacyjne: Wykład 12 7
8 Rejestrowanie modułu sterującego Umożliwia modułowi poinformowanie reszty jądra o udostępnieniu nowego modułu sterującego. Jądro utrzymuje dynamiczne tablice wszystkich znanych modułów sterujących (programów obsługi urządzeń, device drivers) i dostarcza zestawu procedur umożliwiających dodawanie do tych tablic lub usuwanie z nich modułów sterujących w dowolnej chwili. Tablice rejestracyjne zwierają następujące elementy: Moduły sterujące urządzeń: znakowych (terminale, myszki drukarki itp.), blokowych (programy obsługi dysków) oraz interfejsów sieciowych. Systemy plików: oprogramowanie realizujące procedury wywołań wirtualnego systemu plików Linuxa, zarówno lokalnego, jak i sieciowego. Protokoły sieciowe: cały protokół sieciowy, np. IPX, lub nowy zbiór reguł filtrowania pakietów przez zaporę ogniową. Format binarny: określa zasady rozpoznawania i ładowania pliku wykonywalnego nowego typu. Ponadto moduł może zarejestrować nowy zbiór wpisów w tablicach sysctl i /proc, aby umożliwić jego konfigurowanie dynamiczne. Wiesław Płaczek Systemy Operacyjne: Wykład 12 8
9 Rozwiązywanie konfliktów Rozwiązywanie konfliktów System Linux pracuje na sprzęcie występującym w różnych i zmieniających się konfiguracjach, mogą się więc pojawiać problemy konfliktów między modułami sterującymi urządzeń przy dostępie do tych samych zasobów. Linux posiada centralny mechanizm rozwiązywania konfliktów, który pozwala rozstrzygać o dostępie do zasobów sprzętowych. Do głównych celów tego mechanizmu należą: Ochrona modułów przed kolizjami przy dostępie do zasobów sprzętowych; Zapobieganie zaburzaniu działania istniejących modułów sterujących przez autosondy (autoprobes), tj. testy inicjowane przez moduły sterujące w celu automatycznego wykrycia konfiguracji sprzętu; Rozwiązywanie konfliktów między wieloma modułami sterującymi usiłującymi skorzystać z tego samego sprzętu. Aby osiągnąć te cele, jądro utrzymuje wykazy przydzielonych zasobów sprzętowych jeżeli jakiś moduł sterujący urządzenia chce sięgnąć po zasób, musi go najpierw zarezerwować w bazie danych jądra (w przypadku niepowodzenia rezerwacji moduł może zażądać swego usunięcia lub skorzystać ze środków zastępczych). Wiesław Płaczek Systemy Operacyjne: Wykład 12 9
10 Zarządzanie procesami System UNIX rozdziela tworzenie procesów i wykonywanie nowych programów na dwie odrębne operacje: Funkcja systemowa fork tworzy nowy proces. Wykonanie nowego programu odbywa się poprzez wywołanie funkcji exec. W systemie UNIX proces obejmuje całość informacji, które system operacyjny musi utrzymywać, aby śledzić kontekst wykonywania indywidualnego programu. W systemie Linux cechy procesu dzielą się na trzy grupy: tożsamość, jego środowisko i kontekst. Tożsamość procesu podstawowe elementy: Identyfikator procesu (process identifier PID) patrz ćwiczenia. Uwierzytelnienia (credentials): identyfikator użytkownika oraz jeden lub więcej identyfikatorów grup użytkowników określające prawa procesu do sięgania po zasoby systemowe i pliki. Indywidualność (personality): każdy proces ma przypisany identyfikator indywidualności, który może nieco zmieniać semantykę niektórych funkcji systemowych (nie występuje w tradycyjnych systemach UNIX). Ograniczoną kontrolę nad większością identyfikatorów sprawuje sam proces, jednak PID procesu pozostaje niezmienny aż do jego zakończenia. Wiesław Płaczek Systemy Operacyjne: Wykład 12 10
11 Środowisko procesu Środowisko procesu Proces dziedziczy środowisko po procesie macierzystym składa się ono z dwu wektorów zakończonych wskaźnikiem NULL: Wektor argumentów (argument vector) wykaz argumentów wywołania programu (zgodnie z konwencją zaczyna się od nazwy samego programu). Wektor środowiska (environment vector) wykaz par: nazwa = wartość, kojarzących nazwane zmienne środowiskowe z dowolnymi wartościami tekstowymi. Środowisko przechowywane jest w prywatnej przestrzeni adresowej procesu jako pierwsza dana na szczycie jego stosu. Przekazywanie zmiennych środowiskowych pomiędzy procesami oraz ich dziedziczenie przez proces potomny dostarcza elastycznych środków przekazywania informacji do różnych składowych oprogramowania systemowego na poziomie użytkowym. Mechanizm zmiennych środowiskowych umożliwia dostosowanie systemu operacyjnego do specjalnych potrzeb przez zestawianie go z procesów, a nie konfigurowanie jako systemu rozpatrywanego całościowo (np. użytkownicy mogą wybierać własne języki lub ulubione edytory niezależnie od siebie). Wiesław Płaczek Systemy Operacyjne: Wykład 12 11
12 Kontekst procesu Kontekst procesu: stan wykonywanego procesu rozpatrywany w dowolnej chwili czasu nieustannie się zmienia! Kontekst planowania: informacje potrzebne planiście do zawieszania i wznawiania procesu najważniejsza część kontekstu; należą do nich przechowywane kopie wszystkich rejestrów procesu, informacje o priorytecie planowania, wszystkich nie obsłużonych sygnałach, a także jądrowy stos procesu zarezerwowany do wyłącznego użytku przez kod w trybie jądra (np. przez funkcje systemowe, przerwania itp.). Rozliczanie: jądro utrzymuje informacje o zasobach zużywanych na bieżąco przez każdy z procesów oraz o ich łącznej ilości skonsumowanej przez proces w jego dotychczasowym przebiegu. Tablica plików: zawiera wskaźniki do jądrowych struktur plików wykonując systemowe operacje WE/WY procesy odwołują się do plików przy pomocy indeksów do tej tablicy. Kontekst systemu plików: odnosi się do zamówień na otwarcie nowych plików informacje o bieżącym katalogu głównym oraz domyślnych katalogach używanych do szukania nowych plików. Tablica obsługi sygnałów: określa procedurę w przestrzeni adresowej procesu, która ma być wywołana po nadejściu konkretnego sygnału. Kontekst pamięci wirtualnej: opisuje całą zawartość prywatnej przestrzeni adresowej procesu. Wiesław Płaczek Systemy Operacyjne: Wykład 12 12
13 Procesy i wątki Linux stosuje tę samą wewnętrzną reprezentację dla procesów i wątków wątek jest po prostu nowym procesem, któremu zdarza się dzielić ze swoim rodzicem tę samą przestrzeń adresową. Rozróżnienie między procesem a wątkiem pojawia się wtedy, gdy wątek jest tworzony przy pomocy funkcji systemowej clone. Funkcja fork tworzy nowy proces z własnym, całkowicie nowym kontekstem. Funkcja clone tworzy nowy proces z odrębną tożsamością, ale taki któremu pozwala się dzielić struktury danych jego rodzica. Rozróżnienie to jest możliwe, ponieważ Linux przechowuje kontekst w postaci niezależnych podkontekstów w oddzielnych strukturach danych (struktura danych procesu zawiera wskaźniki do struktur danych podkontekstów, więc podkontekst może byćłatwo dzielony przez procesy). Funkcja systemowa clone tworząc nowy proces, przyjmuje argument określający, które podkonteksty należy skopiować, a które mają być wspólne. Użycie funkcji clone pozwala na dokładniejsze określenie w aplikacji, co ma być dzielone między dwa wątki. Linux dostarcza również mechanizmu pozwalającego na realizację wątków standardu POSIX (Pthreads) na poziomie użytkownika. Wiesław Płaczek Systemy Operacyjne: Wykład 12 13
14 Planowanie Planowanie (scheduling) przydzielanie czasu procesora różnym zadaniom systemu operacyjnego. Oprócz normalnego uruchamiania i przerywania procesów, planowanie w systemie Linux obejmuje także wykonywanie różnych zadań jądra, zarówno zlecanych przez działający proces, jak też wykonywanych wewnętrznie na zlecenia modułu sterującego jakiegoś urządzenia. Synchronizacja jądraj Zamówienie na działanie w trybie jądra można wykonać na dwa sposoby: Wykonywany program może zamówić usługę systemu operacyjnego jawnie (za pomocą wywołania systemowego) albo niejawnie, np. przez brak strony. Moduł sterujący urządzenia może wysłać przerwanie, które spowoduje, że procesor zacznie wykonywać kod jądrowej procedury obsługi przerwania. Synchronizacja jądra wymaga regulacji pozwalających na wykonywanie sekcji krytycznych jądra w sposób wzajemnie nie kolidujący aby nie uszkodzić lub nie doprowadzić do niespójności struktur danych, z których zadania jądra korzystają. Wiesław Płaczek Systemy Operacyjne: Wykład 12 14
15 Synchronizacja jądra c.d. Linux używa dwóch technik do ochrony sekcji krytycznych jądra: 1. Zwykły kod jądra jest niewywłaszczalny gdy przerwanie czasomierza zostanie odebrane w czasie kiedy proces wykonuje jądrową systemową procedurę obsługi, ustawiany jest jądrowy znacznik need_resched, który spowoduje uruchomienie planisty po zakończeniu wywołania systemowego. 2. Technika do ochrony sekcji krytycznych występujących w procedurach obsługi przerwań przez użycie sprzętu nadzorującego przerwania procesora w celu zakazu przerwań w trakcie wykonywania sekcji krytycznej; jądro gwarantuje, że jej wykonanie przebiegnie bez ryzyka współbieżnego dostępu do dzielonych struktur danych. Aby uniknąć pogorszenia wydajności systemu na skutek wyłączania przerwań, w jądrze zastosowano architekturę synchronizacji umożliwiającą wykonywanie długich sekcji krytycznych bez wyłączania przerwań na czas trwania całej sekcji. W procedurach obsługi przerwań wyodrębnione są dwie części: Górna połowa (top half) zwykła procedura obsługi przerwań; przebiega z wyłączonymi rekurencyjnymi przerwaniami (może być przerwana tylko przez przerwania o wyższym priorytecie, a przerwania o priorytecie są zablokowane). Dolna połowa (bottom half) procedura przebiega z włączonymi wszystkimi przerwaniami i jest nadzorowana przez miniaturowego planistę, który zapewnia, że dolne połowy nigdy nie przerywają się wzajemnie. Ta architektura jest uzupełniana przez mechanizm wyłączania wybranych dolnych połów podczas wykonywania zwykłego, pierwszoplanowego kodu jądra. Wiesław Płaczek Systemy Operacyjne: Wykład 12 15
16 Poziomy ochrony przed przerwaniami Wiesław Płaczek Systemy Operacyjne: Wykład Górne połowy procedur obsługi przerwań Dolne połowy procedur obsługi przerwań Systemowe procedury jądrowe (niewywłaszczalne) Programy trybu użytkownika (wywłaszczalne) Rosnący priorytet Każdy poziom może być przerwany przez kod wykowywany na wyższym poziomie, ale nigdy nie będzie przerwany przez kod wykonywany na tym samym lub niższym poziomie. Procesy trybu użytkownika mogą być zawsze wywłaszczane przez inne procesy w chwilach określonych przerwaniami zegarowymi służącymi do realizacji podziału czasu.
17 Planowanie procesów Linux ma dwa oddzielne algorytmy planowania procesów: Algorytm z podziałem czasu do sprawiedliwego planowania z wywłaszczeniami działania wielu procesów. Algorytm czasu rzeczywistego dla zadań, w których priorytety bezwzględne są ważniejsze niż sprawiedliwość. W skład tożsamości każdego procesu wchodzi klasa planowania definiująca, który z algorytmów ma być zastosowany dla procesu. Dla procesów z podziałem czasu Linux używa algorytmu priorytetowego, opartego na kredytowaniu. Reguła kredytowania: kredyt = kredyt / 2 + priorytet Do wykonywania wybierany jest proces z najwyższym kredytem. Przy każdym przerwaniu od pochodzącym czasomierza proces wykonywany traci jednostkę kredytu. Kiedy jego kredyt spadnie do zera, zostaje on zawieszony, a do wykonywania wybiera się inny proces. Jeśli żaden z procesów gotowych do działania nie ma kredytu, to system wykonuje operację wtórnego kredytowania według powyższej reguły. Ten system kredytowania automatycznie preferuje procesy interakcyjne, uzależnione od wejścia-wyjścia, dla których istotny jest czas odpowiedzi. Wiesław Płaczek Systemy Operacyjne: Wykład 12 17
18 Planowanie procesów c.d. Linux realizuje dwie klasy planowania w czasie rzeczywistym: algorytm FCFS ( pierwszy zgłoszony pierwszy obsłużony ) oraz algorytm rotacyjny. Każdy proces czasu rzeczywistego oprócz klasy planowania ma również priorytet. Planista wykonuje zawsze proces o najwyższym priorytecie spośród procesów o równych priorytetach, do wykonania wybierany jest proces, który najdłużej czekał. Procesy FCFS działają do końca lub do zablokowania. W algorytmie rotacyjnym proces zostanie po chwili wywłaszczony i przesunięty na koniec kolejki planowania procesy o równych priorytetach będą automatycznie dzielić czas między siebie. Planowanie w czasie rzeczywistym jest łagodne, a nie rygorystyczne (np. kod jądra nie może być nigdy wywłaszczony przez kod poziomu użytkownika). Wieloprzetwarzanie symetryczne Jądro Linux 2.0 było pierwszym jądrem Linuxa wspierającym sprzęt wieloprocesora symetrycznego (symmetric multiprocessor SMP) różne procesy lub wątki mogą działać równolegle na oddzielnych procesorach. W celu spełnienia bezwywłaszeniowych wymagań synchronizacji jądra, SMP używa wirującej blokady w jądrze nakładającej ograniczenie, że w danej chwili tylko jeden procesor może wykonywać kod w trybie jądra. Od wersji Linux 2.2 implementacja SMP używa ponadto wielu blokad (zamków) odnoszących się do pojedynczych struktur danych jądra, co daje możliwość jednoczesnego wykonywania kodu w trybie jądra przez wiele procesorów. Wiesław Płaczek Systemy Operacyjne: Wykład 12 18
19 Zarządzanie pamięcią Zarządzanie pamięcią w systemie Linux obejmuje dwie składowe: System zarządzania pamięcią fizyczną zajmuje się przydzielaniem i zwalnianiem stron (ramek), ich grup i małych bloków pamięci. Mechanizm obsługi pamięci wirtualnej będącej odwzorowaniem pamięci operacyjnej na przestrzenie adresowe wykonywanych procesów. Zarządzanie pamięci cią fizyczną Dyspozytor stron (page allocator) odpowiada za przydział i zwalnianie wszystkich stron fizycznych może przydzielać na zamówienie partie stron fizycznie ze sobą sąsiadujących. Dyspozytor stosuje algorytm sąsiedzkich stert (buddy-heap) w celu rejestrowania dostępnych stron fizycznych (ramek). Łączy w pary przyległe do siebie jednostki przydziału. Ilekroć dwa sąsiadujące obszary są zwalniane, łączy się je w większy obszar itd. Gdy małe zamówienie na pamięć nie może być zrealizowane przez przydział istniejącego, małego obszaru, wówczas większy wolny obszar zostanie podzielony na dwa sąsiednie, tak by zrealizować zamówienie. Przydziały pamięci w jądrze Linuxa odbywają się statycznie (moduły sterujące rezerwują ciągłe obszary pamięci podczas rozruchu systemu) lub dynamicznie za pomocą dyspozytora stron. Istnieje kilka specjalizowanych podsystemów zarządzania pamięci (korzystają one z dyspozytora stron), np. alokator obszarów zmiennej długości: kmalloc. Wiesław Płaczek Systemy Operacyjne: Wykład 12 19
20 Pamięć wirtualna System pamięci wirtualnej sprawuje pieczę nad przestrzenią adresową widoczną dla każdego z procesów: tworzy strony pamięci wirtualnej na żądanie i zarządza sprowadzaniem ich z dysku lub odsyłaniem ich z powrotem na dysk w razie potrzeby. Zarządca pamięci wirtualnej utrzymuje dwa osobne obrazy przestrzeni adresowej procesu: Zbiór oddzielnych obszarów: obraz logiczny odzwierciedlający rozkazy, które system pamięci wirtualnej otrzymywał przy organizowaniu przestrzeni adresowej przestrzeń adresowa składa się tutaj ze zbioru nie zachodzących na siebie obszarów, reprezentujących ciągłe podzbiory przyległych stron. Zbiór stron: fizyczny obraz każdej przestrzeni adresowej, który jest pamiętany w sprzętowej tablicy stron procesu każdy wpis w tablicy określa dokładnie bieżące położenie każdej strony pamięci wirtualnej. Obszary pamięci wirtualnej są scharakteryzowane przez: Pamięć pomocniczą obszaru określa skąd pochodzą strony obszaru; obszary zwykle mają jako zaplecze pliki lub nie majążadnego zaplecza. Sposób reagowania na pisanie dla obszaru odwzorowanego prywatnie wykonuje się kopiowanie przy zapisie, a dla obszaru wspólnego uaktualnienie. Wiesław Płaczek Systemy Operacyjne: Wykład 12 20
21 Pamięć wirtualna c.d. Jądro tworzy nową przestrzeń adresową w dwu sytuacjach: Gdy proces rozpoczyna wykonanie nowego programu za pomocą funkcji systemowej exec proces otrzymuje nową, całkowicie pustą wirtualną przestrzeń adresową, a jej zapełnienie należy do procedur ładujących program. Przy tworzeniu nowego procesu za pomocą funkcji systemowej fork proces otrzymuje pełną kopię wirtualnej przestrzeni adresowej swojego przodka; po operacji rozwidlenia procesy macierzysty i potomny dzielą w swoich przestrzeniach adresowych te same fizyczne strony pamięci. Ważnym zadaniem systemu pamięci wirtualnej jest przemieszczanie stron z pamięci operacyjnej na dysk, kiedy występuje zapotrzebowanie na pamięć. System stronicowania Linuxa można podzielić na dwie części: Algorytm postępowania (policy algorithm) decyduje o tym, które strony zapisywać na dysku i kiedy; przy odsyłaniu stron stosuje się zmodyfikowany algorytm zegarowy z postarzaniem stron, gdzie wiek strony jest miarą stopnia jej aktywności w ostatnim czasie przy odsyłaniu stron stosuje się kryterium najrzadszego ich używania (LFU). Mechanizm stronicowania (paging mechanism) realizuje przesłanie i sprowadza strony danych z powrotem do pamięci fizycznej w razie potrzeby; umożliwia stronicowanie zarówno z użyciem urządzeń i partycji wymiany, jak i zwykłych plików przy zapisie stron na dysku stosuje się algorytm najbliższego dopasowania (next fit), bloki na dysku przydzielane są wg. mapy bitowej używanych bloków. Wirtualna pamięć jądra stały, zależny od architektury obszar wirtualnej przestrzeni adresowej każdego procesu zarezerwowany do użytku jądra; zawiera m.in. odwołania tablicy stron do każdej dostępnej, fizycznej strony w systemie. Wiesław Płaczek Systemy Operacyjne: Wykład 12 21
22 Wykonywanie i ładowanie programów użytkownika Linux utrzymuje tablicę możliwych funkcji ładujących, dając każdej z nich szansę spróbowania umieszczenia w pamięci danego pliku podczas wykonywania funkcji systemowej exec. Dzięki możliwości rejestrowania wielu procedur ładujących, Linux może łatwo obsługiwać zarówno nowszy format ELF, jak i a.out. Plik binarny nie jest wprowadzany do pamięci przez ładowacz plików binarnych (binary loader), ale dokonywane jest odwzorowanie jego stron w obszary pamięci wirtualnej; strona jest ładowana do pamięci fizycznej dopiero po nieudanej próbie odwołania do niej przez program. Plik binarny formatu ELF (Executable and Linking Format) składa się z nagłówka, po którym następuje kilka sekcji dopasowanych do granic stron (page-aligned). Program ładujący formatu ELF czyta nagłówek i odwzorowuje sekcje pliku na osobne obszary pamięci wirtualnej. Po dokonaniu odwzorowania program ładujący ustawia w procesie wstępny stan rejestru licznika rozkazów za pomocą wartości początkowej zapamiętanej w nagłówku ELF i wtedy proces staje się gotowy do wykonania (może kandydować do przydziału procesora). Wiesław Płaczek Systemy Operacyjne: Wykład 12 22
23 Wiesław Płaczek Systemy Operacyjne: Wykład Organizacja pamięci w programach formatu ELF Pamięć wirtualna jądra Stos Pamięć niewidoczna dla kodu w trybie użytkownika Obszar odwzorowany w pamięci Obszar odwzorowany w pamięci Obszar odwzorowany w pamięci Dane fazy wykonywania Dane bez wartości początkowych Dane z wartościami początkowymi Tekst programu (kod binarny) Wskaźnik brk (granica obszaru danych przydzielanych dynamicznie) Obszar zakazany
24 Łączenie statyczne i dynamiczne Łączenie statyczne (static linking): Wszystkie potrzebne funkcje biblioteczne zostają osadzone wprost w binarnym pliku wykonywalnym podczas budowania przez programistę aplikacji. Statycznie połączone (skonsolidowane) pliki wykonywalne mogą podjąć działanie natychmiast po załadowaniu. Główną wadą jest to, że każdy wygenerowany program musi zawierać kopie dokładnie tych samych systemowych funkcji bibliotecznych. Łączenie dynamiczne (dynamic linking): Każdy program zawiera małą, statycznie dołączaną funkcję, wywoływaną na początku programu. Funkcja ta odwzorowuje specjalną bibliotekę konsolidacji w pamięci i powoduje wykonanie jej kodu. Biblioteka konsolidacji czyta wykaz bibliotek dynamicznych (dzielonych) wymaganych przez program oraz zawartych w nich potrzebnych zmiennych i funkcji, analizując informacje zawarte w formacie binarnym ELF. Następnie odwzorowuje te biblioteki w pamięci wirtualnej, kierując odwołania systemowe do zawartych w nich symboli. Biblioteki dzielone są kompilowane w kod niezależny od położenia (position-indepentent code PIC), dzięki czemu mogą być odwzorowywane w dowolne miejsca pamięci wirtualnej (i wykonywane pod każdym adresem). Wiesław Płaczek Systemy Operacyjne: Wykład 12 24
25 Systemy plików Dla użytkownika system plików Linuxa jawi się jako hierarchiczne drzewo katalogów spełniające semantykę systemu UNIX. Jądro Linuxa obsługuje różnorodne typy plików, ukrywając szczegóły implementacyjne za warstwą programową, czyli wirtualnym systemem plików (virtual file system VFS). Wirtualny system plików Linuxa został zaprojektowany w oparciu o zasady programowania obiektowego ma dwie składowe: Zbiór definicji określających, jak powinien wyglądać obiekt o nazwie plik: struktury obiektu i-węzła oraz obiektu pliku reprezentują poszczególne pliki, a obiekt systemu plików reprezentuje cały system plików. Warstwa oprogramowania do działań na takich obiektach: każdy z obiektów powyższych typów zawiera wskaźnik do tablicy funkcji, zawierającej adresy funkcji implementujących działania na danym obiekcie. Obiekt systemu plików reprezentuje połączony zbiór plików, który tworzy zamkniętą w sobie hierarchię katalogów utrzymywany przez jądro dla każdego systemu plików udostępnianego z zamontowanego dysku lub przez sieć. Obiekty i-węzłów oraz plików są mechanizmami dostępu do plików: obiekt i- węzła reprezentuje plik jako całość, a obiekt pliku reprezentuje punkt dostępu do danych wewnątrz pliku (proces uzyskuje dostęp do i-węzła poprzez obiekt pliku). Wiesław Płaczek Systemy Operacyjne: Wykład 12 25
26 System plików ext3 Standardowym dyskowym systemem plików Linuxa jest system ext3,będący rozszerzeniem systemu ext2 o kronikowanie (journaling) (strukturę dziennika). System ext2 stosuje on podobny jak w systemie BSD ffs (Fast File System) mechanizm odnajdywania bloków danych należących do konkretnego pliku. Główna różnica między systemami ext2 i ffs dotyczy sposobu przydziału dysku: System ffs przydziela plikom dysk blokami po 8 KB oraz dzieli bloki na porcje 1 KB w celu pamiętania małych plików lub niepełnych bloków na końcach plików. System ext2 używa bloków cząstkowych, ale dokonuje przydziałów za pomocą mniejszych jednostek: standardowy blok ma wielkość 1 KB, choć stosuje się też bloki o wielkościach 2 KB i 4 KB. System ext2 stosuje politykę przydziału zmierzającą do umieszczania logicznie sąsiadujących bloków pliku w fizycznie przylegających blokach dyskowych, dzięki czemu może on w jednej operacji składać zamówienia WE/WY dla wielu bloków. Zasady przydziału miejsca na dysku w systemie ext2: System plików jest podzielony na wiele grup bloków przydzielając miejsce dla pliku, system najpierw wybiera grupę bloków, do której przydzielono i-węzeł pliku; do przydzielania i-węzła pliku wybiera tę grupę bloków, w której jest katalog macierzysty. Wewnątrz grupy bloków system ext2 próbuje w miarę możliwości dokonywać przydziałów ciągłych fizycznie, dążąc do zmniejszenia fragmentacji; aby zwiększyć wydajność stara się, gdzie to możliwe, przydzielać miejsce porcjami 8-blokowymi. Wiesław Płaczek Systemy Operacyjne: Wykład 12 26
27 Wiesław Płaczek Systemy Operacyjne: Wykład Zasady przydziału bloków w systemie ext2 Przydzielanie rozrzuconych wolnych bloków Przydzielanie przyległych wolnych bloków Blok zajęty Blok wybrany przez procedurę przydziału Granica bitu Blok wolny Kierunek przeszukiwania mapy bitowej Granica bajta
28 System plików Linux-proc Procesowy system plików (process file system) Linuxa, zwany systemem plików proc, jest przykładem systemu plików, którego dane nie są nigdzie pamiętane, natomiast oblicza się je na żądanie, stosownie do wydawanych przez użytkownika zamówień na operacje WE/WY. System plików proc wprowadzono w systemie UNIX SVR4 jako wydajny interfejs wspierający usuwanie błędów z procesów jądra pojedynczy podkatalog tego systemu odpowiadał aktywnemu procesowi. Linux rozszerza system plików proc o specjalne katalogi i pliki, odpowiadające różnym statystykom dotyczącym jądra i skojarzonych z nim modułów sterujących, Np. polecenie ps podaje informacje o procesach pobrane z systemu plików proc. System proc musi realizować strukturę katalogów oraz zawartość umieszczonego w niej pliku; zgodnie z semantyką systemu UNIX, musi definiować niepowtarzalny i trwały numer i-węzła dla każdego katalogu i skojarzonych z nim plików. Te numery i-węzłów są używane w celu rozpoznawania operacji potrzebnej wtedy, gdy użytkownik próbuje czytać dane z i-węzła pliku lub przeszukiwać i-węzeł katalogu. 32-bitowy numer i-węzła podzielony jest na dwie części: 16 górnych bitów zawiera PID procesu, a pozostałe bity określają zamawiany typ informacji o danym procesie. Kiedy dane są czytane z któregoś z tych plików, proc gromadzi odpowiednie informacje, nadając im formę tekstową i umieszcza je w buforze zamawiającego je procesu. Do wydajnego dostępu do danych jądra służy wywołanie systemowe sysctl. Wiesław Płaczek Systemy Operacyjne: Wykład 12 28
29 Wejście-wyjście (WE/WY) System WE/WY Linux jest zrealizowany jak w typowym systemie UNIX: wszystkim modułom sterującym urządzeń nadaje się wygląd zwykłych plików. Administrator systemu może tworzyć w systemie plików specjalne pliki, które zawierają odwołania do określonych modułów sterujących urządzeń; może im nadawać prawa dostępu jak dla zwykłych plików. Użytkownik może otwierać kanał dostępu do urządzenia w ten sam sposób, jak otwiera dowolny inny plik urządzenia mogą wyglądać jak obiekty w systemie plików. Linux dzieli wszystkie urządzenia na trzy klasy: Urządzenia blokowe umożliwiają swobodny dostęp do całkowicie niezależnych bloków danych o stałym rozmiarze, np. dyski. Urządzenia znakowe obejmują większość innych urządzeń, np. taśmy, klawiatury, terminale, myszy, głośniki, mikrofony itd.; nie muszą mieć wszystkich własności regularnych plików. Urządzenia sieciowe użytkownicy nie mogą do nich bezpośrednio przekazywać danych, lecz muszą się komunikować za pośrednictwem podsystemu sieciowego jądra. Wiesław Płaczek Systemy Operacyjne: Wykład 12 29
30 Komunikacja międzyprocesowa Standardowym mechanizmem służącym do powiadamiania procesu o wystąpieniu asynchronicznego zdarzenia jest sygnał: Liczba sygnałów jest ograniczona i nie mogą one przenosić informacji jedynie fakt wystąpienia sygnału jest dostępny procesowi. Jądro Linuxa nie korzysta wewnętrznie z sygnałów w celu komunikowanie się z procesami wykonywanymi w trybie jądra, zamiast tego używa mechanizmu planowanych stanów i struktur wait_queue. Do synchronizowania procesów Linux implementuje mechanizm semaforów systemu UNIX wydania V (przy użyciu wait_queue). Przekazywanie danych między procesami: Standardowy uniksowy mechanizm potoku nienazwanego (pipe) potok ma dwie kolejki wait_queue do synchronizowania producenta i konsumenta. Mechanizm potoku nazwanego (named pipe), zwanego też potokiem FIFO może łączyć dowolne procesy w systemie, a nie tylko procesy pokrewne. Pamięć dzielona (shared memory) systemu UNIX V najszybszy środek przekazywania danych między procesami, ale nie zapewnia synchronizacji. Kolejki komunikatów (message queues) systemu UNIX V synchroniczne przekazywanie danych między procesami drogą przesyłania komunikatów. Więcej szczegółów na ćwiczeniach. Wiesław Płaczek Systemy Operacyjne: Wykład 12 30
31 Bezpieczeństwo Zagadnienia bezpieczeństwa można podzielić na dwie grupy: Uwierzytelnianie zapewnienie, że nikomu nie uda się uzyskać dostępu do systemu bez uprzedniego wykazania, że ma do tego prawo. Kontrola dostępu dostarczanie mechanizmu sprawdzania, czy użytkownik ma prawo dostępu do danego obiektu i realizowanie ochrony obiektów przed dostępem. Uwierzytelnianie: Podstawowym mechanizmem uwierzytelniania są hasła: hasło użytkownika zostaje zmieszane z wartością losową ( przyprawione ), zakodowane za pomocą funkcji jednokierunkowej i zapamiętane w pliku haseł. Aby utrudnićłamanie haseł, przechowuje się zaszyfrowane hasło w pliku niedostępnym do czytania dla ogółu, pozwala się na dłuższe hasła, nie zezwala się na używanie łatwych haseł (np. wyrazów słownikowych), ogranicza się liczbę niepoprawnie wprowadzonych haseł, rejestruje się przypadki nieudanych prób uwierzytelnienia, stosuje się bezpieczniejsze metody kodowania itd. Linux implementuje też system dołączalnych modułów uwierzytelniania (pluggable authentication modules PAM) umożliwia ładowanie modułów uwierzytelniania, które mogą określać sposoby uwierzytelniania, ograniczenia działań na kontach, funkcje kształtowania sesji lub funkcje zmiany hasła (w celu uaktualnienia wszystkich niezbędnych uwierzytelnień). System PAM może być używany przez dowolną składową systemu, która potrzebuje uwierzytelnień. Wiesław Płaczek Systemy Operacyjne: Wykład 12 31
32 Kontrola dostępu: Bezpieczeństwo c.d. Kontrolowanie dostępu odbywa się za pomocą niepowtarzalnych identyfikatorów numerycznych: użytkownika UID, grupy GID. Linux nadzoruje dostępy przez przypisywanie obiektom masek ochronnych (protection masks), określających, które tryby dostępu: pisanie, czytanie lub wykonywania są udzielane procesom z dostępem właściciela, grupy lub świata (pozostałych użytkowników). Jedynym wyjątkiem jest uprzywilejowany identyfikator użytkownika root automatycznie udziela się mu dostępu do dowolnego obiektu w systemie. Linux rozszerza standardowy uniksowy mechanizm setuid na dwa sposoby: 1. Mechanizm przechowywanego identyfikatora użytkownika (saved user-id) standardu POSIX, który pozwala procesowi wielokrotnie pozbywać się identyfikatora efektywnego (skutecznego) (EUID) i ponownie go nabywać. 2. Dodatkowe charakterystyki procesu (np. FSUID i FSGID) umożliwiające udzielanie podzbioru praw efektywnego identyfikatora użytkownika (EUID). Linux dostarcza też mechanizm umożliwiający klientowi wybiórcze przekazanie dostępu do jednego pliku jakiemuś procesowi serwera, bez dawania temu procesowi jakichkolwiek innych praw (np. możliwość wydrukowania pliku przez serwer) przy pomocy gniazda sieciowego. Wiesław Płaczek Systemy Operacyjne: Wykład 12 32
Kernel Kompilacja jądra
Kernel Kompilacja jądra systemu Co to jest jądro systemu operacyjnego Jądro systemu operacyjnego jest rozpowszechniane na licencji GNU General Public License (GPL) określonej przez konsorcjum Free Software
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Prezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Budowa systemów komputerowych
Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa
dr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Wprowadzenie do systemów operacyjnych
SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny
Systemy operacyjne III
Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego
IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com
IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz
System operacyjny MACH
Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów
Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami
Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016
Zarządzanie pamięcią operacyjną
SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt
System plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka
System plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności
System plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked
Jądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
1.1 Definicja procesu
1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Informatyka. informatyka i nauki komputerowe (computer science)
Informatyka informacja i jej reprezentacje informatyka i nauki komputerowe (computer science) algorytmika efektywność algorytmów poprawność algorytmów złożoność obliczeniowa, problemy NP-trudne (NP-zupełne)
Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego
Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
PRZYDZIAŁ PAMIĘCI OPERACYJNEJ
PRZYDZIAŁ PAMIĘCI OPERACYJNEJ dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Wstęp Pamięć komputera wielka tablica słów (bajtów)
Zarządzanie pamięcią w systemie operacyjnym
Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej
UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci
UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com
Pamięć Jan Tuziemski Źródło części materiałów: os-book.com Cele wykładu Przedstawienie sposobów organizacji pamięci komputera Przedstawienie technik zarządzania pamięcią Podstawy Przed uruchomieniem program
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces
Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy
Zarządzanie pamięcią operacyjną
Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Od programu źródłowego do procesu
Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów
Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego
SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus
SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów
Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci
Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją
Struktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów
Programowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Mikroprocesor Operacje wejścia / wyjścia
Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych
U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
SYSTEMY OPERACYJNE WYKLAD 6 - procesy
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu
dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1
dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego
Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych
Systemy operacyjne Systemy operacyjne Inżynieria obliczeniowa, II rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania wilk@agh.edu.pl Wykłady: 7 tygodni po 2 h, s. 209, B-4 Projekty: 2 godziny
Systemy operacyjne III
Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów
LEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
Architektura komputerów
Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna
2009-03-21. Paweł Skrobanek. C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl
Wrocław 2007-09 SYSTEMY OPERACYJNE WYKLAD 2 Paweł Skrobanek C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl 1 PLAN: 2. Usługi 3. Funkcje systemowe 4. Programy
Zarządzanie procesami i wątkami
SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
2013-04-25. Czujniki obiektowe Sterowniki przemysłowe
Ogólne informacje o systemach komputerowych stosowanych w sterowaniu ruchem funkcje, właściwości Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i transportowej
Przegląd współczesnych systemów operacyjnych
SOE - Systemy Operacyjne Wykład 2 Przegląd współczesnych systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Wstęp Cechy współczesnych systemów operacyjnych
Zarządzanie pamięcią operacyjną zagadnienia podstawowe
Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze
Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego
Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego Cel ćwiczenia: Celem zajęć jest zdobycie doświadczenia i umiejętności instalacji systemu operacyjnego z rodziny Unix bez wykorzystania
ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku
System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej
projektowanie systemu
projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy
Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
dr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017 Wykład nr 7 (11.01.2017) Rok akademicki 2016/2017, Wykład
Systemy operacyjne II
Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech
Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania
Podsumowanie 1. Klasyfikacja systemów operacyjnych 2. Zadania systemu operacyjnego 3. Zarządzanie zasobami systemu komputerowego 4. Zasoby zarządzane przez system operacyjny 5. Struktura systemów operacyjnych
Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania
Podsumowanie 1. Klasyfikacja systemów operacyjnych 2. Zadania systemu operacyjnego 3. Zarządzanie zasobami systemu komputerowego 4. Zasoby zarządzane przez system operacyjny 5. Struktura systemów operacyjnych
Procesy, wątki i zasoby
Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.
Systemy operacyjne III
Systemy operacyjne III Jan Kazimirski 1 Opis zajęć Prezentacja budowy i zasad działania współczesnego systemu operacyjnego Prezentacja podstawowych elementów systemów operacyjnych i zasad ich implementacji
Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;
14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi
Urządzenia wejścia-wyjścia
Urządzenia wejścia-wyjścia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja urządzeń wejścia-wyjścia Struktura mechanizmu wejścia-wyjścia (sprzętu i oprogramowania) Interakcja
Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4
Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,
SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie
SELinux SELinux Security Enhanced Linux czyli Linux o podwyższonym bezpieczeństwie Najkrócej mówiąc... SELinux jest systemem z MAC (Mandatory Access Control), który realizuje politykę RBAC (Role Based
Tworzenie i obsługa wirtualnego laboratorium komputerowego
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego
Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu
Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
Bazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz
Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.
Systemy operacyjne. Paweł Pełczyński
Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie
Architektura i administracja systemów operacyjnych
Architektura i administracja systemów operacyjnych Wykład 1 Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Informacje wstępne Prowadzący
Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań
Podsumowanie 1. Klasyfikacja systemów operacyjnych 2. Zadania systemu operacyjnego 3. Zarządzanie zasobami systemu komputerowego 4. Zasoby zarządzane przez system operacyjny 5. Struktura systemów operacyjnych
Architektura komputerów
Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest
Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj
Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,
5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
Q E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów
Sieciowe Systemy Operacyjne
1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy
ZiMSK. VLAN, trunk, intervlan-routing 1
ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl VLAN, trunk, intervlan-routing
Architektura systemu komputerowego
Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie
Pakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Schematy zarzadzania pamięcia
Schematy zarzadzania pamięcia Segmentacja podział obszaru pamięci procesu na logiczne jednostki segmenty o dowolnej długości. Postać adresu logicznego: [nr segmentu, przesunięcie]. Zwykle przechowywana
System plików. Warstwowy model systemu plików
System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:
Podstawy. Pamięć wirtualna. (demand paging)
Pamięć wirtualna Podstawy Podstawy Stronicowanie na żądanie Wymiana strony Przydział ramek Szamotanie (thrashing) Pamięć wirtualna (virtual memory) oddzielenie pamięci logicznej użytkownika od fizycznej.
Warstwy systemu Windows 2000
Warstwy systemu Windows 2000 Tryb użytkownika (User Mode) Tryb jądra (Kernel Mode) Tryb użytkownika (User Mode) Zarządzanie pamięcią wirtualną Cechy charakterystyczne systemu Windows XP: system bardzo
System plików Linuksa
Łódzka Grupa Użytkowników Linuksa Studenckie Koło Naukowe PŁ Strona 1 z 15 System plików Linuksa Bartłomiej Świercz 20 maja 2002 roku Strona 1 z 15 1. Wstęp Podstawowymi składnikami jądra Linux a są: moduł
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
(Pluggable Authentication Modules). Wyjaśnienie technologii.
Bezpieczeństwo systemów komputerowych. Temat seminarium: Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie technologii Autor: Bartosz Hetmański Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie
Działanie komputera i sieci komputerowej.
Działanie komputera i sieci komputerowej. Gdy włączymy komputer wykonuje on kilka czynności, niezbędnych do rozpoczęcia właściwej pracy. Gdy włączamy komputer 1. Włączenie zasilania 2. Uruchamia
Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)
Spis treści Dzień 1 I Konfiguracja sterownika (wersja 1410) I-3 Zadanie Tworzenie konfiguracji sprzętowej I-4 Co jest potrzebne by zacząć? I-5 TIA Portal ekran startowy I-6 Tworzenie nowego projektu I-7