Advertisement
Guest User

Untitled

a guest
May 28th, 2015
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement