42. Stany procesów i przejścia między nimi w wielozadaniowym systemie operacyjnym.

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

Download "42. Stany procesów i przejścia między nimi w wielozadaniowym systemie operacyjnym."

Transkrypt

1 42. Stany procesów i przejścia między nimi w wielozadaniowym systemie operacyjnym. Proces - to jedno z najbardziej podstawowych pojęć w informatyce. Z definicji jest to po prostu egzemplarz wykonywanego programu. Należy odróżnić jednak proces od wątku - każdy proces posiada własną przestrzeń adresową, natomiast wątki posiadają wspólną sekcję danych. Każdemu procesowi przydzielone zostają zasoby, takie jak: * procesor, * pamięć, * dostęp do urządzeń wejścia-wyjścia, * pliki. Każdy proces posiada tzw. "rodzica". W ten sposób tworzy się swego rodzaju drzewo procesów. Proces może (ale nie musi) mieć swoje procesy potomne. Za zarządzanie procesami odpowiada jądro systemu operacyjnego. Wykonanie musi przebiegać sekwencyjnie. Może przyjmować kilka stanów: * działający, * czekający na udostępnienie przez system operacyjny zasobów, * przeznaczony do zniszczenia, * proces zombie, * właśnie tworzony itd. W skład procesu wchodzi: * kod programu, * licznik rozkazów, * stos, * sekcja danych. Stany procesów; Nieustalony - przed uruchomieniem lub po zakończeniu działania Aktywny zakończono operacje we/wy a jeden z procesów systemu wykonuje jego kod Gotowy-jeżeli zakończył operacje we/wy ale nie ma wolnego procesora Wstrzymany-czekanie na zakończenie operacji we/wy dozorowanej przez system operacyjny Tworzenie procesów * Użytkownik za pomocą powłoki zleca uruchomienie programu, proces wywołujący wykonuje polecenie fork, lub jego pochodną. * System operacyjny tworzy przestrzeń adresową dla procesu oraz strukturę opisującą nowy proces w następujący sposób: o wypełnia strukturę opisującą proces, o kopiuje do przestrzeni adresowej procesu dane i kod, zawarte w pliku wykonywalnym, o ustawia stan procesu na działający, o dołącza nowy proces do kolejki procesów oczekujących na procesor,

2 o zwraca sterowanie do powłoki użytkownika. Wykonywanie procesów Dany proces rozpoczyna wykonywanie w momencie przełączenia przez Jądro systemu operacyjnego przestrzeni adresowej na przestrzeń adresową danego procesu oraz takie zaprogramowanie procesora, by wykonywał kod procesu. Wykonujący się proces może żądać pewnych zasobów, np. większej ilości pamięci. Zlecenia takie są na bieżąco realizowane przez system operacyjny. Kończenie procesów * Proces wykonuje ostatnią instrukcję - zwraca do systemu operacyjnego kod zakończenia. Jeśli proces zakończył się poprawnie zwraca wartość 0, w przeciwnym wypadku zwraca wartość kodu błędu. * W momencie zwrotu do systemu operacyjnego kodu zakończenia, system operacyjny ustawia stan procesu na przeznaczony do zniszczenia i rozpoczyna zwalnianie wszystkich zasobów, które w czasie działania procesu zostały temu procesowi przydzielone. * System operacyjny po kolei kończy wszystkie procesy potomne w stosunku do procesu macierzystego. * System operacyjny zwalnia przestrzeń adresową procesu. Jest to dosłowna śmierć procesu. * System operacyjny usuwa proces z kolejki procesów gotowych do uruchomienia i szereguje zadania. Jest to ostatnia czynność wykonywana na rzecz procesu. * Procesor zostaje przydzielony innemu procesowi. Proces zombie to wpis w tablicy procesów opisujący program, którego wykonanie w systemie operacyjnym zostało zakończone, ale którego zamknięcie nie zostało jeszcze obsłużone przez proces rodzica. Termin ten odnosi się zazwyczaj do systemów z rodziny UNIX, gdzie pozostawienie wpisu zombie tymczasowo zajmującego pozycję w tablicy procesów zapobiega ponownemu wykorzystaniu danego PIDa i możliwym na skutek tego pomyłkom programistycznym. Wpisy takie nie dają się wyeliminować poleceniem kill, czemu prawdopodobnie zawdzięczają swoją złowrogą nazwę. Wpis zombie znika po odpowiednim wywołaniu funkcji wait(), waitpid() lub analogicznej przez proces macierzysty. W przypadku zakończenia także procesu rodzica, w wielu architekturach pozostawione przez niego zombie są obsługiwane automatycznie przez dziedziczący po nim proces init lub przez system operacyjny. Chociaż wpisy zombie nie obciążają znacząco komputera, nieprawidłowo napisany program, który nie obsługuje zakończenia pracy potomków, może doprowadzić do destabilizacji pracy systemu. Dzieje się tak gdy cała tablica procesów, zwykle posiadająca sztucznie ograniczony rozmiar, zostanie zajęta przez wpisy zombie. Hierarchia powiadamiania o procesach zombie może zostać czasowo zmieniona przez mechanizm ptrace, czasem prowadząc do utrudnień przy debuggowaniu programów. Demonem (ang. daemon czyli duszek) nazywamy proces działający w tle, nie podlegający sterowaniu z żadnego terminala, uruchamiany zwykle podczas startu systemu i działający do jego zamknięcia. Demon świadczy zwykle usługi o charakterze systemowym. Ponieważ

3 demony nie są związane z żadnym terminalem, wyjściem diagnostycznym dla nich jest zwykle podsystem dziennika pracy systemu (demon syslogd), zwyczajowo zapisujący komunikaty w plikach tekstowych. Sterowanie demonami odbywa się poprzez sygnały lub nazwane środki komunikacji międzyprocesowej. Zakończenie pracy procesu potomnego powoduje wysłanie do procesu macierzystego sygnału SIGCLD oraz przejście w stan zwany zombie. Wszystkie zasoby przydzielone procesowi potomnemu są zwalniane (np. zamykane sa pliki), ale pozostaje wpis w liście procesów, mogący doprowadzi do jej przepełnienia. Wpis ten zostaje usunięty, o ile proces macierzysty wykona funkcję z rodziny wait. Najprostszą formą jest funkcja z argumentem typu wskazanie na int, gdzie zapisuje się stan zakończonego procesu potomnego. Kod powrotu procesu na przykład można uzyska za pomocą makra WEXITSTATUS (definicja w pliku nagłówkowym sys/wait.h). Funkcja wait zwraca numer procesu potomnego. Sposób realizacji wszystkich tych działań jest różny dla różnych systemów operacyjnych. 43. Semafor binarny. Definicja Dijkstry. Semafor to jeden ze sposobów komunikacji międzyprocesowej. Semafory zostały po raz pierwszy opisane przez Edsgera Dijkstrę jako istotne rozwinięcie algorytmu Dekkera. Typowy semafor implementowany jest jako zmienna typu całkowitego. Semafory dzieli się na binarne i zliczające. Semafor binarny może przyjmować wartości całkowite z przedziału <0;1>, zliczający - również większe niż 1. Modyfikacja wartości semafora jest możliwa za pomocą trzech operacji: "init", "wait" ("P") oraz "signal" ("V"). Dwie ostatnie muszą być realizowane nieprzerwanie - "atomowo", aby uniknąć jednoczesnego sprawdzenia i modyfikacji przez więcej niż jedno zadanie. P(Semafor s) { oczekuj s > 0, wówczas s := s-1; /* operacja atomowa */ } V(Semafor s) { s := s+1; /* operacja atomowa */ } Init(Semafor s, Całkowitoliczbowe v) { s := v; } Litery P i V zwykle są kojarzone ze słowami holenderskimi: passeren (przejść), proberen (próbować), vryjgeven (zwolnić), verhoog (zwiększać). Jednakże sam Dijkstra użycie liter P i V wyjaśniał nieco inaczej [1]. Najczęstszym zastosowaniem jest synchronizacja dostępu do zasobów systemowych współdzielonych przez kilka zadań, aby zapobiec problemom wynikającym z prób jednoczesnego dostępu i modyfikacji danego zasobu.

4 Semafory są zwykle implementowane w obszarze jądra systemu operacyjnego. Pozwala to na zaawansowaną obsługę zadań chcących uzyskać dostęp do zasobu: * wstrzymywanie ich do czasu zwolnienia semafora powiązanego z danym zasobem, * wznowienie pracy zadania oczekującego na semaforze, * utrzymywania semafora nawet po zakończeniu zadania, który go utworzyło. //inna wersja Współbieżne operacje na pamięci grożą jej desynchronizacją. Zjawisko to powstaje wtedy, gdy pewna podzielna (wywłaszczalna) operacja modyfikująca jest wykonywana przez wiele procesów jednocześnie. Po wywłaszczeniu jednego procesu w jej trakcie, drugi dostaje dane częściowo tylko zmienione - zwykle nieprawidłowe. Cześć kodu, która musi być wykonywana niepodzielnie (atomowo) przez co najwyżej jeden z procesów grupy nazywa się zwykle sekcją krytyczną. Najpopularniejszą metodą zapewniania atomowości kodu jest zabezpieczenie go semaforem. Na semaforze możemy wykonać dwie operacje - możemy czekać pod zamkniętym semaforem (tradycyjnie nazywa się tę operację P lub wait) lub go podnieść (V lub post). Semafory implementuje się zwykle jako współdzielone zmienne całkowite, których warto niedodatnia oznacza stan zamknięty. P jest więc operacją oczekiwania na dodatnią wartość semafora, V operacja jego zwiększenia. Jeżeli początkowa wartość semafora jest równa 1, mamy do czynienia z semaforem binarnym, jeżeli jest większa niż 1 - z semaforem zliczającym. Operacjami P i V na semaforze binarnym otacza się sekcję krytyczną Nowoutworzone tablice semaforów są niezainicjowane - nie możemy zakładać, że semafory są zamknięte czy otwarte. Do ich inicjowania należy użyć Funkcji semctl, która ma trzy obowiązkowe argumenty: deskryptor zbioru, indeks semafora w zbiorze (licząc od 0) oraz stałą operacji do wykonania. Operacjami tymi są: GETVAL zwraca wartość semafora; SETVAL nadaje wartość semafora; GETALL przepisuje wartości całej tablicy semaforów do zaalokowanej przez programistę tablicy elementów typu unsigned short; SETALL nadaje wartości całej tablicy semaforów według tablicy programisty. Ponieważ w większości współczesnych systemów rozmiary komponentów powyższej unii są takie same, wielu programistów używa jako dalszych argumentów semctl zamiast unii odpowiednich wartości i tak: semctl(d, n, GETVAL) zwraca warto n-tego semafora w tablicy; semctl(d, n, SETVAL, x) ustawia warto n-tego semafora w tablicy na x; semctl(d, 0, GETALL, buf) przepisuje zawarto tablicy semaforów do tablicy użytkownika buf; semctl(d, 0, SETALL, buf) przepisuje zawarto tablicy użytkownika buf do tablicy semaforów. Operacje P i V są realizowane przez funkcję semop. Pierwszym jej argumentem jest deskryptor zbioru semaforów, drugim - zbiór operacji do niepodzielnego wykonania na semaforach w postaci tablicy struktur sembuf, a trzecim liczność tej tablicy. Struktura sembuf zawiera przynajmniej trzy pola typu short: sem_num - numer semafora, sem_op - kod operacji na semaforze oraz sem_flg - opcje operacji.

5 W najprostszym przypadku programista powinien zadeklarować Zmienną typu struct sembuf, o nazwie powiedzmy op, nadać wartości komponentom sem_num, sem_op i sem_flg i wywołać semop(d, &op, 1). Kluczowe znaczenie w pracy na semaforach ma wartość komponentu sem_op: Jeżeli sem_op jest dodatnia, to semafor jest zwiększany o tę wartość. Wartość 1 oznacza więc typową operację podniesienia semafora (V). Zerowa warto sem_op uruchamia oczekiwanie na zerową wartość semafora. Nie odpowiada to żadnej typowej operacji na semaforze. Ujemna warto sem_op uruchamia oczekiwanie na wartość semafora większą lub równą wartości bezwzględnej sem_op, po czym wartość sem_op jest dodawana do wartości semafora (jest on zmniejszany). Wartość-1 oznacza więc typową operację czekania pod semaforem (P). 44. Przydział pamięci dyskowej: listowy i indeksowy. Podstawową kwestią przy wyborze metody przydziału miejsca na dysku jest efektywność i szybkość dostępu do plików. Powszechnie używa się 3 metod: * przydział ciągły, * przydział listowy, * przydział indeksowy Każda z nich ma swoje wady i zalety. W niektórych systemach korzysta się z trzech metod równocześnie, powszechniejsze jest jednak użycie jednej metody dla wszystkich plików w systemie. Przydział ciągły W przydziale ciągłym (ang. contiguous allocation) plik zajmuje ciąg kolejnych bloków (jednostek alokacji). Ponieważ bloki rozmieszczone są blisko siebie, dostęp do plików jest efektywny niewielkie ruchy głowic dyskowych. Możliwa jest szybka lokalizacja bloków pliku, zarówno przy dostępie swobodnym jak i sekwencyjnym. Wadą przydziału ciągłego jest problem fragmentacji zewnętrznej po usuniętych plikach pozostają dziury, które trudno połączyć w jeden, większy blok. Problemy pojawiają się również przy próbie rozszerzenia pliku. Aby to zrobić, zazwyczaj trzeba go przenieść w nowe miejsce (należy znaleźć większą dziurę). Dlatego należy z góry rezerwować dla plików więcej miejsca w przestrzeni dyskowej. Przykład:

6 Przydział listowy W przydziale listowym (ang. linked allocation) plik jest listą powiązanych bloków, dowolnie rozproszonych w dostępnej przestrzeni adresowej. Zaletą tej metody jest brak problemu fragmentacji zewnętrznej, a także łatwa realizacja dostępu sekwencyjnego. Wadą, problem realizacji dostępu swobodnego przejście do poprzedniego bloku wymaga rozpoczęcia przeglądania listy bloków od początku. Konieczne jest tu pamiętanie wewnątrz bloku wskaźnika do bloku następnego. Przydział listowy jest zawodny utrata jednego bloku pociąga za sobą stratę wszystkich następnych. Przykład: Przydział indeksowy W przydziale indeksowym (ang. indexed allocation) wskaźniki (indeksy) do rozproszonych bloków dyskowych skupione są w jednym miejscu w tzw. bloku indeksowym. Wyróżnia się: * schemat listowy bloku indeksowego - gdy w ostatnim elemencie bloku indeksowego znajduje się wskaźnik do następnego bloku indeksowego tego pliku, * indeks wielopoziomowy gdy blok indeksowy pierwszego poziomu zawiera wskaźnik do bloków drugiego poziomu itd.,

7 * schemat kombinowany zastosowanie do pewnej liczny bloków indeksu pierwszego poziomu,dla następnych bloków indeksowego dwupoziomowego itd. Przydział indeksowy charakteryzuje się łatwością lokalizacji bloków pliku, zarówno przy dostępie sekwencyjnym, jak i swobodnym. Brak w nim problemu fragmentacji zewnętrznej. Wadą jest konieczność przeznaczenia pewnej części przestrzeni dyskowej na bloki indeksowe. Przykład: Przykładowe systemy plikowe: FAT FAT ( z ang. File Allocation Table) to system plików powstały pod koniec lat 70-tych, zastosowany w takich systemach operacyjnych jak DOS i Windows Określa on rozmieszczenie plików, katalogów i wolnej przestrzeni na nośnikach danych. Najważniejszym elementem systemu jest tablica informująca o rozmieszczeniu plików na partycji (FAT), od nazwy tej tablicy pochodzi nazwa systemu. Wyróżnia się trzy rodzaje FAT: * FAT 12, * FAT 16, * FAT 32 Podstawowa różnica między nimi polega na różnej ilości bitów, na których koduje się numery jednostek alokacji plików zwane klastrami (określone w nazwie systemu FAT). EXT2 Ext2 ( z ang. second extended filesystem) to drugi, rozszerzony system plików dla systemu operacyjnego Linux. Jest to rozwinięta wersja systemu plików ext. W ext2 rozpoznanie uszkodzenia systemu plików (np. po załamaniu się systemu) następuje przy starcie systemu, co pozwala na automatyczne naprawianie szkód za pomocą oddzielnego programu e2fsck. System plików ext2 zawiera mechanizm zapobiegający znacznej fragmentacji dysku. Dzięki wolnym polom w strukturach danych możliwa jest konwersja w locie do systemu ext3. EXT3

8 Ext3 to nowoczesny system plików oparty na ext2. Jest to domyślny system plików w większości dystrybucji systemu GNU/Linux opartych na jądrze 2.4 oraz nowszych. Główną cechą systemu odróżniająca go od ext2 jest księgowanie. Dane nie są bezpośrednio zapisywane na dysk, ale w dzienniku/kronice. Dzięki temu zmniejsza się prawdopodobieństwo utraty danych. Ext3 dodaje dokładny zapis zmian na dysku co w razie nagłego wyłączenia systemu umożliwia szybkie przywrócenie spójności systemu plików. Zaletą tego systemu plików oprócz dużego bezpieczeństwa danych jest fakt, iż bardzo łatwo przekonwertować do niego system plików ext2. NTFS NTFS (z ang. New Technology File System) to standardowy system plików dla systemów operacyjnych Microsoftu (Windows NT, Windows 2000, Windows XP). Pochodzi od HPFS, który został opracowany przez Microsoft i IBM dla systemu OS/2 na miejsce systemu FAT. Występuje w wersjach: * NTFSv4, * NTFSv5, * NTFSv6 System NTFS posiada kilka ulepszeń w porównaniu do systemu FAT, takich jak wsparcie dla metadanych, użycie zaawansowanych struktur w celu polepszenia, wiarygodności i wydajności (zarówno w odniesieniu do szybkości jak i wymaganej pojemności dyskowej), listy kontroli dostępu (ACL), dziennik operacji dyskowych. 45. Cechy tradycyjnego systemu unixowego. ( Czym tak naprawdę jest system Unix? Nazwa ta pojawia się po raz pierwszy w 1969 roku jako określenie systemu stworzonego przez Kena Thompsona i Dennisa Ritchie z zespołu badawczego Bell Laboratories, będącego częścią koncernu telekomunikacyjnego AT&T. Wraz z wersją 3 systemu pojawiła się przełomowa dla dalszych jego losów koncepcja rozwijania kodu systemu w języku C (powstałym dzięki Ritchiemu i Brianowi Kernighanowi), z niewielką nieprzenośną częścią pisaną w asemblerze danej maszyny. Od początku rozwój systemu był nakierowany na przenośność na poziomie kody źródłowego z racji używania w Bell Laboratories sprzętu rozmaitego typu. Wersja 7 z roku 1978 zamyka pierwszą fazę rozwoju systemu, ograniczą do firmy AT&T, choć już w tym czasie kod systemu trafiał już do amerykańskich uniwersytetów. Unix stał się produktem firmy AT&T. AT&T rozwijało dalej system, co zaowocowało opublikowaniem w 1982 wersji

9 zwanej Systemem III, a w 1983 Systemem V. Na bazie kodu z Bell Laboratories były również prowadzone prace rozwojowe na uczelniach amerykańskich. Najbardziej wpływowy okazał się tu Uniwersytet Kalifornijski w Berkeley (UCB).Wersje systemu powstałe w UCB nazywane były BSD (Berkeley Software Distributions), a pierwsza kompletna pojawiła się już w roku Subsydia rządowe uczyniły wersje Unixa BSD równie dojrzałymi jak wersje z AT&T, choć rozwój szedł w nieco innych kierunkach. Zespół UCB zakończył prace badawcze wraz z wydaniem 4.4 z roku Bazą każdego systemu Unix jest albo wydanie pochodzące z AT&T albo z UCB. Producent sprz etu (Sun, DEC, IBM, HP, Silicon Graphics) nabywał system Unix od firmy AT&T lub UCB, dostosowywał j a do własnego sprzętu i dodawał własne rozszerzenia tworząc wersje użytkowe systemu (odpowiednio: SunOS, Ultrix, AIX, HP/UX, IRIX). Dookoła nazwy Unix powstało wiele organizacji standaryzujących. Sama nazwa Unix ma bogate dzieje, jeżeli chodzi o własność znaku towarowego. Sytuacje komplikuje dodatkowo fakt, ze najpowszechniej obecnie wykorzystywana wersja systemu unixopodobnego, Linux, właściwie nie jest Unixem, ponieważ kod jądra został stworzony od podstaw przez Linusa Torvaldsa i wolontariat internetowy. Wolontariat rozwija również wersje systemu wywodzące się z BSD jak FreeBSD, NetBSD oraz OpenBSD. Nad częścią systemów zbudowano środowiska użytkowe, często bardziej rozbudowane niż sama baza (Unixware nad Systemem V, Solaris nad SunOS em, MacOS X nad FreeBSD). Definicja słowa Unix staje się powoli niemożliwą... Bardzo ważnym pojęciem dla zrozumienia czym Unix jest a czym nie, jest norma POSIX (Portable Operating System Interface for unix). Jest on rodziną standardów opracowanych przez IEEE (Institute for Electrical and Electronics Engineers), uznanych za normy przez ISO (International Organization for Standarization). Definiują one między innymi: interfejs między jądrem systemu (unixopodobnego) a językiem C, formaty baz systemowych, formaty archiwów, interpreter Bourne a i inne programy usługowe (w tym m.in. awk i vi), komunikację międzyprocesową, rozszerzenia czasu rzeczywistego, interfejs wątków i inne. Popularnym znaczeniem słowa unixopodobny (ang. unix-like) jest zgodny z normami POSIX. Pozwala to zakwalifikować jako systemy unixowe również te, które nie dziedziczą kodu po systemach z AT&T. Zaproponuję więc inne spojrzenie na definicję słowa unix (celowo używam tu małej litery), spojrzenie oderwane od znaków towarowych, praw autorskich czy zapożyczę kodu, spojrzenie traktujące unix jako zbiór charakterystycznych cech systemu (czyli słowo unix należy tu czytać jako typowy system unixowy lub unixopodobny ), występujących najczęściej: 1. Jądro systemu jest, oprócz pewnej części ściśle związanej z obsługiwanym sprzętem, napisane w języku wysokiego poziomu (C). 2. Unix to system wielozadaniowy (z podziałem czasu); tradycyjnie unixy preferują zadania nastawione na wejście/wyjście, obniżając priorytety efektywne procesów obliczeniowych. 3. Jednostką aktywną w systemie jest proces, pracujący w trybie nieuprzywilejowanym procesora, we własnej chronionej przestrzeni adresowej; jedynym elementem aktywnym w trybie uprzywilejowanym jest j adro systemu.

10 4. Unix używa pamięci wirtualnej, rozszerzając pamięć operacyjną o tzw. Obszary wymiany w pamięci masowej. Niewykorzystaną pamięć operacyjną wypełniają bufory używanych plików. 5. Podstawową metodą tworzenia nowych procesów jest rozwidlanie procesu aktywnego funkcją systemową fork. Po jej wywołaniu system tworzy nowy proces, którego przestrzeń adresowa jest kopią przestrzeni procesu macierzystego. Oba procesy rozpoczynają współbieżną pracę od następnej instrukcji za wywołaniem fork. Często proces potomny wykonuje niedługo po utworzeniu funkcję systemową execve, która zastępuje kod aktywnego procesu kodem z pliku wykonywalnego. 6. Procesy korzystają podczas pracy z mechanizmów łączenia dynamicznego, ładując kod wspólnych bibliotek w miarę potrzeb. Podstawową biblioteką uwspólnioną jest standardowa biblioteka języka C (tzw. libc). 7. Komunikacja międzyprocesowa odbywa się przez jądro systemu (wydaje się, że jest to najmniej pożądana cecha systemu większość środowisk unixowych zapewnia obecnie nie tylko wsparcie dla organizacji wspólnej pamięci, ale również elementów aktywnych w postaci wątków). 8. Budowie interfejsu programisty systemu (API) prześwięca minimalizm, ujawniający się choćby tym, że odczyt i zapis informacji w rozmaitych urządzeniach obsługiwanych przez system odbywa się za pomocą tego samego interfejsu jak odczyt i zapis informacji do plików zwykłych. Zasadę tę często definiuje się jako: Dla unixa wszystko jest plikiem. 9. Otwarty plik jest dostępny w procesie poprzez liczbę całkowitą zwaną a deskryptorem pliku. Predefiniowanymi deskryptorami są tu wartości 0 (standardowe wejście, zwykle związane z klawiaturą terminala), 1 (standardowe wyjście, zwykle z związane z wyjściem terminala) oraz 2 (standardowe wyjście dla błędów). 10. Unix to system wielodostępny (o ile jego administrator nie zażyczy sobie inaczej); typowymi formami realizacji wielodostępu są sesje z terminali tekstowych bądź ich emulatorów; dla fanów środowisk graficznych przygotowuje się zwykle zdalne środowisko pracy w oparciu o protokół X Window. 11. W środowisku tekstowym naturalnym środowiskiem pracy jest tzw. Interpreter poleceń czyli powłoka (ang. shell). 12. Unix wykorzystuje do pracy w środowisku rozproszonym rodzinę protokołów TCP/IP. 13. Naturalnym sposobem organizacji pamięci masowej jest model indeksowy oparty na tzw. i-węzłach (ang. i-nodes). i-węzeł zawiera w postaci tablicy o stałym rozmiarze wszystkie informacje o pliku poza jego nazwą (jest to przyczyną problemów z implementacją w systemach unixowych tzw. List kontroli dostępu (ang. access control lists) informacja taka z natury bowiem ma charakter dynamiczny). Odwzorowaniem i-węzłów na nazwy plików zajmują się pliki specjalne katalogi. 14. Unixowy system plików jest widoczny jako wielopoziomowe drzewo.

11 15. Unix bezpośrednio po starcie widzi tylko jedno urządzenie pamięci masowej, zawierające tzw. Korzeń systemu plików (oznaczany znakiem /). Inne urządzenia są przyłączane do głównego drzewa w procesie tzw. Montowania (to nieszczęśliwa kalka angielskiego słowa mount) i są widoczne jako fragmenty drzewa plikowego od pewnego katalogu określanego jako punkt montowania. 16. Plik danych jest ciągiem bajtów. 17. System praw dostępu do plików (czyli również do urządzeń czy kanałów komunikacyjnych, w myśl hasła wszystko jest plikiem ) jest zbudowany w oparciu o tablicę bitową stałej długości, zapisaną w i-węźle. Zawiera ona zezwolenia na trzy podstawowe operacje czytanie, zapis i wykonanie dla trzech rozłącznych klas użytkowników: właściciela pliku, członków tzw. grupy pliku oraz innych.bardzo charakterystyczne dla unixa sa bity SUID i SGID. Ich ustawienie dla pliku wykonywalnego zmienia efektywny identyfikator użytkownika (bądź włącza do grupy pliku) dla uruchamiającego. Unixowy system praw dostępu jest bardzo efektywny w działaniu, brak dynamicznych list dostępu jest jednakże dość uciążliwy. 18. W unixie obowiązuje model administracyjny, bazujący na ograniczonym zaufaniu do użytkowników. Ujawnia się on między innymi tym, że zwykle użytkownik lokalny ma prawo zapisu jedynie w swoim katalogu domowym, katalogu na pliki tymczasowe oraz w kilku innych, dobrze znanych miejscach. Jednocześnie administratora systemu (użytkownika o numerze identyfikacyjnym 0) nie dotyczą jakiekolwiek ograniczenia. 46. Wsparcie sprzętowe dla wielozadaniowych systemów operacyjnych. Tryb rzeczywisty to tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel Nowym trybem pracy procesora Intel był tryb chroniony. W trybie tym brak ochrony pamięci przed użyciem przez inny proces i brak obsługi wielozadaniowości. W trybie rzeczywistym pracowały programy w systemie operacyjnym DOS, na przełomie lat 80 i 90 dwudziestego wieku prowadzono działania nad pracą programów w systemie DOS w trybie chronionym, pozostawiając sam system w trybie rzeczywistym, zbudowano kilka systemów umożliwiających taką pracę systemu. Tryb chroniony (ang. protected mode) to tryb pracy mikroprocesorów serii x86 wprowadzony w mikroprocesorze Intel Tryb chroniony umożliwia adresowanie pamięci w większym zakresie niż 1MB (tryb rzeczywisty), wprowadza wiele nowych udogodnień wspierających wielozadaniowość, takich jak: sprzętowa ochrona pamięci (układ MMU), wsparcie przełączania kontekstu procesora i wiele innych. Większość nowoczesnych systemów operacyjnych wykorzystuje procesory serii x86 właśnie w trybie chronionym. Zaliczają się do nich m.in.: Linux, Windows w wersji 3.0 i wyższych, systemy z rodziny BSD.

12 Tryb chroniony został wprowadzony do mikroprocesora Intel wraz z trybem rzeczywistym (ang. real mode) dla zachowania zgodności z poprzednimi mikroprocesorami rodziny x86. W mikroprocesorze Intel w trybie chronionym 16-bitowe rejestry segmentowe CS, SS, DS, ES zawierają selektory, które jednoznacznie określają deskryptor (8- bajtowa struktura w pamięci) opisujący segment. Deskryptor dysponuje następującymi informacjami o segmencie: fizyczna lokalizacja segmentu w pamięci (24-bitowy adres bazowy, 16-bitowa długość segmentu w bajtach), prawa dostępu do segmentu i numer uprawnienia segmentu. W odróżnieniu od trybu chronionego w trybie rzeczywistym rejestry segmentowe CS, SS, DS, ES zawierają adresy bazowe (początków) segmentów. Procesor zaczyna pracę trybie chronionym po ustawieniu bitu PE (ang. Protection Enable) na jeden, wyzerowanie tego bitu powoduje powrót do trybu rzeczywistego (bit PE to najmłodszy bit rejestru CR0 (ang. Control Register)). MMU (Memory Management Unit), to zestaw układów realizujących dostęp do pamięci fizycznej żądanej przez CPU. Wśród zadań tych układów znajdują się funkcje translacji pamięci wirtualnej do pamięci fizycznej, ochronę pamięci, obsługę pamięci podręcznej, zarządzanie szynami danych oraz, w prostszych (szczególnie 8-bitowych) systemach, przełączanie banków pamięci. Obecne układy MMU dzielą przestrzeń logiczną (wirtualną) pamięci na strony, których rozmiar wynosi 2N, zazwyczaj kilka kilobajtów. Młodsze N bitów adresu (przesunięcie - ang. offset) pozostaje niezmienione, podczas gdy starsze bity adresu określają numer (logiczny) strony pamięci. MMU tłumaczy adresy logiczne (wirtualne) na adresy fizyczne za pomocą asocjacyjnej pamięci podręcznej nazywanej TLB Translation Lookaside Buffer. Jeżeli TLB nie posiada odpowiedniego przypisania (rozmiar pamięci TLB jest ograniczony) uruchamiane są wolniejsze, sprzętowe mechanizmy procesora przeszukujące struktury danych znajdujące się w pamięci, co wymaga niekiedy pomocy ze strony oprogramowania (systemu operacyjnego). Pozycje w tych strukturach nazywają się wpisami (elementami) tablicy stron pamięci (PTEs - Page Table Entries) a cała struktura nazywana jest tablicą stron pamięci (ang. Page Table). Kompletny adres w pamięci fizycznej jest ustalany poprzez dodanie bitów przesunięcia (ang. offset) do przetłumaczonego numeru strony. Wpisy w TLB lub PTE mogą także przechowywać informację o tym, czy dostęp do strony odbył się w trybie zapisu (ang. dirty bit) czy w trybie odczytu (ang. accessed bit - bit pomocny algorytmom wymiatania pamięci), bity uprawnień do operacji na stronie pamięci (prawa dla trybu nadzorcy lub trybu użytkownika) lub informację o tym, czy strona może być przeniesiona do pamięci wymiany. Jeżeli w strukturach TLB lub PTE nie znajduje się odpowiedni opis aktualnie wykorzystywanej logicznej strony pamięci lub znajdujący się wpis zabrania dostępu w danym trybie, MMU sygnalizuje CPU wyjątek związany z błędnym dostępem do strony pamięci, tzw. page fault. System operacyjny może wtedy podjąć akcje związane z wyjątkiem, np. uzupełnić wpisy w tablicy stron lub w TLB, ew. przerwać proces, którego działanie spowodowało wystąpienie wyjątku. Segmentacja pamięci - jedna z metod ochrony pamięci, używana przy wielozadaniowości. Każdy proces otrzymuje swój własny obszar pamięci, realizowany poprzez rejestry segmentowe. Segmentacja pamięci polega na podzieleniu przez system operacyjny pamięci fizycznej na fragmenty o określonym początku, rozmiarze, atrybutach i identyfikatorze. System tworzy

13 takie segmenty na żądanie aplikacji, przekazując jej jedynie identyfikatory nie pozwalające na odczytanie parametrów segmentów. Programy odwołują się zatem do kolejnych komórek pamięci w ramach należących do nich segmentów, nie wiedząc nic o tym, w jakie miejsca pamięci fizycznej trafiają ich odwołania. Procesy nie mają też prawa widzieć segmentów należących do innych programów w czasie przekazywania kontroli procesowi system musi zablokować definicje segmentów należących do pozostałych procesów, przy każdym przełączeniu blokując segmenty wyłączanego programu i na nowo uaktywniając segmenty programu aktywowanego. Segmenty mają swoje zalety. Największą jest prostota relokacji kodu i danych; ponieważ nie jest ważne gdzie w pamięci fizycznej zakotwiczony jest segment, program może odwoływać się do kolejnych słów pamięci w ramach segmentu zawsze licząc od zera do końca segmentu. Konieczne dodawanie adresów realizuje sprzętowo układ zarządzający pamięcią. Okazuje się jednak, że wady segmentacji przeważyły nad zaletami. Pierwsze implementacje segmentowanej pamięci wirtualnej narzucały dość poważne ograniczenia na rozmiary segmentów, zmuszając programistów do dzielenia kodu programów oraz bloków danych w sposób nienaturalny i utrudniając tworzenie naprawdę dużych struktur danych. Nawet po zniesieniu tego ograniczenia okazało się, że nikt nie chce bawić się w dzielenie programu na logiczne części, a normalną pracę systemu i programu można osiągnąć znacznie prostszymi środkami. Segmentacja jest rozwiązaniem bardzo eleganckim, lecz na tyle kłopotliwym, że obecnie praktycznie się jej nie stosuje. Przełączanie kontekstu to komputerowy proces zachowania i odtwarzania stanu procesora (kontekstu), by wiele procesów mogło dzielić zasoby pojedynczego procesora. Przełączanie kontekstu to ważna cecha wielozadaniowego systemu operacyjnego. Z reguły przełączanie kontekstu jest zadaniem intensywnym obliczeniowo i wiele czasu przy projektowaniu systemów operacyjnych poświęca się na optymalizację tego zadania. Pamięć wirtualna jest techniką programową a także sprzętową gospodarowania pamięcią operacyjną RAM pozwalającą na przydzielanie pamięci dla wielu procesów, zwalnianie jej i powtórne przydzielanie. Mechanizm umożliwia przydzielenie procesom więcej pamięci niż rzeczywista ilość pamięci fizycznej zainstalowanej w komputerze poprzez przeniesienie danych z ostatnio nie używanej pamięci do pamięci masowej (np. twardego dysku), w sytuacji gdy procesor odwołuje się do danych z pamięci przeniesionej na dysk przesuwa się te dane do pamięci w wolne miejsce, a gdy brak wolnej pamięci zwalnia się ją przez wyżej opisane przerzucenie jej na dysk. Najczęściej spotykane są dwa sposoby przechowywania danych zrzuconych z pamięci fizycznej na dysk. Pierwszy, stosowany w systemach rodziny Windows polega na zapisie pamięci w pliku znajdującym się na ustalonej partycji komputera. Drugi, stosowany w systemach z rodziny UNIX to utworzenie osobnej partycji wymiany (partycji swap) przeznaczonej wyłącznie na pamięć wirtualną. Zapewnia to szybszy dostęp do danych niż pierwsze rozwiązanie (głównie ze względu na ominięcie obsługi systemu plików). Pamięć wirtualna jest najczęściej zaimplementowana przy użyciu stronicowania. Procesor gospodaruje wówczas pamięcią w blokach będących wielokrotnością strony o jednakowej wielkości (w procesorach Pentium 4 kb lub 4 MB). Procesy (poza procesem zarządzania

14 pamięcią) "widzą" pamięć poprzez adresy logiczne. Gdy proces rezerwuje pamięć proces rządzący pamięcią przydziela blok opisujący parametry tej pamięci w tablicy stron (adres logiczny, wielkość, adres fizyczny, warunki użycia i inne informacje umożliwiające gospodarowaniem pamięcią). Adresy logiczne są tłumaczone na ich fizyczne odpowiedniki przy pomocy tablicy stron. Ta znajdująca się w RAM struktura zawiera informacje o tym, gdzie w danej chwili znajduje się dana strona. Tablica stron pamięci jest najczęściej buforowana poprzez bufor TLB, zawierający kilkadziesiąt (zwykle ok. 32) wpisów, do których w ostatnim czasie nastąpiło odwołanie. Pamięć wirtualna może także działać w innych trybach - najpopularniejsze z nich to segmentacja i stronicowanie z segmentacją. Pierwsza implementacja tej techniki (w systemie UNIX) pojawiła się w systemie 3BSD, napisanym w UCB. Wywłaszczenie - to technika używana w środowiskach wielowątkowych, w której algorytm szeregujący (scheduler) może wstrzymać aktualnie wykonywane zadanie (np. proces lub wątek), aby umożliwić działanie innemu. Dzięki temu rozwiązaniu zawieszenie jednego procesu nie powoduje blokady całego systemu operacyjnego. W systemach bez wywłaszczenia zadania jawnie informują scheduler, w którym momencie chcą umożliwić przejście do innych zadań. Jeżeli nie zrobią tego w odpowiednim czasie, system zaczyna działać bardzo wolno. Oprócz tego wywłaszczanie umożliwia szczegółowe określanie czasu, w jakim dany proces może korzystać z procesora. Wywłaszczanie w niektórych systemach operacyjnych może dotyczyć nie tylko programów, ale także samego jądra - przykładem takiego systemu jest Linux. Wywłaszczanie jest często ograniczane, na przykład procedury odpowiedzialne za obsługi przerwań sprzętowych są zwykle niewywłaszczalne, co znacznie upraszcza ich konstrukcje ale wymusza też zadbanie o to, żeby szybko się kończyły umożliwiając działanie innym procesom. W systemie Linux przed wersją 2.6 niemożliwe było wywłaszczenie procesu który znajdował się w trybie jądra, co w pewnych sytuacjach mogło być powodem bardzo wolnej reakcji na działania użytkownika. Popularne wielozadaniowe systemy operacyjne z możliwością wywłaszczania procesów [edytuj] * przeważająca większość systemów uniksowych * Mac OS X * Microsoft Windows (95, 98, ME, NT, 2000, XP, Vista) * AmigaOS (1.3,2.x,3.x,4.x,Morphos) Popularne wielozadaniowe systemy operacyjne bez możliwości wywłaszczania procesów [edytuj] * Microsoft Windows 3.x i wcześniejsze * Mac OS 9 i wcześniejsze

15 47. Algorytmy szeregowania zadań Definicja Dla jednego procesora jest to funkcja: Algorytm szeregowania n zadań stanowiących zbiór J= {J_1,..., J_n} jest to takie przydzielanie zadań procesorowi (lub procesorom), że każde zadanie jest przetwarzane do momentu zakończenia. Jednakże przetwarzanie danego zadania może być przerywane na bliżej nieokreślony czas. Zatem zgodnie z definicją, jest to funkcja która dzieli czas na przedziały i każdemu przedziałowi przyporządkowuje jedną wartość naturalną będącą numerem procesu, który ma się w tym przedziale czasu wykonywać. Przyjęte jest, że przyporządkowanie wartości równej 0 oznacza procesor w stanie bezczynności. Numer nie musi mieć związku z priorytetem zadania. Chociaż wyjaśnienie wydaje się proste, zaprojektowanie i implementacja dobrego algorytmu szeregowania nastręcza wielu trudności. Implementacja Zwykle implementacja algorytmu jest umieszczana w jądrze systemu, jednak nie zawsze. Ponieważ jego celem jest jedynie ustawianie listy zadań kierowanych do wykonywania a nie samo ich kierowanie, może być jednym ze zwykłych zadań, spełniającym usługę dla jądra. Taką sytuację można spotkać w systemach opartych o mikrojądro. Planista musi także uwzględniać priorytety procesów i ich gotowość do wykonania oraz przeciwdziałać zagłodzeniu procesu poprzez przedłużający się brak dostępu do zasobów oraz tzw. inwersji priorytetów. Większość praktycznych rozwiązań oparta jest o nadawanie zadaniom priorytetów. Jednak już samo określanie priorytetu jest problemem nietrywialnym i nie można rozpatrywać go niezależnie od co najmniej kilku czynników: * Obszaru zastosowania systemu * Celu jaki ma osiągnąć każde z zadań * Zastosowanego algorytmu szeregowania W praktyce pod względem czasu na jaki realizowane jest planowanie kolejki zadań, można wyróżnić dwa typy planistów: * Planista długoterminowy wybiera procesy z pamięci masowej i ładuje do pamięci operacyjnej.

16 * Planista krótkoterminowy odpowiada za ustalanie kolejności wykonywania procesów gotowych do wykonania. Musi być on bardzo szybki, w przeciwieństwie do planisty długoterminowego. Problem szeregowania zadań powinien być rozpatrywany wielopłaszczyznowo i zwykle nie można go sprowadzić wyłącznie do rozdziału czasu procesora. Implementacja w typowym systemie powinna uwzględniać również takie elementy jak na przykład: * Korzystanie z zasobów sprzętowych takich jak na przykład pamięć masowa, sieć itd. * Lokalność pamięci cache * Różne wymagania wobec procesów (priorytety, poziom interaktywności) W systemach operacyjnych codziennego użytku łatwo dokonać podziału na zadania interaktywne i nieinteraktywne. Zadania interaktywne przez większość czasu pozostają w stanie oczekiwania na reakcję użytkownika. Gdy taka reakcja nastąpi, powinny szybko przejść do stanu wykonywania aby ich użytkownik nie miał wrażenia, że program "zacina się". Problemem jest tu nieprzewidywalny moment, w którym do wykonywania powinno być skierowane zadanie interaktywne. Należy jednocześnie zapewnić jak najmniejsze opóźnienia w realizowaniu zadań nieinteraktywnych. Szeregowanie a wywłaszczanie Większość współcześnie spotykanych rozwiązań opiera się na wymuszaniu oddania kontroli czyli wielozadaniowości z wywłaszczaniem. Systemy dobrowolnego oddawania kontroli (wielozadaniowość oparta na współpracy) są rzadziej spotykane, gdyż pojedynczy źle zaimplementowany lub wrogi proces potrafi w takim wypadku zdestabilizować pracę całego systemu. Dość często stosuje się też rozwiązania mieszane - wymuszanie wobec zadań (realizowanych zwykle jako procesy) a współpraca wewnątrz zadania czyli zwykle między wątkami. Wybrane algorytmy szeregowania Używane najczęściej * FIFO - algorytm powszechnie stosowany, jeden z prostszych w realizacji, dający dobre efekty w systemach ogólnego przeznaczenia; zadanie wykonuje się aż nie zostanie wywłaszczone przez siebie lub inne zadanie o wyższym priorytecie; * Planowanie rotacyjne (round-robin) - każde z zadań otrzymuje kwant czasu; po spożytkowaniu swojego kwantu zostaje wywłaszczone i ustawione na końcu kolejki; * Planowanie sporadyczne - zadania otrzymują tak zwany "budżet czasu"; ten algorytm pomaga pogodzić wykluczające się reguły dotyczące szeregowania zadań okresowych i nieokresowych; wciąż nie jest implementowany przez wiele systemów, jednak znalazł się w standardzie POSIX; Mniej powszechne Trzy wymienione wyżej algorytmy są stosowane najczęściej. Jednak lista algorytmów szeregowania jest bardzo długa i znajdują się na niej między innymi jeszcze takie algorytmy jak:

17 * FCFS (first come, first start) - Bardzo podobny do kolejki FIFO - Pierwszy przyjdzie, pierwszy wykonany. Algorytm ten dokonuje najsprawiedliwszego przydziału czasu (każdemu według potrzeb), jednak powoduje bardzo słabą interakcyjność systemu - pojedynczy długi proces całkowicie blokuje system na czas swojego wykonania, gdyż nie ma priorytetów zgodnie z którymi mógłby zostać wywłaszczony. Algorytm ten stosuje się jednak z powodzeniem w systemach wsadowych, gdzie operator ładuje zadania do wykonania, a one wykonują się do skutku. * SJF (shortest job first) - Najpierw najkrótsze zadanie. Jest algorytmem optymalnym ze względu na najkrótszy średni czas oczekiwania. W wersji z wywłaszczaniem, stosowana jest metoda: najpierw najkrótszy czas pracy pozostałej do wykonania. Problemem tego algorytmu jest głodzenie długich procesów - może się zdarzyć, że cały czas będą nadchodzić krótsze procesy, a wtedy proces dłuższy nigdy nie zostanie wykonany. Modyfikacje Działania planisty zwykle muszą być skonsolidowane z całością systemu. Dlatego w praktycznie używanych algorytmach szeregowania pojawiają się dodatkowe cechy, takie jak: * Planowanie priorytetowe - wybierany jest proces o najwyższym priorytecie. W tej metodzie występuje problem nieskończonego blokowania (procesu o niskim priorytecie przez procesy o wysokim priotytecie). Stosuje się tu postarzanie procesów, polegające na powolnym podnoszeniu priorytetu procesów zbyt długo oczekujących. * Planowanie wielopoziomowe - zadania przypisywane są do kolejek szeregowania w zależności od parametru opisującego każde z zadań jakim w praktyce zwykle jest priorytet. Zadania w danej kolejce są następnie szeregowane określonym algorytmem takim jak na przykład FIFO lub round-robin i kierowane do wykonania. Jeśli w danej kolejce nie ma zadań gotowych do wykonywania, planista ponownie dokonuje analizy kolejki ale dla zadań o niższym priorytecie. Zwykle możliwa jest zmiana kolejki w której szeregowane jest zadanie, poprzez zmianę priorytetu zadania. * Planowanie wieloprocesorowe - na jednakowe lub różne procesory a także całe komputery; * Synchronizacja międzyzadaniowa - ze względu na powiązanie zadań różnymi zasobami a nie tylko procesorem, konieczne jest uwzględnienie aspektu dostępu do tych innych zasobów przez szeregowane zadania; 48. Model sekcji krytycznej i warunki jego poprawnego funkcjonowania. Sekcja krytyczna - w programowaniu współbieżnym fragment kodu programu, który w danej chwili powinien być wykonywany przez nie więcej niż jeden wątek. Brak wzajemnego wykluczania się wykonywania sekcji krytycznych może spowodować błędy wykonania, np. dwukrotne zapisanie danej albo niepoprawna modyfikacja. Rozpatrzmy dwa procesy zliczające liczbę wystąpień tego samego elementu:

18 Kod x = x + 1 rozkłada się na prostsze elementy: 1. wczytaj zmienną X 2. zwiększ zmienną X 3. zapisz zmienną X W komputerze działają dwa takie procesy i zliczają wystąpienia: 1. początkowa wartość x = 1 2. proces 1 wykonuje instrukcję 1 3. system operacyjny przerywa działanie procesu 1 i przekazuje sterowanie do procesu 2, 4. proces 2 wykonuje wszystkie instrukcje i ustawia x na 2, 5. system przełącza działanie na proces 1 6. proces 1 zwiększa pobraną w pierwszym punkcie wartość o 1, czyli do 2, i wykonuje instrukcję 3 zapisując wartość 2. Przy rozdzielnym działaniu programów wartość x powinna równać się 3 a nie 2. Sekcje krytyczne realizuje się np. z wykorzystaniem muteksów lub semaforów. Model sekcji krytycznej Rozważmy system złożony z n procesów. Każdy z nich ma w kodzie fragment zwany sekcją krytyczną. W modelu sekcji krytycznej co najwyżej 1 proces systemu może znajdować się w swojej sekcji krytycznej (jeden lub żaden). Przed wejściem do swojej sekcji krytycznej proces musi dostać na to zgodę (od innych procesów grupy lub od S.O.). Oczekiwanie na zgodę nazywamy sekcją wejściową. Po zakończeniu wykonania sekcji krytycznej proces musi poinformować o jej zakończeniu i, że inni mogą do niej wejść (bo inaczej inni nie będą wiedzieli, że sekcja krytyczna jest wolna) jest to nazywane sekcją wyjściową. Resztę kodu procesu nazywamy resztą. Ogólny schemat procesu korzystającego z sekcji krytycznej While(1) { } /* sekcja wejściowa*/ /* sekcja krytyczna*/ /* sekcja wyjściowa*/ /* reszta*/ Warunki poprawnego funkcjonowania modelu sekcji krytycznej:

19 1. wzajemne wyłączanie (gdy proces jest w sekcji krytycznej to żaden inny nie może do niej wejść) jest to warunek podstawowy, zazwyczaj spełniony w pierwszej kolejności.; 2. warunek postępu tylko procesy wykonujące sekcję wejściową mogą kandydować do wejścia do sekcji krytycznej, a wybór jednego z nich nie może być odwlekany; 3. ograniczone czekanie jeżeli proces wykonuje sekcję wejściową to istnieje ograniczona liczba wejść do sekcji krytycznej innych programów.

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

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego 41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego Pierwsze komputery, budowane według zasad określonych przez Johna von Neumanna, nie były kompatybilne dla

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

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

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

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

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

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 Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

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

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

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

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

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

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

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

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

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

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

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

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

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

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

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

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

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

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie

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

Proces y i y w i ąt ą ki

Proces y i y w i ąt ą ki Procesy i wątki Proces 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

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

architektura komputerów w. 8 Zarządzanie pamięcią

architektura komputerów w. 8 Zarządzanie pamięcią architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności

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

System komputerowy. System komputerowy

System komputerowy. System komputerowy System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo

Wykład 7. Zarządzanie pamięcią

Wykład 7. Zarządzanie pamięcią Wykład 7 Zarządzanie pamięcią -1- Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona

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

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1 Tryb chroniony cz. 1 Moduł zarządzania pamięcią w trybie chronionym (z ang. PM - Protected Mode) procesorów IA-32 udostępnia: - segmentację, - stronicowanie. Segmentacja mechanizm umożliwiający odizolowanie

Bardziej szczegółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

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

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

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

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

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) Miejsce, rola i zadania systemu operacyjnego

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

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

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

System operacyjny System operacyjny

System operacyjny System operacyjny System operacyjny System operacyjny (ang. operating system) jest programem (grupą programów), który pośredniczy między użytkownikiem komputera a sprzętem komputerowym. Jest on niezbędny do prawidłowej

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Komunikacja za pomocą potoków. Tomasz Borzyszkowski Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania

Bardziej szczegółowo

Systemy plików FAT, FAT32, NTFS

Systemy plików FAT, FAT32, NTFS Systemy plików FAT, FAT32, NTFS SYSTEM PLIKÓW System plików to sposób zapisu informacji na dyskach komputera. System plików jest ogólną strukturą, w której pliki są nazywane, przechowywane i organizowane.

Bardziej szczegółowo

Zarządzanie zasobami pamięci

Zarządzanie zasobami pamięci Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Zarządzanie procesorem

Zarządzanie procesorem Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!

Bardziej szczegółowo

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski Układ sterowania, magistrale i organizacja pamięci Dariusz Chaberski Jednostka centralna szyna sygnałow sterowania sygnały sterujące układ sterowania sygnały stanu wewnętrzna szyna danych układ wykonawczy

Bardziej szczegółowo

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

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

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

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

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

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

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

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

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

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

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku System plików Definicje: Plik jest logiczną jednostką magazynowania informacji w pamięci nieulotnej Plik jest nazwanym zbiorem powiązanych ze sobą informacji, zapisanym w pamięci pomocniczej Plik jest

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny 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

Podstawy Informatyki Systemy operacyjne

Podstawy Informatyki Systemy operacyjne Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych 2 Zasoby systemu komputerowego

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Planowanie przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny uszeregowania Algorytmy

Bardziej szczegółowo

Sektor. Systemy Operacyjne

Sektor. Systemy Operacyjne Sektor Sektor najmniejsza jednostka zapisu danych na dyskach twardych, dyskietkach i itp. Sektor jest zapisywany i czytany zawsze w całości. Ze względów historycznych wielkość sektora wynosi 512 bajtów.

Bardziej szczegółowo

Procesor budowa, schemat, tryby pracy

Procesor budowa, schemat, tryby pracy 1 Procesor budowa, schemat, tryby pracy Procesor (ang. processor), także CPU (ang. Central Processing Unit) to główny element komputera, urządzenie cyfrowe sekwencyjne, którego zadaniem jest wykonywanie

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

"Klasyczna" struktura systemu operacyjnego:

Klasyczna struktura systemu operacyjnego: "Klasyczna" struktura systemu operacyjnego: Użytkownik Powłoka (shell) Programy użytkowe Programy systemowe API Jądro (kernel) Programy obsługi sprzętu (drivers) Sprzęt Funkcje systemu operacyjnego obsługa

Bardziej szczegółowo

Stronicowanie w systemie pamięci wirtualnej

Stronicowanie w systemie pamięci wirtualnej Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni

Bardziej szczegółowo

Podstawowe wiadomości o systemach plików.

Podstawowe wiadomości o systemach plików. Podstawowe wiadomości o systemach plików. Komputery mogą przechowywać informacje w kilku różnych postaciach fizycznych na różnych nośnikach i urządzeniach np. w postaci zapisów na dysku twardym, płytce

Bardziej szczegółowo

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie. Procesy i wątki Proces 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

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

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1 Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny algorytmów planowania Algorytmy planowania (2) 1 Komponenty jądra w planowaniu Planista

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

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 005 Plik wymiany Pamięć wirtualna 2 SO i SK/WIN Plik wymiany - rodzaj pamięci wirtualnej komputerów. Plik ten służy do tymczasowego przechowywania

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

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

System plików warstwa logiczna

System plików warstwa logiczna Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie

Bardziej szczegółowo

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści Kolejki planowania procesów Diagram kolejek Kolejka zadań (job queue) - tworzą ją procesy wchodzące do systemu. Kolejka procesów gotowych (ready queue) - procesy gotowe do działania, umieszczone w pamięci,

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

Pytania do treści wykładów:

Pytania do treści wykładów: Pytania do treści wykładów: Wprowadzenie: 1. Jakie zadania zarządzania realizowane są dla następujących zasobów: a) procesor, b) pamięć, c) plik? 2. W jaki sposób przekazywane jest sterowanie do jądra

Bardziej szczegółowo

Materiały pomocnicze 1

Materiały pomocnicze 1 JĄDRO SYSEMU Jądro systemu stanowi główny interfejs między sprzętem (surową maszyną), a systemem operacyjnym. JĄDRO SYSEMU inne elementy systemu jądro systemu surowa maszyna 2 PODSAWOWE UDOGODIEIA SPRZĘOWE

Bardziej szczegółowo

Mikroprocesory rodziny INTEL 80x86

Mikroprocesory rodziny INTEL 80x86 Mikroprocesory rodziny INTEL 80x86 Podstawowe wła ciwo ci procesora PENTIUM Rodzina procesorów INTEL 80x86 obejmuje mikroprocesory Intel 8086, 8088, 80286, 80386, 80486 oraz mikroprocesory PENTIUM. Wprowadzając

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

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