Systemy operacyjne

Transkrypt

Systemy operacyjne
Systemy operacyjne
Lista 11
na ćwiczenia 21.1.2009
(i być może późniejsze)
Poniższe zadania stanowią kompilację tych zawartych w rozdziałach 21, 22, 23 wiadomej
książki. Za każde zadanie można uzyskać 1pkt.
1. Na czym polegały różnice między celami projektowymi wczesnych faz rozwoju systemu UNIX
a koncepcjami zastosowanymi w innych systemach operacyjnych?
2. Jakie są zalety i wady pisania systemu operacyjnego w języku wysokiego poziomu, takim jak
C?
3. W jakich okolicznościach użycie ciągu funkcji systemowych: fork i execve jest najwłaściwsze.
Kiedy lepiej użyć funkcji vfork?
4. Czy system 4.3BSD daje preferencje w przydziale procesora zadaniom zależnym od wejściawyjścia czy procesora? Z jakich powodów rozróżnia on te kategorie i dlaczego jedna z nich ma
pierwszeństwo nad drugą? Na jakiej podstawie system rozpoznaje, do której z tych kategorii
można zaliczyć dany proces?
5. Jaki wpływ na wydajność systemu miałyby następujące zmiany wprowadzone od wersji
4.3BSD? Odpowiedź uzasadnij.
● Połączenie pamięci podręcznej buforów z przestrzenią stronicowania procesów.
● Wykonywanie dyskowych operacji wyjścia-wejścia większymi porcjami
● Zaimplementowanie pamięci dzielonej i używanie jej w celu przekazywania danych
między procesami zamiast stosowania zdalnych wywołań procedur lub gniazd.
● Zastosowanie siedmiowarstwowego protokołu ISO zamiast modelu sieciowego
ARM.
6. Linux działa na różnorodnym sprzęcie. Jakie kroki muszą podjąć osoby pracujące nad
rozwojem tego systemu, aby zapewnić jego przenoszenie na różne procesory i architektury
zarządzania pamięcią oraz osiągnąć minimalizację ilości kodu jądra zależnego od architektury?
7. Wielowątkowość jest popularną techniką programowania. Opisz trzy różne sposoby
implementowania wątków. Wyjaśnij, jak mają się te sposoby do mechanizmu clone systemu
Linux. Kiedy każdy z tych alternatywnych mechanizmów może okazać się lepszy, a kiedy
gorszy od stosowania klonów?
8. Procedura planująca systemu Linux realizuje łagodne planowanie w czasie rzeczywistym.
Jakich cech niezbędnych w pewnych zastosowaniach czasu rzeczywistego brakuje w takim
planowaniu? W jaki sposób można by je dodać do jądra?
9. Jądro systemu Linux nie pozwala na stronicowanie poza swoją pamięcią. Jaki wpływ wywiera
to ograniczenie na projekt jądra? Jakie są zalety i wady takiej decyzji projektowej?
10. Wspólnie użytkowane biblioteki wykonują wiele operacji mających zasadnicze znaczenie w
systemie Linux. Na czym polega zaleta trzymania tych funkcji poza jądrem? Czy pociąga to za
sobą jakieś niedogodności?
11. Zarządca pamięci wirtualnej systemu NT przydziela pamięć w dwu etapach. Jakie korzyści
wynikają z takiego rozwiązania?
12. Omów zalety i wady którejś ze struktur tablicy stron w systemie NT.
13. Ile co najwyżej braków stron może wystąpić podczas dostępu wykonywanego za pomocą
adresu wirtualnego, a ile w przypadku dostępu z wykorzystaniem dzielonego adresu
wirtualnego? Jakie rozwiązania sprzętowe występują w większości procesorów, aby zmniejszyć
te liczby?
14. Czemu służy prototypowy wpis w tablicy stron systemu NT?
15. Jakie kroki musi przedsięwziąć zarządca pamięci podręcznej w celu przekopiowania danych do
pamięci podręcznej i na zewnątrz niej?
16. Jakie problemy pojawiają się podczas wykonywania aplikacji 16-bitowego systemu Windows
za pomocą maszyny VDM? Jakie rozwiązania przyjęto w związku z tym w systemie NT? Jakie
są ich wady?
17. System NT ma scentralizowanego zarządcę pamięci podręcznej. Jakie są zalety i wady takiego
zarządcy?
18. System wejścia-wyjścia NT jest sterowany pakietami. Rozważ argumenty na rzecz
zastosowania sterowania pakietami w systemie wejścia-wyjścia oraz argumenty przeciwko
takiemu rozwiązaniu.
Piotr Witkowski