Pytania do lewandowskiego na wyklad-2, pwr, EIT


1.s=3, jakie będzie s po wait() i czy zablokuje się?

S=2

nie blokuje się bo większe od 0

Semafor S jest zmienną całkowitą która oprócz nadawania wartości początkowej jest dostępna tylko za pomocą dwu standardowych niepodzielnych operacji wait() i signal()

wait() while S<=0 do "nic"

S:=S-1

2.s=3, jakie będzie s po signal() i czy zablokuje się?

S=4

nie blokuje się, bo po prostu się nie blokuje i już :)

signal(S) S:=S+1 j.w.

3.Kolejkowanie - wyliczanie średniego czasu oczekiwania dla:

-RR algorytm: Każdy proces otrzymuje małą jednostkę czasu procesora (kwant czasu). Po upływie tego czasu proces jest wywłaszczany i dodawany na koniec kolejki procesów gotowych. Jeżeli w kolejce gotowych jest n procesów, a kwant czasu wynosi q, wówczas każdy proces otrzymuje 1/n część czasu procesora podzieloną na odcinki o długości nie większej niż q. żaden proces nie czeka dłużej niż (n-1)q.

-SJF  algorytm: szukamy najkrótszych i dodajemy kolejno dzieląc sumę przez ilość procesów - kolejność uwarunkowana długością pojedynczego procesu

-FCFS algorytm: ( P1 + P2 + PN )/N - dodajemy w kolejności od P1 do PN

4.PCB  wyjaśnić
Blok kontrolny procesu (Process Control Block (PCB)

Zawiera informacje związane z danym procesem

• Stan procesu

• Licznik rozkazów

• Rejestry CPU

• Informacje o planowaniu przydziału CPU

• Informacja o zarządzaniu pamięcią

• Informacje do rozliczeń

• Informacje o stanie we/wy


5. Wywłaszczanie jest gdy:

• Decyzje o przydziale procesora mogą zapadać, gdy proces:

   1. Przechodzi ze stanu aktywności do stanu oczekiwania

   2. Przechodzi ze stanu aktywności do stanu gotowości

   3. Przechodzi ze stanu oczekiwania do stanu gotowości

   4. Kończy działanie


• Planowanie w sytuacjach 1 i 4 jest niewywłaszczające (nonpreemptive)

• W pozostałych sytuacjach planowanie jest wywłaszczające (preemptive)

6.Planowanie (planista) krótkoterminowe - wyjaśnić.

planista dodaje nowy dla procesu procesor, tylko jeden proces

Planiści (programy szeregujące)


• Planista długoterminowy (Long-term scheduler) (lub planista zadań (job

  scheduler)) - wybiera, które procesy powinny być umieszczone w kolejce

  procesów gotowych

• Planista krótkoterminowy (Short-term scheduler) (lub planista procesora

  (CPU scheduler)) - wybiera, który proces powinien być wykonany jako

  następny i przydziela mu procesor

• Planista krótkoterminowy jest uaktywniany b. często (milisekundy) ⇒ (musi

  być szybki)

• Planista długoterminowy jest uaktywniany uaktywniany bardzo rzadko

  (sekundy, minuty) ⇒ (moŜe być wolny)

• Planista długoterminowy nadzoruje stopień wieloprogramowości

• Procesy mogą być opisane jako naleŜące do jednej z dwóch grup:

   - Proces ograniczony przez we/wy - spędza większość czasu na

      wykonywaniu operacji we/wy, mniej zajmując się obliczeniami

   - Proces ograniczony przez procesor - spędza większość czasu na

      obliczeniach (rzadziej zamawia operację we/wy)



7.Fragmentacja zewnętrzna/wewnętrzna.

- Fragmentacja zewnętrzna (External Fragmentation) - całkowita wielkość

wolnej pamięci jest wystarczająca do realizacji żądania przydziału, ale nie

jest ona ciągła

- Fragmentacja wewnętrzna (Internal Fragmentation) - przydzielona

pamięć może być nieco większa od żądanej; różnica między tymi

wielkościami jest bezużytecznym kawałkiem pamięci wewnątrz

przydzielonego obszaru

8.Do czego mają dostęp różne wątki w procesie:

mają tylko do kodu (? na pewno ?)

Wątek w spół-użytkuje wraz z innymi równorzędnymi wątkami sekcję kodu, sekcję danych oraz takie zasoby systemu jak otwarte pliki i sygnały.

9.Skrzynka pocztowa jaki to jest program:

Pośredni


10.W jakim algorytmie występuje konwojowanie

w FCFS

11.Sekcja krytyczna - co zawiera(?).

Sekcja krytyczna to ciąg operacji na pewnym zasobie (zwykle pamięci), który musi być wykonany w trybie wyłącznym przez tylko jeden z potencjalnie wielu procesów. Po wejściu do sekcji proces wykonuje protokół wejścia w którym sprawdza, czy może wejść do sekcji krytycznej. Po wyjściu z sekcji wykonuje protokół wyjścia, aby poinformować inne procesy, ze opuścił już sekcje krytyczną i inny proces może ją zająć.

Rozwiązanie problemu sekcji krytycznej:


a. Wzajemne wykluczanie - Jeżeli proces Pi wykonuje swoją sekcję krytyczną,

   wówczas żadne inne procesy nie mogą wykonywać swoich sekcji krytycznych

b. Postęp - Jeżeli żaden z procesów nie wykonuje swojej sekcji krytycznej i są

   procesy, które chcą wejść do swoich sekcji krytycznych, wtedy wybór

   procesów, które wejdą do sekcji krytycznej nie może być odkładany na czas

   nieokreślony

c. Ograniczone czekanie - Musi istnieć ograniczenie liczby wejść innych

   procesów do ich sekcji krytycznych, po tym jak proces zażądał wejścia do

   swojej sekcji krytycznej i zanim ten dostęp zostanie przyznany

       Zakładamy, że każdy proces wykonuje się z prędkością niezerową

       Brak założenia dotyczącego względnej prędkości N procesów

12.Funkcja fork() jaki proces tworzy?

fork() - wywołanie systemowe tworzące nowy proces a w zasadzie utworzenie dwóch bliźniaczych kopii procesu, działających równolegle

Funkcja fork() i fork1() jest funkcją w systemie operacyjnym Unix (i nie tylko) powodującą, że pojedynczemu programowi, któremu do jego wykonania przypisany jest pojedynczy proces w systemie operacyjnym, przypisuje się dwa procesy poprzez rozwidlenie: rodzic i dziecko - czyli tworzy nowy proces. W chwili utworzenia, proces - dziecko jest kopią procesu - rodzica (kopiowane są obszary pamięci, wartości zmiennych i część środowiska). Aby umożliwić zróżnicowanie dalszego działania obu procesów, konieczne jest ustalenie, który z nich jest dzieckiem, a który rodzicem.

13.Co zawiera licznik rozkazu?

Licznik rozkazów (Program counter (PC)) wskazuje na adres następnego rozkazu do wykonania w procesie.

  - Zawiera adres rozkazu do pobrania

Rejestr rozkazów (Instruction register (IR))

  - Zawiera ostatnio pobrany rozkaz

14.Gdzie przechowywany jest i-węzeł,

I-węzeł (ang. i-node, index-node) jest rekordem (strukturą danych) w którym przechowuje większość informacji o konkretnym pliku na dysku. I-węzeł zawiera identyfikatory użytkownika oraz grupy szatkowników pliku, czas ostatniej modyfikacji oraz dostępu do pliku, licznik trwałych dowiązań do pliku oraz typ pliku.

15.Proces zakleszczenia

Zakleszczenie (deadlock)

• Zakleszczenie - dwa lub więcej procesów oczekują w nieskończoność na zdarzenie,

  które może być spowodowane tylko przez jeden z oczekujących procesów

Mówimy że zbiór procesów jest w stanie zakleszczenia gdy każdy proces tym zbiorze oczekuje na zdarzenie, które może być spowodowane tylko przez inny proces z tego zbioru. Zdarzenia o które głównie tu chodzi to pozyskiwanie i zwalnianie zasobów.

• Głodzenie - blokowanie nieskończone. Proces może nigdy nie zostać usunięty z

  kolejki semafora w której oczekuje
• Inwersja priorytetów - Problem planowania, w którym proces o niższym priorytecie

  blokuje proces o priorytecie wyższym

16. proces potomny.


Proces może tworzyć nowe procesy. Proces tworzący nazywa się macierzystym (parent process) a utworzone przez niego procesy nazywamy potomnymi. (children).

Gdy proces tworzy pod proces, ten ostatni może otrzymać swoje zasoby bezpośrednio od systemu operacyjnego. Proces macierzysty może rozdzielać swoje zasoby między procesy potomne albo powodować że niektóre zasoby np pamięć lub pliki będą przez potomków użytkowane wspólnie.

17.algorytmy zastępowania stron

mamy ciąg

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

FIFO (first in first out) - (pierwszy na wejściu pierwszy na wyjściu) nie zastopujemy tych samych wartości,nic się nie dzieje gdy 0 na 0, 1 na 1, 2 na 2 itd. w danej kolumnie nie mogą powtarzać się liczby, wtedy tez nic się nie dzieje :) (tzn dzieje się tylko tyle że staramy się podstawić kolejną liczbę).

7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7

- 0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0 

- - 1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1



7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

Optymalny - zasada bardzo podobna do FIFO z tym że zastępujemy tę stronę która najdłużej nie będzie używana

7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7

- 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0 

- - 1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1


7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

LRU (Least Recently Used) zastępowanie najdawniej używanych stron

7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1

- 0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0 

- - 1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7



18.dane charakterystyczne wątków w procesie (Thread Specific Data)



-Pozwalają każdemu wątkowi na posiadanie własnej kopii pewnych danych

19.wytłumaczenie jakichś skrótów

-Tablica stanów urządzeń (Device-status table)

-Bezpośredni dostęp do pamięci - Direct Memory Access (DMA)

-interfejs graficzny urzytkownika (Graphics User Interface (GUI))

-interpreter wiersza poleceń (Command-Line (CLI))

-interfejs programu aplikacji (Application Program Interface (API))

-Komunikacja międzyprocesowa (Interprocess Communication - IPC)

-Blok kontrolny procesu (Process Control Block (PCB)

-wywołanie procedury lokalnej (local procedure call (LPC))

-Zdalne wywołania procedur (Remote Procedure Calls (RPC))

-Zdalne wywołania metody (Remote Method Invocation (RMI)) (Java)

-First-Come, First-Served (FCFS)

-najpierw najkrótsze zadanie (Shortest-Job-First (SJF))

-Planowanie karuzelowe/rotacyjne (Round Robin (RR))

-długość odcinka czasu (Time-slice length)

-Jednostka zarządzania pamięcią - Memory-Management Unit (MMU)

-Konsolidacja dynamiczna (Dynamic Linking)

-Przydział ciągły pamięci - Contiguous Allocation

-dynamiczny przydział pamięci (Dynamic Storage-Allocation)

-Rejestr bazowy tablicy stron (Page-table base register) (PTBR) - wskazuje położenie tablicy stron

-Rejestr długości tablicy stron (Page-table length register) (PRLR) - zawiera wielkości tablicy stron
-pamięć asocjacyjna lub bufor translacji adresów (associative memory / translation look-aside buffers) (TLBs)

-identyfikatory przestrzeni adresowej (address- space identifiers) (ASIDs)

-Segment-table base register (STBR) wskazuje na położenie tablicy segmentów w pamięci

-Segment-table length register (STLR) wskazuje numer segmentów używanych przez program
-Kopiowanie przy zapisie - Copy-on-Write (COW)
20.Tablice adresów (wykład 7 czytać)



21.
Pamięć możemy traktować jak dużą tablicę słów (maszynowych). W zależności od architektury,

słowo maszynowe składa się z określonej liczby (będącej potęgą 2-ki) bitów, np. 32, 64 czy 128.

Pozycję słowa w tablicy, jaką jest pamięć, nazywamy adresem. Adres jest liczbą binarną złożoną z określonej liczby bitów.

Zwykle liczba tych bitów jest również potęgą 2-ki, często taką samą jak w słowie maszynowym, choć nie zawsze.

Jeśli włączone jest stronicowanie, wówczas cała pamięć (4 GB) dzielona jest na bloki - strony o rozmiarach 4 kB; w procesorach Pentium i nowszych możliwe jest także używanie stron o rozmiarach 4 MB. Gdy program odwołuje się do pamięci, podaje adres właściwej komórki pamięci. Adres ten jest 32-bitową liczbą, która składa się z trzech części:

   1. indeks w katalogu stron (liczba 10-bitowa),

   2. indeks w tablicy stron (liczba 10-bitowa),

   3. przesunięcie w obrębie strony (liczba 12-bitowa).

 to z wiki

Posted on: Piątek, 26 Czerwiec 2009, 23:28:39+dodatkowo mogło byc

Każda pozycja w tablicy stron przechowuje pewne dodatkowe informacje dotyczące strony pamięci, także te przydatne w realizacji pamięci wirtualnej:
    * Bit obecności (ang. present) - mówi czy strona znajduje się w pamięci fizycznej. Gdy system operacyjny usuwa stronę z pamięci, tzn. zapisuje ją na dysk, zeruje ten bit. Jeśli program odwoła się do strony nieobecnej w pamięci procesor generuje wyjątek i wówczas system operacyjny wczytuje z dysku uprzednio zapisaną tam zawartość strony.

    * Bit użycia (ang. accessed) - jest ustawiany przez procesor, gdy nastąpi odwołanie do danej strony. System operacyjny zwalnia pamięć zapisując nieużywane strony pamięci na dysku. Wartość zerowa bitu użycia oznacza brak odwołań do strony i jest sygnałem dla systemu, że może być przeniesiona na dysk. Ustawiony bit użycia może w pewnym stopniu zabezpieczać stronę przed przeniesieniem na dysk.

    * Bit modyfikacji (ang. dirty lub modified) - jest ustawiany podczas zapisu danych. Jeżeli dana strona jest usuwana z pamięci, to w przypadku ustawienia bitu modyfikacji musi być zapisana na dysk. Wartość zerowa bitu modyfikacji oznacza, że strona w pamięci oraz strona na dysku jest taka sama, więc podczas usuwania strony z pamięci nie ma konieczności ponownego zapisywania jej na dysk.

1101010101 to najprawdopodobniej chodziło o indeks w tablicy stron plus dodatkowe 0/1 w zależności czy podany był bit modyfikacji.



Wyszukiwarka