The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

OPERATING SYSTEMS -INTERNALS AND DESIGN PRINCIPLES WILLIAM STALLINGS.pdf ( PDFDrive )

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by RAK MAYA LIB2U KKKL/KKKLCSG, 2022-07-04 00:12:34

OPERATING SYSTEMS -INTERNALS AND DESIGN PRINCIPLES WILLIAM STALLINGS.pdf ( PDFDrive )

OPERATING SYSTEMS -INTERNALS AND DESIGN PRINCIPLES WILLIAM STALLINGS.pdf ( PDFDrive )

Keywords: #STM

considerable improvement over the previous test results using a constant value of
Q.

8.14 232 memory = 221 page frames
211 page size

Segment: 0 0
1
2
3

7 00021ABC

Page descriptor
table

232 memory = 221 page fram es
211 page size
Main memory
(232 bytes)

a. 8 × 2K = 16K

b. 16K × 4 = 64K
c. 232 = 4 GBytes

Logical Address: (2) (3) (11)
Seg- Page Offset
ment 2BC
Y
X

0 0 0 2 1ABC

00000000000001000001101010111100

21-bit page frame reference offset (11 bits)
(in this case, page frame = 67)

8.15 a.

-49-

page number (5) offset (11)

b. 32 entries, each entry is 9 bits wide.
c. If total number of entries stays at 32 and the page size does not change, then

each entry becomes 8 bits wide.

8.16 There are three cases to consider:

Location of referenced Probability Total time for access in ns
word
0.9 20
In cache (0.1)(0.6) = 0.06 60 + 20 = 80

Not in cache, but in main (0.1)(0.4) = 0.04 12ms + 60 + 20 = 12000080
memory

Not in cache or main
memory

So the average access time would be:

Avg = (0.9)(20) + (0.06)(80) + (0.04)(12000080) = 480026 ns

8.17 It is possible to shrink a process's stack by deallocating the unused pages. By
convention, the contents of memory beyond the current top of the stack are
undefined. On almost all architectures, the current top of stack pointer is kept in a
well-defined register. Therefore, the kernel can read its contents and deallocate any
unused pages as needed. The reason that this is not done is that little is gained by
the effort. If the user program will repeatedly call subroutines that need additional
space for local variables (a very likely case), then much time will be wasted
deallocating stack space in between calls and then reallocating it later on. If the
subroutine called is only used once during the life of the program and no other
subroutine will ever be called that needs the stack space, then eventually the
kernel will page out the unused portion of the space if it needs the memory for
other purposes. In either case, the extra logic needed to recognize the case where a
stack could be shrunk is unwarranted. Source: [SCHI94].

8.18 From [BECK98]:

-50-

-51-


Click to View FlipBook Version