Systemy Operacyjne - mini1, Funkcje systemu operacyjnego polegają na rozwiązywaniu konfliktów podczas współubiegania się różnych zadań użytkowników o zaso


System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać programy. System operacyjny nadzoruje i koordynuje posługiwanie się sprzętem przez różne programy użytkowe, które pracują na zlecenie różnych użytkowników.

System operacyjny jest odpowiedzialny za:

*Zarządzanie zasobami komputera

*tworzenie wirtualnej maszyny (dla programisty)

Cechy systemu operacyjnego:

funkcjonalność

wydajność

skalowalność

niezawodność (dostępność)

łatwość korzystania i zarządzania

Funkcje systemu operacyjnego polegają na rozwiązywaniu konfliktów podczas współubiegania się różnych zadań użytkowników o zasoby systemu komputerowego i na optymalizacji wykorzystywania zasobów przez zadania. Zadaniem systemu operacyjnego jest tworzenie środowiska operacyjnego, w którym użytkownik może wygodnie i bezpiecznie uruchamiać i eksploatować programy.

W szczególności system operacyjny umożliwia:

*przechowywanie informacji przez dłuższy czas w pamięciach zewnętrznych,

*jednoczesne wykonywanie różnych czynności przez system komputerowy,

*korzystanie z różnych pakietów programistycznych i języków programowania,

*wspólne wykorzystywanie niektórych urządzeń komputerowych przez grupy osób.

Funkcje systemowe:

*Kontroli procesów

*Operacje na systemie plików(otwarcie, skasowanie, czytanie, zamknięcie pliku; ustawianie wskaźnika w danym miejscu; funkcje informacyjne o plikach; itp.)

*Zarządzanie pamięcią operacyjną RAM

*Funkcje informacyjne(o stanie systemu operacyjnego - czas pracy, zajętość pamięci, itp. ; funkcje czasu i daty)

*Funkcje komunikacyjne(obsługa sieci - 90%)

*Operacje wejścia/wyjścia I/O

Programy systemowe

*manipulowanie plikami

*tworzenie systemów zmiana zawartości plików

*informowanie systemów stanie systemu

*kompilatory i interpretery jezyków programowania

*programy komunikacyjne

* programy użytkowe, interpreter poleceń

Struktury systemów operacyjnych:

1. Struktura monolityczna - system operacyjny traktowany jako zbiór procedur, przy czym

każda z nich może wywoływać drugą; poszczególne procedury muszą mieć bardzo dobre złącza. W celu stworzenia konkretnej wersji systemu operacyjnego należy skompilować odpowiedni zbiór procedur.

2. Struktura warstwowa - system zbudowany jest z kilku poziomów, co zapewnia jego

modularność. Każdy poziom składa się ze zbioru procedur i danych, które mogą być

wywoływane z poziomu wyższego. Poziom najniższy - sprzęt, najwyższy - interface z

użytkownikiem. W każdym systemie operacyjnym poziomy mogą być różne.

Model warstwowy systemu operacyjnego:

Programy systemowe - buforowanie I/O - obsługa konsoli - zarządzanie RAM - proces przydziału czasu CPU - sprzęt

Maszyna wirtualna.

System operacyjny udostępnia aplikacji tzw. maszynę wirtualną, czyli uproszczony obraz maszyny, na której pracuje aplikacja. System udostępnia aplikacji szczegóły dotyczące komputera oraz dodatkowe rozszerzenia, które ułatwiają pracę, (np. katalog udostępniony przez sieć aplikacja widzi tak samo, jak znajdujący się na lokalnym dysku. Aplikacja korzystająca z takiego katalogu nie zajmuje się obsługą sieci. Aby mogła się tam dostać, system operacyjny udaje, że jest to katalog lokalny i udostępnia go aplikacji).

Przerwania w systemie komputerowym

Przerwanie jest reakcją na asynchroniczne zdarzenie, polegającą na automatycznym zapamiętaniu bieżącego stanu procesora w celu późniejszego odtworzenia oraz przekazaniu sterowania do ustalonej procedury obsługi przerwania.

Podział przerwań ze względu na źródło:

*przerwania zewnętrzne — od urządzeń zewnętrznych

*przerwania programowe -wykonanie specjalnej instrukcji

*przerwania diagnostyczne -pułapki, błędy programowe i sprzętowe

Zarządzanie procesami

Koncepcja procesu

Proces jest elementarną jednostką pracy (aktywności) zarządzaną przez system operacyjny, która może ubiegać się o zasoby systemu komputerowego. System wykonuje programy użytkowników pod postacią procesów. Proces = wykonujący się program. W większości systemów operacyjnych wszystkie informacje o każdym procesie są przechowywane w tablicy procesów. Ogólnie: proces składa się z przestrzeni adresowej i z zapisów w tablicy procesów (przede wszystkim są to zawartości rejestrów procesora).

Zasoby potrzebne do wykonania procesu:

*czas procesora

*pamięć operacyjna

-pliki

*urządzenia wejścia-wyjścia

Proces wykonuje kod programu użytkownika (proces użytkownika) lub kod systemowy (proces systemowy)

Elementy składowe procesu:

*program-definiuje zachowanie procesu,

*dane -zbiór wartości przetwarzanych oraz wyniki,

*zbiór zasobów tworzących środowisko wykonawcze,

*blok kontrolny procesu (PCB, deskryptor)

Każdy proces reprezentowany jest w systemie operacyjnym przez specjalną strukturę danych, określaną zwykle jako blok kontrolny procesu. Struktura ta przechowuje atrybuty procesu takie, jak:

Blok kontrolny procesu:

*Stan procesu (nowy, gotowy, aktywny, oczekujący, itd.)

*Licznik rozkazów — adres następnego rozkazu

*Rejestry procesora (akumulatory, rejestry indeksowe, wskaźniki stosu, rejestry ogólnego przeznaczenia, rejestry flagowe, rejestry warunków)

*Informacje na potrzeby planowaniu przydziału procesora (priorytet, wskaźniki do kolejek porządkujących itp.)

*Informacje o zarządzaniu pamięcią (elementy tablic stron i segmentów, zawartości rejestrów granicznych)

*Informacje o stanie wejścia-wyjścia

*Informacje do rozliczeń

Stany procesu

*Nowy — proces został utworzony

*Wykonywany — wykonywane są instrukcje programu

*Zawieszony (oczekujący) -proces oczekuje na jakieś zdarzenie, np. na zakończenie operacji wejścia-wyjścia, na przydział dodatkowego zasobu, synchronizuje się z innymi procesami

*Gotowy — proces czeka na przydział procesora

*Zakończony — proces zakończył działanie i zwalnia zasoby

Wątek to sekwencyjny przepływ sterowania w programie. Jeden program może być wykonywany jednocześnie przez jeden lub więcej wątków przy czym rzeczywista współbieżność jest ograniczona przez liczbę procesorów. Grupa współpracujących wątków korzysta z tej samej przestrzeni adresowej i zasobów systemu operacyjnego. Wątki dzielą dostęp do wszystkich danych z wyjątkiem licznika rozkazów, rejestrów procesora i stosu. Dzięki temu tworzenie i przełączanie wątków odbywa się znacznie szybciej niż tworzenie i przełączanie kontekstu procesów tradycyjnych.

Istnieją trzy modele implementacji wątków:

1)wątki poziomu użytkownika,

2)wątki poziomu jądra, 3)wątki mieszane, tworzące dwupoziomowy system wątków.

Wątki użytkownika realizowane są przez funkcje biblioteczne w ramach procesu i nie są widoczne dla jądra. Jądro systemu obsługuje tylko tradycyjne procesy. Przełączanie kontekstu między wątkami powinno być zrealizowane w procesie.

Wątki jądra, zwane również procesami lekkimi, realizowane są przez jądro systemu. Jądro zajmuje się planowaniem wątków i przełączaniem kontekstu podobnie jak dla procesów tradycyjnych.

Wątki mieszane łączą cechy obydwu realizacji. Jądro zarządza wątkami jądra, które zawierają w sobie wątki użytkownika.

Planowanie przydziału procesora nazywane jest również planowaniem krótkoterminowym lub szeregowaniem procesów. Istotą planowania krótkoterminowego jest sterowanie dostępem do procesora procesów gotowych do wykonania.

Kryteria planowania czasu użycia procesora:

*wykorzystanie procesora, *przepustowość systemu, *średni czas cyklu przetwarzania procesów, *średni czas oczekiwania procesów,

*średni czas odpowiedzi procesów,

*wariancja czasu odpowiedzi procesów.

Algorytmy planowania przydziału procesora:

*metoda FCFS (FIFO) - wybierany jest proces, który przyszedł jako pierwszy - duży rozrzut czasu oczekiwania

*metoda SJF (SJN) - najkrótszy proces wskakuje na początek kolejki - daje minimalny średni czas oczekiwania.

*priorytetowe - wykonywany jest proces o najwyższym priorytecie

*rotacyjne - procesy są wykonywane "po kawałku" na zmianę. Po upływie ustalonego kwant czasu proces jest wywłaszczany i trafia na koniec kolejki procesów gotowych (chyba że wcześniej zażąda operacji wejścia-wyjścia). Preferencja dla zadań krótkich (wydłuża się czas oczekiwania i czas cyklu przetwarzania dla zadań długich). Przełączanie kontekstu pochłania pewien czas!!!

*wielopoziomowe planowanie kolejek - istnieje kilka kolejek (np.: dla procesów o różnych priorytetach) Istnieje możliwość przydziału różnych priorytetów oraz różnych algorytmów szeregowania do poszczególnych kolejek

*wielopoziomowe planowanie kolejek ze sprzężeniem zwrotnym. W metodzie tej proces który nie wykona się w kwancie czasu danej kolejki jest przenoszony do kolejki o niższym priorytecie (lub odwrotnie z niższego do wyższego poziomu kolejki priorttetów).

Większość z opisanych powyżej algorytmów może być zrealizowana w wersji wywłaszczającej lub nie wywłaszczającej. Wywłaszczanie procesów polega na przerywaniu wykonywania bieżącego procesu w celu dokonania ponownego wyboru procesu do wykonania. Jedynie algorytm FCFS nie może być wywłaszczający. Z kolei algorytm rotacyjny zakłada przymusowe wywłaszczenie procesu po upłynięciu przydzielonego kwantu czasu procesora.

Synchronizacja procesów:

Celem synchronizacji jest ograniczenie swobody przeplotu tak, żeby dopuszczalne stały się tylko przeploty zgodne z intencją programisty. Synchronizacja na najniższym poziomie polega na wykonaniu określonych (często specjalnych) instrukcji, które powodują blokowanie wykonywania odpowiednich instrukcji synchronizujących w innych strumieniach (wątkach). Synchronizacja na wyższym poziomie polega na przygotowaniu specjalnych konstrukcji programotwórczych, które gwarantują zachowanie określonych własności w przeplocie instrukcji, zgodnie z intencją programisty.

Zarządzanie zasobami pamięci

Celem zarządzania pamięcią operacyjną jest:

przydział pamięci fizycznej poszczególnym procesom,

odwzorowanie logicznej przestrzeni adresowej procesu na fizyczną przestrzeń adresową pamięci,ochrona zawartości pamięci,

współdzielenie obszarów pamięci przez różne procesy.                

Strategie zarządzania pamięcią

Przydział ciągły pojedynczego obszaru,                        

przydział ciągły wielu obszarów,                        

stronicowanie, 

segmentacja,                   segmentacja stronicowana.                

Adresowanie fizyczne i logiczne:

Adres wytworzony przez procesor w wyniku wykonania rozkazu programu nosi nazwę adresu logicznego. Zbiór wszystkich adresów logicznych generowanych przez program tworzy logiczną przestrzeń adresową procesu. Adres fizyczny wskazuje konkretną komórkę pamięci operacyjnej. Zbiór wszystkich adresów fizycznych tworzy fizyczną przestrzeń adresową.

Wymiana procesów polega na okresowym przesłaniu procesu z pamięci operacyjnej do pamięci pomocniczej, aby umożliwić sprowadzenie innego procesu z pamięci pomocniczej do zwolnionego obszaru pamięci operacyjnej. W systemach z podziałem pamięci wymiana umożliwia wykonywanie większej liczby procesów niż może pomieścić pamięć operacyjna. Powoduje to zwiększenie stopnia wieloprogramowości, co zwykle poprawia efektywność systemu. W systemach bez podziału pamięci wymiana procesów stwarza jedyną możliwość uzyskania wieloprogramowości.

Przydział ciągły pojedynczego obszaru:

W pamięci fizycznej wyodrębniony jest obszar dla systemu operacyjnego i obszar dla procesów użytkownika.                       Rozmiar obszaru systemu może ulagać zmianom, więc proces przechowuje adres bazowy obszaruużytkownika.             Adres logiczny jest przekształcany na fizyczny przez dodanie adresu bazowego obszaru użytkownika.                                                

Przydział ciągły wielu obszarów:

Pamięć fizyczna dzielona jest dynamicznie na obszary o zmiennym rozmiarze, przydzielane kolejnym procesom.                         Jeden obszar zajmowany jest przez system operacyjny.                                                          

Pomiędzy przydzielonymi obszarami pozostają obszary wolne, zwane dziurami.                              Każdy nowy proces dostaje tylko jeden ciągły obszar pamięci o odpowiednim rozmiarze, wybrany przez system spośród dostępnych dziur.                                     Proces przechowuje adres bazowy i granicę przydzielonego obszaru.                                Adres logiczny określa położenie wewnątrz przydzielonego obszaru. Jest porównywany z granicą obszaru w celu sprawdzenia poprawności, a następnie dodawany do adresu bazowego obszaru.                                Stronicowanie

Pamięć fizyczna podzielona jest na obszary o stałym rozmiarze, zwane ramkami.                             Pamięć logiczna podzielona jest na obszary o stałym rozmiarze, zwane stronami.                                Przed wykonaniem wszystkie strony procesu muszą być umieszczone w dowolnych ramkach, które mogą tworzyć nieciągły obszar pamięci.                                 Proces przechowuje tablicę stron zawierającą adresy przydzielonych ramek.                                    Adres logiczny składa się z numeru strony i odległości na stronie. Numer strony jest indeksem pozycji w tablicy stron, która zawiera adres bazowy ramki przechowującej daną stronę procesu.                                                  

Segmentacja:

Pamięć fizyczna podzielona jest na obszary o zmiennym rozmiarze, odpowiadające segmentom logicznym procesów.                               Pamięć logiczna podzielona jest na obszary o zmiennym rozmiarze i określonej nazwie lub numerze.                                Przed wykonaniem wszystkie segmenty procesu muszą być sprowadzone i rozmieszczone w pamięci operacyjnej, przy czym mogą tworzyć nieciągły obszar pamięci.                               Proces przechowuje tablicę segmentów zawierającą adresy bazowe i granice przydzielonych segmentów.                         Adres logiczny składa się z numeru segmentu i odległości w segmencie. Numer segmentu jest indeksem pozycji w tablicy segmentów.                                                  

Segmentacja stronicowana:

Pamięć fizyczna podzielona jest na ramki.                                   Pamięć logiczna podzielona jest na segmenty.                           Segmenty logiczne podlegają stronicowaniu.                      Tablica segmentów procesu zawiera adresy bazowe tablic stron poszczególnych segmentów.                          Pamięć wirtualna umożliwia wykonywanie programów, które nie znajdują się w całości w pamięci operacyjnej. Udostępnia procesom dużą ciągłą przestrzeń adresową nieograniczoną rozmiarem fizycznej pamięci operacyjnej. Separuje w ten sposób pamięć logiczną procesu od pamięci fizycznej. System operacyjny zajmuje się odwzorowaniem pamięci wirtualnej używanej przez procesy, częściowo na pamięć operacyjną a częściowo na pamięć pomocniczą. Ponieważ procesy nie muszą znajdować się w całości w pamięci operacyjnej, każdy z nich zajmuje mniejszy obszar tej pamięci. Dzięki temu w pamięci można umieścić więcej procesów, zwiększając stopień wieloprogramowości. Zmniejsza się liczba operacji wejścia-wyjścia związanych z ładowaniem lub wymianą procesów. W efekcie wzrasta przepustowość systemu.

Zalety pamięci wirtualnej:

jednocześnie może być wykonywanych wiele programów

możliwe jest wykonywanie programów większych niż dostępna pamięć fizyczna

procesy mogą wykonywać programy, których kod jest ładowany do pamięci tylko częściowo

każdy proces może uzyskać dostęp do części dostępnej pamięci fizycznej

procesy mogą współdzielić w pamięci pojedynczy obraz biblioteki, programu

programy są relokowalne

można tworzyć kod niezależny od urządzenia

Pojęcie pliku

Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Jest podstawową jednostką logiczną magazynowania informacji w systemie komputerowym, widoczną dla użytkownika. Plik jest nazwanym zbiorem powiązanych ze sobą informacji, zapisanym w pamięci pomocniczej (najczęściej nieulotnej, czyli trwałej). Zadaniem systemu operacyjnego w odniesieniu do plików jest zapewnienie odwzorowania pomiędzy abstrakcyjnym obrazem pliku a urządzeniami fizycznymi.

Atrybuty pliku

Nazwa — ciąg znaków służących użytkownikowi do identyfikacji pliku

Typ — informacja służąca do rozróżnienie typów plików

Lokalizacja — informacja służąca do odnalezienia pliku w systemie komputerowym (urządzenie i położenie pliku w tym urządzeniu)

Rozmiar — bieżący rozmiar pliku w ustalonych jednostkach (bajtach, słowach, blokach itp.)

Ochrona — informacje umożliwiające kontrolę dostępu

Czasy dostępów — daty i czasy wykonywania pewnych operacji na pliku, typu odczyt, modyfikacja, utworzenie.

Typy plików

Typ pliku określa rodzaj informacji przechowywanej w pliku i tym samym sposób interpretacji jego zawartości,

np. program binarny, wynik kompilacji, kod źródłowy, makrodefinicja (plik wsadowy, skrypt powłoki itp.), tekst, biblioteka programisty, grafika, dane aplikacji. Informacja o typie pliku może być przechowywana w strukturach wewnętrznych systemu plików, w zawartości samego pliku, w katalogach lub w nazwie pliku. Typ pliku może być rozpoznawany przez system operacyjny, ale może to być również tylko informacja interpretowana przez użytkownika lub aplikację.

Metody dostępu do plików:

Metody dostępu do plików określają sposób wykonywania operacji na plikach w celu udostępnienia znajdującej się w nich informacji. Wyróżnia się następujące metody dostępu:

dostęp sekwencyjny — informacje w pliku przetwarzane są rekord po rekordzie, tzn. po wykonaniu operacji na określonym rekordzie system przygotowuje się do wykonania operacji na kolejnym rekordzie w pliku,

dostęp bezpośredni — lokalizacja rekordu do przetwarzania podawana jest jako parametr odpowiedniej operacji,

dostęp indeksowy — rekord, na którym ma być wykonana operacja identyfikowany jest przez klucz, odwzorowywany na konkretny rekord w pliku stowarzyszonym poprzez plik indeksowy.

Struktura logiczna katalogów:

Struktura jednopoziomowa — wpisy katalogowe poszczególnych plików znajdują się w tym samym katalogu (na tym samym poziomie).

Struktura dwupoziomowa — wpisy katalogowe plików znajdują się w różnych katalogach, ale katalogi nie mogą

zawierać innych katalogów.

Struktura drzewiasta — w katalogach można tworzyć podkatalogi (z dowolnym poziomem zagnieżdżenia) oraz pliki

Graf acykliczny — podkatalog (lub plik) może być umieszczony w wielu katalogach.

Graf ogólny — dopuszcza się cykl w powiązaniach pomiędzy katalogami

Strategie dopasowania bloków pamięci:

Pierwsze dopasowanie — przydziela się pierwszy wolny obszar (tzw. dziurę) o wystarczającej wielkości. Poszukiwanie kończy się po znalezieniu takiego obszaru.

Najlepsze dopasowanie — przydziela się najmniejszy dostatecznie duży wolny obszar pamięci. Konieczne jest przeszukanie wszystkich dziur.

Następne dopasowanie — podobnie jak pierwsze dopasowanie, ale poszukiwania rozpoczyna się do miejsca ostatniego przydziału.

Najgorsze dopasowanie — przydziela się największy wolny obszar pamięci. Konieczne jest przeszukanie wszystkich dziur.

Średni rozmiar procesu

Działanie układu DMA

Układ DMA ma „kompetencje” procesora w zakresie dostępu do pamięci, w związku z czym może rywalizować z procesorem o dostęp do magistrali systemowej w celu przejęcia sterowania systemem komputerowym. Procesor zleca układowi DMA transmisję danych przekazując następujące dane:

rodzaj operacji (zapis lub odczyt bloku w pamięci),

adres urządzenia wejścia-wyjścia

początkowy adres bloku w pamięci do zapisu/odczytu

rozmiar zapisywanego lub odczytywanego bloku w bajtach lub słowach

W celu realizacji zlecenia układ DMA przejmuje kontrolę nad magistralą, gdy nie jest ona potrzebna procesorowi lub „wykrada” cykl magistrali procesorowi, realizuje przesłanie słowa. Fakt zakończenia transmisji układ DMA sygnalizuje procesorowi zgłaszając przerwanie.

Fragmentacja pamięci

Fragmentacja zewnętrzna — podział obszaru pamięci na rozłączne fragmenty, które nie stanowią ciągłości w przestrzeni adresowej (może to dotyczyć zarówno obszaru wolnego, jak i zajętego)

Fragmentacja wewnętrzna — pozostawienie niewykorzystywanego fragmentu przestrzeni adresowej wewnątrz przydzielonego obszaru (formalnie fragment jest zajęty, w rzeczywistości nie jest wykorzystany) Przydział dokładnie tylu bajtów, ile wynosi zapotrzebowanie, powoduje, że koszt utrzymania bardzo małego obszaru wolnego jest niewspółmiernie duży, np. dane o obszarze zajmują więcej bajtów, niż rozmiar tego obszaru. Dlatego wolny obszar przydzielany jest w całości, ale nie jest w pełni wykorzystany.

Ochrona systemu plików

Cele ochrony -zapobieganie (złośliwym lub przypadkowym) naruszeniom ograniczeń dostępu

wymuszenie przestrzegania polityki ochrony przez procesy wczesne wykrycie błędów w dostępie do

zasobów Polityka ochrony jest zbiorem reguł dostępu do zasobów. Mechanizm ochrony jest zbiorem

dostępnych środków do wymuszania polityki ochrony Polityka może wynikać z: projektu systemu (ustalona jest na etapie projektowania systemu), wytycznych kierownictwa (ustalana jest na

etapie instalacji lub eksploatacji systemu), decyzji indywidualnych użytkowników (podjętych w trakcie eksploatacji systemu). Mechanizm ochrony powinien być na tyle uniwersalny, żeby dało się go dostosować do zmian w polityce ochrony. W skrajnym przypadku każda zmiany polityki mogłaby wymagać zmiany mechanizmu.

Podstawowe pojęcia modelu systemu ochrony

Proces — jednostka aktywna, ubiegająca się o dostęp do zasobu w celu wykonania operacji

Obiekt — jednostka zasobu dostępna poprzez ściśle zdefiniowany zbiór operacji

Prawo dostępu — możliwość wykonania określonej operacji na obiekcie

Domena ochrony — zbiór obiektów wraz ze zbiorem praw dostępu (zbiorem operacji, które

można na tych obiektach wykonać, dla których jest prawo wykonania)

3



Wyszukiwarka

Podobne podstrony:
Akumpresura, AKUPRESURA, AKUPRESURA /masaż punktowy/ polega na udrażnianiu kanałów energetycznych po
EFT polega na opukiwaniu wybranych punktów znajdujących się na meridianach
Referaty, EKSPERYMENT LABORATORYJNY P, Eksperyment laboratoryjny polega na tym, że badanie odbywa si
juszczyszyn,systemy operacyjne, pytania na kolokwia
badania operacyjne, Kamil Wietrzyński, Laboratorium polegało na rowiązaniu 2 zadań dwoma poznanymi m
Systemy operacyjne zagadnienia na egzamin
W-adza, Władza- to system stosunków społecznych, zachodzących pomiędzy określonymi podmiotami, poleg
sprawozdanie1, Cyfrowa obróbka sygnału polega na wykonywaniu operacji matematycznych na kolejnych pr
Ekologia Jako Nauka Stosowana - Ściąga, Monokultura- to system rolniczy lub leśny polegający na wiel
ekonomia punktowa, ekonomia punktowa - system stosowany w resocjalizacji, polega na przydzielaniu pu
operacyjna - co na egzamin, GINEKOLOGIA I POŁOŻNICTWO, TESTY
Systemy dialogowe pytania na zaliczenie2010 OPRACOWANE
BADANIA OPERACYJNE PYT NA EXAM
ogrody, SYSTEM WLASNOSCI ZIEMSKIEJ NA TROBRIANDACH, SYSTEM WŁASNOŚCI ZIEMSKIEJ NA TROBRIANDACH
Zarz dzanie personelem, Zarządzanie zasobami ludzkimi - to uporządkowany i systematyczny zespół oddz
Współczesne systemy polityczne w Polsce i na świecie 10

więcej podobnych podstron