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

Find the number of drives in the jukebox, Q. In a disk jukebox what would b...

Q. In a disk jukebox what would be the result of having more open files than the number of drives in the jukebox? Answer: Two bad results could result. One likelihood is star

Advantages and disadvantages of multiprogramming, Q. Advantages and disadva...

Q. Advantages and disadvantages of multiprogramming? Advantages 1.    High CPU utilization. 2. It appears that many programs are allotted CPU almost concurrently. D

How resolution of externally defined symbols is performed, Resolution of ex...

Resolution of externally defined symbols is carried out by    Resolution of externally defined symbols is carried out by Linker

What are the main challenges for mobile computing, Question: (a) What ...

Question: (a) What are the main challenges for Mobile Computing? (b) What is the ISM band and what is particular about this frequency band? Name two wireless technologies

Explain long term scheduling, Long term scheduling Scheduling explicitl...

Long term scheduling Scheduling explicitly performed when a new process is created and it determines which programs are admitted to the system for processing. Therefore it cont

Is the internet a lan or else a wan, Q. Is the Internet a LAN or else a WAN...

Q. Is the Internet a LAN or else a WAN? Answer: The Internet is a WAN as the a variety of computers are located at geographically different places and are connected by long-dis

Process abstraction in operating systems, Many early operating systems rega...

Many early operating systems regarded processes as different timesharing users. The process abstraction is a popular way to organize concurrent programs, but it is not the only cho

What is an i/o subsystem?, What is an I/O subsystem? The control of dev...

What is an I/O subsystem? The control of devices connected to the computer is a main issue while designing operating systems. Since I/O devices differ widely in their function

Unix process api, Unix process API The two most important function calls...

Unix process API The two most important function calls to use when programming with several processes are fork and exec:  fork() creates a copy of current process. It gives

Explain the main functions of an operating system, Question: a) What sp...

Question: a) What special measures must be taken to ensure the reliability, availability, and security of electronic commerce and digital business process? b) What are the c

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