Szeregowanie procesów w Linuksie - trendy rozwojowe
|
|
- Władysława Sawicka
- 8 lat temu
- Przeglądów:
Transkrypt
1 Szeregowanie procesów w Linuksie - trendy rozwojowe Szymon Gwóźdź Tomasz Klukowski Przemysław Kosiak
2 Plan prezentacji 1 Scheduler w jadrze Scheduler O(1) 3 Scheduler CFS 4 Porównywanie schedulerów 5 Trendy rozwojowe
3 Scheduler w jadrze 2.4 Scheduler w jadrze 2.4
4 Pola w task structure need_resched - określa czy schedule() powinno być wywołane przy następnej okazji counter - dynamiczny priorytet ; liczba tików procesora pozostałych temu watkowi w tym scheduling slice. Kiedy wartość tego pola staje sie mniejsza lub równa 0 to jest resetowana na 0 i p->need_resched jest ustawiane. Proces może sobie zmieniać wartość tego pola. priority - statyczny priorytet; zmienialny tylko poprzez wywołania systemowe np. nice()
5 Pola w task structure policy - określa do której scheduling class należy to zadanie SCHED_OTHER - traditional UNIX process SCHED_FIFO - POSIX.1b FIFO realtime process SCHED_RR - POSIX round-robin realtime process mm - obszar pamięci używany przez proces
6 Pola w task structure processor - wskazuje, który procesor był ostatnio używany przez ten proces cpus_runnable, cpus_allowed - cpus_runnable ma wartość różna od zera jeśli proces nie jest uruchomiony na żadnym procesorze. Pola te sluża do wnioskowania, czy proces może zostać uruchomiony na danym procesorze przy pomocy makra can_schedule:
7 Schedule() - algorytm Sprawdzamy czy przypadkiem nie zachodzi current->active_mm=null. Jeśli tak to blad. Ustawiamy zmienna prev na aktualny proces, a zmienna this_cpu na aktualny procesor. Sprawdzamy czy schedule() zostało wywołane przez "interrupt handler- jeśli tak to zgłaszamy blad. Zwalniamy globalna blokadę jadra (release_kernel_lock) Inicjalizujemy sched_data na wskaźnik do pola sched_data procesora.
8 Schedule() - algorytm Zakładamy spin-locka runqueue_lock Jeśli prev jest procesem typu SCHED_RR oraz prev->counter==0 to przesuwamy prev na koniec runqueue Sprawdzamy czy prev jest w stanie TASK_INTERRUPTIBLE. Jeśli tak jest to: jeśli proces jest w trakcie przetwarzania sygnału to zmieniamy stan na TASK_RUNNING, w przeciwnym wypadku usuwamy prev z runqueue
9 Schedule() - algorytm Zmienna next jest ustawiana na idle task tego procesora. Dobroć tego zadania jest ustawiana na w nadziei, że znajdzie sie jakiś lepszy watek Dla każdego procesu z runqueue, który może być wykonany na tym procesorze, obliczana jest dobroć. Wygrywa proces z najwyższa dobrocia. Zwycięzca jest na zmiennej next
10 Goodness()
11 Goodness()
12 Schedule() - algorytm Jeśli otrzymana wartość dobroci jest równa 0 wtedy cała lista procesow (nie tylko runqueue!) jest przerabiana - dynamiczne priorytety sa zmieniane przy pomocy prostego algorytmu:
13 Schedule() - algorytm Ustawiamy next->has_cpu na 1 i next->processor na this_cpu. runqueue_lock jest zwalniany Właczamy proces next (jeśli prev==next to opuszczamy całe przygotowanie sprzętowe (rejestry itd.), zmienianie stron itd., i tylko przydzielamy kernel_lock obecnemu procesowi)
14 Scheduler 2.4 vs 2.6 W schedulerze jadra 2.4 czas działania schedule() jest linowo zależny od liczby procesów. Skutkuje to dużym obciażeniem systemu, jeśli jest duża liczba działajacych procesów, a więc de facto procesor nie wykonuje nic produktywnego. W jadrze 2.6 mechanizm działa w czasie stałym. Scheduler jadra 2.4 wylicza kwanty czasu przydzielane procesom jednocześnie, po zakończeniu epoki, a scheduler jadra dla każdego procesu z osobna, w momencie kiedy zużyje on swój dotychczas przyznany czas.
15 Scheduler 2.4 vs 2.6 W schedulerze 2.4 występuje globalna kolejka run_queue - wszystkie procesory musza czekać, aż pozostałe skończa wybór. W schedulerze 2.4 średni przyznawany kwant czasu wynosi ok. 210 ms, natomiast w ms. To znaczaca różnica. Jadra 2.4 nie można wywłaszczyć - brak wsparcia dla aplikacji czasu rzeczywistego. Jadro 2.6 można wywłaszczyć, ale nie w dowolnym momencie.
16 Scheduler 2.4 vs 2.6 Podbijanie priorytetów watków wykonujacych operacje wejścia - wyjścia w schedulerze 2.4 nie jest idealne: nieinterakcyjne watki maja podwyższony priorytet nawet jeśli nie jest to potrzebne (np. baza danych zapisujaca lub pobierajaca dużo danych) Procesy wykonujace dużo obliczeń nie maja obniżanego priorytetu - pomogłoby to procesom interakcyjnym w otrzymaniu dostępu do procesora. Problem ten został rozwiazany w schedulerze 2.6 Kod schedulera 2.4 jest około 3 razy krótszy niż kod schedulera 2.6, ale ma mniej przewidywalne zachowanie.
17 Scheduler O(1) Scheduler O(1)
18 Problemy ze schedulerem O(1) Dość szybko okazało się, że istnieja przypadki, w których scheduler O(1) słabo sobie radzi Próbowano rozwiazywać te sytuacje, piszac patche na scheduler Jednak każda łatka tworzyła nowe, wcześniej nieznane przypadki krytyczne Okazało się, że aby rozwiazać wszystkie te problemy, należy zmienić sposób szeregowania procesów
19 Przykładowy przypadek krytyczny - massive_intr.c Podczas uruchamiania dużej ilości procesów interaktywnych, niewielka część z nich zajmuje prawie cały czas procesora, a cała reszta ledwo działa Te procesy, które okupuja procesor zawsze maja maksymalny możliwy effective_prio, podczas gdy reszta ma effective_prio o jeden mniejszy
20 Przykładowy przypadek krytyczny - massive_intr.c Idea jest następujaca: 1 Jeśli mamy umiarkowana ilość maksymalnie interaktywnych procesów, moga być one wielokrotnie ponownie wstawiane do kolejki active bez zmniejszania swojego priorytetu. 2 W tym przypadku pozostałe procesy rzadko się wykonuja i nie moga dostać maksymalnego effective_prio w następnej rundzie, ponieważ scheduler uważa, że zbyt długo spały 3 Idź do punktu 1
21 Przykładowy przypadek krytyczny - massive_intr.c Idea jest następujaca: 1 Jeśli mamy umiarkowana ilość maksymalnie interaktywnych procesów, moga być one wielokrotnie ponownie wstawiane do kolejki active bez zmniejszania swojego priorytetu. 2 W tym przypadku pozostałe procesy rzadko się wykonuja i nie moga dostać maksymalnego effective_prio w następnej rundzie, ponieważ scheduler uważa, że zbyt długo spały 3 Idź do punktu 1, ZONK!
22 Przykładowy przypadek krytyczny - massive_intr.c Program massive_intr.c działa następujaco: 1 Wczytuje - ilość procesów - czas działania procesów 2 Proces główny procesów potomnych i czeka aż się zakończa 3 Każdy proces potomny działa w następujacej pętli: pracuj przez 8 msec i śpij przez 1 msec 4 sekundach, każdy proces potomny wypisuje ilość obrotów pętli, które wykonał Oczekiwany wynik to prawie równa ilość wykonanych obrotów pętli
23 Przykładowy przypadek krytyczny - massive_intr.c Przeprowadziłem test w następujacym środowisku: Jadro linuksa , dwurdzeniowy Wyniki: Cztery procesy wykonały łacznie 96,2%(!) wszystkich wykonanych obrotów pętli Na powyższym przykładzie widać, że działanie schedulera O(1) znacznie mija się z oczekiwaniami
24 Scheduler CFS Scheduler CFS
25 Powstanie CFS autor: Ingo Molnar(zatrudniony w RedHat, autor schedulera O(1)) pomysł: Kon Colivas (praktykujacy lekarz z Australii) pierwsza implementacja: Rotating Staircase Deadline Scheduler (już z 2004 r.) i Staircase Deadline 100K patch w 62 godziny I d like to give credit to Con Kolivas for the general approach here: he has proven via RSDL/SD that fair scheduling is possible and that it results in better desktop scheduling. Kudos Con! - - Ingo Molnar
26 Historyjka Linus Torvalds i Ingo Molnar skrytykowali pomysły Cona Kolivasa w 2004 r. Kon skarżył się, że jego wiadomości były kasowane lub odrzucane przez filtr antyspamowy Gdy scheduler RSDL był już gotowy, aby wejść do głównej linii jadra, Ingo Molnar pisze CFS w 3 dni Linus podejmuje decyzję o właczeniu CFS (z niewiadomych powodów faworyzujac Ingo Molnara) 24 lipca 2007 Con Kolivas ogłasza decyzję o porzuceniu rozwijania jadra Kon zaprzecza jakoby przyczyna jego odejścia było odrzucenie RSDL przez Linusa
27 Idea Stosowane dotychczas heurystyki zbyt często się nie sprawdzaja Dobrym pomysłem wydaje się krojenie procesora na mniejsze jednostki (niestety wolniejsze) Oczywiście jest to nierealne
28 p->wait_runtime Jeżeli mamy n procesów, to w okresie czasu t każdy powinien być przez t/n czasu na procesorze Dla każdego procesu staramy się liczyć czas, po którym odzyska bilans (jeżeli będzie przez tyle czasu sam na procesorze ) - to jest właśnie p->wait_runtime W idealnym modelu p->wait_runtime zawsze równe 0 Strategia: Uruchom proces z największym p->wait_runtime
29 rq->fair_clock Tak naprawdę procesy sortowane wg wartości rq->fair_clock - p->wait_runtime fair_clock jest zwiększany odwrotnie proporcjonalnie do obciażenia kolejki procesów (struktury runqueue): Jezeli obciażenie = 1 (zadanie), to będzie zwiększany o rzeczywiście upływajacy czas, jednak ze wzrastajac a ilościa zadań, tempo jego zwiększania będzie spadać Dodatkowo procesy maja różne wagi (zależne np. od parametru nice i ilości przespanego czasu)
30 Drzewo Do wyboru najmniejszej wartości służy drzewo czerwono-czarne (stad złożoność O(logn)) Fragment nowo wprowadzonej struktury sched_entity (w takiej strukturze przechowywane sa dane o procesie): struct sched_entity { long wait_runtime; unsigned long delta_fair_run; unsigned long delta_fair_sleep; unsigned long delta_exec; s64 fair_key; (...)
31 Dokładność czasowa CFS nie opiera się ani na jiffies ani na HZ CFS działa z dokładnościa do nanosekund Zbyt duża dokładność powoduje zbyt częste przełaczanie procesów i spadek wydajności pamięci cache, stad rzeczywista szczegółowość jest ustawiana na większe wartości (można ja kontrolować przez plik /proc/sys/kernel/sched_granularity_ns) Duża dokładność jest lepsza dla systemów typu desktop, mała natomiast lepiej sprawdza się w przypadku serwerów
32 Klasy schedulerów CFS wprowadza pojęcie klasy schedulerów, dzięki czemu łatwiejsze jest wprowadzenie nowej polityki do schedulera Klasy tworza listę uporzadkowan a według priorytetów Domyślnie lista wyglada następujaco:
33 Czas na kod Przejrzymy następujace funkcje: schedule() - wybieraj następny proces do wykonania pick_next_task() - tak naprawdę to ja wywołuje schedule w celu wybrania procesu scheduler_tick() - wywoływana przy każdym przerwaniu pochodzacym od zegara task_tick_fair() - funkcja zegara dla klasy fair entity_tick() - funkcja uaktualniajaca pojedynczy proces w klasie fair
34 Funkcja schedule() Wybór następnego procesu w funkcji schedule() to tylko wywołania funkcji odpowiedniej klasy schedulera: prev->sched_class->put_prev_task(rq, prev); next = pick_next_task(rq, prev); Jeśli nowo wybrany proces (next) jest różny od poprzednio wykonywanego (prev), to nastapi przełaczenie kontekstu: if (likely(prev!= next)) { rq->nr_switches++; rq->curr = next; ++*switch_count; context_switch(rq, prev, next);
35 pick_next_task() Co robi pick_next_task w CFS? /* Przegladamy klasy schedulerów zaczynajac od najbardziej uprzywilejowanej */ class = sched_class_highest; for ( ; ; ) { p = class->pick_next_task(rq); if (p) return p; } /* * Z pętli wyjdziemy najpóźniej dochodzac do klasy idle * (ta klasa nigdy nie zwraca NULL) */ class = class->next;
36 Funkcja scheduler_tick() Podobnie jak schedule() polega głównie na wywołaniu funkcji z odpowiedniej klasy (w tym wypadku aktualnie wykonywanego procesu): /* uaktualnianie statystyk dla cpu */ update_cpu_load(rq); if (curr!= rq->idle) /* wywołanie funkcji z odpowiedniej klasy */ curr->sched_class->task_tick(rq, curr);
37 Funkcja task_tick_fair() task_tick_fair() - wybiera procesy do uaktualnienia: struct sched_entity *se = &curr->se; /* * W domyślnej konfiguracji tylko bierzacy proces, * możliwe ustawienie aktualizowania całej grupy procesów */ for_each_sched_entity(se) { cfs_rq = cfs_rq_of(se); entity_tick(cfs_rq, se); } entity_tick() - uaktualnia pojedynczy proces: dequeue_entity(cfs_rq, curr, 0); enqueue_entity(cfs_rq, curr, 0); /* tutaj następuje pominięty fragment kodu przełaczaj acy procesy w razie potrzeby */
38 /proc/sched_debug Po właczeniu opcji CONFIG_SCHED_DEBUG możemy obserwować scheduler czytajac plik /proc/sched_debug: Fragment przykładowego odczytu:
39 Porównywanie schedulerów Porównywanie schedulerów
40 Porównywanie schedulerów No dobrze. Mamy kilka schedulerów. Nasuwaja się pytania: Jak je porównać? Jak interpretować wyniki? Który jest lepszy?
41 Co mierzyć? 1 Wydajność - jak szybko procesy się wykonuja 2 Koszt działania - jakie sa koszty działania samego planisty 3 Skalowalność - jak scheduler radzi sobie z różna ilościa procesów na różnej ilości procesorów 4 Sprawiedliwość - czy scheduler równo traktuje wszystkie procesy (uwzględniajac priorytety) i nie głodzi niektórych procesów 5 Interaktywność - czy procesy interaktywne sa uprzywilejowane Powyższe cechy moga być częściowo sprzeczne. Na przykład scheduler O(1) ma niski koszt działania, ale kiepsko u niego ze sprawiedliwościa (patrz: massive_intr)
42 Czym mierzyć? Microbenchmarki Testuja konkretne cechy schedulera (wydajność, koszt działania, skalowalność) Nie wykluczaja przypadków krytycznych, w których scheduler zachowuje się bardzo źle W rzeczywistości bardzo rzadko występuja sytuacje takie jak w tych testach Sa to jedyne benchmarki, których wyniki sa publikowane na listach dyskusyjnych dotyczacych schedulerów
43 Czym mierzyć? Testy interaktywności Jest to zestaw różnych testów symulujacych procesy interaktywne Testuja raczej całe jadro niż sam scheduler Niestety, mój linux okazał się zbyt mało interaktywny i po kilkunastu minutach testu nie reagował absolutnie na nic Za każdym razem, gdy odpalałem test interbench, po pół godzinie musiałem pomóc schedulerowi, wykonujac twardy reset
44 Jak mierzyć? 1 Duża ilość testów - wyniki testów zależa od chwilowego obciażenia procesora. Uruchamiajac testy po kilka razy uzyskujemy wyniki bliższe rzeczywistości 2 Zróżnicowana architektura - architektura systemu może mieć wielki wpływ na zachowanie schedulera. Widać to m.in. przy porównaniu schedulera z jadra 2.4 do schedulera O(1) 3 Różna ilość procesów uruchomionych w tle - tworzymy w ten sposób sytuacje, które sa bardziej zbliżone do rzeczywistych, gdyż scheduler musi sobie radzić pod różnymi obciażeniami
45 hackbench Mierzy skalowalność, wydajność i koszt działania schedulera Test jako parametr wczytuje liczbę n, a następnie uruchamia n pisarzy i n słuchaczy. Każdy pisarz nadaje 100 komunikatów do każdego ze słuchaczy, czyli np. dla n=20 każdy pisarz łacznie nadaje 2000 komunikatów, a każdy słuchacz odbiera również 2000 komunikatów Jako wynik otrzymujemy czas, jaki zajał test
46 Wyniki testów - hackbench
47 Wyniki testów - hackbench
48 Wyniki testów - hackbench
49 lat_ctx Mierzy koszt zmiany kontekstu Tworzy się pierścień procesów połaczonych przez pipe y, w którym kraży żeton. Każdy proces po odbiorze żetonu wykonuje pewien kod, a następnie przekazuje żeton dalej W wyniku dla każdego testowanego rozmiaru pierścienia otrzymujemy łaczny koszt przełaczania kontekstu
50 Wyniki testów - lat_ctx
51 pipe-test Mierzy koszt zmiany kontekstu Tworza się dwa procesy połaczone w pierścień za pomoca pipe a. Następnie milion razy powtarza się scenariusz: proces pierwszy wkłada do pipe a żeton z numerem rundy, drugi proces go odbiera i przekazuje z powrotem do pierwszego Jako wynik wypisywany jest średni czas obiegu żetonu
52 Wyniki testów - pipe-test
53 Trendy rozwojowe Trendy rozwojowe
54 Rozwój CFS CFS jest dość nowym planista i cały czas trwa jego optymalizacja W najbliższym czasie żaden inny scheduler nie wypchnie go raczej z głównej linii jadra Inne schedulery nie pozostaja bez wpływu na jego rozwój Dzięki odchudzeniu, a także zawarciu w nim kilku idei wziętych z RSDL i RFS, CFS w najnowszej wersji jest średnio o 16% szybszy niż w wersji z jadra rc6, a także odrobinę szybszy niż planista O(1) z jadra
55 Koncepcja Fair Scheduling Zaproponowana dwa lata temu przez Cona Kolivasa Rezygnacja z heurystyk obliczajacych interaktywność procesów Poczatkowo idea ta była bardzo chłodno przyjmowana Kolivas rozwinał własny scheduler oparty na swojej idei Pierwotnie nazywał się on SD (Staircase Deadline) i był wydawany jako patch na scheduler O(1) Później zmienił nazwę na RSDL (Rotating Staircase Deadline Scheduler) i był już odrębnym schedulerem
56 Koncepcja Fair Scheduling RSDL udowodnił poprawność koncepcji Fair Scheduling Miał on zostać właczony do głównej linii jadra Ostatecznie zamiast niego w jadrze pojawił się CFS CFS silnie bazuje na ideach Kolivasa Gdy Kolivas ogłaszał decyzję o zakończeniu prac nad rozwojem linuksa, powiedział, że jego zdaniem poświęca się za mało uwagi na wydajność linuksa na komputerach osobistych, a obciażenie linuksa rozwojem jadra pod serwery powoduje, że system ten działa słabo na komputerach osobistych
57 Rotating Staircase Deadline Scheduler (RSDL) Stosunkowo mało skomplikowany Zapewnia dobra interaktywność, całkowita sprawiedliwość i ograniczone opóźnienia Nawet nie próbuje określać stopnia interaktywności procesów
58 Rotating Staircase Deadline Scheduler (RSDL) Dla każdego priorytetu istnieje kolejka procesów Każdy proces ma przydział czasu, po wykorzystaniu którego obniżany jest mu priorytet Dopisuje się on wtedy do kolejki o priorytet niższej i przydzielany jest mu nowy przydział czasu Także każdy priorytet ma swój przydział czasu Kiedy najwyższy priorytet go zużyje, wszystkie procesy o tym priorytecie sa przesuwane do poziomu poniżej niezależnie od tego czy wykorzystały swój indywidualny przydział czasu, czy nie. Nazywamy to mała rotacja.
59 Rotating Staircase Deadline Scheduler (RSDL) Gdy proces zużyje swój czas, jest przesuwany do tablicy procesów zakończonych, gdzie jest mu przypisywany jego pierwotny priorytet Gdy nie ma już procesów w tablicy procesów aktywnych (wszystkie wykorzystały swój przydział, badź w wyniku małych rotacji spadły z tablicy procesów aktywnych), dokonuje się duża rotacja : zamieniane sa tablice procesów aktywnych i zakończonych i cała sekwencja zdarzeń zaczyna się od nowa
60 Rotating Staircase Deadline Scheduler (RSDL) Procesy często śpiace sa w naturalny sposób uprzywilejowane Jeśli śpia, nie wykorzystaja swojego przydziału dla wyższych wartości priorytetów Gdy proces śpi podczas dużej rotacji, jego przydział czasu jest ustalany na tyle, ile wynosi przydział czasu dla jego priorytetu Umożliwia mu to uruchamianie się z wysokim priorytetem nawet, gdy inne procesy z wysokim priorytetem, które wykowyały się, gdy ten spał, spadły na niższy priorytet w wyniku małych rotacji
61 Really Fair Scheduler (RFS) Roman Zippel krytykował CFS za zbyt wyszukane sztuczki i operacje, które wykonywał Ingo Molnar częściowo się do nich ustosunkowywał Zippel postanowił samodzielnie napisać uproszczona wersję CFS, która nazwał Really Fair Scheduler W odpowiedzi Molnar na podstawie CFS napisał Really Simple Really Fair Scheduler Zippel uznał RSRFS za zbytnio uproszczony
62 Plugsched - scheduler jako wtyczka Idea: Scheduler jako moduł wybierany podczas uruchamiania systemu Patch na jadro napisany przez Cona Kolivasa i inne osoby zajmujace się rozwojem schedulerów Możliwość łatwiejszego testowania schedulerów, a także doboru planisty do własnych potrzeb
63 Plugsched - scheduler jako wtyczka Linus Torvalds i Ingo Molnar sa przeciw właczaniu go do głównej linii jadra Uważaja oni, że byłoby dużym błędem danie użytkownikowi możliwości manipulowania mechanizmami, o których nie ma on pojęcia Dyskusja nad właczeniem systemu wtyczek dla planisty czasu procesora do jadra Linuksa powstała po rezygnacji z właczenia do głównej gałęzi jadra planisty RSDL na rzecz CFS.
64 Bibliografia Linux 2.4 : sched.c Linux : sched.c i sched_fair.c
Szeregowanie procesów w Linuksie - trendy rozwojowe
Szeregowanie procesów w Linuksie - trendy rozwojowe 14 grudnia 2007 Co to jest scheduler? Elementarne zasady działania Do czego dążymy? Wieloprocesowość Co to jest i po co to jest? Wieloprocesowość = wiele
Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski
Szeregowanie zadań w Linux Kernel 2.6 Daniel Górski Przemysław Jakubowski Plan prezentacji Szeregowanie procesów - Szeregowanie - Cele szeregowania - Scheduler 2.6 - Struktury danych używane w 2.6 - Multiprocesorowość
Linux Scheduler Szeregowanie procesów w systemie Linux. Andrzej Ambroziewicz Piotr Marat Mieszko Michalski
Linux Scheduler Szeregowanie procesów w systemie Linux Andrzej Ambroziewicz Piotr Marat Mieszko Michalski Zawartość prezentacji Linux Scheduler 2.4 Linux Scheduler 2.6 CFS ( Completely Fair Scheduler )
Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14
Jadro Linux 2.6 a zadania czasu rzeczywistego Artur Lewandowski al167167@students.mimuw.edu.pl Jądro Linux 2.6 p.1/14 1 Wprowadzenie Linux 2.6 wprowadza dużo nowych cech polepszajacych wydajność zadań
Przykłady implementacji planowania przydziału procesora
Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Tradycyjne szeregowanie w systemie UNIX Szeregowanie w systemie Linux z jądrem
przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Tradycyjne szeregowanie w systemie UNIX Szeregowanie w systemie Linux z jądrem 2.6 Szeregowanie w systemie Windows 2000/XP (2) Szeregowanie
Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 6 Planista procesora funkcja schedule Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Typowe punkty wywołania planisty Procedura sleep_on (usypanie procesu). Powrót z wywołania
Planista całkowicie sprawiedliwy. Algorytm, śledzenie działania i strojenie
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Katedra Informatyki Stosowanej Rafał Szklarski nr albumu: 189226 Praca magisterska na kierunku Fizyka Techniczna Planista
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
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
BSD - alternatywa dla Linuksa
BSD - alternatywa dla Linuksa Różnice i podobieństwa w implementacji jadra (na przykładzie schedulera) Maria Donten Bartłomiej Etenkowski Aleksander Zabłocki Systemy Operacyjne 2006 M. Donten, B. Etenkowski,
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
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. procesów W środowisku systemu pracuje zwykle więcej procesów gotowych do wykonania niż dostępnych jest procesorów. Stąd istnieje potrzeba decydowania
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008 Systemy oparte na mikrojądrze Jądro systemu jest bardzo małe Architektura mocno
Real-Time Linux. Wprowadzenie
Real-Time Linux Wprowadzenie Co to jest Real-Time? Zdolność systemu do udzielenia odpowiedzi (prawidłowej) w z góry określonym czasie. A więc od systemu czasu rzeczywistego będziemy wymagali, aby reagował
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
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
Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych
Zarządzanie w systemach i sieciach komputerowych Dr inż. Robert Wójcik Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych 3.2. Implementacja planowania przydziału procesora http://wazniak.mimuw.edu.pl/index.php
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
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!
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
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
Szeregowanie zadań we współczesnych systemach operacyjnych. Szeregowanie zadań w Linux Kernel 2.6
Daniel Górski Przemysław Jakubowski Szeregowanie zadań we współczesnych systemach operacyjnych. Szeregowanie zadań w Linux Kernel 2.6 Slajd 3: Wstęp do szeregowania. Z szeregowaniem mamy do czynienia w
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
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
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ą
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
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
1.1 Definicja procesu
1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Planowanie przydziału procesora
Planowanie przydziału procesora Ogólna koncepcja planowania Tryb decyzji określa moment czasu, w którym oceniane i porównywane są priorytety procesów i dokonywany jest wybór procesu do wykonania. Funkcja
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.
Linux Adam Bułak Ha Nhat Viet Damian Klata
Linux 2.6.8.1 Adam Bułak Ha Nhat Viet Damian Klata 1. Wstp Wieloprocesowe systemy: - z moliwoci wydzierawiania (ang. preemption) Unix, Linux te oczywicie - bez takiej moliwoci proces sam oddaje procesor
Podstawowe zagadnienia
SWB - Systemy operacyjne w systemach wbudowanych - wykład 14 asz 1 Podstawowe zagadnienia System operacyjny System czasu rzeczywistego Systemy wbudowane a system operacyjny Przykłady systemów operacyjnych
- - Ocena wykonaniu zad3. Brak zad3
Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po
PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
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
Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler
Planowanie przydziału procesora CPU scheduling Koncepcja szeregowania Koncepcja szeregowania (Basic Concepts) Kryteria szeregowania (Scheduling Criteria) Algorytmy szeregowania (Scheduling Algorithms)
Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 6 Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Rodzaje planowania Planowanie długoterminowe. Decyzja o
WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania
SYSTEMY OPERACYJNE WYKŁAD 3 Jądro systemu i procesy Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania Program wykładu 2 Jądro systemu Możliwości procesorów Działanie procesów i wątków Zarządzanie procesami
Przykłady implementacji planowania przydziału procesora. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Celem wykładu jest przedstawienie podejść do planowania przydziału procesora w najbardziej popularnych
Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu
Planowanie przydziału procesora Ogólna koncepcja planowania Tryb decyzji określa moment czasu, w którym oceniane i porównywane są priorytety procesów i dokonywany jest wybór procesu do wykonania. Funkcja
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
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
1. Tworzenie nowego projektu.
Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty
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
Algorytm DGA wykorzystywany w trojanie Emotet
Algorytm DGA wykorzystywany w trojanie Emotet CERT Orange Polska Warszawa 29/12/2014 CERT OPL 29.12.2014 Strona 1 z 6 Wstęp. Trojan Emotet wielokrotnie był już przedmiotem zainteresowania specjalistów.
Wprowadzenie do systemu Minix
Opis powstał na podstawie pracy dyplomowej Adama Pogorzelskiego Opracowanie laboratoryjnej wersji systemu Minix 2.0 wykonanej w 1998 roku w IAiIS PW. 1. Wprowadzenie System operacyjny (SO) to program lub
Planowanie przydziału procesora
Planowanie przydziału procesora Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny algorytmów planowania Algorytmy planowania Przykłady implementacji przydziału czasu
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
Systemy operacyjne II
Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech
1. Szeregowanie w systemach czasu rzeczywistego
J. Ułasiewicz Systemy Czasu Rzeczywistego 1 1. Szeregowanie w systemach czasu rzeczywistego 1.1 Definicje Zadanie - proces lub wątek Gotowych do wykonania zadań jest zwykle dużo więcej niż mogących je
Metody obsługi zdarzeń
SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału
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
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
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.
Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych
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,
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
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
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze
projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro
projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro Rygorystyczny (twardy) system operacyjny czasu rzeczywistego. Jego charakterystyczną
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
Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora
Planowanie przydziału procesora W pamięci operacyjnej znajduje się kilka procesów jednocześnie. Kiedy jakiś proces musi czekać, system operacyjny odbiera mu procesor i oddaje do dyspozycji innego procesu.
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Procesy, zasoby i wątki
Dariusz Wawrzyniak 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 Plan
Procesy, zasoby i wątki
Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów
Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
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
Procesy, zasoby i wątki
Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu 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
Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco
1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu
Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci
Przerwania, polling, timery - wykład 9
SWB - Przerwania, polling, timery - wykład 9 asz 1 Przerwania, polling, timery - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Przerwania, polling, timery - wykład 9 asz 2 Metody obsługi zdarzeń
W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby
Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie
Struktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
System operacyjny MACH
Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów
Analiza ilościowa w przetwarzaniu równoległym
Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2
Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i
VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp
Kurs Zaawansowany S7. Spis treści. Dzień 1
Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja
1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Embedded Systems Programming
Embedded Systems Programming Device drivers - interrupts and timers Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG April 7, 2019 Przerwania Przerwanie - sygnał powodujacy zmianę przepływu
Planowanie przydziału procesora
Planowanie przydziału procesora W pamięci operacyjnej znajduje się kilka procesów jednocześnie. Kiedy jakiś proces musi czekać, system operacyjny odbiera mu procesor i oddaje do dyspozycji innego procesu.
Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Architektura potokowa RISC
Architektura potokowa RISC Podział zadania na odrębne części i niezależny sprzęt szeregowe Brak nawrotów" podczas pracy potokowe Przetwarzanie szeregowe i potokowe Podział instrukcji na fazy wykonania
Maciej Oleksy Zenon Matuszyk
Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu
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.
Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1
Czas w systemach rozproszonych Krzysztof Banaś Systemy rozproszone 1 Czas w systemach rozproszonych Istnienie algorytmów opartych na czasie zdarzeń np. make, systemy czasu rzeczywistego Brak czasu globalnego
Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego
Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na
Budowa Mikrokomputera
Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,
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
Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa
Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa Konrad Miziński 14 stycznia 2015 1 Temat projektu Grupowanie hierarchiczne na podstawie algorytmu k-średnich. 2 Dokumenty
Ciasteczka. Krishna Tateneni Jost Schenck Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur
Krishna Tateneni Jost Schenck Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur 2 Spis treści 1 Ciasteczka 4 1.1 Polityka............................................ 4 1.2 Zarzadzanie.........................................
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
Futex (Fast Userspace Mutex) Łukasz Białek
Futex (Fast Userspace Mutex) Łukasz Białek Futex informacje podstawowe Stworzony w 2002 roku przez Hubertusa Franke, Matthew Kirkwooda, Ingo Molnára i Rustiego Russella. Jest mechanizmem w Linuxie, który
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
Biuletyn techniczny. CDN OPT!MA 8.5 Wskazówki dotyczące instalacji programu. Copyright 2006 COMARCH SA
Biuletyn techniczny CDN OPT!MA 8.5 Wskazówki dotyczące instalacji programu Copyright 2006 COMARCH SA Spis treści 1 SPIS TREŚCI...2 2 DRIVER ODBC POWODUJĄCY BŁĄD PRZY WYKONYWANIU WYDRUKÓW REPORT WRITER