Chcę znaleźć całkowitą fragmentację zewnętrzną i wewnętrzną. Rozumiem, że fragmentacja zewnętrzna występuje, gdy procesy są ładowane i usuwane z pamięci, powodując rozbicie pamięci na małe kawałki, a fragmentacja wewnętrzna to nieużywana pamięć wewnętrzna partycji.
Jako przykład załóżmy, że mam następujące dziury w pamięci: 50 KB, 400 KB, 130 KB, 300 KB, 150 KB i 70 KB (w tej kolejności). Teraz mam następujące procesy, które wymagają następującego miejsca w pamięci (w kolejności): A = 230 KB, B = 180 KB, C = 130 KB, D = 120 KB, E = 200 KB.
Korzystając z metody first fit , określiłem następującą alokację:
50 KB otwór jest przypisany 0 procesów -> 50 KB wolny
400 KB otwór jest przypisany do procesów A i C -> 40 KB wolny
130 KB jest przypisany proces D -> 10 KB wolny
300 KB otwór jest przypisany proces B -> 120 KB wolny
150 KB przypisany otwór 0 procesów -> 150 KB wolny
70 KB otwór jest przypisany 0 procesów -> 70 KB wolny
Tak więc, opierając się na moim zrozumieniu definicji:
Całkowita fragmentacja wewnętrzna = 50 KB + 150 KB + 70 KB = 270 KB
Całkowita zewnętrzna fragmentacja = 40 KB + 10 KB + 120 KB = 170 KB
Czy to prawda? Dzięki.
Komentarze
- Odradzamy " proszę sprawdzić, czy moja odpowiedź jest prawidłowa " pytania, ponieważ tylko " tak / nie " są możliwe, które wygrały ' t pomóc tobie lub przyszłym gościom. Zobacz tutaj i tutaj . Czy możesz edytować swój post, aby zapytać o konkretny problem koncepcyjny, którego ' nie masz pewności? Z reguły dobre pytanie koncepcyjne powinno być przydatne nawet dla kogoś, kto nie ' patrzy na problem, nad którym akurat pracujesz. Jeśli potrzebujesz tylko kogoś, kto sprawdzi Twoją pracę, możesz poszukać przyjaciela, kolegi z klasy lub nauczyciela.
- Tak, problem koncepcyjny polega na znalezieniu całkowitej fragmentacji zewnętrznej i wewnętrznej. To ' to tytuł pytania. Podałem przykład jako próbę odpowiedzi na własne pytanie.
- Co właściwie mierzy " fragmentacja " ? Nie ' nawet nie wiem, jakie jednostki są odpowiednie do opisania wielkości o tej nazwie – ale wydaje się bardzo mało prawdopodobne, że byłaby to po prostu liczba bajtów utworzona przez zsumowanie rozmiaru każdego fragmentu, po prostu dlatego, że " fragmentacja " pojedynczego otworu o rozmiarze 270 KB byłaby taka sama jako " fragmentacja " 270 otworów, każdy o rozmiarze 1KB, podczas gdy oczywiście jakakolwiek miara sensulna przypisywałaby większą liczbę do tego ostatniego.
Odpowiedź
Zgodnie z problemem proces A jest przydzielany do 400 KB pamięci, więc pamięć jest podzielona na dwie części, jedną dla spełnienia żądania, a pozostałe (170 KB) to typ fragmentacji zewnętrznej oznaczony jako (170 KB E).
Podobnie dla procesu B używającego 300 KB, co daje 120 KB E.
Podobnie dla procesu c używającego (170 KB E) wyników (40 KB E).
Podobnie dla procesu D us ing (130 KB) results (10 KB E) żądanie procesu E nie może zostać zakończone Więc całkowita fragmentacja zewnętrzna = 40 + 10 + 120 = 170 KB
Całkowita fragmentacja wewnętrzna = 50 + 150 + 70 = 270 KB
Odpowiedź
NIE! Całkowita fragmentacja wewnętrzna to 40 + 10 + 120 = 170 kB, a całkowita fragmentacja zewnętrzna to 50 +150 + 70 = 270 kB
Odpowiedź
Przede wszystkim musisz określić, czy Twoje partycje mają stały rozmiar, czy zmienny rozmiar. W przypadku, gdy używają partycjonowania dynamicznego (zmienny rozmiar), wewnętrzna fragmentacja zawsze będzie wynosić 0, ponieważ jest zdefiniowana tylko dla partycjonowania o stałym rozmiarze. Zakładając, że partycjonowanie jest statyczne, całkowita fragmentacja wewnętrzna będzie sumą wszystkich fragmentacji wewnętrznych. W przypadku fragmentacji zewnętrznej jest równa całkowitej dostępnej wolnej pamięci (dziury plus ciągła wolna pamięć). Dlatego fragmentacja zewnętrzna wyniesie tutaj (50 + 40 + 10 + 120 + 150 + 70) KB = całkowita dostępna wolna pamięć = całkowita nieużywana pamięć. Podczas gdy wewnętrzna fragmentacja wyniesie (40 + 10 + 120) KB, nieużywane partycje nie będą liczone, ponieważ nie są przydzielone do żadnego procesu. Fragmentacja zewnętrzna jest nadzbiorem fragmentacji wewnętrznej w przypadku partycjonowania o stałym rozmiarze.