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?

glen4096
źródło
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.

David Schwartz
źródło
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.

Louis
źródło
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.

Jamie Hanrahan
źródło