TYPICAL
QUESTIONS & ANSWERS
PART
- I
OBJECTIVE TYPE QUESTIONS
Each
Question carries 2 marks.
Choose
correct or the best alternative in the following:
Q.1 Translator for low level programming language were termed as
(A) Assembler (B) Compiler
(C) Linker (D) Loader
Ans: (A)
Q.2 Analysis which determines the meaning of a statement once its grammatical structure becomes known is termed as
(A) Semantic analysis (B) Syntax analysis
(C) Regular analysis (D) General analysis
Ans: (A)
Q.3 Load address for the first word of the program is called
(A) Linker
address
origin (B) load address origin
(C) Phase library (D) absolute library
Ans: (B)
Q.4 Symbolic names can be associated with
(A) Information
(B) data or instruction
(C) operand (D) mnemonic operation
Ans: (B)
Q.5 The translator which perform macro
expansion is called a
(A) Macro
processor
(B) Macro pre-processor
(C) Micro pre-processor (D) assembler
Ans: (B)
Q.6 Shell is
the exclusive feature of
(A) UNIX
(B) DOS
(C) System software (D) Application software
Ans: (A)
Q.7 A program in execution is called
(A)
Process
(B) Instruction
(C) Procedure (D) Function
Ans: (A)
Q.8 Interval between the time of submission and completion of the job is called
(A) Waiting
time (B)
Turnaround time
(C) Throughput (D) Response time
Ans:
(B)
Q.9 A scheduler which selects processes from secondary storage device is called
(A) Short term
scheduler.
(B) Long term scheduler.
(C) Medium term scheduler. (D) Process scheduler.
Ans: (C)
Q.10 The scheduling in which CPU is allocated to the process with least CPU-burst time is called
(A) Priority
Scheduling
(B) Shortest job first Scheduling
(C)
Round Robin
Scheduling
(D) Multilevel Queue Scheduling
Ans: (B)
Q.11 The term ‘page
traffic’ describes
(A) number of pages in
memory at a given instant.
(B) number of papers required to be
brought in at a given page request.
(C) the movement of pages in and
out of memory.
(D) number of pages of
executing programs loaded in memory.
Ans: (C)
Q.12 The “turn-around” time of a user job is the
(A) time
since its submission to the time its results become available.
(B)
time duration for which the CPU is allotted to the job.
(C)
total time taken to
execute the job.
(D) time taken
for the job to move from assembly phase to completion phase.
Ans:
(C)
Q.13 Which of the
following can be used as a criterion for classification of data structures used in language
processing.
(A) nature
of a data
structure
(B) purpose of a data
structure
(C) lifetime of a
data
structure (D)
all of the above.
Ans: (D)
Q.14 Memory utilization factor shall be computed as follows
(A) memory
in use/allocated memory.
(B) memory in use/total memory
connected.
(C) memory allocated/free
existing memory.
(D) memory committed/total
memory available.
Ans: (B)
Q.15 Program ‘preemption’
is
(A) forced de allocation of the CPU from a program which is executing on the
CPU.
(B) release of CPU by the program after completing its task.
(C) forced allotment of CPU by a program to itself.
(D) a program terminating itself due to detection of an error.
Ans: (A)
Q.16 An assembler is
(A) programming language dependent.
(B) syntax dependant.
(C) machine dependant.
(D) data
dependant.
Ans: (C)
Q.17 Which of the following is not a fundamental process state
(A) ready
(B) terminated
(C)
executing (D)
blocked
Ans: (D)
Q.18 ‘LRU’ page replacement policy is
(A) Last
Replaced
Unit. (B) Last Restored Unit.
(C) Least Recently Used. (D) Least Required Unit.
Ans: (C)
Q.19 Which of the following is true?
(A) Block
cipher technique is an encryption technique.
(B) Steam
cipher technique is an encryption technique.
(C) Both (A) and (B).
(D) Neither of
(A) and (B).
Ans: (C)
Q.20 Which of the following approaches do not require knowledge of the system state?
(A) deadlock
detection.
(B) deadlock prevention.
(C) deadlock avoidance.
(D) none of the above.
Ans: (D)
Q.21 Program generation activity aims at
(A) Automatic generation of program
(B) Organize execution of a
program written in PL
(C) Skips
generation of program
(D) Speedens
generation of program
Ans: (A)
Q.22 Which amongst the following is not an advantage of Distributed systems?
(A) Reliability
(B) Incremental growth
(C) Resource
sharing
(D) None of the above
Ans: (A)
Q.23 An imperative statement
(A) Reserves areas of memory and associates names with
them
(B)
Indicates
an action to be performed during execution of assembled program
(C) Indicates an action to be performed during
optimization
(D) None of the above
Ans: (B)
Q.24 Which of the following loader is executed when a system is first turned on or restarted
(A) Boot
loader (B) Compile and Go loader
(C) Bootstrap loader
(D) Relating loader
Ans: (C)
Q.25 Poor response time is usually caused
by
(A) Process busy
(B) High I/O rates
(C) High paging rates
(D)
Any of the above
Ans: (D)
Q.26 “Throughput” of a system is
(A) Number of programs processed by it per unit time
(B) Number of times the program is invoked by the system
(C) Number of requests made to a program by the system
(D) None
of the above
Ans:
(A)
Q.27 The “blocking factor” of a file is
(A) The number of blocks accessible to a
file
(B) The number of blocks allocated to a file
(C)
The number of
logical records in one physical record
(D) None
of the above
Ans: (C)
Q.28 Which of these is a component of a process precedence sequence?
(A) Process
name
(B) Sequence operator ‘;’
(C) Concurrency operator
‘,’
(D) All of the above
Ans: (D)
Q.29 Which amongst the following is valid syntax of the Fork and Join Primitive?
(A) Fork
<label>
(B) Fork <label>
Join <var>
Join <label>
(C) For
<var> (D)
Fork <var>
Join
<var>
join <var>
Ans: (A)
Q.30 Nested Macro calls are expanded using the
(A) FIFO
rule (First in first out) (B)
LIFO (Last in First out)
(C) FILO rule (First
in last out) (D) None of the above
Ans: (B)
Q.31 A parser which is a variant of top-down parsing without backtracking is
(A) Recursive Descend. (B) Operator Precedence.
(C) LL(1) parser. (D) LALR Parser.
Ans: (A)
Q.32 The expansion of nested macro calls follows
(A) FIFO rule. (B) LIFO rule.
(C) LILO rule. (D) priority rule.
Ans: (B)
Q.33. In a two-pass assembler, the task of the Pass II is to
(A) separate the symbol, mnemonic opcode and operand fields.
(B) build the symbol table.
(C) construct intermediate code.
(D) synthesize the target program.
Ans: (D)
Q.34 A linker program
(A) places the program in the memory for the purpose of execution.
(B) relocates the program to execute from the specific memory area
allocated to it.
(C) links the
program with other programs needed for its execution.
(D) interfaces the program with the entities generating its input data.
Ans: (C)
Q.35 Which scheduling policy is most suitable for a time-shared operating system
(A) Shortest-job First. (B) Elevator.
(C) Round-Robin. (D) First-Come-First-Serve.
Ans: (C)
Q.36 A critical section is a program segment
(A) which should run in a certain specified amount of time.
(B) which avoids deadlocks.
(C) where shared
resources are accessed.
(D) which must be enclosed by a pair of semaphore operations, P and V.
Ans: (C)
Q.37 An operating system contains 3 user processes each requiring 2 units of resource R .The minimum number of units of R such that no deadlocks will ever arise is
(A) 4. (B) 3.
(C) 5. (D) 6.
Ans: (A)
Q.38 Locality of reference implies that the page reference being made by a process
(A) will always be to the page used in the previous page reference.
(B) is likely
to be the one of the pages used in the last few page references.
(C) will always be to one of the pages existing in memory.
(D)will always lead to a page fault.
Ans: (B)
Q.39 Which of these is not a part of Synthesis
phase
(A) Obtain machine code corresponding to the mnemonic from
the Mnemonics table
(B) Obtain address of a memory operand from the symbol table
(C) Perform
LC processing
(D) Synthesize a machine instruction or the machine form of a
constant
Ans: (C)
Q.40 The syntax of the assembler directive EQU is
(A) EQU
<address
space> (B)
<symbol>EQU<address space>
(C) <symbol>EQU
(D) None of the above
Ans: (B)
Q.41 The following features are needed to implement top down parsing
(A) Source string
marker
(B) Prediction making mechanism
(C) Matching and Backtracking mechanism
(D)
All
of the above
Ans: (D)
Q.42 A macro definition consists of
(A) A macro
prototype statement (B) One or more model statements
(C) Macro pre-processor statements (D) All of the above
Ans:
(D)
Q.43 The main reason to encrypt a file is
to ______________.
(A) Reduce its
size (B) Secure it for transmission
(C) Prepare it for
backup
(D) Include it in the start-up
sequence
Ans: (B)
Q.44 Which of the following is not
a key piece of information, stored in single page table entry, assuming pure paging and
virtual memory
(A) Frame number
(B) A bit indicating whether the page is in physical memory or on the
disk
(C) A reference for the disk block
that stores the page
(D) None of the
above
Ans: (C)
Q.45 A UNIX device driver is
(A) Structured into two halves called top half and bottom half
(B) Three equal partitions
(C) Unstructured
(D) None
of the above
Ans: (A)
Q.46 The following is not a layer of IO management module
(A) PIOCS
(Physical Input Output Control System)
(B) LIOCS
(Logical Input Output Control System)
(C) FS
(File System)
(D) MCS (Management Control System)
Ans: (D)
Q.47 Which amongst the following is not a valid page replacement policy?
(A) LRU
policy (Least Recently Used)
(B) FIFO policy
(First in first out)
(C) RU policy (Recurrently used)
(D) Optimal page
replacement policy
Ans: (C)
Q.48 Consider a program with a linked origin of 5000. Let the memory area allocated to it have the start address of 70000. Which amongst the following will be the value to be loaded in relocation register?
(A) 20000
(B) 50000
(C)
70000
(D) 90000
Ans: (None of the above choice in correct. )
Q.49 An assembly language is a
(A) low level programming language
(B) Middle level programming language
(C) High level programming language
(D) Internet based programming language
Ans: (A)
Q.50 TII stands for
(A) Table of incomplete instructions
(B) table of information instructions
(C) translation of instructions information
(D) translation of information instruction
Ans: (A)
Q.51 An analysis, which determines the syntactic structure of the source statement, is called
(A) Sementic analysis (B) process analysis
(C) Syntax analysis (D) function analysis
Ans: (C)
Q.52 Action implementing instruction’s meaning are a actually carried out by
(A) Instruction fetch
(B) Instruction decode
(C) instruction execution
(D) Instruction program
Ans: (C)
Q.53 The field that contains a segment index or an internal index is called
(A) target datum (B) target offset
(C) segment field (D) fix dat
Ans: (A)
Q.54 A program in execution is called
(A) process (B) function
(C) CPU (D) Memory
Ans: (A)
Q.55 Jobs which are admitted to the system for processing is called
(A) long-term scheduling (B) short-term scheduling
(C) medium-term scheduling (D) queuing
Ans: (A)
Q.56 A set of techniques that allow to execute a program which is not entirely in memory is called
(A) demand paging (B) virtual memory
(C) auxiliary memory (D) secondary memory
Ans: (B)
Q. 57 SSTF stands for
(A) Shortest-Seek-time-first scheduling (B) small – small-time-first
(C) simple-seek-time-first (D) small-simple-time-first scheduling
Ans: (A)
Q.58 Before proceeding with its execution, each process must acquire all the resources it needs is called
(A) hold and wait (B) No pre-emption
(C) circular wait (D) starvation
Ans:
(A)
Q.59 Virtual memory is
(A) simple to implement
(B) used in all major commercial operating systems
(C) less efficient in utilization of memory
(D) useful when fast I/O devices are not available
Ans: (B)
Q.60 Relocation bits used by relocating loader are specified by
(A) Relocating loader itself (B) Assembler or Translator
(C) Macro processor (D) Both (A) and (B)
Ans: (B)
Q.61 Resolution of externally defined symbols is performed by
(A)
Linker (B) Loader
(C) Compiler (D) Editor
Ans: (A)
Q.62 Relocatable programs
(A) cannot be used with fixed
partitions
(B) can be loaded almost anywhere in memory
(C) do not need a linker
(D) can be loaded only at one specific location
Ans: (B)
Q.63 Page stealing
(A)
is a sign of efficient
system
(B) is taking page frames other working sets
(C) should be the tuning goal
(D) is taking larger disk spaces
for pages paged out
Ans: (B)
Q.64 The total time to prepare a disk drive mechanism for a block of data to be read from is its
(A) latency
(B) latency plus transmission time
(C) latency plus seek time
(D) latency plus seek time plus transmission time
Ans: (C)
Q.65 To avoid race condition, the maximum number of processes that may be simultaneously inside the critical section is
(A) zero (B) one
(C) two (D) more than two
Ans: (B)
Q.66 The memory allocation scheme subject to “external” fragmentation is
(A)
segmentation (B) swapping
(C) pure demand paging (D) multiple fixed contiguous partitions
Ans: (A)
Q.67 Page fault frequency in an operating system is reduced when the
(A) processes tend to the I/O-bound
(B) size of pages is reduced
(C) processes tend to be CPU-bound
(D) locality of reference is applicable to the process
Ans: (D)
Q.68 In which of the following page replacement policies Balady’s anomaly occurs?
(A)
FIFO (B) LRU
(C) LFU (D) NRU
Ans: (A)
Q.69 Which of the following are language processors?
(A) Assembler (B) Compiler
(C) Interpreter (D) All of the above
Ans: (D)
Q.70 Virtual memory can be implemented with
(A) Segmentation (B) Paging
(C) None (D) all of the above
Ans:
(D)
Q.71 Recognition of basic syntactic constructs through reductions, this
task is performed
by
(A) Lexical analysis (B) Syntax analysis
(C) Semantic analysis (D) Structure analysis
Ans: (B)
Q.72 A grammar for a programming language is a formal description of
(A) Syntax (B) Semantics
(C) Structure (D) Code
Ans:
(C)
Q.73 ____________ is a technique of temporarily removing inactive programs from the memory of computer system
(A) Swapping (B) Spooling
(C) Semaphore (D) Scheduler
Ans: (A)
Q.74 ___________ is a technique of improving the priority of process waiting in Queue for CPU allocation
(A) Starvation (B) Ageing
(C) Revocation (D) Relocation
Ans: (B)
Q.75 ________ is the time required by a sector to reach below read/write head.
(A) Seek Time (B) Latency Time
(C) Access time (D) None
Ans: (B)
Q.76 Which of the following is most general phase structured grammar?
(A) Context – Sensitive (B) Regular
(C) Context – Free (D) None of the above
Ans: (A)
Q.77 File record length
(A) Should always be fixed
(B) Should always be variable
(C) Depends upon the size of file
(D) Should be chosen to match the data characteristics.
Ans: (D)
Q.78 A public key encryption system
(A) Allows only the correct receiver to decode the data
(B) Allows only one to decode the transmission.
(C) Allows only the correct sender to decode the data.
(D) Does not encode the data before transmitting it.
Ans: (A)
PART
– II
DESCRIPTIVES
Q.1. Discuss in detail Table management Techniques? (7)
Ans:
An Assembler uses the following tables:
OPTAB: Operation Code Table
Contains mnemonic operation code and its machine language equivalent.
SYMTAB:
Symbol Table maintains symbolic label, operand and
their corresponding machine.
LITTAB is a table of literals used in the program
For efficiency reasons SYMTAB must
remain in main memory throughout passes I and II of the assembler. LITTAB
is not accessed as frequently as SYMTAB, however it may be accessed
sufficiently frequently to justify its presence in the memory. If memory is at
a premium, only a part of LITTAB can be kept in memory. OPTAB should be in
memory during pass I
Q.2 Define the
following:
(i) Formal language Grammars.
(ii) Terminal symbols.
(iii) Alphabet and String. (9)
Ans:
·
A
finite set N of non terminal symbols.
·
A
finite set Σ of terminal
symbols that is disjoint
from N.
·
A
finite set P of production rules, each rule of the form
where * is the Kleene star
operator and denotes set union. That is, each production rule maps
from one string of symbols to another, where the first string contains at least
one non terminal symbol.
·
A
distinguished non terminal symbol from set N that is the start symbol.
(ii)Terminal symbols are literal strings forming the input of a formal grammar and
cannot be broken down into smaller units without losing their literal meaning.
In simple words, terminal symbols cannot be changed using the rules of the
grammar; that is, they're the end of the line, or terminal. For example, if the
grammar rules are that x can become xa and x can become ax,
then a is a terminal symbol because it cannot become something else. These are
the symbols which can appear as it is in the programme.
(iii) A finite set of symbols is called alphabet. An alphabet is often denoted by sigma, yet can be given any name.
B = {0, 1} says B is an alphabet of two symbols, 0 and 1.
C = {a, b, c} says C is an alphabet of three symbols, a, b and c.
Sometimes space and comma are in an alphabet while other times they are meta symbols used for descriptions. A language is defined over an alphabet. For example binary language is defined over alphabet B.
A finite sequence of symbols from an alphabet is called string or word.
01110 and 111 are strings from the alphabet B above.
aaabccc and b are strings from the alphabet C above.
A null string is a string with no symbols, usually denoted by epsilon has zero length.
Q.3. What is parsing? Write down the
drawback of top down parsing of backtracking.
(7)
Ans:
Parsing is the process of analyzing a text, made of a
sequence of tokens, to determine its grammatical structure with respect to a
given formal grammar. Parsing is also known as syntactic analysis and parser is
used for analyzing a text. The task of the parser is essentially to determine if and how the input can
be derived from the start symbol of the grammar. The input is a valid input
with respect to a given formal grammar if it can be derived from the start
symbol of the grammar.
Following are drawbacks of top down
parsing of backtracking:
(i)
Semantic
actions cannot be performed while making a prediction. The actions must be
delayed until the prediction is known to be a part of a successful parse.
(ii) Precise error reporting is not possible. A mismatch merely triggers backtracking. A source string is known to be erroneous only after all predictions have failed.
Q.4. Give the Schematic of Interpretation of HLL program and execution of a machine language program by the CPU. (8)
Ans:
The CPU uses a program counter (PC) to note the address of next instruction to be executed. This instruction is subjected to the instruction execution cycle consisting of the following steps:
1. Fetch the instruction.
2. Decode the instruction to determine the operation to be performed, and also its operands.
3.Execute the instruction.
At the end of the cycle, the instruction address in PC is updated and the cycle is repeated for the next instruction. Program interpretation can proceed in a similar manner. The PC can indicate which statement of the source program is to be interpreted next. This statement would be subjected to the interpretation cycle, which consists of the following steps:
3. Execute the meaning of the statement.
Q.5. Give the difference between
multiprogramming and multiprocessing. (5)
Ans:
A multiprocessing
system is a computer hardware configuration that includes more than one
independent processing unit. The term multiprocessing is generally used to
refer to large computer hardware complexes found in major scientific or
commercial applications. The multiprocessor system is characterized
by-increased system throughput and application speedup-parallel processing. The
main feature of this architecture is to provide high speed at low cost in
comparison to uni- processor.
A
multiprogramming operating
system is system that allows more than one active user program (or part of user
program) to be stored in main memory simultaneously. Multi programmed operating
systems are fairly sophisticated. All the jobs that enter the system are kept
in the job pool. This pool consists of all processes residing on mass storage
awaiting allocation of main memory. If several jobs are ready to be brought
into memory, and there is not enough room for all of them, then the system must
choose among them. A time-sharing system is a multiprogramming system.
Q.6. Write down different system
calls for performing different kinds of tasks. (4)
Ans:
A system call is a request made by any
program to the operating system for performing tasks -- picked from a
predefined set -- which the said program does not have required permissions to
execute in its own flow of execution. System calls provide the interface
between a process and the operating system. Most operations interacting with
the system require permissions not available to a user level process, e.g. I/O
performed with a device present on the system or any form of communication with
other processes requires the use of system calls.
The
main types of system calls are as follows:
• Process Control: These types of system
calls are used to control the processes. Some examples are end, abort, load,
execute, create process, terminate process etc.
• File Management: These types of system
calls are used to manage files. Some examples are Create file, delete file,
open, close, read, write etc.
• Device Management: These types of
system calls are used to manage devices. Some examples are Request device,
release device, read, write, get device attributes etc.
Q.7. Differentiate
between pre-emptive and non-pre-emptive scheduling. (4)
Ans:
In a pre-emptive
scheduling approach, CPU can be taken away from a process if there is a
need while in a non-pre-emptive approach if once a process has been
given the CPU, the CPU cannot be taken away from that process, unless the
process completes or leaves the CPU for performing an Input Output.
Pre-emptive scheduling is more useful in high priority process which requires immediate response, for example in real time system. While in nonpreemptive systems, jobs are made to wait by longer jobs, but treatment of all processes is fairer.
Q.8. CPU burst time indicates the time, the process needs the CPU. The following are
the set of processes with their respective CPU burst time
(in milliseconds).
Processes
CPU-burst time
Calculate the average
waiting time if the process arrived in the following order:
(i) P1, P2 & P3 (ii) P2, P3 & P1 (6)
Ans:
Considering FCFS scheduling
Process Burst Time
P1 10
P2 5
P3 5
(i) Suppose that the processes arrive in
the order: P1 , P2 , P3
The Gantt Chart for the schedule
is:
Waiting time for P1 = 0; P2 = 10;
P3 = 15
Average waiting time: (0 + 10 +
15)/3 = 8.33 unit of time
(ii)Suppose that the processes arrive in the
order P2, P3 , P1 .
The Gantt chart for the schedule is:

Waiting time for P1 = 10; P2 = 0; P3 = 5
Average waiting time: (10 + 0 +
5)/3 = 5 unit of time.
Q.9. What is a
semaphore? Explain busy waiting semaphores.
(6)
Ans:
A semaphore
is a protected variable or abstract data type which constitutes the classic
method for restricting access to shared resources such as shared memory in a
parallel programming environment.
Weak,
Busy-wait Semaphores:
· The simplest way to implement semaphores.
· Useful when critical sections last for a short time, or we have lots of CPUs.
· S initialized to positive value (to allow someone in at the beginning).
S is an integer variable that, apart from initialization, can only be accessed through 2 atomic and mutually exclusive operations:
wait(s):
while (s.value != 0);
s.value--;
signal(s):
s.value++;
All happens atomically i.e. wrap pre
and post protocols.
Q.10. What are the
four necessary conditions of deadlock prevention? (4)
Ans:
Four necessary conditions for deadlock prevention:
1.
Removing the mutual exclusion condition means that no process may have
exclusive access to a resource. This proves impossible for resources that
cannot be spooled, and even with spooled resources deadlock could still occur.
Algorithms that avoid mutual exclusion are called non-blocking synchronization
algorithms.
2. The "hold and wait" conditions
may be removed by requiring processes to request all the resources they will
need before starting up. Another way is to require processes to release all
their resources before requesting all the resources they will need.
3. A "no preemption" (lockout)
condition may also be difficult or impossible to avoid as a process has to be
able to have a resource for a certain amount of time, or the processing outcome
may be inconsistent or thrashing may occur. However, inability to enforce
preemption may interfere with a priority algorithm. Algorithms that allow
preemption include lock-free and wait-free algorithms and optimistic
concurrency control.
4. The circular wait condition: Algorithms
that avoid circular waits include "disable interrupts during critical
sections", and "use a hierarchy to determine a partial ordering of
resources" and Dijkstra's solution.
Q.11. Define the
following:
(i) FIFO Page replacement algorithm.
(ii) LRU Page replacement algorithm. (6)
Ans:
(i)
FIFO policy: This
policy simply removes pages in the order they arrived in the main memory. Using
this policy we simply remove a page based on the time of its arrival in the
memory. For example
if we have the reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 and 3
frames (3 pages can be in memory at a time per process) then we have 9 page
faults as shown

If
frames are increased say to 4, then number of page faults also increases, to 10
in this case.

(ii) LRU policy: LRU expands to least recently used. This policy suggests that we re- move a page whose last usage is farthest from current time. For reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5, we have the following page faults

Q.12. List the properties which a hashing function should possess to ensure a good
search performance.
What approaches are adopted to handle collision? (8)
Ans:
A hashing function h should possess the following properties to ensure good search performance:
1.The hashing function should not be sensitive to the symbols used in some source program. That is it should perform equally well for different source programs.
2.The hashing function h should execute reasonably fast.
The following approaches are adopted to handle collision are:
Rehashing: Re-hashing schemes use a second hashing operation when there is a collision. If there is a further collision, we re-hash until an empty "slot" in the table is found. The re-hashing function can either be a new function or a re-application of the original one. As long as the functions are applied to a key in the same order, then a sought key can always be located.

Overflow chaining: Another scheme will divide the pre-allocated table into two sections: the primary area to which keys are mapped and an area for collisions, normally termed the overflow area. When a collision occurs, a slot in the overflow area is used for the new element and a link from the primary slot established as in a chained system. This is essentially the same as chaining, except that the overflow area is pre-allocated and thus possibly faster to access. As with re-hashing, the maximum number of elements must be known in advance, but in this case, two parameters must be estimated: the optimum size of the primary and overflow areas.

Q.13. What is assembly language?
What kinds of statements are present in an assembly
language program? Discuss. Also highlight the
advantages of assembly language. (8)
Ans:
Assembly language is a family of low-level language for programming computers, microprocessors, microcontrollers etc. They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations (called mnemonic) that help the programmer remember
individual instruction, register etc.
Assembly language programming is writing machine instructions in mnemonic form,
using an assembler to convert these mnemonics into actual processor
instructions and associated data.
An assembly program contains following three kinds of statements:
1. Imperative statements: These indicate an action to be performed during execution of the assembled program. Each imperative statement typically translates into one machine instruction.
2. Declaration statements: The syntax of declaration statements is as follows:
[Label] DS<constant>
[Label] DC ‘<value>’
The DS statement reserves areas of memory and associates names with them.
The DC statement constructs memory words containing constants.
3. Assembler directives: These instruct the assembler to perform certain actions during the assembly of a program. For example
START <constant> directive indicates that the first word of the target program generated by the assembler should be placed in the memory word with address <constant>.
The advantages of assembly language program would be
· reduced errors
· faster translation times
·
changes could be made easier
and faster
Q.14. What is an expression tree? How an expression is evaluated using an
expression tree? Discuss its advantages over the other evaluation techniques. (8)
Ans:
Algebraic expressions such as
a/b+(c-d)e
have an inherent tree-like structure. For example, following figure is a representation of the expression in above equation. This kind of tree is called an expression tree.

The terminal nodes (leaves) of an expression tree are
the variables or constants in the expression (a, b, c, d,
and e). The non-terminal nodes of an expression tree are the operators
(+, -,
,
and
)
The expression
tree is evaluated using a post-order traversal of the expression tree as
follows:
1. If this node has no children, it should return the value of the node
2. Evaluate the left hand child
3. Evaluate the right hand child
4. Then evaluate the operation indicated by the node and return this value
An expression
tree is advantageous for:
· Understanding the order of operation. Operations that must be done sooner are further to the right in the tree.
· Counting the number of terms or factors in an expression. Each term or factor is a child node. For example the expression (a+b)/c+2*d contains two terms.
Q.15. Draw an expression tree for the string.
f + (x+y) *((a+b)/(c-d))
Indicate the register requirement for
each node and list out the evaluation order for
the expression tree. (8)
Ans:
An expression tree for the string “f + (x+y)
*((a+b)/(c-d))” is given below:
Maximun register requirement is 2.

The
expression will be evaluated in the following order: resister R1 first, then
register R2, and so on.
f + (x+y) * ( (a+b)
/ (c-d))

Q.16. Explain the following:-
(i) Elimination of common sub expressions during code optimisation.
(ii) Pure and impure interpreters.
(iii) Lexical substitution during macro expansion.
(iv)Overlay structured program.
(v) Facilities of a debug monitor.
(vi) Actions of an interrupt processing routine.
(vii) Real time operating system.
(viii) Fork-join. (16)
Ans:
(i)
Elimination of common sub expression during code
optimization
An
optimizing transformation is a rule for rewriting a segment of a program to
improve its execution efficiency without affecting its meaning. One of the techniques is “Common sub
expression elimination”
In the expression
"(a+b)-(a+b)/4", "common subexpression" refers to the
duplicated "(a+b)". Compilers implementing this technique realize
that "(a+b)" won't change, and as such, only calculate its value
once.
(ii) Pure and impure interpreters
In a pure interpreter, the source program is retained in the source form all through its interpretation. This arrangement incurs substantial analysis overheads while interpreting a statement.An impure interpreter performs some preliminary processing of the source program to reduce the analysis overheads during interpretation. The preprocessor converts the program to an intermediate representation (IR), which is used during interpretation. This speeds up interpretation as the code component of the IR i.e the IC, can be analyzed more efficiently than the source form of the program.
(iii)Lexical substitution during macro expansion: Lexical substitution is used to
generate an assembly statement from a model statement. A model statement
consists of 3 types of strings:
1. An ordinary string, which stands for
itself.
2.
The
name of a formal parameter which is preceded by the character ‘&’.
3.
The
name of a preprocessor variable, which is also preceded by the character ‘&’.
During lexical expansion, strings of type 1 are retained without
substitution. Strings of types 2 and 3 are replaced by the ‘values’ of the
formal parameters or preprocessor variables. The value of a formal parameter is
the corresponding actual parameter string.
(iv) Overlay structured program: A program containing overlays is referred as overlay structured program where an overlay is a part of program which has the same load origin as some other part(s) of the program. Such a program consists of
1. A permanently resident portion, called the root
2. A set of overlays
The overlay structure of a program is designed by identifying mutually exclusive modules-that is, modules that do not call each other. The basic idea is that such modules do not need to reside simultaneously in memory. Hence they are located in different overlays with the same load origin.
(v) Facilities of a debug monitor are as follows:
a. Setting breakpoints in the program
b. Initiating a debug conversation when
control reaches a breakpoint
c. Displaying values of variables
d. Assigning new values to variables
e. Testing user defined assertions and
predicates involving program variables.
(vi) Action of an interrupt processing routine are as follows:
1. Save contents of CPU registers. This action is not necessary if the CPU registers are saved by the interrupt action itself.
2. Process
the interrupt and take appropriate actions. The interrupt code field of saved
PSW information unit corresponding to this interrupt contains useful
information for this purpose.
3. Return
from interrupt processing.
(vii) Real
time operating System
A
real-time operating system has well-defined, fixed time constraints. Processing
must be done within the defined constraints, or the system will fail. A real
time system is considered to function correctly only if it returns the correct
result within any time constraints. So the following features are desirable in
a real-time operating system:
1.
Multi-tasking
within an application
2.
Ability
to define the priorities of tasks
3.
Priority
driven or deadline oriented scheduling
4.
Programmer
defined interrupts.
(viii) fork-join are
primitives in a higher level programming language for implementing interacting
processes. The syntax is as follows:
fork
<label>;
join
<var>;
where
<label> is a label associated with some program statement, and
<var> is a variable. A statement fork label1 causes creation of a new
process that starts executing at the statement with the label label1. This
process is concurrent with the process which executed the statement fork
label1.A join statement synchronizes the birth of a process with the
termination of one or more processes.
Fork-Join
provide a functionally complete facility for control synchronization.
Q.17. List and explain the three events concerning resource allocation. Define the following:
(i) Deadlock.
(ii) Resource request and allocation graph (RRAG)
(iii)Wait for graph (WFG) (6)
Ans:
(i) Deadlock: Each process in a set of processes is waiting for an event that only a process in the set can cause.
Deadlocks can be described by a
directed bipartite graph called a Resource-Request-Allocation graph (RRAG).A graph
G = (V,E) is called bipartite if V can be decomposed into two disjoint sets V1 and
V2 such that every edge in E joins a vertex in V1 to
a vertex in V2.Let V1 be a set of processes and V2 be a set of
resources. Since the graph is directed we will consider:
(iii)

·
an edge (Rj,Pi)
(an assignment edge) to mean that resource Rj has been
allocated to process Pi
an edge (Pi,Rj) (called a request edge) to mean that process Pi has requested resource Rj
(iii)
1. Use a resource allocation graph to derive a wait-for graph.
2. Wait-for graph obtained by making an edge from p1 to p2 iff p1 is waiting for a resource that is allocated to p2.
3. Deadlock exists iff a cycle exists in resulting wait-for graph.


Q.18. A system contains 10 units of resource class Ru. The resource requirements of three user processes P1, P2 and P3 are as follows
P1 P2 P3
Maximum requirements 8 7 5
Current allocation 3 1 3
Balance requirements 5 6 2
New request made 1 0 0
Using Banker’s algorithm, determine if the projected allocation state is safe
and whether the request of P1 will be granted or not. (6)
Ans:
From the given data:
Total_alloc=[7]
Total_exist=[10]
The projected allocation state is feasible since the total allocation in it does not exceed the number of resource units of Ru. Since P3 is two units short of its maximum requirements and two unallocated units exits in the system, hence P3 can complete. This will release the resources allocated to it, that is, 5 resources. Now P1 can complete since the number of unallocated units of Ru exceeds the units needed to satisfy its maximum requirement then P2 can be completed. Thus the processes can finish in the sequence P3, P1, and P2. Hence projected allocation state is safe so algorithm will grant the request made by P1.
Q.19. What is a race condition? Explain
how does a critical section avoid this condition. What are the properties which
a data item should possess to implement a critical section? (6)
Ans:
Race condition: The situation where several processes access – and manipulate shared data concurrently. The final value of the shared data depends upon which process finishes last.
To prevent race conditions, concurrent processes must be synchronized.
Data consistency requires that only one processes should update the value of a data item at any time. This is ensured through the notion of a critical section. A critical section for data item d is a section of code, which cannot be executed concurrently with itself or with other critical sections for d. Consider a system of n processes (P0, P1,…, P n-1), each process has a segment of code called a critical section, in which the proceses may be changing common variables, updating a table, writing a file, and so on. The important feature of the system is that, when one process is executing in its critical section, no other process is to be allowed to execute in its critical section. Thus the execution of critical sections by the processes is mutually exclusive in time.
repeat
Entry section
critical section
Exit section
remainder section
until FALSE
Solution to the Critical Section Problem must satisfy the following three conditions:
1. Mutual
Exclusion. If process Pi is executing in its critical section, then
no other processes can be executing in their critical sections.
2. Progress. If no process is executing in its critical
section and there exist some processes that wish to enter their critical
section, then the selection of the processes that will enter the critical
section next cannot be postponed indefinitely.
3. Bounded
Waiting. A bound must exist on the
number of times that other processes are allowed to enter their critical
sections after a process has made a request to enter its critical section and
before that request is granted.
—Assume that each process executes at a nonzero
speed
—No assumption concerning relative speed of the
n processes.
Q.20. Describe a solution to the Dining
philosopher problem so that no races arise. (4)
Ans:
A solution to the dining philosopher
problem:
monitor DP
{
enum { THINKING; HUNGRY, EATING) state [5] ;
condition self [5];
void pickup (int i) {
state[i] = HUNGRY;
test(i);
if (state[i] != EATING) self [i].wait;
}
void putdown (int i) {
state[i] = THINKING;
// test left and right
neighbors
test((i + 4) % 5);
test((i + 1) % 5);
}
void
test (int i) {
if ( (state[(i + 4) % 5] != EATING) &&
(state[i] == HUNGRY) &&
(state[(i + 1) % 5] != EATING) ) {
state[i] = EATING ;
self[i].signal () ;
}
}
initialization_code() {
for (int i = 0; i < 5; i++)
state[i] = THINKING;
}
}
Each philosopher I invokes
the operations pickup() and putdown() in the following sequence:
dp.pickup (i)
EAT
dp.putdown (i)
Q.21. Discuss two
main approaches to identify and reuse free memory area in a heap. (6)
Ans:
Two popular techniques to identify free memory areas as a result of allocation and de-allocations in a heap are:
1. Reference count: the system associates a reference count with each memory area to indicate the number of its active users. This number is incremented when a user accesses that area and decrements when user stops using that. The area is free if the reference counts drops to zero. This scheme is very simple to implement however incurs incremental overheads.
2. Garbage collection: In this technique
two passes are made over the memory to identify unused areas. In the first pass
it traverses all pointers pointing to allocated areas and marks the memory
areas that are in use. The second pass finds all unmarked areas and declares them
to be free. The garbage collection overheads are not incremental. They are
incurred every time the system runs out of free memory to allocate to fresh
requests.
Two main approaches to reuse free memory area in a heap are:
First-fit:
Allocate the first hole that is big enough. Searching can start
either at the beginning of the set of holes or where the previous first-fit
search ended. Searching is stopped as soon as a free hole is found that is
large enough
Best-fit: Allocate the smallest hole that is big enough; Entire list is searched, unless ordered by size. This strategy produces the smallest leftover hole.
Q.22. List the steps needed to perform page replacement. Explain the different page replacement policies. Also list out the main requirements, which should be satisfied by a page replacement policy. (8)
Ans:
The steps needed to perform page replacement are:
1.Determine which page is to be removed from the memory.
2.Perform a page-out operation.
3.Perform a page-in operation.
Different page replacement algorithms are
briefly described below:
The first-in, first-out (FIFO) page replacement algorithm is a low-overhead
algorithm. Here the operating system keeps track of all the pages in memory in
a queue, with the most recent arrival at the back, and the earliest arrival in
front. When a page needs to be replaced, the page at the front of the queue
(the oldest page) is selected.
Advantage: FIFO
is cheap and intuitive.
Disadvantage:
1. Performs poorly in practical application.
2. Suffers from Belady’s anomaly.
The not recently used (NRU) page replacement algorithm works on the
following principle: when a page is referenced, a referenced bit is set for
that page, marking it as referenced. Similarly, when a page is modified
(written to), a modified bit is set.
At a certain fixed time interval, the clock interrupt triggers and clears
the referenced bit of all the pages, so only pages referenced within the
current clock interval are marked with a referenced bit. When a page needs to
be replaced, the operating system divides the pages into four classes:
·
Class
0: not referenced, not modified
·
Class
1: not referenced, modified
·
Class
2: referenced, not modified
·
Class
3: referenced, modified.
The NRU algorithm picks a random
page from the lowest category for removal.
The optimal page replacement algorithm (also known as OPT )is an algorithm
that works as follows: when a page needs to be swapped in, the operating system
swaps out the page whose next use will occur farthest in the future. For
example, a page that is not going to be used for the next 6 seconds will be
swapped out over a page that is going to be used within the next 0.4 seconds.
Disadvantage: This algorithm cannot be implemented in the general purpose
operating system because it is impossible to compute reliably how long it will
be before a page is going to be used.
The
main requirements, which should be satisfied by a page replacement policy, are:
1. Non-interference with the program’s locality of reference: The page
replacement policy must not remove a page that may be referenced in the
immediate future.
2. The page fault rate must not increase with an increase in the memory allocation
for a program.
Q.23. What is an I/O buffer? What is the advantage of buffering? Is buffering always
effective? Justify your answer with help of an example. (8)
Ans:
One
kind of I/O requirement arises from devices that have a very high character
density such as tapes and disks. With these characteristics, it is not possible
to regulate communication with devices on a character-by-character basis. The
information transfer, therefore, is regulated in blocks of information.
Additionally, sometimes this may require some kind of format control to
structure the information to suit the device and/or data characteristics. For
instance, a disk drive differs from a line printer or an image scanner. For
each of these devices, the format and structure of information is different. It
should be observed that the rate at which a device may provide data and the
rates at which an end application may consume it might be considerably
different. In spite of these differences, the OS should provide uniform and
easy to use I/O mechanisms. Usually, this is done by providing a I/O buffer.
The OS manages this buffer so as to be able to comply with the requirements of
both the producer and consumer of data. Basically, the buffers absorb mismatch
in the data transfer rates of processor or memory on one side and device on the
other.
Q.24. Discuss the different techniques with which a file can be shared among different
users. (8)
Ans:
Some popular techniques with which a file can be shared among different users are:
1. Sequential sharing: In this sharing technique, a file can be shared by only one program at a time, that is, file accesses by P1 and P2 are spaced out over time. A lock field can be used to implement this. Setting and resetting of the lock at file open and close ensures that only one program can use the file at any time.
2. Concurrent sharing: Here a number of programs may share a file concurrently. When this is the case, it is essential to avoid mutual interference between them. There are three categories of concurrent sharing:
Q.25. Differentiate between protection and security. Explain the techniques used for
protection of user files. (8)
Ans:
Operating system consists of a collection of objects, hardware or software
. Each object has a unique name and can be accessed through a well-defined set of operations.
Protection problem - ensure that each object is accessed correctly and only by those processes that are allowed to do so.
Security
must consider external environment of the system, and protect it from:
·
Unauthorized
access.
·
malicious
modification or destruction
Accidental introduction of inconsistency.
It is easier to protect against
accidental than malicious misuse.
Protection of user files means that file owner/creator should be able to control: what can be done and by whom. Various
categories of access to files are:
·
Read
·
Write
·
Execute
·
Append
·
Delete
List
Q.26. What is
parsing? Explain any three parsing techniques. (8)
Ans
Parsing is the process of analyzing a text, made of a
sequence of tokens, to determine its grammatical structure with respect to a
given formal grammer. Parsing is also known as syntactic analysis and parser is
used for analyzing a text. The task of the parser is essentially to determine if and how the input can
be derived from the start symbol of the grammar.
Following are three parsing techniques:
Top-down parsing - Top-down parsing can be
viewed as an attempt to find left-most derivations of an input-stream by
searching for parse trees using a top-down expansion of the
given formal grammar rules. Tokens are consumed from
left to right. Inclusive choice is used to accommodate ambiguity
by expanding all alternative right-hand-sides of grammar rules.
Bottom-up parsing - A parser can start with the
input and attempt to rewrite it to the start symbol. Intuitively, the parser
attempts to locate the most basic elements, then the elements containing these,
and so on. LR parsers
are examples of bottom-up parsers. Another term used for this type of parser is
Shift-Reduce parsing.
Recursive descent parsing- It is a top down parsing without backtracking.
This parsing technique uses a set of recursive procedures to perform parsing.
Salient advantages of recursive descent parsing are its simplicity and
generality. It can be implemented in any language supporting recursive
procedures.
Q.27. Draw the state diagram of a process from its creation to termination, including all transitions, and briefly elaborate every state and every transition. (8)
Ans:
As a process executes, it changes state
·
new: The process is being created.
·
running: Instructions are being executed.
·
waiting: The process is waiting for some event to occur.
·
ready: The process is waiting to be assigned to a
processor.
·
terminated: The process has finished execution.

Q.28. Consider the following system
snapshot using data structures in the Banker’s algorithm, with resources A, B,
C, and D, and process P0 to P4:
|
|
Max |
|
Allocation |
|
Need |
|
Available |
||||||||||||
|
|
A |
B |
C |
D |
|
A |
B |
C |
D |
|
A |
B |
C |
D |
|
A |
B |
C |
D |
|
P0 |
6 |
0 |
1 |
2 |
|
4 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
P1 |
1 |
7 |
5 |
0 |
|
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
P2 |
2 |
3 |
5 |
6 |
|
1 |
2 |
5 |
4 |
|
|
|
|
|
|
|
|
|
|
|
P3 |
1 |
6 |
5 |
3 |
|
0 |
6 |
3 |
3 |
|
|
|
|
|
|
|
|
|
|