Advertisement
Guest User

Untitled

a guest
May 28th, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.66 KB | None | 0 0
  1. Koło 1:
  2. 1. Program wykonuje się w postaci procesu - Program rozumiemy tu jako plik wykonywalny, a więc taki, który system potrafi uruchomić, np. w reakcji na działanie użytkownika. Działaniem tym może być np. wypisanie nazwy tego pliku w linii komend shella (interpretera komend) lub (w środowisku okienkowym) kliknięcie na ikonę powiązaną z danym programem.
  3.  
  4. Procesem z kolei jest instancja działającego programu, która powstała w wyniku jego uruchomienia. W danej chwili może istnieć i działać wiele różnych procesów, będących wynikiem uruchomienia tak tego samego, jak i różnych programów, przez wielu różnych użytkowników. Dlatego m. in. należy rozróżniać pomiędzy procesem a programem. Każdy proces posiada przydzielony przez system, jednoznaczny (w danej chwili czasu) numeryczny identyfikator (PID) i wykonuje się w zasadzie niezależnie od innych procesów, działających na tym samym komputerze; może się jednak z nimi komunikować, za pośrednictwem całego szeregu mechanizmów komunikacji międzyprocesowej zapewnionych przez system operacyjny.
  5. 2. Mechanizm kolejkowania procesów- Stan procesu w dużym stopniu zależy od dostępności zasobów systemu. W zależności od tego, jakie zasoby są dostępne, proces jest albo wykonywany, albo na coś czeka (w stanach NOWY, GOTOWY, OCZEKUJĄCY). W czasie oczekiwania proces trafia do kolejki procesów oczekujących na dany zasób, a często opuszczając jedną kolejkę, trafia do innej, np. opuszczając kolejkę do urządzenia, trafia do kolejki procesów gotowych. Kolejkowanie procesów polega na umieszczeniu ich na określonej liście. Jak już wspomniano, do budowy list procesów wykorzystywane są specjalne pola w tablicy procesów, w których dla każdego procesu na liście pamiętany jest identyfikator następnego procesu i/lub poprzedniego procesu. W tym kontekście, określenie kolejka zadań może się okazać niezręczne — jest to raczej zbiór zadań lub tablica zadań.
  6. 3. Proces czekający- Proces czekający może przejść jedynie do stanu gotowy. Dzieje się tak, gdy nastąpi oczekiwane przezeń zdarzenie, np. ukończenie operacji wejścia-wyjścia.
  7. Obsługa żądania wejścia/wyjścia zajmuje pewien czas. Proces zlecający może w tym czasie coś robić. Istnieją trzy opcje określające, jak może zachować się zlecający proces:
  8. Blokujące wejście/wyjście
  9. Proces czeka uśpiony na zakończenie operacji wejścia/wyjścia. Ta najprostsza opcja nie jest jednak wystarczająca do wszystkich celów, ponieważ w czasie oczekiwania proces może chcieć robić coś sensownego (np. czekając na aktywność użytkownika w wolnej chwili odśmiecić swoją pamięć).
  10. Nieblokujące wejście/wyjście
  11. Proces nie usypia ale otrzymuje od ręki tak dużo wyników, jak tylko jest to możliwe. Nieblokujący odczyt z klawiatury mógłby polegać na przykład na odczycie tego, co już jest w buforze klawiatury, ale nie obejmowałby już czekania na działania użytkownika. Nieblokujące wejście/wyjście ma sens w wypadku wolnych urządzeń (interfejs użytkownika).
  12. Asynchroniczne wejście/wyjście
  13. Proces zleca operacje wejścia/wyjścia i zajmuje się czymś innym. Gdy operacja wejścia/wyjścia jest zakończona, proces jest o tym informowany za pomocą jakiegoś sygnału.
  14. 4. Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy przetwarzany jest następnie przez kompilator do tak zwanego programu wykonywalnego. edytor kompilator Biblioteki program lączący kod źródlowy plik obiektowy plik wykonywalny opcje kompilatora program ladujący kopiowanie pamięć operacyjna Wytworzenie programu Wykonanie programu System operacyjny inne pliki obiektowe proces Rys. 0-1 Przebieg procesu wytworzenia i wykonania programu Przetworzenie kodu źródłowego w wykonywany proces odbywa się kilku etapach. Najważniejsze z nich to: • kompilacja, • łączenie • ładowanie programu. Celem kompilacji jest transformacja kodu źródłowego będącego zapisem algorytmu w języku wysokiego poziomu (który nie może być wykonany przez procesor) na kod maszynowy danego procesora. Kompilacja przebiega w kilku etapach i prowadzi ona do wytworzenia tak zwanego pliku obiektowego.
  15. Na etapie kompilacji nie sposób określić pod jaki adres w pamięci należy załadować utworzony program, gdyż kompilator nie posiada informacji o stanie pamięci procesora w chwili wykonania programu. Stąd pliki obiektowe i wykonywalne zawierają tak zwaną tablicę relokacji (ang. relocation table). Tablica symboli składa się z pozycji, z których każda zawiera wskaźnik do adresu w kodzie obiektowym, który musi być zmodyfikowany w procesie ładowania programu do pamięci operacyjnej.
  16.  
  17. Zadanie 1.
  18. d)
  19. Zadanie 2.
  20. b) ale należy użyć jeszcze argumentu –l
  21. Zadanie 3.
  22. a)
  23. Zadanie 4.
  24. pwd> ./opis.txt
  25. ps >>./opis.txt
  26. Zadanie 5.
  27. c)
  28. Zadanie 6.
  29. d)
  30. Zadanie 7.
  31. d)
  32.  
  33. Zadanie 8.
  34. c)
  35. Zadanie 9.
  36. d)
  37. Zadanie 10.
  38. a)
  39.  
  40. Skrypty :
  41.  
  42. Pierwszy-
  43.  
  44. #!/bin/bash
  45. echo "Podaj nazwe katalogu: "
  46. read
  47. find $REPLY -mtime 2 > ~/pliki.txt
  48. grep ^$REPLY[k-p] ~/pliki.txt | wc –l
  49.  
  50. Drugi-
  51.  
  52. #!/bin/bash
  53.  
  54. if [ $# -lt 2 ]; then
  55. echo “podales za malo parametrow”
  56. exit
  57. fi
  58.  
  59. case $1 in
  60. a) ps |wc –l
  61. exit;;
  62. b) touch $2
  63. chmod 764 $2
  64. ls ./ > $2
  65. exit;;
  66. c) find * -name ‘ko???*’;;
  67. *) echo “uzyles zlych nazw parametrow”
  68. exit;;
  69. esac
  70.  
  71. Kolo 2:
  72. 1. Proszę wyjasnic Mechanizm zarzadzania wykonaniem procesow. Co oznacza w tym kontekście pojecie mechanizm wywłaszczeniowy.
  73.  
  74. Tworzenie procesów
  75. • Użytkownik za pomocą powłoki systemowej (ang. system shell) zleca uruchomienie programu, proces wywołujący wykonuje polecenie fork lub jego pochodną.
  76. • System operacyjny tworzy przestrzeń adresową dla procesu oraz strukturę opisującą nowy proces w następujący sposób:
  77. • wypełnia strukturę opisującą proces,
  78. • kopiuje do przestrzeni adresowej procesu dane i kod, zawarte w pliku wykonywalnym,
  79. • mapuje współdzielone zasoby systemowe w przestrzeń adresową procesu,
  80. • ustawia stan procesu na działający,
  81. • dołącza nowy proces do kolejki procesów oczekujących na procesor (ustala jego priorytet),
  82. • zwraca sterowanie powłoce systemowej.
  83. Wykonywanie procesów
  84. Dany proces rozpoczyna wykonywanie w momencie przełączenia przez jądro systemu operacyjnego przestrzeni adresowej na przestrzeń adresową danego procesu oraz takie zaprogramowanie procesora, by wykonywał kod procesu. Wykonujący się proces może żądać pewnych zasobów, np. większej ilości pamięci. Zlecenia takie są na bieżąco realizowane przez system operacyjny.
  85. Wykonanie procesu musi przebiegać sekwencyjnie. Może przyjmować kilka stanów:
  86. • aktualnie wykonywany przez procesor,
  87. • czekający na udostępnienie przez system operacyjny zasobów,
  88. • uśpiony,
  89. • przeznaczony do zniszczenia,
  90. • proces zombie,
  91. • właśnie tworzony itd.
  92. Mechanizm wywłaszczeniowy - technika używana w środowiskach wielozadaniowych, w której algorytm szeregujący (scheduler) może wstrzymać aktualnie wykonywane zadanie (np. proces lub wątek), aby umożliwić działanie innemu. Dzięki temu rozwiązaniu zawieszenie jednego procesu nie powoduje blokady całego systemu operacyjnego. W systemach bez wywłaszczenia, zadania jawnie informują scheduler, w którym momencie chcą umożliwić przejście do innych zadań. Jeżeli nie zrobią tego w odpowiednim czasie, system zaczyna działać bardzo wolno. Oprócz tego wywłaszczanie umożliwia szczegółowe określanie czasu, w jakim dany proces może korzystać z procesora. Wywłaszczanie w niektórych systemach operacyjnych może dotyczyć nie tylko programów, ale także samego jądra – przykładem takiego systemu jest Linux.
  93.  
  94. 2. Proszę wyjanic pojecie proces potomny – proces pochodzący (utworzony) bezpośrednio od innego procesu w wyniku wykonania wywołania systemowego fork. Proces potomny może, lecz nie musi dziedziczyć środowisko swojego przodka.
  95.  
  96. 3. Proszę wyjasnic pojecie stan procesu, co to jest stan zombie –
  97.  
  98. Stany procesu (angielskie process states), proces wykonywany pod nadzorem systemu operacyjnego przebywa w jednym z następujących stanów:
  99. a) nowy (new) – w tym stanie proces znajduje się zaraz po utworzeniu;
  100. b) wykonywanie (running, executing) – proces ma przydzielony procesor, który wykonuje jego instrukcje;
  101. c) oczekiwanie (waiting) – proces oczekuje na zdarzenie (np. na zakończenie operacji wejścia-wyjścia);
  102. d) gotowość (ready) – proces oczekuje na przydział procesora w kolejce procesów gotowych do wykonywania;
  103. e) zakończony (terminated) – proces zakończył działanie, lecz wciąż pozostaje w systemie (np. nie przekazał wyników).
  104. Dodatkowo wyróżnia się jeszcze stan blokady, w którym jednak muszą jednocześnie uczestniczyć co najmniej dwa procesy. Naprzemienne występowanie po sobie stanów wykonywania i oczekiwania jest typowe w przebiegu procesu.
  105.  
  106. Proces zombie – wpis w tablicy procesów opisujący program, którego wykonanie w systemie operacyjnym zostało zakończone, ale którego zamknięcie nie zostało jeszcze obsłużone przez proces rodzica. Termin ten odnosi się zazwyczaj do systemów z rodziny Unix, gdzie pozostawienie wpisu zombie tymczasowo zajmującego pozycję w tablicy procesów zapobiega ponownemu wykorzystaniu danego PID-a i możliwym na skutek tego pomyłkom programistycznym. Wpis zombie znika po odpowiednim wywołaniu funkcji wait(), waitpid() lub analogicznej przez proces macierzysty.
  107. Chociaż wpisy zombie nie obciążają znacząco komputera, nieprawidłowo napisany program, który nie obsługuje zakończenia pracy potomków, może doprowadzić do destabilizacji pracy systemu. Dzieje się tak gdy cała tablica procesów, zwykle posiadająca z góry ograniczony rozmiar, zostanie zajęta przez wpisy zombie.
  108.  
  109.  
  110. 4. Proszę wyjasnic role procesora, pamięci operacyjnej i obszaru wyladowan w wykonaniu procesu.
  111. W celu wykonania programu system operacyjny przydziela procesowi zasoby (pamięć, czas procesora i inne – szczegółowa lista zasobów znajduje się dalej), ale także może być konieczne współbieżne wykonywanie pewnych fragmentów programu. Aby to zrealizować, program może zażądać utworzenia określonej liczby wątków, wykonujących wskazane części programu – o ich współbieżne wykonanie dba system operacyjny (albo sam program, wówczas mówi się o zielonych wątkach). Wątki współdzielą prawie wszystkie zasoby zarezerwowane dla danego procesu, wyjątkiem jest czas procesora, który jest przydzielany indywidualnie każdemu wątkowi.
  112. Za zarządzanie procesami odpowiada jądro systemu operacyjnego, sposób ich obsługi jest różny dla różnych systemów operacyjnych. W systemie operacyjnym każdy proces posiada proces nadrzędny, z kolei każdy proces może, poprzez wywołanie funkcji systemu operacyjnego, utworzyć swoje procesy potomne; w ten sposób tworzy się swego rodzaju drzewo procesów. Każdy proces otrzymuje od systemu operacyjnego odrębne zasoby, w tym odrębną przestrzeń adresową, listę otwartych plików, urządzeń itp.
  113.  
  114. 1. B)
  115. 2. D)
  116. 3. A)
  117. 4. C)
  118. 5. B)
  119. 6. D)
  120. 7. D)
  121. 8. D)
  122. 9. D)
  123. 10. A)
  124. Skrypt 1:
  125. #!/bin/bash
  126. if [ $# - lt 2 ]; then
  127. echo ‘’podales za mało parametrow”
  128. fi
  129.  
  130. case $1 in
  131. 1) ps
  132. exit;;
  133. 2) mkdir $2
  134. chmod 644 $2
  135. exit;;
  136. 3) touch $2
  137. find . –maxdepth 1 –type d > $2
  138. find . –maxdepth 1 –type d | wc -l >> $2
  139. exit;;
  140. *) echo “Podales niepoprawny parametr”;;
  141. esac
  142. Skrypt 2:
  143. #!/bin/bash
  144. touch $1
  145. touch $2
  146. touch $3
  147. find / -maxdepth 1 –type d | wc –l > $1
  148. find /dev –type c > $2
  149. ps > $3
  150. grep ‘^/dev/tt*’ ./$2
  151. grep ‘^/dev/tt*’ ./$2 | wc –l
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement