in Operating System edited by
12,701 views
36 votes
36 votes

A multi-user, multi-processing operating system cannot be implemented on hardware that does not support

  1. Address translation
  2. DMA for disk transfer
  3. At least two modes of CPU execution (privileged and non-privileged)
  4. Demand paging
in Operating System edited by
12.7k views

4 Comments

@Arjun sir, I think address translation is not necessary for providing memory protection. We can also achieve this using "Relocation and Limit register mechanism".

"When the CPU scheduler selects a process for execution,the dispatcher loads the relocation and limit registers with the correct values as part of context switch.Because every address generated by the CPU is checked against these registers,we can protect both the operating system and the other user programs and data from being modified by the running process."

source:galvin chap-9

I think "only" for he purpose of memory protection if we use PT then it will be overhead while context-switch due to the large size of PT(while less overhead in limit and relocation register).

@Arjun sir, can you please check this. 

0
0
That mechanism is not efficient -- the memory space will have to be divided before hand among a "fixed" set of processes. So, this will limit the no. of processes to a small number.
1
1
yes sir I agree when It comes to efficiency then this method will not work.But we can't say that without address translation protection is not possible.

C) should be only correct option here.
0
0

3 Answers

62 votes
62 votes
Best answer
Answer should be both (A) and (C) (Earlier GATE questions had multiple answers and marks were given only if all correct answers were selected).
Address translation is needed to provide memory protection so that a given process does not interfere with another. Otherwise we must fix the number of processors to some limit and divide the memory space among them -- which is not an "efficient" mechanism.

We also need at least $2$ modes of execution to ensure user processes share resources properly and OS maintains control. This is not required for a single user OS like early version of MS-DOS.
Demand paging and DMA enhances the performances- not a strict necessity.
Ref: Hardware protection section in Galvin
edited by
by

4 Comments

But in the absence of demand paging how will multiple processes co-exist in the main memory? There may be case that a process in particular is too big to fit in main memory or it alone occupies main memory completely and thus restricting other processes to get into main memory for processing (no multi processing).
0
0

Limit : contains the range of logical addresses (i.e. size of the range)

Base and relocation reg: holds smallest legal physical address

There is another figure in Galvin which checks the logical address with the limit first and if the address is within the range (i.e. less than limit) then MMU maps the logical address dynamically by adding the value in the relocation register. So if the address generated by CPU is A then

in short : if A <Limit then Map(A+reloc).

In Ayush's figure, the logical address is first checked with the base. If address is more than equal to base then again it is checked with (base+limit).

Base <= A <Limit+Base

If the condition is satisfied then A has to be mapped to some physical address ( this is done by MMU).

So in both cases address translation is needed in the last step.

2
2

address translation requires for memory protection 

because memory protection requires read/write bit and read/write bit used for address translation 

https://gateoverflow.in/3366/gate2008-it-56

https://unix.stackexchange.com/questions/68148/what-information-exactly-is-in-the-access-control-bits-of-a-page-table

http://www.logix.cz/michal/doc/i386/chp05-02.htm

0
0
1 vote
1 vote
OPTION A:
if we used fixed partitioning,variable partitioning then automatically we use the base and the limit registers.(we are performing address translation with the help of base and limit registers)
for paging and segmentation we use the pagetables and segment table for address translation .
these basically provide memory protection .if we would not have used address translation then only one program could be run .

OPTION B
we could use interrupt driven I/O instead of DMA

OPTION C
I think we need the atleat 2 modes for both single user and multiuser processing systems.
 

OPTION D
we can have a system in which all the pages of all the programs  are in the main memory.so demad paging is not necessary.

 

so option A and C are correct.
–7 votes
–7 votes
demand paging.
Answer:

Related questions