- graf przejśd stanów procesów w systemie Unix,

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

Download "- graf przejśd stanów procesów w systemie Unix,"

Transkrypt

1 Definicje podstawowe i _obowiązkowe_: - system operacyjny, System operacyjny to zbiór programów i procedur spełniających dwie podstawowe funkcje: - zarządzenia zasobami systemu komputerowego, - tworzenie maszyny wirtualnej. Zasobem systemu natomiast jest każdy jego element sprzętowy lub programowy, który może byd przydzielony danemu procesowi. System zarządza zasobami w czasie i przestrzeni. Zasoby sprzętowe: czas procesora, pamięd operacyjna, urządzenia zewnętrzne, inne komputery w sieci. Zasoby programowe: pliki, bufory, semafory, tablice systemowe. - proces, Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie operacyjnym. Utworzenie procesu może byd rezultatem; inicjalizacji systemu, wywołania przez już uruchomiony proces funkcji systemowej do tworzenia procesu, zlecenia użytkownika utworzenia nowego procesu, uruchomienia zadania wsadowego. Zakooczenie natomiast może byd skutkiem; zakooczenia działania algorytmu procesu, celowego zakooczenia w wyniku wystąpienia błędu, wykonania niedozwolonej operacji (zakooczenie wymuszone), otrzymania sygnału od innego procesu (zakooczenie wymuszone). - powłoka, Powłoka, interpreter poleceo (ang. shell) jest programem uruchamianym standardowo po otwarciu sesji użytkownika przez proces login. Powłoka jest aktywna, aż do wystąpienia znaku <EOT>, który powoduje jej zatrzymanie i zgłoszenie tego fakty do jądra systemu. Każdy użytkownik otrzymuje własny i odrębny egzemplarz sh. Program sh wypisuje monit $ na ekranie, dając znad o swojej gotowości do przyjęcia polecenia. - sekcja krytyczna, Sekcja krytyczna fragment programu, w którym występują instrukcje dostępu do zasobów dzielonych. Instrukcje tworzące sekcje krytyczne muszą byd poprzedzone i zakooczone operacjami realizującymi wzajemne wykluczanie. Warunki konieczne implementacji SK: - wewnątrz SK może przebywad tylko 1 proces, - jakikolwiek proces znajdujący się poza SK, nie może zablokowad innego procesu pragnącego wejśd do SK, - każdy proces oczekujący na wejście do SK powinien otrzymad prawo dostępu w rozsądnym czasie. - semafor, Semafor zmienna, inicjowana nieujemną wartością całkowitą i zdefiniowana poprzez definicje niepodzielnych operacji P(s) i V(s): P(s): while (s <= 0) do { ; S:=S 1; -, V(s): S:=S+1. Holenderskie P i V od proberen (testowad) i verhogen (zwiększad), teraz dla semaforów wielowartościowych zazwyczaj down()/up(), wait()/signal(), a dla semaforów binarnych często lock()/unlock(). - pamięd wirtualna. System pamięci złożony z co najmniej dwóch rodzajów pamięci: małej i szybkiej (np. pamięci operacyjnej) oraz dużej, lecz wolnej (np. pamięci pomocniczej), a także z dodatkowego sprzętu i oprogramowania umożliwiającego automatyczne przenoszenie fragmentów pamięci z jednego rodzaju pamięci do drugiego. Tak naprawdę w pamięci wirtualnej chodzi o to, iż proces operuje na liniowej przestrzeni wirtualnej przestrzeni adresowej, która nie musi odpowiadad liniowej przestrzeni w pamięci fizycznej. Dodatkowo, jakieś obszary pamięci mogą byd niedostępne w pamięci fizycznej, a na dysku czy innym pomocniczym medium (słyszałem, że pod Linuksem udało się korzystad z pamięci karty graficznej jako swapu). Procesy i wątki: - pojęcia współbieżności/równoległości/rozproszoności, Współbieżnośd - procesy nie muszą wykonywad się jeden po drugim. Równoległośd - procesy wykonują się jednocześnie. Rozproszonośd - procesy wykonują się no różnych maszynach. - graf przejśd stanów procesów w systemie Unix,

2 - porównanie procesów i wątków, Procesy mają osobną przestrzeo adresową, wątki nie. Procesy są generalnie cięższe od wątków i przełączanie pomiędzy procesami trwa dłużej niż pomiędzy wątkami. - porównanie wątków poziomu jądra i wątków poziomu użytkownika, Jądro nie wie o istnieniu wątków poziomu użytkownika toteż, na maszynie 1024 procesorowej i tak będzie wykonywał się jeden wątek użytkownika, tymczasem wątki poziomu jądra mogą byd szeregowane przez jądro i wówczas wiele wątków tego samego procesu może wykonywad się jednocześnie na kilku procesorach. - architektura wielowątkowa w systemie Solaris, Solaris wykorzystuje 4 rozłączne koncepcje: Procesy standardowe procesy systemu Unix, Wątki poziomu użytkownika zaimplementowane bibliotecznie, nierozróżnialne z punktu widzenia jądra, stanowią interfejs do współbieżności, Procesy lekkie (ang. Lightweight processes, LWP) - stanowią formę odwzorowania między wątkami poziomu użytkownika, a wątkami jądra. Każdy LWP obsługuje 1 lub więcej wątków poziomu użytkownika odwzorowując w jeden wątek jądra. LWP rozróżniane i szeregowane przez jądro. LWP mogą byd uruchomione równolegle w architekturze wieloprocesorowej. Wątki jądra podstawowe elementy szeregowane i rozmieszczane na procesorach. - metody realizacji serwerów usług. - serwery wielowątkowe - współbieżnośd, blokujące wywołania systemowe, - procesy jednowątkowe - brak współbieżności, blokujące wywołania systemowe, - automaty skooczone współbieżnośd, nieblokujące wywołania systemowe, przerwania. Wzajemne wykluczanie i synchronizacja: - wyścig i warunki wyścigu, Warunkami wyścigu nazywamy sytuację, w której 2 lub więcej procesów wykonuje operację na zasobach dzielonych, a ostateczny wynik tej operacji jest zależny od momentu jej realizacji. - warunki konieczne implementacji sekcji krytycznej, Warunki konieczne implementacji SK:

3 - wewnątrz SK może przebywad tylko 1 proces, - jakikolwiek proces znajdujący się poza SK, nie może zablokowad innego procesu pragnącego wejśd do SK, - każdy proces oczekujący na wejście do SK powinien otrzymad prawo dostępu w rozsądnym czasie. - mechanizmy realizacji wzajemnego wykluczania z aktywnym oczekiwaniem - porównanie, (wady: strata czasu procesora, możliwośd blokady systemu przy wielopriorytetowym sposobnie szeregowanie procesów, tzw. zjawisko inwersji procesów): 1. Blokowanie przerwao: każdy proces wchodząc do SK blokuje przerwania, a wychodząc odblokowuje, zaleta: proces znajdujący się w SK może uaktualnid zawartośd zasobów dzielonych bez obawy, że inny proces będzie interweniował, wada: jeśli proces na wyjściu z KSK nie odblokuje przerwao to nastąpi upadek systemu; ponadto, w przypadku systemów wieloprocesorowych technika nieskuteczna, technika blokowania przerwao może byd stosowana w jądrze SO przy uaktualnianiu niektórych systemowych struktur danych, lecz nie może byd wykorzystywana do realizacji wzajemnego wykluczania w przestrzeni użytkownika. 2. Zmienne blokujące rozwiązanie programowe. Niech będzie dana zmienna dzielona o nazwie lock. Niech początkowo lock ma wartośd 0. Kiedy proces P chce wejśd do SK to sprawdza wartośd lock: jeżeli lock 0, to ustawia lock na 1 i wchodzi do SK, jeżeli nie, to proces czeka, aż lock == 0. Więc, lock = 0 oznacza, że nie ma procesu w SK, lock = 1 oznacza, że jest w SK. Rozwiązanie niepoprawne, bo występuje problem wyścigu. 3. Ścisłe następstwo: [Proces 0: {while(turn!= 0 /*wait */ critical_section(); turn =1; noncritical_section(); Proces 1: {while(turn!= 1 /*wait */ critical_section(); turn =0; noncritical_section(); Początkowo turn=0, został naruszony warunek 2. P0 może zostad zablokowany przez P1 znajdujący się poza SK. Stan taki nazywamy stanem zagłodzenia. Rozwiązanie wymaga ścisłego następstwa (przełączenia), nie można wydrukowad dwóch kolejnych plików przez ten sam proces. Rozwiązanie niepoprawne, wyeliminowany problem wyścigu, zastąpiony problemem zagłodzenia. 4. Algorytm Petersona Łącząc idee ścisłego następstwa ze zmiennymi blokującymi T.Dekker pierwszy znalazł rozwiązanie wzajemnego wykluczania, Peterson kilka lat później znalazł prostsze rozwiązanie tego problemu. Każdy proces przed wejściem do SK wywołuje enter_region z własnym numerem jako parametrem, zaś po wyjściu leave_region. 5. Instrukcja TSL. Wspomaganie sprzętowe, niektóre komputery zostały wyposażone w instrukcję TEST AND SET LOCK. Instrukcja TSL wykonuje się niepodzielnie w następujący sposób: czyta zawartośd słowa pamięci do rejestru, zapamiętuje wartośd rejestru w pamięci. Operacje czytania i pisania są niepodzielne: inny proces nie ma dostępu do miejsca pamięci, aż nie nastąpi zakooczenie instrukcji TSL. W celu użycia TSL posłużymy się zmienna dzielona o nazwie flag, przy pomocy której będziemy koordynowad dostęp do zasobów dzielonych. Kiedy flag = 0, to każdy proces może ja ustawid na 1 stosując TSL, a następnie wejśd do SK, wychodząc z SK ustawia wartośd flag na 0 stosując zwykłą instrukcję move. - mechanizmy realizacji wzajemnego wykluczania z zawieszaniem - porównania, 1. Sleep and Wakeup najprostszym rozwiązaniem jest utworzenie dwóch wywołao systemowych sleep() (proces wywołujący zostaje zawieszony do momentu, gdy inny proces nie obudzi danego poprzez wywołanie wakeup) i wakeup(). (wywoływana z jednym argumentem, numerem procesu który ma byd obudzony). 2. Semafory zmienna, inicjowana nieujemną wartością całkowita i zdefiniowana poprzez definicję niepodzielnych operacji P(s) ({while S<= 0 do; S:=S-1, proberen testowad) i V(s) (,S:=S+1- verhogen zwiększad). Dla sematorów wielowartościowych zazwyczaj down()/up(), wait() signal(), a dla semaforów binarnych lock()/unlock(). 3. Monitory w celu łatwiejszego pisania programów realizujących wzajemne wykluczanie Hoare i Hansen zaproponowali mechanizm synchronizacji wysokiego poziomu zwany monitorem. Monitor stanowi zbiór procedur, zmiennych i struktur danych, które są zgrupowane w specjalnym module. W każdej chwili, tylko jeden proces aktywny może przebywad w danym monitorze. Monitory są konstrukcją języka wysokiego poziomu. Za właściwą implementację wzajemnego wykluczania jest odpowiedzialny kompilator. Zaproponowano wprowadzenie zmiennych warunkowych z dwoma operacjami wait (zmienna) oraz signal (zmienna). Kiedy procedura monitora wykrywa sytuację, że nie może kontynuowad obliczeo wykonuje operacje wait na pewnej zmiennej warunkowej. Proces wykonujący jest zawieszany. Inny proces może teraz wejśd do SK. Przy wyjściu wykonuje signal w celu obudzenia zawieszonego procesu na zmiennej warunkowej. Po wywołaniu signal: Hoare: proces obudzony kontynuuje działanie, a wywołujący jest zawieszany. Hansen: proces wywołujący musi natychmiast opuścid monitor. 4. Komunikaty oparte na 2 wywołaniach systemowych: send (destination, &meassage), recive (source, &message). Można adresowad bezpośrednio wiadomości (każdy proces posiada unikatory adres), oraz pośrednio (poprzez skrzynkę pośredniczącą, pełniącą funkcje bufora pośredniczącego. Argumentem wywołao send i recive jest adres skrzynki a nie adres konkretnego procesu). - idea wykorzystania instrukcji Test&SetLock (TSL) do realizacji semafora binarnego, Idea wykorzystania instrukcji Test&SetLock (TSL) do realizacji semafora binarnego: register r = 1; do { TSL(r, emaphore) while (r); lub mov reg, 1 loop_here: tsl reg, [semaphore] jne reg, 0, loop_here - algorytm i opis idei poprawnego rozwiązania problemu pięciu filozofów,

4 Idea jest taka, że filozof może byd w jednym z trzech stanów: Myślący, Głodny lub Jedzący. I teraz w momencie, gdy filozof staje się głodny to zmienia swój stan na odpowiedni i sprawdza, czy jego sąsiedzi nie jedzą (jeżeli nie to znaczy, że oba widelce ma wolne) i wówczas zmienia swój stan na Jedzący i podnosi sam dla siebie semafor. Semafor ten następnie opuszcza co powoduje albo natychmiastowe przejście dalej (bo sam sobie go podniósł) albo czekanie, aż obaj sąsiedzi nie będą jeśd. Teraz, gdy filozof przestaje jeśd to zmienia swój stan na Myślący i sprawdza czy przez przypadek jeden z jego sąsiadów nie może zacząd jeśd i jeżeli może to zmienia jego stan na Jedzący i podnosi dla niego semafor (na którym zapewne ten filozof sobie smacznie śpi). #define N 5 enum State { THINKING, HUNGRY, EATING states[n] = { THINKING /*... * ; semaphore sem[n] = { 0 /*... * ; semaphore mutex = 1; #define LEFT(n) (((n) + N - 1) % N) #define RIGHT(n) (((n) + 1) % N) void philosopher(int n); void take_forks(int n); void put_forks(int n); void test(int n); void philosopher(int n) { for(;;){ think(); take_forks(n); eat(); put_forks(n); void take_forks(int n) { down(mutex); state[n] = HUNGRY; /* MUST BE BEFORE TEST BELOW */ test(n); up(mutex); down(sem[n]); void put_forks(int n) { down(mutex); state[n] = THINKING; /* MUST BE BEFORE TESTS BELOW */ test(left(n)); test(right(n)); up(mutex); void test(int n) { if (state[n] == HUNGRY && state[left(n)]!= EATING && state[right(n)]!= EATING) { state[n] = EATING; up(sem[n]); - algorytm i opis idei poprawnego rozwiązania problemu czytelników i pisarzy, monitor { unsigned rc = 0, wc = 0; bool occupied_by_writer = false; cond rc_zero, wc_zero, available; reader_enter() { while (wc) wait(wc_zero); ++rc; reader_exit() { if (!--rc) notify(rc_zero); writer_enter() { ++wc; while (rc) wait(rc_zero); while (occupied_by_writer) wait(available); occupied_by_writer = true; writer_exit() { occupied_by_writer = false; if (!--wc) notify(wc_zero); notify(available); ; Implementacja monitora oraz funkcji wait i notify jest oczywista, konkretnie dla monitora dajemy jeden semafor mutex inicjowany jedynką i przy wejściu do funkcji robimy na nim down, a przy wyjściu up. Zmienne warunkowe natomiast to struktura składająca się z licznika count zainicjowanego zerem i semafora semaphore, wówczas funkcje wait i notify wyglądają następująco:

5 wait(cond condition) { ++condition.count; up(mutex); down(condition.semapore); down(mutex); notify(cond condition) { if (condition.count) { --condition.count; up(condition.semaphore); - algorytm i opis idei poprawnego rozwiązania problemu śpiącego fryzjera, #define CHAIRS 5 semaphore customers = 0; semaphore barbers = 0; semaphore mutex = 1; int waiting = 0; void barber( void ) { while( TRUE ) { down( &customers ); down( &mutex ); waiting = waiting - 1; up( &barbers ); up( &mutex ); cut_hair(); /* ilu siedzi na krzesłach */ /* ilu śpi nie pracując */ void customer( void ) { down( &mutex ); if( waiting < CHAIRS ) { waiting = waiting + 1; up( &customers ); up( &mutex ); down( &barbers ); get_haircut(); else { up( &mutex ); Fotel w salonie fryzjerskim jest stanowiskiem, obsługiwanym przez fryzjera. Zakłada się, że fryzjerów jest nie mniej niż foteli. W przypadku braku klienta fryzjer śpi. Jeśli jednak kolejka klientów nie jest pusta, fryzjerzy obsługują kolejnych klientów w miarę dostępnych foteli. Sama obsługa oznacza jednoczesną aktywnośd zarówno klienta, jak i fryzjera. Problem można rozważad w kilku wariantach: - grupa jednorodnych fryzjerów, - kilka grup fryzjerów specjalistów klient (klientka) zgłasza się do specjalisty od danego rodzaju usługi (np. modelowanie, farbowanie, pasemka itp.), - fryzjerzy indywidualni klient zgłasza się do konkretnego fryzjera. Rozwiązanie opiera się na jednym semaforze binarnym i trzech ogólnych. Poza tym, w zmiennej l_czek pamiętana jest liczba klientów oczekujących na obsługę i zajmujących miejsca w poczekalni. Semafor binarny mutex służy głównie do synchronizacji dostępu do zmiennej l_czek. Klient zamyka semafor mutex w celu ochrony operacji na zmiennej l_czek, po czym sprawdza, czy jest wolne miejsce w poczekalni. Jeśli nie ma miejsca, otwiera semafor mutex i kooczy niepowodzeniem próbę skorzystania z usługi. Jeśli natomiast jest wolne miejsce w poczekalni, to będąc cały czas w sekcji krytycznej, chronionej przez mutex, zmniejsza o 1 zmienną l_czek (zajmuje miejsce w poczekalni), podnosi semafor klient, dając w ten sposób sygnał fryzjerowi i opuszcza sekcję krytyczną. Po opuszczeniu sekcji krytycznej czeka na wolnego fryzjera na semaforze fryzjer czeka na sygnał na tym semaforze, czyli na jego podniesienie. Kiedy pojawi się wolny fryzjer, podniesie on ten semafor i klient przejdzie do fazy strzyżenia. Fryzjer czeka na klienta na semaforze klient, który jest podnoszony przez klienta po uzyskaniu miejsca w poczekalni. Po zakooczeniu tej operacji fryzjer wie, że ma klienta więc czeka na wolny fotel opuszczając semafor fotel. Jeśli operacja się zakooczy to jest fotel dla klienta i można przejśd do obsługi. Najpierw zmniejszana jest zmienna l_czek, bo zwalnia się miejsce w poczekalni. Następnie poprzez podniesienie semafora fryzjer, przekazywany jest klientowi sygnał, że może wyjśd ze stanu czekania i przejśd do właściwej obsługi. Po zwolnieniu semafora mutex fryzjer też przechodzi do obsługi, po zakooczeniu której zwalnia fotel (podnosi semafor fotel). Zarządzanie pamięcią: - idea hierarchicznej organizacji pamięci, Idea hierarchicznej organizacji pamięci polega na wydzieleniu kolejnych jej poziomów w miarę zwiększania odległości od procesora. Zaczynając od najwyższego poziomu położonego najbliżej procesora wydziela się następujące poziomy pamięci: a) rejestry procesora, b) pamięd podręczna (ang. cache) pierwszego poziomu, c) pamięd podręczna (ang. cache) n-poziomu, d) pamięd główna, e) pamięci zewnętrzne (np.: dyski magnetyczne, SSD). Rozpatrując w/w hierarchie pamięci w kierunku zstępującym można zaobserwowad m.in. (1) malejący koszt ekonomiczny w przeliczeniu na bit pojemności, (2) rosnącą pojemnośd oraz (3) rosnący czas dostępu *10+. Z punktu widzenia wydajności, sytuacja idealna to taka, gdy wszystkie dane potrzebne procesorowi znajdują się w pamięci położonej możliwie najwyżej w hierarchii pamięci. Ponieważ rejestry procesora maja bardzo niewielka pojemnośd, dlatego istotny wpływ na wydajnośd ma efektywne wykorzystanie kolejnych poziomów szybkiej pamięci podręcznej.

6 - metody przydziału pamięci, brak podziału wolna przestrzeo adresowa w danej chwili przydzielana jednemu procesowi użytkowemu. Wieloprogramowanie można realizowad przez wymiatanie (ang. swapping), podział pamięci wolna przestrzeo adresowa podzielona na części przydzielane pojedynczym procesom użytkowym, wykorzystanie pamięci wirtualnej istnieje jedna lub wiele wirtualnych przestrzeni adresowych przydzielanych procesom użytkowym, a mających w niewielkim stopniu pokrycie w pamięci operacyjnej. - analiza wydajności wieloprogramowania, - rodzaje fragmentacji, występowanie, metody przeciwdziałania, wewnętrzna zjawisko tworzenia niewykorzystywalnych, chod przydzielonych w ramach pewnej struktury (partycja, ramka), obszarów pamięci, zewnętrzna zjawisko tworzenia niewykorzystywalnych, nieprzydzielonych obszarów pamięci, zazwyczaj spowodowane niedoskonałością działania organizacji alokacji pamięci procesom użytkowym. Zapobiegad można poprzez: zwalnianie i scalanie, zagęszczanie i relokację oraz mechanizm stronicowania. - algorytmy alokacji pamięci, Zadaniem algorytmu jest wybranie wolnego bloku w celu przydzielenia procesowi pamięci. Wyróżniamy: - algorytm pierwszej zgodności (ang. First Fit), wybór pierwszego pasującego ze zbioru/listy, - algorytm najlepszego zgodności (ang. Best Fit), wybór najmniejszego wystarczającego bloku ze zbioru/listy, - algorytm najgorszej zgodności (ang. Worst Fit), wybór największego ze zbioru/listy, - algorytm bliźniaków (ang. Buddies), podział pamięci (o długości 2 k ) na dwa równe bliźniacze bloki; połowienie jednego aż do uzyskania bloku o minimalnej długości spełniającego zapotrzebowanie. - stronicowanie - opis i porównanie z segmentacją, Stronicowanie polega na podzieleniu pamięci wirtualnej procesu na strony o zadanej wielkości i przechowywanie fizycznych adresów początków tych stron w tablicy, w ten sposób, że jeżeli proces odwołuje się do entego bajtu Ktej strony w pamięci wirtualnej to na podstawie tablicy translacji adresów tworzony jest adres fizyczny begin_page*k+ + N. - segmentacja - opis i porównanie ze stronicowaniem, Segmentacja polega na tym, iż tworzonych jest wiele przestrzeni adresowych, z których każda zaczyna się pod innym adresem w pamięci fizycznej (jeżeli stronicowanie nie występuje) lub wirtualnej (jeżeli stronicowanie występuje). Zasadniczo, jeżeli proces odwołuje się do entego bajtu Ktego segmentu to na podstawie deskryptora tego segmentu tworzony jest adres fizyczny/logiczny begin_segment[k] + N. Zasadniczo strony na siebie nie mogą nachodzid (chod różne strony różnych procesów mogą byd odwzorowane na tą samą stronę w pamięci fizycznej), mają stały rozmiar oraz ich kolejnośd w pamięci wirtualnej w żaden sposób nie determinuje kolejności w pamięci fizycznej, gdy tymczasem segmenty mogą na siebie nachodzid, mają zmienne rozmiary oraz muszą byd przechowywane w postaci ciągłej w pamięci fizycznej/logicznej. - budowa i przeznaczenie buforów TLB, (ang. Translation Lookaside Buffer) jest buforem pamięci w mikroprocesorze typu asocjacyjnej pamięci podręcznej (cache), który zawiera fragmenty tablicy stron pamięci głównej komputera (pamięci operacyjnej). Bufor TLB posiada stałą liczbę wpisów i służy do szybkiego odwzorowywania adresów logicznych pamięci wirtualnej na adresy pamięci fizycznej w komputerach stosujących stronicowanie pamięci. Zadaniem jest usprawnianie procesu przywracania po wystąpieniu chybieo w pamięci Cache. Bufor TLB jest tabelą znajdującą się w procesorze, przechowującą informacje na temat lokalizacji ostatnio używanych adresów I pamięci. Bufor TLB przyspiesza translację adresów wirtualnych na fizyczne adresy pamięci. Aby zwiększyd wydajnośd bufora, w kilku nowszych procesorach zwiększono liczbę jego wpisów. Postąpiła tak firma AMD przy przechodzeniu w przypadku procesora Athlon z rdzenia Thunderbird na rdzeo Palomino. Układy Pentium 4 wyposażone w technologię hiperwątkowości dla każdego watka wirtualnego procesora posiadają oddzielną instrukcję TLB (itlb). - odwrócone tablice stron, W normalnym podejściu tablic translacji adresów, tablice te rosną w zależności od rozmiaru wirtualnej przestrzeni adresowej, co może niepraktyczne. Przykładowo, mając 64-bitową przestrzeo adresową (nie wiem czy takie architektury istnieją, ale nieważne) trzeba by wprowadzid z pięd poziomów w tablicy translacji co okazuje się dośd niepraktyczne. Z tego powodu, zamiast trzymad tablicę strona logiczna -> strona fizyczna trzyma się tablicę strona fizyczna -> strona logiczna, której rozmiar jest proporcjonalny do rozmiaru pamięci fizycznej. Wyszukiwanie w czymś takim powiązania strony logicznej do strony fizycznej wymaga przeszukania całej tablicy i dlatego stosuje się różne struktury pomocnicze takie jak tablice mieszające i duże bufory. - opis translacji adresu w architekturze Pentium, Procesy adresują pamięd za pomocą 16-bitowego numeru segmentu oraz 32-bitowego przesunięcia. Pierwsze trzy bity w numerze segmentu są jakieś magiczne. Pierwsze dwa bity oznaczają poziom ochrony, czy coś takiego, a trzeci czy opisu segmentu należy

7 szukad w GDT (Global Descriptor Table takiej samej dla wszystkich procesów) czy LDT (Local Descriptor Table różnej dla każdego procesu). W pierwszym kroku procesor wyciąga informacje o segmencie, z których najistotniejszą jest początek tego segmentu. Gdy ma już 32-bitowy początek segmentu sumuje go z 32-bitowym przemieszczeniem w segmencie co daje adres logiczny. Teraz rozpoczyna się stronicowanie, czyli bardziej znaczące 20 bity adresu logicznego oznaczają numer strony i z (dwupoziomowej o ile dobrze pamiętam) tablicy translacji adresów wyciągany jest adres danej strony w przestrzeni fizycznej, a dokładnie bardziej znaczące 20 bity; pozostałe 12 bity są kopiowane bezpośrednio z adresu logicznego. Można to wszystko zapisad tak (uwaga! to tylko przykład, wcale nie mówię, że to wygląda dokładnie tak, tzn. że trzeci bit w numerze segmentu ma takie znaczenie, a nie odwrotne, czy że właśnie w taki sposób szukany jest wpis w GDT/LDT; uint32_t translate(uint16_t segment, uint32_t offset) { /* segmentation */ bool global = segment & 4; uint32_t *dt = global? GDT : LDT; uint32_t seg_start = dt[segment >> 3]; uint32_t logical = seg_start + offset; /* paging */ uint32_t index1 = logical >> 22; uint32_t index2 = (logical >> 12) & ((1 << 10) - 1); uint32_t page_start = TAB[index1][index2]; return (page_start & ~((1 << 12) - 1)) (logical & ((1 << 12) - 1)); - poziomy ochrony w architekturze Pentium, Są cztery poziomy. Proces działający w danym poziomie nie może odczytywad danych ani (bezpośrednio) wywoływad funkcji znajdujących się w poziomach bardziej uprzywilejowanych. Aby przejśd do poziomu bardziej uprzywilejowanego proces musi albo wykorzystad bramę (ang. call gate) albo wywoład przerwanie. Wejście/wyjście: - DMA - opis i przeznaczenie, Jest to mechanizm mający na celu umożliwienie transmisji danych pomiędzy dwoma urządzeniami (np. dyskiem i pamięcią) bez angażowania w to procesora. W trakcie, gdy DMA działa procesor działa odrobinę wolniej (gdyż są jakieś czary mary, dodatkowe cykle czy coś), ale w rezultacie wszystko działa o wiele szybciej, gdyż procesor nie musi obsługiwad przerwao związanych z transmisją danych, a wszakże samo przełączanie kontekstu, gdy nastąpi przerwanie może byd długotrwałe. - metody oprogramowywania urządzeo zewnętrznych, 1. programowalne we/wy (ang. polling, busy waiting), copy_from_user(buffer, p, count); /* p is the kernel bufer */ for (i = 0; i < count; i++) { /* loop on every character */ while (*printer_status_reg!= READY) ; /* loop until ready */ *printer_data_register = p[i]; /* output one character */ return_to_user( ); Przykład: pisanie łaocucha znaków na drukarkę 2. programowanie z wykorzystaniem przerwao (ang. interrupt-driven), copy_from_user(buffer, p, count); enable_interrupts( ); while (*printer_status_reg!= READY) ; *printer_data_register = p[0]; scheduler( ); Przykład: pisanie łaocucha znaków na drukarkę a. kod obsługi funkcji systemowej, b. właściwa obsługa przerwania. 3. z wykorzystaniem DMA. copy_from_user(buffer, p, count); set_up_dma_controller( ); scheduler( ); if (count == 0) { unblock_user( ); else { *printer_data_register = p[i]; count = count - 1; i = i + 1; acknowledge_interrupt( ); return_from_interrupt( ); acknowledge_interrupt( ); unblock_user( ); return_from_interrupt( ); Przykład: pisanie łaocucha znaków na drukarkę a. kod obsługi funkcji systemowej, b. właściwa obsługa przerwania. - redukcja liczby przerwa«z jednego na drukowany znak do jednego na wydruk bufora, - nie zawsze najlepsza metoda { kwestie rozmiaru zakresu i względnej szybkości procesora i kontrolera DMA. - algorytmy szeregowania dostępu do dysku, Ze względu na zlecającego:

8 RSS (ang. Random scheduling) - losowy, FIFO najbardziej sprawiedliwy, PRI piorytetowy, z szeregowaniem realizowanym zewnętrznie, LIFO (ang. Last In First Out) maksymalizacja lokalności i wykorzystania zasobów. Ze względu na zlecenie: SSTF (ang. Shortest service time first) z najmniejszym ruchem ramienia, SCAN algorytm windy, ramię przesuwa się w dół i w górę obsługując zlecenia, C-SCAN cykliczny SCAN, ramię przesuwa się w jednym kierunku szybkim nawrotem. - opis poziomów RAID, RAID 0 Wiele dysków tworzy jeden dysk logicznych, brak redundancji. Dane mogą byd trzymane albo w paskach, gdzie poszczególne paski są trzymane na kolejnych dyskach (np. jeżeli są dwa dyski to jeden ma paski o numerach parzystych, a drugi nieparzystych) przy czym, wymaga to, aby dyski były takie same (a dokładniej, jeżeli nie są to marnuje się przestrzeo przynajmniej jednego z nich); albo w ten sposób, że konkatenuje się wszystkie dyski w ten sposób, że na każdym jest jakiś ciągły fragment dysku logicznego. RAID 1 Na wszystkich dyskach są dokładnie te same dane. RAID 2 Jakieś coś dzikiego stosowane w dawnych czasach przez IBM korzystające z kodów korekcyjnych. RAID 3 Jeden z dysków jest dyskiem z danymi parzystości i parzystośd jest liczona na poziomie bajtów (?). RAID 4 Tak jak RAID 3, tylko parzystośd jest liczona na poziomie pasków (w sumie nie wiem czym to się różni). RAID 5 Tak jak 4, tyle że nie ma jednego dysku z parzystością tylko dla każdego poziomu jest to cyklicznie kolejny dysk. RAID 6 Tak jak RAID 5 tylko są dwa dyski parzystości dzięki czemu jak jeden dysk nam padnie można przejśd na RAID5 i ciągle mied zabezpieczenie. RAID 0+1 Na dole RAID 0, na górze RAID 1. RAID 1+0 Na dole RAID 1, na górze RAID 0. RAID 10 Po prostu RAID 1+0. System plików: - operacje na plikach, - można tworzyd i modyfikowad pliki, - można mied kontrolowany dostęp do plików innych użytkowników, - można kontrolowad dostęp do własnych plików, - można zmieniad strukturę własnych plików na potrzeby aplikacji, - można przemieszczad dane między plikami, - można przechowywad i odtwarza dane w przepadku uszkodzenia, - można odwoływad się do plików poprzez nazwy symboliczne. - idea plików odwzorowywanych w pamięci, Spoko akcja ziom, polegająca na tym, iż jakiś obszar pamięci to tak naprawdę zawartośd pliku. Jeżeli OS wspiera ten mechanizm i go odpowiednio poinstruujemy, to wie np. że w momencie zwalniania takiej strony, zamiast wyrzucad ja do swapu może zapisad ją na dysk (tzn. no może albo i nie, zależy jak to tam jest z współbieżnym dostępem do pliku, ale pomiomy ten aspekt) i tak samo wie, że należy odczytad go z tego pliku, a nie ze swapu. Tak samo, jeżeli proces zakooczy działanie czy wyrejestruje takie odwzorowanie to OS zapisuje zmiany dokonane w pamięci do pliku. - metody orgranizacji plików w katalogi, - katalogi zawieraj informacje o plikach: atrybuty, lokalizacje, id właściciela, - katalog sam w sobie może by plikiem (np. w systemie Unix), - głównym przeznaczeniem katalogów jest udostępnianie odwzorowania między nazwami plików a samymi plikami. Struktury organizacji katalogów: - struktura prosta, - struktura dwupoziomowa, katalog główny + po katalogu dla każdego użytkownika, - struktura hierarchiczna, -- pliki identyfikowane przez ścieżkę, -- możliwych wiele nazw dla tego samego pliku, -- pojęcie katalogu bieżącego i odwołania relatywne wobec katalogu bieżącego. - metody alokacji plików - opis i porównanie własności, Alokacja ciągła - pozycja FAT = nazwa, blok startowy, rozmiar, Alokacja łaocuchowa, - pozycja FAT = nazwa, blok startowy, rozmiar, - w każdym bloku pole z numerem kolejnego bloku. Alokacja indeksowa, - pozycja FAT = nazwa, nr bloku z indeksami, - blok z indeksami zawiera indeksy bloków z danymi.

9 - możliwe rozszerzenie o wprowadzenie obszarów z lokalną ciągłością, pozycja bloku z indeksami = nr bloku danych, liczba bloków, - system plików w Unix V7 wraz z przykładem rozwiązania nazwy /home/user/soi.txt Wszystko jest plikiem. Każdy plik ma iwęzeł. W iwęźle zapisane są takie informacje jak rozmiar, atrybuty, czasy utworzenia, modyfikacji itp. oraz wskaźniki na bloki danych. Katalog to plik, w którym zapisane są pozycje katalogowe czyli lista nazw plików, które się w nim znajdują, a dokładniej odwzorowanie nazwa pliku<->numer iwęzła. W Unix V7 pozycja taka to był 16-bitowy numer iwęzła oraz 14-znakowa nazwa pliku. Rozwinięcie nazwy /home/nowak/soi.txt: Blok np. 1 Iwęzeł 67 Blok 24 iwęzeł 33 Blok rozmiar 24. rozmiar atrybutu 1.. atrybuty dev bla bla bla 32 zenon bla bla bla [ 66 soi.txt ] 23 etc 24 [ 33 nowak ] foo [ 67 home ]. 12 kruk. 2 bar I już wiemy, że w iwęźle 66 są atrybuty, rozmiar, etc interesującego nas pliku oraz wskazania na bloki danych zajmowane przez ten plik. Oczywiście katalog może zajmowad kilka bloków i dany plik może znajdowad się na którymś bloku z kolei. - idea dzienników transakcyjnych w systemach plików (journaling), Idea jest taka, aby niezależnie od jakichkolwiek awarii (np. nagłe wyłączenie prądu) system plików (a w różnych wersjach dziennikowania również dane plików) pozostawały w jednolitym stanie. Realizuje się to w ten sposób, że zamiast zapisywad zmiany bezpośrednio w miejsce, którego one dotyczą zapisuje się je gdzieś na boku i gdy to się powiedzie zmienia się odpowiednie wskaźniki w systemie plików. - idea migawek w systemach plików (snapshot), Jest to zapisanie stanu urządzenia takiego jaki jest w danej chwili bez blokowania zapisu na to urządzenie (tzn. zapewne zablokowad trzeba, ale tylko na krótką chwilę, gdy tworzona jest migawka, a to trwa raczej krótko). W momencie tworzenia migawki dane nie są kopiowane i zamiast tego, jeżeli na danym dysku jakiś proces próbuje dokonad zmian to dany sektor/blok/jak-zwał-tak-zwał jest zapisywany w jakiejś przestrzeni tymczasowej lub na odwrót, tzn. w momencie modyfikacji dane z migawki kopiowane są na obszar tymczasowy (a może nawet docelowy migawki), a dane zmodyfikowane bezpośrednio na dysk. Programowanie w języku powłoki: - skrypt podobny do omawianych w trakcie zajęd 'grepf' oraz 'typ' (z kolokwium). - opisz rezultat wykonania poleceo i grup poleceo: x >/dev/null 2>&1 - stdout i stderr przekierowane do tego samego /dev/null, tzn. jest jeden zduplikowany deskryptor pliku. x 2>&1 1>/dev/null - stderr przekierowane do stdout, a potem stdout przekierowane do /dev/null. x 2>/dev/nul 1>/dev/null - stderr przekierowane do pliku nul w katalogu dev, a stdout do /dev/null. x < y > z - stdin czytane z pliku y, stdout pisane do pliku z. x & y ; z - x zostanie odpalone w tle i zaraz po tym y. z zostanie uruchomione, gdy działanie zakooczy y. x y - y wykonane jeżeli x zwróci status różny od 0. find / foo.x 2>&1 1>/dev/null - przeszuka cały dysk, a następnie jeszcze katalog/plik foo.x w bieżącym katalogu. Komunikaty błędów wypisane do stdout a wszystko inne wyrzucone do /dev/null. find / foo.x >/dev/null 2>&1 - przeszuka cały dysk, a następnie jeszcze katalog/plik foo.x w bieżącym katalogu. Standardowe wyjście oraz komunikaty błędów rzucone do /dev/null. - opisz precyzyjnie działanie poniższych komend: x > y - tworzony bądź zeruje jest plik y do którego przekierowane jest standardowe wyjście polecenia x. x y - tworzony jest potok, do którego pisze polecenie x, a czyta polecenie y. Tzn. standardowe wyjście x jest przekierowane do potoku, który jest przekierowany jako standardowe wejście polecenia y. x < y - otwierany jest plik y i jego zawartośd jest wczytywana jako standardowe wejście polecenia x. cat y x - efekt taki sam jak powyżej, tyle że zrealizowane to jest przez potok opisany dwa punkty wyżej. x & y - x uruchamiany jest w tle i zaraz po uruchomieniu nim (nie musi się on kooczyd) uruchamiany jest y. x && y - uruchamiany jest x i jeżeli zwraca status 0 to uruchamiany jest y.

10 x y - jak wyżej, tylko y uruchamiany jest, gdy x zwraca status różny od 0. x ; y & - uruchamiany jest x, a gdy się skooczy uruchamiany jest y w tle. cat x > y < - błąd składni? Bez tego < na koocu to polecenie cat wczytuje zawartośd pliku x i wypisuje je na standardowe wyjście, które przekierowane jest do utworzonego lub zerowanego pliku y.

Systemy operacyjne Wzajemne wykluczanie i synchronizacja

Systemy operacyjne Wzajemne wykluczanie i synchronizacja Systemy operacyjne [2] Wyścigi w systemie operacyjnym IPC - komunikacja między procesami (ang. InterProcess Communication) W SO wykonujące się procesy często dzielą obszary wspólnej pamięci, pliki lub

Bardziej szczegółowo

Przykład wystąpienia wyścigu. Systemy operacyjne / Wzajemne wykluczanie i synchronizacja str.4/33. Wyścigi w systemie operacyjnym.

Przykład wystąpienia wyścigu. Systemy operacyjne / Wzajemne wykluczanie i synchronizacja str.4/33. Wyścigi w systemie operacyjnym. Przykład wystąpienia wyścigu Systemy Operacyjne Wzajemne wykluczanie i synchronizacja dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Przykład void echo() chin = getchar(); chout = chin; putchar( chout

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

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

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

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

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku. Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).

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

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

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

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

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

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

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów

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

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

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

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

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post

Bardziej szczegółowo

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów

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

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

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

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

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

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

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling) Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie

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

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

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Programowanie współbieżne Wykład 7. Iwona Kochaoska Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,

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

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

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

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

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są

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

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

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

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

Systemy operacyjne. Zajęcia 11. Monitory

Systemy operacyjne. Zajęcia 11. Monitory Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu

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

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w

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

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku Systemy plików i zarządzanie pamięcią pomocniczą Koncepcja pliku Metody dostępu Organizacja systemu plików Metody alokacji Struktura dysku Zarządzanie dyskiem Struktura pliku Prosta sekwencja słów lub

Bardziej szczegółowo

Monitory. Jarosław Kuchta

Monitory. Jarosław Kuchta Monitory Jarosław Kuchta Co to jest monitor Monitor to zebrane w jednej konstrukcji programowej zmienne i operacje na tych zmiennych. Część tych operacji jest udostępnianych na zewnątrz monitora. Tylko

Bardziej szczegółowo

Struktura systemów komputerowych

Struktura systemów komputerowych Struktura systemów komputerowych Działanie systemu komputerowego Struktury WE/WY Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Ogólna architektura systemu Wykład 6, Systemy operacyjne (studia

Bardziej szczegółowo

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Wady mechanizmów niskopoziomowych Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg. Dekkera zależny od liczby synchronizowanych

Bardziej szczegółowo

Systemy operacyjne Procesy i wątki

Systemy operacyjne Procesy i wątki Systemy operacyjne Procesy i wątki [2] Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie

Bardziej szczegółowo

Systemy operacyjne System plików

Systemy operacyjne System plików Systemy operacyjne System plików Dr inż. Dariusz Caban mailto:dariusz.caban@pwr.wroc.pl tel.: (071)320-2823 Pamięci o bezpośrednim dostępie powierzchnia/głowica sektor cylinder/ścieżka Przykłady: HDD,

Bardziej szczegółowo

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

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

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

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

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

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

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Klasyczne problemy współbieżności Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów Wzajemne wykluczanie Zsynchronizować N procesów, z których każdy w nieskończonej

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

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

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

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

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

Sprzętowe wspomaganie pamięci wirtualnej

Sprzętowe wspomaganie pamięci wirtualnej Sprzętowe wspomaganie pamięci wirtualnej Stanisław Skonieczny 6 grudnia 2002 Spis treści 1 Intel 2 1.1 Tryby pracy procesora............................... 2 1.2 Adresowanie liniowe................................

Bardziej szczegółowo

Synchronizacja procesów i wątków

Synchronizacja procesów i wątków SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji

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

synchronizacji procesów

synchronizacji procesów Dariusz Wawrzyniak Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji Plan wykładu (2) Semafory Rodzaje semaforów (1) Semafor jest

Bardziej szczegółowo

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy) Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany

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

Programowanie Równoległe i Rozproszone

Programowanie Równoległe i Rozproszone Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/30 PRiR MONITOR klasa z następującymi właściwościami: wszystkie

Bardziej szczegółowo

synchronizacji procesów

synchronizacji procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja semafora Klasyfikacja semaforów Implementacja semaforów Zamki Zmienne warunkowe Klasyczne problemy synchronizacji (2) Semafory

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Przerwania w nowoczesnych architekturach. Systemy Operacyjne. Obsługa przerwań - powtórka. problem przetwarzania potokowego i superskalarnego,

Przerwania w nowoczesnych architekturach. Systemy Operacyjne. Obsługa przerwań - powtórka. problem przetwarzania potokowego i superskalarnego, 11 12 1 10 2 9 3 8 4 7 6 5 Przerwania w nowoczesnych architekturach problem przetwarzania potokowego i superskalarnego, Systemy Operacyjne Obsługa wejścia/wyjścia dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl

Bardziej szczegółowo

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix) Mechanizmy komunikacji spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix) Język CSP Hoare (1978r.) Communicating Sequential Processes

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

SOP2 - semafory. grudzień

SOP2 - semafory. grudzień SOP2 - semafory grudzień 2010 1 Plan prezentacji Problem producent-konsument Problem czytelników i pisarzy Problem jedzących filozofów grudzień 2010 2 Producent-konsument var bufor: array [0..n-1] of produkt;

Bardziej szczegółowo

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora) Pamięć operacyjna (main memory) obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora) cykl rozkazowy: pobranie rozkazu z PAO do rejestru rozkazów dekodowanie realizacja

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

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów Wieloprogramowanie Systemy Operacyjne Procesy i wątki dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut utomatyki i Informatyki Stosowanej Politechnika Warszawska One program counter B C D switch

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

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

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu. Wada: rozmiar argumentu ograniczony do rozmiaru pola adresowego Adresowanie bezpośrednie jest najbardziej podstawowym

Bardziej szczegółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-Serwer Komunikacja przy pomocy gniazd II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu

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

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0; Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo