CS计算机代考程序代写 Q1 File descriptors 1 Point

Q1 File descriptors 1 Point
Imagine that foo.txt file contains “hello”.
What is printed out on your screen at the end of the program?
int main () {
int fd1, fd2;
char buf[1];
pid_t cpid;
fd1 = open(“foo.txt”, O_RDONLY, 0); read(fd1, buf, 1);
printf(“%s”, buf);
cpid=fork();
read(fd1, buf, 1);
printf(“%s”, buf);
if(cpid>0){
wait();
close(fd1); }
return 0; }
 heh
 hehe
 hel
 hee
 What will be printed out is non-deterministic
Q2 Segmentation 1 Point
Which of the following content needs to be saved to Process Control Block during the context switch, assuming segmentation-based virtual memory

management? (check all that apply)
 The content in the Stack Segment base register
The content of the current stack frame
 The content in the Program Counter register
 The content in the Stack Segment bound register
Q3 segment vs. BB 1 Point
Which of the following statement about segmentation is wrong?
 Different segments can have different sizes
 The size of a segment cannot be larger than the size of the whole virtual
memory
 The size of a segment could grow at run time
 The main advantage of segment over dynamic relocation is that address translation becomes faster under segmentation
Q4 Accessing memory 5 Points
Say we have a system that provides 8-bit virtual address and 2 segments. The segments are code and stack only. The most significant bit of each virtual address is used to identify a segment. The code segment’s number is “0” and the stack segment’s number is “1”. Let’s suppose a process P1 is running and the segmentation of P1 is as follows. (Don’t worry about bounds in this question. R and W in the table indicate readable and writable setting of the corresponding segment.)

Answer the following questions for the following memory access: movb 0xE5, %rax
Q4.1
1 Point
What is the segment bit for this access?
0 1 2 3
Q4.2
1 Point
What are the offset bits (i.e., the offset of this address in its corresponding segment) for this access?
 110 0101  100 1100  011 0111  101 0101
Q4.3
1 Point

What is the physical address of the memory location accessed by this instruction?
 0x9B  0xA5  0xDF  0xF2
Q4.4
1 Point
Does this access succeed or result in an error?
 The access succeeds
 The access results in an error
Q4.5
1 Point
What is the maximum size of the code segment that is supported by this system?
 512 Bytes  256 Bytes  128 Bytes  64 Bytes