Mechanizm szeregowania zadań w jądrach z serii 2.6 systemu GNU/Linux



Podobne dokumenty
PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Acronis Backup & Recovery 10 Server for Linux. Instrukcja szybkiego rozpoczęcia pracy

Informatyka bez komputera. Katarzyna Olędzka

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Opis efektów kształcenia dla modułu zajęć

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Tworzenie maszyn wirtualnych przy pomocy systemu FAI

Prezentacja systemu RTLinux

Zmiany w programie VinCent 1.29

Planista całkowicie sprawiedliwy. Algorytm, śledzenie działania i strojenie

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

4. Procesy pojęcia podstawowe

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

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Liceum Ogólnokształcące Nr VII im. Krzysztofa Kamila Baczyńskiego

Informatyka bez komputera. Janusz S. Wierzbicki

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

E-3IZ1-05-s5. Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

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

Kernel Kompilacja jądra

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska

Webowy generator wykresów wykorzystujący program gnuplot

Liceum Ogólnokształcące Nr VII im. Krzysztofa Kamila Baczyńskiego

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

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

Tworzenie i obsługa wirtualnego laboratorium komputerowego

<Nazwa firmy> <Nazwa projektu> Specyfikacja wymagań projektu. Wersja <1.0>

Co zamawiający rozumie pod pojęciem rodzaje dyżurów? Czy Zamawiający dopuszcza rozwiązanie realizujące wymaganie za pomocą grafików.

Tomasz Grześ. Systemy zarządzania treścią

Advance Concrete 8.1 SP1 Opis zawartości

Spis treści. Wstęp 11

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Programowanie i techniki algorytmiczne

Systemy operacyjne. Paweł Pełczyński

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Opracowanie: Izabela Czepil i Andrzej Solski

UŻYTKOWNIK PAP - INSTRUKCJA UŻYTKOWANIA SERWISU PAP

ECDL Podstawy programowania Sylabus - wersja 1.0

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Przedmiotowy System Oceniania Fizyka z Astronomią

System operacyjny MACH

Acronis Backup & Recovery 10 Server for Linux. Update 5. Podręcznik instalacji

ZAPRASZAMY KADRĘ SEKTORA USŁUG SPOŁECZNYCH (OSOBY SPOZA SPOŁECZNOŚCI AKADEMICKIEJ) Tecnologie MICROSOFT WORD, EXCEL, POWERPOINT 2007

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Szeregowanie procesów w Linuksie - trendy rozwojowe

Zarządzanie certyfikatami w systemie OpenVPN

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Aktywny serwer sieciowy (WMUC-EM):

PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

PyPy's Approach to Virtual Machine Construction

Nowe funkcje w programie Symfonia Faktura w wersji

JPK Jednolity Plik Kontrolny

7. zainstalowane oprogramowanie zarządzane stacje robocze

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

KOMPUTER. Programy użytkowe i systemy operacyjne

Systemy operacyjne System sieciowy UNIX-a

Zarządzanie nieruchomościami dla ENOVA

Tworzenie sterowników dla FreeBSD. Michał Hajduk

4. Procesy pojęcia podstawowe

Rok akademicki: 2016/2017 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

SCENARIUSZ LEKCJI FIZYKI I ASTRONOMII W KLASIE II ZASADNICZEJ SZKOŁY ZAWODOWEJ UŻYTECZNE CIEPŁO

KATEGORIA OBSZAR WIEDZY

asix4 Podręcznik użytkownika NetLink - drajwer protokołu MPI/Profibus dla SIMATIC S7 przy wykorzystaniu modułu NetLink Lite SYSTEME HELMHOLZ

Podstawy administracji systemu Linux

Acronis Backup & Recovery 10

Proces badawczy schemat i zasady realizacji

WIELODOSTĘPNE SYSTEMY OPERACYJNE 1 (SO1)

Podczas tego szkolenia, użytkownik zapozna się z zasadami tworzenia łańcuchów kinematycznych, więzami oraz dynamicznymi symulacjami zaprojektowanych

Zamawiający dysponuje szerokim spektrum rozwiązań infrastrukturalnych. Wykonawca uzyska dostęp do infrastruktury w niezbędnym zakresie.

System Zarządzania Dystrybucją

Finanse VULCAN. Jak wprowadzić fakturę sprzedaży?

BMC Control-M Wybrane przypadki zastosowania

Organizacja oprogramowania

Algorytm. a programowanie -

wg rozdzielnika Wrocław, dnia r. TXU PG

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

Pomiar i analiza statystyczna Prezentacja wyników badania nad nadużywaniem prawa do informacji publicznej dr Olga Kotowska-Wójcik IS, WNHiS UKSW

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Kurs SINAMICS G120 Konfiguracja i uruchomienie. Spis treści. Dzień 1

Od Expert Data Scientist do Citizen Data Scientist, czyli jak w praktyce korzystać z zaawansowanej analizy danych

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Płace VULCAN opis zmian

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

Zarządzanie pamięcią operacyjną

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

MultiCash współpraca z systemami finansowo-księgowymi

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

1.1 Definicja procesu

Wstęp do Informatyki. Klasyfikacja oprogramowania

Linux Kernel. Wprowadzenie

Systemy ERP. dr inż. Andrzej Macioł

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Linux is linux is linux?

Transkrypt:

UNIWERSYTET MIKOŁAJAKOPERNIKA Wydział Fizyki, Astronomii i InformatykiStosowanej JakubPrzybyła Mechanizm szeregowania zadań w jądrach z serii 2.6 systemu GNU/Linux Toruń2007

UMKzastrzegasobieprawowłasnościniniejszejpracyinżynierskiejwceluudostępnienia dlapotrzebdziałalnościnaukowo-badawczejlubdydaktycznej

Spistreści 1 Wstęp 4 2 Szeregowanie procesów 6 2.1 Klasyprocesów... 7 2.2 Priorytetyikwantyczasu... 11 2.3 Interaktywność... 13 2.4 Szeregowanie... 15 2.4.1 Funkcjaschedule()... 15 2.4.2 Funkcjaschedulertick()... 17 2.4.3 Funkcjasched yield... 20 3 Modułyjądra 21 3.1 Konstruktoridestruktormodułu... 21 3.2 Zależności międzymodułami... 21 3.3 Licznikodwołań... 22 3.4 Parametryzacjamodułów... 23 3.5 Inneinformacjeomodule... 25 3.6 Wersjemodułówijądra... 26 3.7 Ładowaniemodułównażądanie... 26 3.8 Dynamiczne łączenie irelokacjakodu... 27 3.9 BudowaplikuELF... 28 3.10Zastosowaniemodułów... 29 4 Sterowniki urządzeń 30 4.1 Rejestrowanieiwyrejestrowywanieurządzeń... 32 4.2 Operacjenaplikuurządzenia... 33 4.2.1 Funkcjaopen... 35 4.2.2 Funkcjarelease... 35 4.2.3 Funkcjaread... 36 4.2.4 Funkcjawrite... 36 4.2.5 Funkcjallseek... 37 4.2.6 Funkcjaioctl... 37 5 Implementacjamodułu kernstati programuschedstat 38 5.1 Modyfikacjasched.hisched.c... 39 5.2 Konstruktormodułukernstat... 40 2

5.3 Destruktormodułukernstat... 43 5.4 Strukturafileoperations... 44 5.5 Otwarcieplikuurządzeniakernstat... 45 5.6 Zamknięcieplikuurządzeniakernstat... 47 5.7 Czytaniezplikuurządzeniakernstat... 47 5.8 Funkcjakontroliurządzeniakernstatioctl... 51 5.9 Funkcjaexportschedstat... 55 5.10Funkcjaexportschedstat... 58 5.11Funkcjaschedpioarraytasks... 59 5.12Funkcjaexporttaskstat... 61 6 Działanie planisty wg programu schedstat 65 6.1 Zadaniaztablicyactive... 66 6.2 Zadaniaztablicyexpired... 68 6.3 Kolejkazadańgotowychdowykonania... 69 6.4 Czasowestatystykizadania... 70 6.5 Statystykizadańwgplanisty... 72 7 Słownik podstawowych pojęć 74 Literatura 79 3

1 Wstęp SystemoperacyjnyGNU/Linux,któryjest intensywnie rozwijanyod1991r.,osiągnął takądojrzałość ijakość,że najegobazie powstały dwie dystrybucje klasykorporacyjnej: RedHat Enterprise oraz Suse LinuxEnterprise Server.JądrosystemuGNU/Linuxjest wwysokimstopniukonfigurowalnenietylkodziękiswojejmodułowejbudowie,prawie800 konfigurowalnymparametrom,któremożnazmieniaćwczasiepracysystemu,aletakże dziękidostępnościźródeł, któretakże możnamodyfikować.żebyjednakdostrajać jądro dokonkretnychpotrzebtrzebadobrzepoznaćjegofunkcjonowanie. Niniejszapracapoświęconajestbudowie narzędzia,któresłużydośledzeniapracyplanisty,czylijednegozkluczowychelementówjądra.składasięonozespecjalnegomodułu jądrakernstatoraz programu schedstatdziałającegow przestrzeni użytkownika.moduł kernstatsłuży doprzekazywaniadanychsterującychgenerowanychprzez programschedstatz przestrzeni użytkownikadoprzestrzeni jądra,odczytywaniu odpowiednich danych ze wskazanych strukturjądraoraz przekazywanie ich z powrotem doprzestrzeni użytkownika.wymianadanych odbywa się zapośrednictwem pliku urządzeniaznakowego /dev/kernstat. Moduł kernstatzostał takpomyślany i zaimplementowany,abyw przyszłościmógł zostaćrozszerzonyododatkowefunkcjepobierającezjądrainneparametryjegopracy. Jeśli zostanietopowiązanez tworzeniem odpowiednich narzędzidziałających w przestrzeni użytkownika,narzędzi podobnych doprogramuschedstat,touzyskamy nie tylko cenne narzędziadiagnostyczne, ale także dydaktyczne,którepowinnyułatwić zrozumienie działaniajądrasystemugnu/linux. Budowaomawianegonarzędziajestutrudnionazdwóchpowodów.Popierwsze,dostępdozmiennychplanistyzpoziomumodułówjądra,awszczególnościdokolejkizadań gotowych dowykonania,jestniemożliwy,ponieważkonsolidatortworzy takiedanew specjalnej sekcji wykonywalnej.data.percpu,doktórej modułymajązabroniony dostęp[1]. Podrugie,nie mamymożliwości wykorzystaniadefinicji zmiennych,strukturdanychoraz funkcji planisty,gdyżte definicje nie sądostępne poprzez plikinagłówkowe. Takamożliwość istniałajeszcze dowersji 2.6.18,gdyżprawie wszystkiepotrzebne definicjeznajdowałysięwpliku <include/linux/sched.h>,anie <kernel/sched.c>.ta zmianapodyktowanazostaławzględami bezpieczeństwa,ale utrudniabudowę modułów wykorzystującychte definicje. Poprzednie podejście pozwalałonatworzenie instancjiodpowiednichzmiennych.wówczas dostęp dozmiennych uprzedniozdefiniowanychwymagał jedynie odczytaniaadresów z eksportowanych symboli jądrai ich rzutowanie(otym czy jakiśsymbol jest eksportowanymożnasię przekonać przeglądającplik/boot/system.mapver,gdzieverjestnumeremwersji jądra). Przyimplementacjisterownikaurządzeniaznakowegokernstat orazfunkcji,które 4

sąodpowiedzialne zapobieranie statystykplanistywykorzystanojądro2.6.18ze specjalnie zmodyfikowanąwersjąpliku <kernel/sched.c>oraz <linux/sched.h>.zmianypolegają na dodaniuorazwyeksportowaniufunkcji, któradaje nambezpośrednidostęp doinstancji zmiennej typustructrq,czyli dokolejkizadańgotowychdowykonania.bywatak, że kolejne wersje jądrawprowadzajązmianyw nazewnictwie symboli,tzn.zmiennych, strukturdanychorazfunkcji,atakżewpołożeniuichdefinicji.wceluuniknięciatego problemu ograniczonorozważaniadojednegościśle określonegojądra,codaje gwarancję, że tworzonymodułbędzie działaćpoprawnie. Dziękizastosowaniuprogramuschedstat możliwe jest obserwowanie w jakisposób system operacyjny realizuje operacje wielozadaniowości, jak dbao to, aby w systemie, wktórympracujejednocześniewieleprocesówniedochodziłodoprzestojów.program schedstatilustruje mechanizmy wykorzystywane przez planistę w postaci prezentacji różnegorodzajustatystykorazwarunków determinujących odpowiednie ichtraktowanie. Układpracyjestnastępujący.Powstępienastępujątrzyrozdziałyomawiającezagadnieniazwiązanez działaniemi implementacjąplanisty orazzasaddziałaniai tworzenia sterownikóworazmodułówwjądrachsystemugnu/linux.wrozdzialepiątymprzedstawionotakże szczegółyimplementacjimodułukernstatorazprogramuschedstat.kolejny rozdział zawieraomówienie szereguprzykładowychzastosowańprogramuschedstat.pracę kończydodatekwyjaśniającyznaczenieszereguterminówprzewijającychsięwpracy. 5