System operacyjny Linux

Wielkość: px
Rozpocząć pokaz od strony:

Download "System operacyjny Linux"

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 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

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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ęć

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

Prezentacja systemu RTLinux

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

Bardziej szczegółowo

Budowa systemów komputerowych

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

Bardziej szczegółowo

dr inż. Jarosław Forenc

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

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

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ć

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

Wprowadzenie do systemów operacyjnych

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

Bardziej szczegółowo

Systemy operacyjne III

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

Bardziej szczegółowo

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com

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

Bardziej szczegółowo

System operacyjny MACH

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

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

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

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

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

Bardziej szczegółowo

System plików warstwa fizyczna

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

Bardziej szczegółowo

System plików warstwa fizyczna

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

Bardziej szczegółowo

System plików warstwa fizyczna

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

Bardziej szczegółowo

Jądro systemu operacyjnego

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

Bardziej szczegółowo

1.1 Definicja procesu

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

Bardziej szczegółowo

Informatyka. informatyka i nauki komputerowe (computer science)

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)

Bardziej szczegółowo

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

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

Bardziej szczegółowo

Komputery przemysłowe i systemy wbudowane

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

Bardziej szczegółowo

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

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)

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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,

Bardziej szczegółowo

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

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

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

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

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

Bardziej szczegółowo

Od programu źródłowego do procesu

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

Bardziej szczegółowo

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Bardziej szczegółowo

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

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

Bardziej szczegółowo

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ą. 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

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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ą

Bardziej szczegółowo

Struktury systemów operacyjnych

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

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

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

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

Bardziej szczegółowo

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

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

Bardziej szczegółowo

Systemy operacyjne III

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

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

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

Bardziej szczegółowo

Architektura komputerów

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

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

Bardziej szczegółowo

2009-03-21. Paweł Skrobanek. C-3, pok. 321 e-mail: pawel.skrobanek@pwr.wroc.pl http://pawel.skrobanek.staff.iiar.pwr.wroc.pl

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

Bardziej szczegółowo

Zarządzanie procesami i wątkami

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

Bardziej szczegółowo

Wykład 8: klasy cz. 4

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

Bardziej szczegółowo

2013-04-25. Czujniki obiektowe Sterowniki przemysłowe

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

Bardziej szczegółowo

Przegląd współczesnych systemów operacyjnych

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

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

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

Bardziej szczegółowo

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Ć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

Bardziej szczegółowo

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

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

Bardziej szczegółowo

projektowanie systemu

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

Bardziej szczegółowo

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

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,

Bardziej szczegółowo

dr inż. Jarosław Forenc

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

Bardziej szczegółowo

Systemy operacyjne II

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

Bardziej szczegółowo

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

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

Bardziej szczegółowo

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

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

Bardziej szczegółowo

Procesy, wątki i zasoby

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.

Bardziej szczegółowo

Systemy operacyjne III

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

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

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

Bardziej szczegółowo

Urządzenia wejścia-wyjścia

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

Bardziej szczegółowo

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

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,

Bardziej szczegółowo

SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie

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

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

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

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

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

Bardziej szczegółowo

Bazy danych 2. Wykład 1

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

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

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.

Bardziej szczegółowo

Systemy operacyjne. Paweł Pełczyński

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

Bardziej szczegółowo

Architektura i administracja systemów operacyjnych

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

Bardziej szczegółowo

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

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

Bardziej szczegółowo

Architektura komputerów

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

Bardziej szczegółowo

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

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ą,

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

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ęć

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

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

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

Bardziej szczegółowo

Sieciowe Systemy Operacyjne

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

Bardziej szczegółowo

ZiMSK. VLAN, trunk, intervlan-routing 1

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

Bardziej szczegółowo

Architektura systemu komputerowego

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

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

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

Bardziej szczegółowo

Schematy zarzadzania pamięcia

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

Bardziej szczegółowo

System plików. Warstwowy model systemu plików

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:

Bardziej szczegółowo

Podstawy. Pamięć wirtualna. (demand paging)

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.

Bardziej szczegółowo

Warstwy systemu Windows 2000

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

Bardziej szczegółowo

System plików Linuksa

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ł

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Bardziej szczegółowo

(Pluggable Authentication Modules). Wyjaśnienie technologii.

(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

Bardziej szczegółowo

Działanie komputera i sieci komputerowej.

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

Bardziej szczegółowo

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) 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

Bardziej szczegółowo