Ile procesów jest w pamięci w danym momencie [zamknięte]


-1

Czy jednocześnie jest tylko jeden proces w pamięci, a przełączniki kontekstowe stale przenoszą procesy tam iz powrotem między DRAM na dysk? A może wiele procesów jest jednocześnie przechowywanych w pamięci DRAM, a przełączniki kontekstu zmieniają tylko proces wykonywany przez procesor?

czym różni się pamięć wirtualna?


Sposób ładowania procesów do pamięci nie ma nic wspólnego ze sposobem ich planowania.
— David Schwartz,

To pytanie zależy od systemu operacyjnego. To, co opisujesz, jest częścią tego, co robi system operacyjny. Powiedziałbym, że biorąc pod uwagę wystarczającą pamięć i procesy współczesnego systemu operacyjnego będą w pamięci, dopóki się nie zakończą
— Doug Watkins

Odpowiedzi:


1

To pytanie naprawdę nie ma sensu.

Informacje są ładowane i przechowywane w pamięci na podstawie częstotliwości ich wykorzystywania i decyzji podjętych przez menedżera pamięci wirtualnej. Procesy są planowane przez program planujący. Jeden nie ma nic wspólnego z drugim.

To nie procesy są przechowywane w pamięci w nowoczesnych systemach operacyjnych, to strony. A jeśli na przykład wyobrażasz sobie dwa procesy uruchamiające ten sam plik wykonywalny, wiele stron zostanie udostępnionych i załadowanych do pamięci, jeśli zajdzie taka potrzeba, gdy którykolwiek z nich uzyska do nich dostęp.


Przez „proces” rozumiem strony pamięci, które składają się na przestrzeń adresową procesu. Czy więcej niż jeden z tych „procesów przestrzeni adresowej” może znajdować się jednocześnie w pamięci fizycznej? czy tylko jeden?
— glen4096

Strony mogą być rezydentami dowolnej kombinacji procesów. Strony mogą być rezydentne, które nie są mapowane przez żaden proces. Jeden w zasadzie nie ma nic wspólnego z drugim. Procesy wykorzystują strony, które zmuszają je do pozostania w pamięci. Pozostają rezydentami, dopóki system operacyjny nie chce użyć tej fizycznej strony do czegoś innego lub nigdy nie będzie do nich dostęp.
— David Schwartz

0

Od czasu do czasu myślałem o tym z filozoficznego punktu widzenia, próbując zastosować to u ludzi, aby pomyśleć o naszym doświadczeniu jakiegoś procesu. Użyłem komputerów jako analogu dla nas; świadomość jest produktem procesu informacji pochodzącej z pamięci.

Nie było to dla mnie pomocne, ale myślę, że dotyczy to twojego pytania, ponieważ w prostym przypadku odpowiedź brzmiałaby „tak”.

W rdzeniu procesora, jeśli proces stanowi wykonanie procedury, wiemy, że procesor pracuje z danych z pamięci rejestru. Może to wciąż nie jest wystarczająco niskie. Idąc głębiej, do progu realizacji, gdzie proces prowadzi do produktu, zobaczymy, to kończy się na jednostkę arytmetyczno-logiczną . ALU ma funkcję wykonywania operacji na dwóch liczbach . Dlatego mówię tak, jeśli nasz pogląd jest tu ograniczony, w pamięci jest tylko jeden proces na raz.

Więc:

  • Rejestry = pamięć robocza (nasz bufor przechowujący informacje, których wkrótce doświadczymy, teraz kilka milisekund po fakcie)
  • ALU = próg końcowy procesu (ostatnia czynność, którą robimy z tą pamięcią)
  • Produkt / Wyjście = świadomość (wynik procesu)

To nie jest odpowiedź na pytanie, ale mam nadzieję, że sprawisz, że pomyślisz o różnych poziomach i rodzajach pamięci i pamiętasz, że na dole jest fizyczna maszyna. Odpowiedź zakłada, że ​​ALU w końcu zakończy proces na podstawie dwóch danych wejściowych i jednego wyniku. Współczesne procesory są prawdopodobnie zbyt skomplikowane, abym mógł nawet powiedzieć, ile potencjalnie końcowych sub-ALU znajduje się na końcu jednostki.


0

Części przestrzeni adresowej wielu procesów z pewnością mogą znajdować się i prawie zawsze znajdują się jednocześnie w pamięci fizycznej. Rezerwa wszystkich procesów jest bardzo rzadka. To prawie tak rzadkie, aby żaden z nich nie był rezydentem. (W rzeczywistości w systemie Windows, ponieważ każdy proces niesie ze sobą niewielką ilość niestronicowanych informacji, jest to niemożliwe. Nie wiem o innych systemach operacyjnych, ale spodziewam się, że jest tak samo.)

Pamięć nie jest stronicowana i stronicowana ze względu na zachowanie związane z planowaniem - z tym wyjątkiem, że wątek, który nie działa, nie powoduje błędów stron; jeśli wszystkie wątki w procesie nie są uruchomione, nie ma powodu, aby stronicować w dowolnej wirtualnej przestrzeni adresowej.

I odwrotnie, w przypadku długiego bezczynności proces systemu może odzyskać część pamięci z zestawu roboczego (i być może, choć niekoniecznie, utracony z pamięci RAM) przez system operacyjny, jeśli brakuje pamięci RAM i / lub wysokiego wskaźnika błędów stron.

Nie określono, o który system operacyjny pytasz. W systemie Windows, Menedżer zadań, zakładka „Procesy” (Windows Vista i 7) lub „Szczegóły” (Windows 8.x), „Pamięć (prywatny zestaw roboczy) pokaże, ile pamięci RAM znajduje się w zestawie roboczym każdego procesu, dla procesów-prywatnych vas Kolumna „Pamięć (wspólny zestaw roboczy)” informuje o ilości pamięci RAM w ws każdego procesu, która może również znajdować się w zestawie roboczym innych procesów.

Ponadto zwykle będą istnieć strony powiązane z każdym z wielu procesów na zmodyfikowanych i rezerwowych listach stron. Lista rezerwowa jest częścią tego, co system Windows zgłasza jako „Dostępny”, lista zmodyfikowana nie. Nie ma ich w zestawach roboczych żadnego procesu, ale jeśli odpowiadające im strony wirtualne zostaną uszkodzone, można je szybko „wczytać”, bez przechodzenia na dysk.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.