57
EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Embed Size (px)

Citation preview

Page 1: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

EXAM STYLE QUESTIONS ON USER SPACE

USER LAND QUESTIONS

Page 2: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 1

Int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);

The 4th argument to pthread_create Will include the return value of the thread Will include the heap of the created thread Will include the heap of the created thread if

not NULL None of the above

Page 3: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 2

Datagram sockets Are only usable in UNIX domain sockets Should not be used for internet streaming

protocols (such as RTP) Send packets that are never broken or spliced Cannot be used on Microsoft Windows

Page 4: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 3

Socket is used to Create communication end point Connect to a server Bind a port Only by programs that work with the internet

Page 5: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 4

Open(2) can be used To create a new file To open existing file To open a device All of the above

Page 6: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 5

mmap(2) should never be used In threaded application In multi process application With socket as file descriptor None of the above

Page 7: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 6 + 7

Following are functions pairs. Please specify if they are blocking (answers – a = both , b = 1st , c = 2nd d = none) (assume default flags)

Select(2), signal/sigaction(2) b

recv(2),scanf(3) a

Page 8: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 8+9

which of the following can we wait using select (a = both b=1st c = 2nd d= none)

stream socket and dgram socket a

POSIX Cond and large matrix multiplication d

Page 9: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 10

TCP server (AF_INET, SOCK_STREAM) calls functions in the following order Socket(2), connect(2), accept(2),recv(2) Open(2), bind(2), connect(2), send(2) Socket(2), bind(2), listen(2), accept(2) Open(2), bind(2), connect(2), recv(2)

Page 10: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 11

UNIX domain sockets are Faster the AF_INET socket Only work on the same host One of the many forms of IPC (Inter process

communication) All of the above

Page 11: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 12

What is wrong in the following codeWhile (time(NULL) >time_to_start)

The following code will take 100% cpu while waiting (busy waiting)

The time(2) function is deprecated The time(2) function is not thread safe There is nothing wrong with that code

Page 12: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 13

When in main we call pthread_create twice and no thread has finished. How many threads are in the process? 1 2 3 4

Page 13: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 14

Two scenarios

Scenario A process open(2) a file. Call fork(), parent calls exit(2).Child still has some work to do.

Scenario B process open(2) a file. Call pthread_create(3), first thread finishes it’s work. Calls exit(2), 2nd thread still has work to do. BOTH scenario’s are OK ONLY A scenario is OK ONLY B scenario is OK BOTH should FAIL

Page 14: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 15

We expect to find system call man pages in man 1 man 2 man 3 man 4

Page 15: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 16

We expect to find syslog output under linux (in tau labs) at /messages /var/log/messages /usr/log/messages ~root/log/messages

Page 16: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 17

GDB outputProgram terminated with signal 11, Segmentation fault.#0 0x0000000000400492 in crash_here () at crash.c:44 *c=12; The programmer accessed a memory she has not

allocated The programmer had an endless loop/damned

recursion The programmer had called a system call/function with

bad parameters The programmer divided by 0

Page 17: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 18

Process 24501 attached - interrupt to quitselect(50, [], NULL, NULL, {0, 0}) = 0 (Timeout)select(50, [], NULL, NULL, {0, 0}) = 0 (Timeout)select(50, [], NULL, NULL, {0, 0}) = 0 (Timeout)select(50, [], NULL, NULL, {0, 0}) = 0 (Timeout)select(50, [], NULL, NULL, {0, 0}) = 0 (Timeout)

What’s wrong? The programmer forgot select ruins it’s arguments There is nothing wrong with the program Select(2) FD_SET is broken Select is deprecated use pselect(2)

Page 18: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 19

In GCC –o is the compile switch –o is the output switch –o is the optimize switch none of the above

Page 19: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 20

In UNIX Each process has environment (char ** environ) Each process has Parent process ID Each process has current working directory All the above

Page 20: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 21

Syslogd Is a process Only root can write to syslog Only the kernel can write to syslog None of the above

Page 21: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 22

pid_t fork(void);

fork(2) Should never be used with the standard library If we have buffers that are not flushed they may

be duplicated Should usually not be used if we also use

threads unless we call execXX(2) afterwards B+C

Page 22: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 23

Producer-Consumer Is a situation where one task consume all the memory

and does nothing useful (while the producer actually does something that is required

Is a situation where one task consume some resource (memory/IO/CPU) damaging more important producer tasks

Is a situation where tasks that produce more output also consume more resources

Is a situation where we have two tasks one producing work packet and the other handling (=consume) them

Page 23: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 24

We can use socket messages To deliver information between process To make a cond like mechanism between process

(only after receiving the messages you can work) When we want to do I/O multiplexing and use select

to read from stdin and another process (all in a single process)

All the above

Page 24: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 25

Deadlock can occur Between threads & processes Between sockets & threads Between environment variable & sockets Between terminals & sockets

Page 25: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 26

Comparing mmap(2) and read(2)/write(2) Apis

Read/write should be used When we want to maximize performance When we have read(2)/write(2) permissions When we want to maximize portability B+C

Page 26: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 27

// lines from C program

// … if ((src = mmap (0, statbuf.st_size, PROT_READ,

MAP_SHARED, fdin, 0)) == (caddr_t) -1) // error handling removedif ((dst = mmap (0, statbuf.st_size, PROT_READ |

PROT_WRITE, MAP_SHARED, fdout, 0)) == (caddr_t) -1)// error handling removedmemcpy (dst, src, statbuf.st_size); } /* main */

Page 27: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 27

The files will not be copied because we didn’t call msync(2)

The files will not be copied because we didn’t call munmap(2)

The files will be copied after we fall from main (assuming the computer was still on)

A+B

Page 28: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

IMPORTANT NOTE REGARDING Q 27

Falling from main does not call munmap

Mmap marks buffer as dirty (as we’ll learn later)

After a while the kernel will put the dirty buffers to disk

If we call munmap we can force write. If we write again we can save writes

But under no circumstances exit checks for memory buffers and calls munmap

Page 29: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 28+29

Virtual memory Works in Linux Works in UNIX Works in Windows All of the above 

Virtual memory Reside in memory until we call rmmod Is a different kind of memory Allows running programs that require more memory then we

currently have Slows the PC down (due to page faults) and therefore is not used

in modern OS

Page 30: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 30

Which of the below is not a scheduling criterion Max CPU utilization Max throughput Min response time None of the above

Page 31: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 31

The simplest way to transfer multiple arguments to thread is Put args in a file. Transfer filename Put args in hash table. Transfer key to each thread Put args in struct. Transfer struct * There is no simple way

Page 32: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 31+32+33

Following are functions pairs. Please specify if they are blocking (answers – a = both , b = 1st , c = 2nd d = none) (assume default flags)

Toupper(3) and Lseek(2)

munmap(2) and Log(3) (linking with –lm)

Getch(3) and getopt(3)

Page 33: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 34+35

which of the following can we wait using select (a = both b=1st c = 2nd d= none)

UDS-Stream Mmap file

Standard error (stderr) FILE *

Page 34: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 36

Virtual memory algorithms (LRU, 2nd fault etc.) Minimize page faults Minimize their own processing time Minimize process wait time on ready queue Minimize virtual memory usage

Page 35: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 37 – which of the two scenarios is legal

Scenario A – process calloc(3) memory on the heap. Calls fork(2) father and child process use fcntl(2) for locking and communicate via the calloced memory as shared memory

Scenario B – process callc memory on the heap. Calls pthread_create(3) both threads use fcntl(2) for locking and communicate via the calloced memory as shared memory

Page 36: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 38

In UNIX zombie is A type of daemon that does no I/O The saved returned value of a child process that was

not yet wait(2)ed for by father A process that is doing busy waiting for a long time MS windows

Page 37: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 39

Which statement is not true Threads are simpler to create then processes We can only use Producer-Consumer in Threads

using posix cond Threads share the entire memory. Further more they

also share the process environment (FD etc.) POSIX threads require compiling with –lpthread on

Linux

Page 38: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 40

In UDS-Stream We implement all TCP algorithms (window size and

checksum) and gain performance because we limit them to local host

We can send information to remote host if we use NFS mounted files as path

We can use mmap(2) to speed up receiving time None of the above

Page 39: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 40 - GRID

GRID book-keeping Is used to decide how much to charge user for

resource consumption Is one of the methods used for GRID user

management Is only done for I/O of over 150MB Is done by each computer to monitor how much of

it's resources the GRID consumes

Page 40: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 41

Socket(2) system call Is non blocking for UDS Is required for all forms of IPC Requires –lsocket compile flag A+B

Page 41: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 42

Which of the following can be close(2)d Thread mmap(2)ed file Process Cond

Page 42: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 43

When we implement Daemons We setsid() to change our running user to root so

that we run with admin privileges We close stdin to avoid memory thrashing after

loosing controlling terminal We chdir(“/”) so that we can use syslog in

/var/log/messages instead of <cwd>/var/log/messages

We fork(2) twice or more to decrease our priority compared to user tasks

None of the above

Page 43: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 44+45+46

Regarding each pair write true or false

Virtual memory managed by MMU Include real memory Includes shared libraries Includes disk files Includes memory mapped files Includes remote memory on GRID environment Includes swapped pages

Page 44: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 47

Signal handler function Gets an int for argument the pid of the process

receiving the signal Gets an int for argument the severity of the signal Gets an int for argument the signal called Gets an int for argument – enum for the suggested

action

Page 45: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 48

SDL Is a cross platform library used to decode videos Can be used on Macintosh to simulate a VM Can be used on Linux to display video and audio Only works with Bruce Springsteen songs A+C

Page 46: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 49

Two scenarios Scenario A – Process accept(2) TCP connection. Calls

fork(2). Two things happen simultaneously. Child handles connection. Parent close(2) the socket.

Scenario B – Process accept(2) TCP connection Calls Pthread_create(3). Two things happen simultaneously. New thread handles the connection. Main thread close(2) the connection.

Page 47: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 50

Two scenarios Two process work in producer consumer environment. They

have a connection using UDS. When producer is done producing he sends a byte to consumer. Consumer is waiting on select(2)-when FD_ISSET Consumer will recv(2) 1 byte.

Two Threads work in producer consumer environment. They have a connection using UDS. When producer is done producing he sends a byte to consumer. Consumer is waiting on select(2)-when FD_ISSET Consumer will recv(2) 1 byte.

Page 48: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 51+52

51 - TWO scenarios Process forks(3) both parent and child calls strtok(3) We call pthread_create both threads call strtok_r(3)

52 – TWO scenarios (what is LEGAL!) We don’t use threads. We compile with –lpthread We use threads. We compile with –lpthread.

Page 49: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 53

Which of the following signals cannot be caught SIGKILL SIGFPE SIGSUSP None of the above A+C

Page 50: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 54

TWO scenarios Process A wants to communicate with process B

using UDS-Stream. Process A and Process B runs on different hosts. We need max throughput.

Thread A wants to communicate with thread B using UDP . Thread A and Thread B runs on different hosts. We cannot afford to lose data

Page 51: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 55

TWO Scenarios We want to bind(2) TCP and UDP sockets. We want

both sockets to be given the same name. (bind(2)ed to the same port number)

We want to bind(2) UDS-S and UDS-D sockets. We want both sockets to be given the same name. (bind(2)ed to the same path)

Page 52: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 56

Using factory I can Call constructors that require arguments that I can’t

call otherwise Create singletons in procedural languages such as C

and Assembler Add constructors to object that use the factory thus

adding functionality Decouple implementation and representation

Page 53: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 57

Codec is Compressor/decompressor such as winzip File format – such as mp3 Encoder/decoder such as XviD CoDEC (Digital equipment cooperation) a follower of

digital products

Page 54: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 58

Av_register_all() Register all the codecs in the OS Register all the codecs in the ffmpeg factory Initialize all the codecs in the OS Initialize all the codecs used in the stream

Page 55: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 59

OOP programming in C Is impossible. Is possible if we use C99 standard that add class as a

reserved word in C Is actually C++ for example – we add class and

constructors but we don’t use STL so it’s still C. Is often done in UNIX. Sometimes conceptually and

sometimes mechanically as the language doesn’t have some mechanics

Page 56: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS

Question 60

All Factories and the Process signal table both hold Event handlers Pointers to functions SIGCHLD Ints as keys

Page 57: EXAM STYLE QUESTIONS ON USER SPACE USER LAND QUESTIONS