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