Operating Systems 2015F: Assignment 3

From Soma-notes
Revision as of 14:14, 3 October 2015 by Soma (talk | contribs)
Jump to navigation Jump to search

Please answer the following questions on cuLearn by 8 PM on Tuesday, October 6th.

  1. Standard C library routines such as printf are available in the kernel. True or False
  2. 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
  3. 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
  4. 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
  5. Which of the following is normally assigned character/stream device on UNIX-like systems?
    • Hard Disk drive
    • Sound card (audio device)
    • DVD drive
    • All of the above
  6. 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
  7. 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
  8. 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
  9. 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.
  10. Without errors, what does the fork system call return?
    • the child’s process ID
    • 0
    • Both (a) and (b)
    • None of the above.