Похожие чаты

Hey everybody, I'm reading the Operating System Concepts book, 10th

edition. And I came across this practice exercise (3.1). I understand why the value is 5, but when I ran the code on my machine with some modifications, I printed the address of the "value" variable, and it was the same. Why do they point to the same address if each process should have a separate copy of its own?

2 ответов

11 просмотров

Each process has its own address space. The fork() syscall exactly duplicates file descriptors, credentials, namespace, cgroup settings, MM (this includes the pointer you showed, so yes, the pointer is duplicated too), and many more. What you see here is a virtual address. The same virtual address in a different process occupies a different physical address, (assuming we ignore the COW optimization on fork). But the point is the address space is private to each process. A process can't clobber other processes' addresses unless explicitly shared (e.g., using mmap + MAP_ANONYMOUS | MAP_SHARED before fork()).

Haney-Samer Автор вопроса
Alviro Iskandar Setiawan
Each process has its own address space. The fork()...

Yeah, I also thought it had something to do with virtual memory. Thanks!

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Hi. Do we have a raid bot? Why nobody doing raids on X? Even RH mentioned this and nobody paying attention...whats the channel for hex memes? If mods cant run raids just insta...
H
31
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
блеать, почему так?? где в роутере это исправляется?
Арсен Маньяков 🇦🇲
16
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
🌊 Ocean Nodes Dashboard Update 🚀 Hey, Oceaners! First off, a massive round of applause 👏to all of you for the amazing engagement since we launched Ocean Nodes. In just a few ...
KreigDK | Never DM first🌊
3
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
люди, которые используют flameshot, к вам вопрос. Можно-ли поставить хоткей на создание скриншота? В программе есть отдел "горячие клавиши", но там все для редактирования, скр...
ThunDer104
11
Карта сайта