$24
1) Assume virtual addresses are 16 bits. Physical addresses are 16 bits. Page size is 256 Bytes. We have the following page table (partially given). Find the physical addresses of the following virtual addresses. Express your physical addresses in hexadecimal.
0010 1011 1100 0101
0001 0011 0001 1100
1110 0100 1010 0011
0010 1011 0001 0111
Page Table
…
0x13 0xa3
…
0x2b 0xfc
…
0xe4 0xe5
..
2) Assume virtual addresses are 48 bits. Address division is as follows: [9,9,9,9,12]. How many first, second, third and fourth level tables are required for a process that is using 32 MB contiguous virtual memory starting at virtual address 0? If a page table entry (any level) is 8 bytes, what is the required RAM space to hold page table information?
3) How many different integer sequences (order is important) may be printed out by the following pseudo-code? Write down all of them.
Semaphore X = 0; //shared by all processes
Semaphore Y = 0; //shared by all processes
Semaphore Z = 0; //shared by all processes
int n;
main() {
n = fork();
if (n==0) {
signal(X)
print (40);
wait (Y);
print (30);
wait(Z);
1
print(45);
exit (0);
}
signal (Y);
print (60);
wait (X);
print (10);
print(80);
signal(Z);
}
4) Assume a cigarette requires three ingredients (items) to smoke: Tobacco (t), Paper
(p) and a Match (m). Assume there are 3 smokers around a table, each of whom has an infinite supply of one of the three ingredients (items) — one smoker has an infinite supply of tobacco, another has an infinite supply of paper, and the third has an infinite supply of matches. Assume there is also a non-smoking agent which has also an infinite supply of these items. The agent enables the smokers to make their cigarettes by randomly selecting and putting two items (out of three items) on the table. Then the smoker having the missing item will take the items from the table (in this way will make the table empty), will make his cigarette, and will be able to smoke for a while. When table becomes empty, agent again chooses two items in random and places them on the table. Another smoker can now smoke (or maybe the currently smoking smoker will take those items again and start smoking again after it has finished its current smoking). This process continues forever. Synchronize the agent and 3 smokers by use of semaphores to act in this way.
5) Consider the following page reference string of a process. Assume the process has 3 frames. For the following replacement algorithms, show the memory state after each reference. Also indicate, if a reference causes a page fault or not.
3543562523425427473.
Memory state means pages in memory (in frames) and their R bit value (of applicable). For example, the following is a memory state.
• (1)
3 (0)
7 (1)
That means, the pages 4, 3, and 7 are in memory and their R bits are 1, 0, and 1, respectively.
a) FIFO.
b) LRU.
c) Optimal.
d) R bit algorithm. Assume, in case of a tie, lower page number is removed. R bits are cleared after every 4 references.
e) Second chance. Reference bits are cleared after every 6 references.
f) LFU.
2
6) Consider a computer that is uses segmentation and paging. The segment table of a process is the following:
Segment Base Length
0 1024 1024
1 4196 512
2 128 256
3 2048 768
Assume page size is 64 bytes. Assume virtual addresses are 16 bits long. Assume physical addresses are also 16 bits long. Assume a page i is located in a frame i+10 (for example, page #11 of linear logical memory is in frame #21 of physical memory). Convert the following logical addresses to their physical ones:
a) (0, 50)
b) (1,0)
c) (1,100)
d) (1,700)
e) (2,10)
f) (3,200)
All numbers above are decimal.
7) Assume there are 3 resource types A, B and C; and initially there exist 9 A, 6 B, and 6 C in the system. There are 5 processes (P1, …, P5). The following is the current Alloc and MaxDemand matrix. Prove whether it is safe or not. If it is safe, would you grant a request (2, 0, 0) from P1 (prove your answer)?
Alloc
MaxDem
1 2 1
5 4 2
1 0 2
3 1 3
2 2 2
6 6 4
0 0 1
2 2 1
3 1 0
5 2 2
8) Consider the following situation in a system where there are 5 processes (P1, … , P5) and 3 resource types A, B, C. No deadlock avoidance or prevention applied. Initially, there exist 10 A, 6 B, and 4 C in the system. Is there a deadlock at the moment? Prove your answer.
Alloc Request
100 001
301 040
022 312
101 230
210 333
9) Simulate semaphore S and its operations with a monitor. That means implement wait(S) and sigal(S) by using a monitor. S is an integer variable. We are assuming monitor construct (together with condition variables) is available for us to use in the programming language. So we will use them to implement something like semaphores.
3
4