Can the mutex be locked by one kernel thread and unlocked by another kernel thread?
Can the solaris semaphores be used in the interrupt context?
Following a panic and a core dump, what is done to recreate the core files for debugging?
Use dumpadm to create the core files. 0%
Use savecore to create the core files. 0%
Nothing needs to be done; the os guarantees that the core files are always saved. 0%
Use dd to move the core files from the dump device to the filesystem. 0%
How many LWPs must a process have to maximize its parallelism?
None 0%
Two 0%
It should be the same as the number of processors. 0%
It should be a factor of the available RAM. 0%
How many times can a semaphore be acquired without blocking?
It depends on the count associated with the semaphore. 0%
1 0%
2 0%
0 0%
If there is contention between readers and writers on an rw lock, which of them are given preference over the other?
Readers 0%
Writers 0%
Neither (there is FCFS granting of locks). 0%
Both (there is one grant from either group). 0%
In which of the following contexts do callouts run?
User 0%
Kernel thread. 0%
LWP 0%
Interrupt. 0%
In which of the following contexts does the solaris kernel handle interrupts?
User context. 0%
LWP context. 0%
On a separate interrupt stack without any special context. 0%
In a kernel thread context. 0%
In which of the following driver interfaces should device instance specific resources be handled?
_init; _fini 0%
open; close 0%
attach; detach 0%
probe 0%
Is it possible to take a core dump of a live system?
Is the glock necessary if a filesystem does not implement the mmap interface?
Is the memory allocated by kmem_alloc paged?
Is the solaris kernel fully preemtible?
Is the thread allowed to perform any kind of blocking operation while holding a mutex?
On a solaris system with no special kmem_flag settings, what happens when a thread running buggy code frees a buffer twice.
The results are unpredictable including a panic. 0%
The kernel fails the second kmem_free. 0%
The kernel kills the thread with a SEGFAULT. 0%
The second free is harmless as the kernel knows that the memory has already been freed. 0%
On a sparc system, which of the register set of a calling function is passed on as input registers to the called function?
input 0%
output 0%
local 0%
global 0%
Solaris rw locks are recursive locks. A thread that already holds a lock in the read mode can acquire the lock in the read mode again.
The condition variable synchronization primitives need which of the following primitives to be employed by the client code to function correctly?
Reader-writer locks. 0%
Mutex 0%
Semaphore 0%
Spin lock 0%
The memory allocated by kmem_alloc is private to the kernel thread that allocated it.
The OS can unload a module automatically if needed.
The OS guarantees that a thread blocked on a cv via a cv_wait call does not wakeup prematurely and hence does not need to re-check for the reason for blocking.
What are the basic mutex operations supported by the solaris operating system?
Initializing and deinitializing the mutex 0%
Exclusively locking and unlocking the mutex 0%
Reader writer locking semantics on the mutex 0%
Try acquire mutex exclusive 0%
What are the commands to load and unload the kernel module 'mymod'?
insmod mymod; rmmod mymod 0%
pkgadd mymod; pkgrm mymod 0%
modload mymod; modunload mymod 0%
modload mymod; modunload -i moduleid 0%
What do the following mdb commands do? ::allocdby ::freedby
They are used to print the log of transactions on a particular memory location. 0%
They are used to print the log of transactions by a particular thread. 0%
They are used to print the slab cache that refers to the particular address. 0%
They are used to print the arenas that refer to the particular address. 0%
What does the cv_wait_sig interface do?
It waits on the CV until the thread receives a specified external signal (sent via kill(2)). 0%
It waits on the CV until the thread receives a wakeup. It returns 0 if the thread receives an external signal (sent via kill(2)). 0%
It waits on the CV and ignores the specified signal but returns 0 if some other signal is received. 0%
It registers a call back with the kernel for the specified signal. 0%
What does the following kernel interface do? rw_lock_held(lock pointer);
It checks if the lock is held in the read mode. 0%
It checks if the lock is held in the write mode. 0%
It does 'a' and locks it in the write mode. 0%
It does 'b' and locks it in the read mode. 0%
What does the OS do when it detects a page fault on a valid address?
It calls the VOP_READ interface of the vnode to fetch the data. 0%
It calls the VOP_MMAP interface of the vnode to fetch the data. 0%
It calls the buffer cache get block interface to fetch the data. 0%
It calls VOP_GETPAGE interface of the vnode to fetch the data. 0%
What does the v_vfsmountedhere field of a vnode indicate?
If set to 1, it indicates that a filesystem is mounted on that vnode. 0%
It points to the root vnode of the filesystem to which the vnode belongs. 0%
It points to the vfs structure of the mounted on filesystem. 0%
It points to the root vnode of the mounted on filesystem. 0%
What does the VFS_ROOT interface do?
It takes a vnode and a vfs and markes (marks or makes?) the vnode as the root vnode for the filesystem. 0%
It returns the root vnode of the specified vfs. 0%
It returns the parent vnode of the specified vnode. 0%
It returns the parent vfs of the specified vfs. 0%
What does the vfs_vnodecovered field of a vfs structure indicate?
It points to the mounted on directory's vnode structure. 0%
It points to the root inode of the filesystem. 0%
It points to the root directory of the parent filesystem. 0%
It points to the vfs structure of the parent filesystem. 0%
What does the VOP_INACTIVE interface do?
It drops the reference count on a vnode. 0%
It deletes all data associated with a vnode. 0%
It drops the reference count on a vnode and if required it deletes all data associated with a vnode. 0%
It increments the reference count on a vnode. 0%
What happens if a driver running on a sparc processor tries to access a 32 bit quantity which is aligned on a 16 bit boundary?
The processor automatically handles this situation. 0%
The system panics. 0%
Such a driver code will not be compiled. 0%
Such a driver code will not be loaded. 0%
What is the command to boot into the kernel debugger (kadb) from an 'ok' prompt?
boot kadb 0%
kadb 0%
unix kadb 0%
go kadb 0%
What is the compiler option to generate a 64 bit binary loadable on a sparc machine?
-xarch=v5 0%
-xarch=v9 0%
-64 0%
-target=64 0%
What is the correct way of deinitializing a mutex on solaris?
mutex_deinit(lock pointer) 0%
mutex_destroy(lock pointer) 0%
mutex_deinitialize(lock pointer) 0%
lockpointer-mutex_deinit() 0%
What is the correct way of initializing a mutex on solaris?
mutex_init(lock pointer, lock name, type of mutex) 0%
mutex_init(lock pointer) 0%
mutex_enter(lock pointer) 0%
mutex_initialize(lock pointer) 0%
What is the driver configuration file for a 64 bit target module 'mymod'?
/kernel/drv/mymod.conf 0%
/kernel/drv/sparcv9/mymod.conf 0%
/etc/system 0%
/usr/lib/mymod.conf 0%
What is the kernel interface to initialize a reader writer lock?
readwrite_init(lock pointer) 0%
rw_initialize(lock pointer) 0%
rw_init(lock pointer) 0%
rw_enter(lock pointer) 0%
What is the outcome if an interrupt handler needs to block on a resource?
The kernel will detect this situation and will panic the system. 0%
The system will hang. 0%
The interrupt handler will block until it can run again. 0%
None of the above. 0%
What is the significance of setting the kernel global variable 'kmem_flags' to '0xf'?
It turns on buffer redzone (write past end of buffer). 0%
It turns on freed buffer checking. 0%
It turns on allocator auditing. 0%
It turns on uninitialized data checking. 0%
All of the above 0%
What sequence of key strokes is required to trap into the kadb in a live session?
STOP-A on sun keyboards. 0%
send brk via a telnet session. 0%
CTRL-A on sun keyboards. 0%
tip b via a serial console session. 0%
Where is the following memory allocation type typically employed? memp = kmem_alloc(size, KM_NOSLEEP);
In the user context code as a backend to malloc. 0%
In the kernel context where every place memory needs to be allocated. 0%
In the interrupt context. 0%
In the buffer cache. 0%
Which of the following abstractions enables a multi-threaded application to take advantage of the available parallelism?
User threads. 0%
LWP. 0%
Kernel threads. 0%
User processes. 0%
Which of the following abstractions is the fundamental schedulable entity on a solaris machine?
User process. 0%
LWP. 0%
Kernel thread. 0%
Interrupt handler. 0%
Which of the following adb/kadb commands can be used to determine the function which caused the panic?
$<msgbuf 0%
panic address?ia 0%
$r 0%
$C 0%
Which of the following buffer structure fields specifies the direction of IO transfer, the transfer size and the virtual address of the data?
b_flags 0%
b_bcount 0%
b_un 0%
b_blkno 0%
Which of the following cache entries need to be purged/invalidated if a file is deleted?
DNLC 0%
Page Cache 0%
Buffer Cache 0%
Inode Cache 0%
Which of the following caches doesnot change its size dynamically on older solaris systems?
Page Cache 0%
Vnode Cache 0%
Inode Cache 0%
Buffer Cache 0%
Which of the following calls fits in at 'statement xxx' to produce correct results in the code snippet below? mutex_enter(mutex pointer); while (condition is false) { cv_wait(cv pointer, mut...
mutex_enter(mutex pointer) 0%
mutex_exit(mutex_pointer) 0%
nothing needs to be done. 0%
cv_signal(cv pointer) 0%
Which of the following commands can be used to examine and delete kernel breakpoints?
$b, :d 0%
::break, ::delete 0%
$b, ::delete 0%
display break, delete break 0%
Which of the following commands can be used to examine the panic stack trace?
$r 0%
$<msgbuf 0%
$C 0%
$<threadlist 0%
Which of the following commands prints out the kernel device tree?
ls 0%
drvconf 0%
prtconf 0%
devlinks 0%
Which of the following components is responsible for speeding up file paths to inode lookups?
Page Cache 0%
DNLC 0%
Buffer Cache 0%
Vnode Cache 0%
Which of the following CV interfaces can be used to wakeup exactly one waiter?
cv_broadcast 0%
cv_wakeone 0%
cv_wakeall 0%
cv_signal 0%
Which of the following debuggers allow extensive customization and supports user written pluggable debugging modules?
adb 0%
dbx 0%
crash 0%
mdb 0%
Which of the following does the OS use for caching user data?
Buffer Cache 0%
Inode Cache 0%
Page Cache 0%
DNLC 0%
Which of the following firmware commands causes a kernel core file to be dumped to the dump device?
$sync 0%
sync 0%
dump 0%
$dump 0%
Which of the following has the lowest scheduling latency?
User thread. 0%
Kernel thread. 0%
User Process. 0%
LWP. 0%
Which of the following information must be tracked explicitly by a driver that allocates memory via kmem_alloc?
The address of the allocated memory. 0%
The size of the allocated memory. 0%
The alignment of the allocated memory. 0%
The thread that allocated the memory. 0%
Which of the following interfaces are invoked by the OS to flush all data belonging to a filesystem to a disk?
VOP_FSYNC 0%
VFS_SYNC 0%
VOP_PUTPAGE 0%
VOP_WRITE 0%
Which of the following interfaces can be used by a driver interface routine to copy data from and to the user address space?
memcpy 0%
bcopy 0%
copyin;copyout 0%
memmove 0%
Which of the following interfaces can be used to avert a thundering herd of waiters?
cv_broadcast 0%
cv_signal 0%
cv_wakeall 0%
cv_wakeone 0%
Which of the following interfaces does the OS call to translate path names to vnodes?
VOP_LOOKUP 0%
VOP_READDIR 0%
VOP_GETPAGE 0%
VOP_READ 0%
Which of the following interfaces is equivalent to acquiring a lock?
sema_v 0%
sema_p 0%
sema_init 0%
sema_lock 0%
Which of the following interfaces is the preferred way for drivers to log messages?
printf 0%
cmn_err 0%
dmesg 0%
log 0%
Which of the following interfaces is used by the driver to signal the completion of an IO initiated by a strategy call?
biowait 0%
cv_broadcast 0%
biodone 0%
cv_signal 0%
Which of the following interfaces must be implemented by every loadable driver?
_init; _fini 0%
_init; _fini; probe 0%
_init; _info; _fini 0%
_init; _fini; open; close 0%
Which of the following interfaces needs to be implemented for a filesystem to support swap files?
VOP_WRITE and VOP_READ 0%
VOP_GETPAGE and VOP_PUTPAGE 0%
VOP_MAP and VOP_UNMAP 0%
VOP_PAGEIO 0%
Which of the following interfaces to a block device driver does the filesystem use?
int strategy(struct vnode *); 0%
int strategy(struct buf *); 0%
void strategy(struct uio *); 0%
int strategy(struct file *); 0%
Which of the following is pageable?
kernel stack. 0%
user addresses. 0%
kernel heap. 0%
kernel code. 0%
Which of the following is true if an interrupt thread needs to block on a resource?
Interrupt threads on solaris cannot block. 0%
They can be scheduled to run on a different processor once they are runnable. 0%
They are scheduled to run on the same processor. 0%
The system hangs. 0%
Which of the following is true of memory allocated by kmem_alloc?
It is physical memory. 0%
It is virtual memory. 0%
It is pageable. 0%
It is a part of the global kernel heap. 0%
Which of the following is true of the memory allocated by kmem_alloc?
It is double word aligned. 0%
It is pageable. 0%
It is zero initialized. 0%
Its availability is limited to the amount of physical memory. 0%
Which of the following kadb macros is useful in determining the panic address?
$<panic 0%
*panicstr 0%
$<msgbuf 0%
$r 0%
Which of the following kadb/adb commands prints the contents of the register set at a particular stack depth?
$<msgbuf 0%
$C 0%
$r 0%
$b 0%
Which of the following kadb/adb macros can be used to examine the stack traces of all the kernel threads?
$<stack 0%
$<traceall 0%
$<threadlist 0%
$<msgbuf 0%
Which of the following kernel defined data types is involved in the interface calls to manipulate CVs?
kmutex_t 0%
kcondvar_t 0%
vnode_t 0%
page_t 0%
Which of the following kernel interfaces can be used by a driver interface like open to identify the specific device instance involved in the operation?
getmajor(dev_t) 0%
getminor(dev_t) 0%
open 0%
((dev_t) dev) & 0xFFFF0000; 0%
Which of the following kernel subsystems employs a semaphore for synchronization?
Inode Cache 0%
Buffer Cache 0%
Page Cache 0%
DNLC 0%
Which of the following locking sequences is correct?
rw_init; rw_enter; rw_destroy 0%
rw_enter; rw_destroy 0%
rw_init; rw_enter; rw_exit; rw_destroy 0%
rw_init; rw_tryenter; unconditional rw_exit; rw_destroy 0%
Which of the following locks is used to serialize reads and writes on a vnode?
The global VFS lock. 0%
The locks on the page structures. 0%
The VOP_RWLOCK. 0%
The locks on the buffer structures. 0%
Which of the following mechanisms enables solaris to support real time applications?
Hidden scheduling. 0%
Priority inheritance. 0%
Priority inversion. 0%
Interrupts. 0%
Which of the following operations results in the page cache being populated?
memory mapped IO 0%
read(2)/write(2) system calls 0%
opening a regular unix file. 0%
opening a socket. 0%
Which of the following sequences correctly builds the loadable module 'mymod'?
cc mymod.c 0%
cc -o mymod.o mymod.c; ld -o mymod mymod.o 0%
cc -D_KERNEL mymod.c 0%
cc -D_KERNEL -o mymod.o; ld -r -o mymod mymod.o 0%
Which of the following sequences involving a CV is correct if a thread wants to wait for an event?
cv_init; mutex_enter; cv_wait; mutex_exit; cv_destroy 0%
cv_init; cv_wait; cv_destroy 0%
cv_init; cv_signal; cv_destroy 0%
cv_init; cv_timedwait; cv_destroy 0%
Which of the following sets does a breakpoint at the start of the kernel function ufs_read?
ufs_read:b 0%
ufs_read!break 0%
::break ufs_read 0%
ufs_read>break 0%
Which of the following sparc instructions causes a register window context to be created?
ldstub 0%
save 0%
restore 0%
movrw 0%
Which of the following sparc instructions forms the basis of all other locking strategies?
lock 0%
ldstub 0%
movsb 0%
save 0%
Which of the following sparc instructions is employed before returning from a function to restore the original context?
restore 0%
pop 0%
revert 0%
ret 0%
Which of the following structures describes the user initiated IOs?
struct buf 0%
struct file 0%
struct uio 0%
struct sio 0%
Which of the following structures keeps track of the positional offset within the file where the next IO is to be performed?
struct file 0%
struct vnode 0%
struct inode 0%
struct proc 0%
Which of the following types of information is stored within the buffer cache?
Filesystem Metadata 0%
User Pages backed by files. 0%
Anonymous Pages. 0%
DNLC entries. 0%
Why should floating point operations be avoided in drivers?
Because solaris does not support floating point operations at all. 0%
Because the sparc hardware does not support floating point operations. 0%
Because the kernel does not support floating point operations. 0%
Because they are expensive to perform. 0%