sciaga_so_4.doc

(41 KB) Pobierz
1

1.          Po wywołaniu funkcji fork:

a)          nowy proces otrzymuje kopię segmentu danych procesu rodzica,

b)         nowy proces ma ten sam UID i GID jak proces rodzica,

c)          nowy proces ma inny PPID niż jego proces rodzicielski,

d)         proces rodzicielski zawsze czeka na zakończenie działania swojego potomka, po czym jego wykonanie jest wznawiane.

2.          Proces w systemie UNIX:

a)          po przejściu do stanu „wykonywany w trybie użytkownika” pozostaje w nim tak długo dopóki nie wywoła w nim jakiejś funkcji systemowej – co stanowi jedyny sposób na przekazanie przekazanie procesora innemu procesowi,

b)         posiada przypisany stały priorytet, który wykorzystywany jest przez zarządcę procesów w algorytmie szeregowania zadań: priorytet ten może jednak zostać zmieniony poleceniem renice,

c)          może zmienić swój identyfikator UID, ale tylko wówczas gdy wykonuje się jako proces systemowy (na rzecz użytkownika root),

d)         z wyjątkiem procesu INIT tworzony jest wyłącznie poprzez wykonanie specjalnej funkcji fork lub vfork

3.          Wyjaśnij pojęcia: segmentacja pamięci - (podzielenie pamieci na mniejsze bloki)  program – (kod wykonywalny zapisany na dysku)  U-obszar – (UAREA opisuje stan procesu, struktura opisująca korzeń sys. plików dla procesu, stosowane do zamiany nazwy ścieżkowej na i-węzeł) kontekst procesu – (informacje sterujące, zawiera m.in. licznik rozkazów)

4.          Po uruchomieniu poniższy program wyświetli napis Ala:

#include <stdio.h>

int main (void)

{ if (fork ())  { fork (); fork () }

fork (); puts („Ala”); return 0; }

a) 16 razy,              b) 10 razy,              c) 8 razy,              d) 12 razy,

5.          Kod powrotu zwrócony przez proces potomny uruchomiony w środowisku shell’a zapisana jest w zmiennej specjalnej:

a) $#              b) $?              c) $@              d) $%

6. Rozpatrzmy trzy polecenia: A) echo *              B) echo „*”              i C) echo \*

a)          w przypadku B i C zostanie wyświetlona gwiazdka,

b)         w przypadku A i B zostanie wyświetlona lista plików w bieżącym katalogu,

c)          tylko w przypadku A zostanie wyświetlona lista plików w bieżącym katalogu

d)         we wszystkich przypadkach zostanie wyświetlona gwiazdka gdyż znak ten nie pełni żadnej specjalnej funkcji,

7.          Co można powiedzieć o wykonaniu się poleceń cmd1 i cmd2, jeżeli zostało wydane następujące zlecenie: cmd1 && cmd2:

a)          polecenie cmd2 wykona się warunkowo w przypadku powodzenia polecenia cmd1,

b)         polecenia wykonają się sekwencyjnie jedno po drugim,

c)          polecenie cmd2 wykona się warunkowo w przypadku porażki polecenia cmd1,

d)         polecenia cmd1 i cmd2 wykonają się potokowo,

8.          Jeżeli prawa dostępu do pliku skrypt prog. sh można zapisać ósemkowo w następujący sposób - 157, to:

a)          właściciel posiada wprawdzie prawo do wykonania, jednak uruchomienie skryptu nic jest możliwe, bo nie ma prawa jego odczytu.

b)         jakikolwiek inny użytkownik należący do grupy właściciela może uruchomić skrypt, ale nic może modyfikować jego zawartości.

c)          dowolny użytkownik, który nie należy do grupy właściciela, może skutecznie zmodyfikować zawartość skryptu.

d)         ponieważ właściciel pliku należy do grupy, która ma prawo odczytu skryptu, zatem może i on wyświetlić zawartość skryptu przy pomocy polecenia more prog.sh.

9.          Zakładając rozmiar 1024 bajty dla bloku dyskowego i 4 bajtowy numer bloku, określ maksymalną długość pliku (zakładamy istnienie 10 bloków bezpośrednich i wykorzystanie tylko dwóch poziomów pośredniości).

10. Które z poniższych stwierdzeń o sygnałach są nieprawdziwe:

a)          (?) sygnał SIGCHLD (śmierć potomka), o ile nie zostanie przechwycony, powoduje przerwanie pracy proces rodzicielskiego.

b)         sygnał SIGKILL nie może zostać przechwycony,

c)          po zakończeniu obsługi przechwyconego sygnału, system zawsze wznawia przerwana funkcji systemową niezależnie od jej rodzaju,

d)         po wylogowaniu się użytkownika, sygnał SIGHUP jest wysyłany do grupy procesów przypisanych do jego terminala.

11.        Polecenie ls | xargs –i echo {} i ls | xargs echo

a)          (?) wyświetlają tą samą informację, ale w innej formie,

b)         wynik działanie polecenia będzie identyczny,

c)          pierwszy przypadek jest składniowo niepoprawny, gdyż para znaków {} wymaga cytowania,

d)         oba polecenia są poprawne składniowo ale w drugim przypadku nic nie zostanie wyświetlone bo echo nie ma argumentu,

12.        Korzytając z programu sed napisz polecenie które w pliku tekstowym wymieni każde wystąpienie napisu <FILENAME> ścieżkową nazwą pliku (przykładowo /usr/lib/libC.so) zawartą w zmiennej o nazwie FILENAME

13.        Co należy zrobić aby skryptowe polecenia cmd potraktowało 4 kolejne wiersze skryptu jako zawartość swojego standardowego wejścia

14.        Użytkownik w shell’u ksh napisał polecenie ls +(abr|pr?)?(.cpp) oznacza to że mogą zostać wyświetlone pliki:

a) (?) prabr i abr.cpp,              b) (?) abrpr2abr i prN.cpp,              c) .cpp i prZabr,              d) abrabr.cpp i prZpry

15.        Co należy dopisać do skryptu w awk aby można było go uruchomić bezpośrednio z poziomu shell’a

Możliwe są dwa parametry a musi być przynajmniej jeden parametr .[wzorzec] [{procedura}]

16.        Zakładając rozmiar 512 bajtów dla bloku dyskowego i 4 bajtowy numer bloku określ maksymalną długość pliku (zakładamy istnienie 10 bloków bezpośrednich i trzech poziomów pośredniości)

17.        Liczba NI (nice):

a)          (?) oznacza absolutny żądany priorytet dla uruchamianego procesu

b)         (?) jej ujemna wartość oznacza że priorytet procesu będzie podwyższony

c)          (?) priorytet procesu wyliczany jest dynamicznie z uwzględnieniem wartości NI

d)         dla procesu prog wynosi minus pięć, jeśli użyje się wywołania /usr/bin/nice –5 prog

18.        funkcja systemowa exec:

a)          uruchamia polecenie systemowe o podanej nazwie,

b)         tworzy nowy proces na podstawie pliku wykonywanego o podanej nazwie

c)          nie tworzy nowego procesu tylko zmienia kontekst użytkownika nowego procesu (segmenty kodu, danych i stosu)

d)         jeżeli ustawiony jest bit SetUID w pliku binarnym to po pozytywnym załadowaniu nowego kodu zmienia efektywny identyfikator użytkownika na UID właściciela pliku

19.        jaki jest wynik działania powyższego programu:

#include <stdio.h>

void main (void)

{ alarm (4); pause (); puts („obudziłem się...”); }

a)          proces po 4 sekundach wypisze komunikat „obudziłem się..”

b)         program jest niepoprawny gdyż nie podano argumentu funkcji pause ()

c)          proces zostanie awaryjnie przerwany po upływie 4 sekund na skutek nieprzechwyconego sygnału SIGALRM

d)         ponieważ funkcja pause () czeka na dowolny sygnał więc naciśnięcie klawisza ^C przed upływem 4 sekund powinno wymusić wypisanie napisu „obudziłem się..”

20.        wskaż błędne twierdzenie

a)          (?) polecenie mount i umount dostępne jest dla każdego użytkownika systemu (można je skutecznie wykonać)

b)         (?) zawartość katalogu będącego punktem montowania staje się niedostępna od momentu odmontowania systemu plików

c)          system plików można podmontować z ograniczeniem dostępu tylko do operacji czytania (mount –r)

d)         (?) w niektórych wersjach systemu nowy system plików tworzy się za pomocą polecenia mkfs

e)          liczba plików w standardowym systemie plików jest limitowana tylko wielkością dostępnego obszaruwolnych...

21.        wyjaśnij pojęcia: stronnicowanie pamięci- podział pamięci na strony, proces- segment danych segment kodu, super block- wszystkie wolne i-węzły i bloki dyskowe, grupa procesów- jeden proces tworzy następne,

22.        zinterpretuj zawartość rekordu pliku /etc/passwd na podstawie poniższego przykładu

beta (login); :/fvd2IzaTlgxI (hasło); 103-(UID); 500-(GID); Beata-(imię); Kubicka-(nazwisko); /u/bea-(katalog domowy);

/usr/bin/ksh (powłoka używana)

23.        proces utworzony poleceniem db2 <wsad.cuts &

a)          nie będzie posiadał terminala sterującego, zatem próba zapisu przez niego czegokolwiek na standardowe wyjście spowoduje zatrzymanie procesu na skutek sygnału SIGTTOU

b)         proces zostanie uruchomiony w tle tzn. shell nie będzie oczekiwał na jego zakończenie

c)          wyniki działania procesu zostaną zapisane do pliku wsad.out

d)         po wylogowaniu się proces użytkownika nie zostanie przerwany gdyż pracuje w tle

24.        użytkownik w shell’u bash napisał polecenie ls lib {c*,d?}.{sl,so} oznacza to że mogą zostać wyświetlone pliki:

a) libc0.s1 i libdce.so,              c) libd2.s0 i libc.sh,

b) libd.sh i libc12.so,              d) libdf.s1 i libc0.so

25.        liczbę parametrów pozycyjnych zapisana jest w zmiennej specjalnej

a) $#,              b) $?,              c) $@,              d) $%,

26.        Zmienną środowiskową jest:

a)          każda zmienna zdefiniowana poleceniem typu var=value (np. var=12)

b)         zmienna jawnie wyeksportowana przy pomocy polecenia export

c)          zmienna var jeśli wcześniej zostało wydane polecenie typeses –x var

d)         każda zmienna w procesie potomnym, jeśli program zostanie wywołany w sposób: <nazwa_programu> <zmienna>=<wartość>..., np.ksh ala=12,

27.        jeżeli maska praw dostępu do plików została ustawiona następująco: umask 246 to po wydaniu ciągu poleceń echo „Ala” > a; mkdir b otrzymamy następującą kolumnę przy poleceniu ls

a) –r---w---- a;              dr-x-wx—x b

b) -----w—r a;              d—x-wx-r- b

c) –r-x-w---- a;              -r-x-w---- b

d) –rw-r----- a;              drwxr-x—x b

28.        jakie warunki muszą być spełnione aby właściciel mógł uruchomić swój skrypt shell’owy:

a)          musi mieć prawo odczytu pliku

b)         prawo odczytu nie jest wystarczające, potrzeba dodatkowo prawa do jego wykonania

c)          prawo do wykonania jest wystarczające

d)         wystarczy prawo do odczytu ale tylko wówczas gdy skrypt wykonujemy w bierzącym shell’u przy pomocy polecenia kropka (.)

Zgłoś jeśli naruszono regulamin