background image

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 (.)