Allocating new pages, Operating System

Assignment Help:

Processes have valid and invalid entries on their page tables. The valid entries all point to some where "real" (e.g. a physical page, or some portion of disk in case of non-resident pages, etc). The entries that don't point anywhere are the entries that we will use when allocating a new page.

The allocation of new pages can be done in two ways: either via sbrk(), or via mmap(). If you want to increase the size of the heap (i.e. the number of valid pages), you can use sbrk().

Using mmap(), on the other hand, maps a ?le into a process' virtual address space. In the allocator you implemented, for example, you used mmap() to map memory addresses to the ?le /dev/zero. This makes it seem like you were allocating space from /dev/zero each time you called mmap(). (Remember that whenever you read something from /dev/zero, you get only zeroes for as long as you want to keep reading.) But, since /dev/zero is a read-only ?le and we usually call mmap() using the MAP PRIVATE ?ag, we follow the COW rules. When you actually try to write to the memory mmap()'d from /dev/zero, the OS intervenes and clones the corresponding page. So, instead of actually writing to /dev/zero, you end up writing to a new memory page.

Now suppose you mmap 3 pages to /dev/zero. Right after you do this, the process' page table contains three mappings to /dev/zero. These are all COW mappings to a same single page in memory, which itself maps to /dev/zero3. However, the ?rst time some of these pages is modi?ed, a new page is created, and the corresponding mapping in one of the page tables is modi?ed. Notice that we could have used mmap with any other ?le instead of /dev/zero; say, an MP3 ?le.

In this case, whenever we mmap'd, we would be actually mapping memory addresses to portions of the MP3 ?le. If we then tried to write to those areas of memory, we would be indirectly over writing the ?le! Notice, however, that we could be careful enough and used the mmap parameter MAP PRIVATE; then, we would still be able to read from the MP3 ?le, but all writings to it would be done using Copy On Write.


Related Discussions:- Allocating new pages

Describe the possible rmi invocation semantics, Question: (a) Explain t...

Question: (a) Explain the similarities and differences between two different threads running in the same process and two independent processes. When would you want to use two t

Calculate the maximum file size , A UNIX file system has 1-KB blocks and 4-...

A UNIX file system has 1-KB blocks and 4-byte disk addresses. What is the maximum file size if i-nodes contains 10 direct entries, and one single, double, and triple indirect entry

What are the five major activities of an operating system, What are the fiv...

What are the five major activities of an operating system in regard to process management? The creation and deletion of both user and system processes The suspension and res

Write a short note on pcb, Write a short note on PCB? Every process is ...

Write a short note on PCB? Every process is represented in the operating system by a process control block also called a task control block. It contains more information regard

What do you understand by “line balancing”? What happens if , What do you u...

What do you understand by “line balancing”? What happens if balance doesn’t exist?

What is critical section?, What is critical section? Every process has ...

What is critical section? Every process has a segment code called the critical section, in which the process may be updating tables, changing variables, writing file and etc. W

Write a script in linux to match a data directory, Write a script that uses...

Write a script that uses this idea to print output similar to the following: Files in this directory that match *~ : bash-scripts.html~ chimpanzee~ countdown~ countd

Peripharal device, 50 peripharal device name ,diagram and uses

50 peripharal device name ,diagram and uses

Essential properties of operating system, Essential Properties of Operating...

Essential Properties of Operating System 1. Batch: Jobs with similar needs are batched together and run through the computer as a group by an operator or automatic job sequen

What is symmetric multiprocessing, Symmetric multiprocessing To get ma...

Symmetric multiprocessing To get maximum reliability and efficiency a mode of function called as symmetric multiprocessing is used. In essence, with SMP any program or threads

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd