Operating Systems 2015F: Assignment 3: Difference between revisions
Created page with "Please answer the following questions on cuLearn by 8 PM on Tuesday, October 6th. # What is something that userspace programs can do easily that is difficult to do from kerne..." |
No edit summary |
||
Line 31: | Line 31: | ||
#* None of the above. | #* None of the above. | ||
# Without errors, what does the fork system call return? | # Without errors, what does the fork system call return? | ||
# | #* the child’s process ID | ||
# | #* 0 | ||
# | #* Both (a) and (b) | ||
# | #* None of the above. | ||
# If a process creates many child processes then changes an environment variable X... | |||
#* X is also changed in its parent process | |||
If a process creates many child processes then changes an environment variable X... | #* X is changed in all child processes | ||
* X is also changed in its parent process | #* Wait, a process cannot change its environment variables | ||
* X is changed in all child processes | #* None of the above | ||
* Wait, a process cannot change its environment variables | # Standard C library routines such as printf are available in the kernel. True or False | ||
* None of the above | # If a process makes many system calls (as seen by strace) but produces no library calls (as seen by ltrace), what is a reasonable assumption regarding the program? | ||
#* The process is multithreaded | |||
#* The dynamic linker is broken | |||
Standard C library routines such as printf are available in the kernel. | #* The process is running as root | ||
#* The process was statically linked | |||
If a process makes many system calls (as seen by strace) but produces no library calls (as seen by ltrace), what is a reasonable assumption regarding the program? | |||
* The process is multithreaded | |||
* The dynamic linker is broken | |||
* The process is running as root | |||
* The process was statically linked |
Revision as of 18:12, 3 October 2015
Please answer the following questions on cuLearn by 8 PM on Tuesday, October 6th.
- What is something that userspace programs can do easily that is difficult to do from kernel code?
- Open a file
- Display text on the screen
- Send data over a socket
- All of the above
- System calls are used to access the kernel because...
- The kernel runs in a separate process
- function calls are too slow
- processes cannot see kernel memory
- You can create a new process running an executable by...
- making an execve system call
- making a fork system call
- Both A and B
- None of the above
- Which of the following is a character/stream device?
- Hard Disk drive
- Sound card (audio device)
- DVD drive
- All of the above
- In playing around with the dd command in /dev you accidentally overwrote a small part of a USB drive formatted with an ext4 filesystem. You run fsck and repair the filesystem. No files have been corrupted; however, you find a directory that had a few files is now empty, and its files have now appeared /lost+found but with seemingly random numeric filenames (like #5123). What part of the filesystem did you overwrite?
- Data blocks
- inodes
- directory blocks
- All of the above
- There is a directory called /mydisk, and in this directory there are three files, A, B, and C. You run the command "mount /dev/sdb1 /mydisk"; afterwards you see that /mydisk contains the file B along with a directory lost+found. We see the file B but not the files A and C because...
- A, B, and C still exist but are now hidden; the file B that we see is a different file that just happens to have the same filename B.
- A and C got randomly erased by the mount command but B was left alone.
- lost+found contains the old A, B, and C
- None of the above.
- Without errors, what does the fork system call return?
- the child’s process ID
- 0
- Both (a) and (b)
- None of the above.
- If a process creates many child processes then changes an environment variable X...
- X is also changed in its parent process
- X is changed in all child processes
- Wait, a process cannot change its environment variables
- None of the above
- Standard C library routines such as printf are available in the kernel. True or False
- If a process makes many system calls (as seen by strace) but produces no library calls (as seen by ltrace), what is a reasonable assumption regarding the program?
- The process is multithreaded
- The dynamic linker is broken
- The process is running as root
- The process was statically linked