[Link]
html
`
[Link]
Savitribai Phule Pune University
2019 Pattern
( As Per New Revised Syllabus )
ScoreBooster
Software Programming and
For
Operating System
Semester- V
Computer Engineering
[Link]
-: Syllabus Topic :-
:-
Unit I Introduction to systems programming
Syllabus Topics :
Introduction to Systems Programming, Need of systems programming, Software
Hierarchy, Types of software: system software and application software, Machine
structure. Evolution of components of systems programming: Text Editors, Assembler,
Macros, Compiler, Interpreter, Loader, Linker, Debugger, Device Drivers, Operating
System. Elements of Assembly Language Programming: Assembly Language statements,
Benefits of Assembly Language, A simple Assembly scheme, Pass Structure of Assembler.
Design of two pass assembler: Processing of declaration statements, Assembler
Directives and imperative statements, Advanced Assembler Directives, Intermediate
code forms, Pass I and Pass II of two pass Assembler.
Unit II Macro Processor and Compilers
Syllabus Topics :
Introduction, Features of a Macro facility: Macro instruction arguments, Conditional
Macro expansion, Macro calls within Macros, Macro instructions, Defining Macro, Design
of two pass Macro processor, Concept of single pass Macro processor. Introduction to
Compilers: Phases of Compiler with one example, Comparison of compiler and Interpreter.
[Link]
-: Imp, Expected & Pyq’s Question :-
:-
Unit I Introduction to systems programming
Imp, Expected & Pyq’s Question :
1. What is systems programming? Explain its necessity with examples. [5]
2. Explain the software hierarchy in computer systems with a neat diagram. [5]
3. Compare system softwares with Application softwares using table? Explain benefits
of Assembly Language. [7]
4. Differentiate:
i) Literal and Immediate operand.
ii) Assembler and Compiler [7]
5. Explain the role of machine structure in systems programming. [5]
6. Explain the role of text editors in system programming. [5]
7. What is purpose of Assembler pass 1? Draw and explain overview of Assembler pass
1 flow chart. [8]
8. Draw and explain flowchart of Pass-I of two pass assembler with suitable example.
[8]
9. Enlist and explain necessity of different data structures used in Pass-I of two pass
Assembler. [7]
10. Explain in detail with a suitable example, the formates and contents of databases
used in assembler design. [8]
[Link]
11. Define macros in system programming. Differentiate between macros and
subroutines. [5]
12. What is an interpreter? Compare interpreter with compiler using table. [5]
13. Explain the role of loader in program execution. Differentiate between absolute
loader and relocating loader. [5]
14. What is the function of a linker in systems programming? [5]
15. What is debugger? How is it helpful in development of system software? [5]
16. Explain the importance of device drivers in operating systems. [5]
17. List and explain any four functions of an operating system. [5]
18. What are different types of assembly language statements? Explain with examples.
[5]
19. Discuss need of intermediate code of assembly program. Generate intermediate
code for an assembly language program given in Question 2b using any one variant of
intermediate code. [8]
20. Explain the output of pass-I of two pass Assembler W.R.T the given program:
START 600
READ A
READ B
LOOP MOVER AREG, A
MOVER CREG, B
SUB AREG,='1'
BC GT,LOOP
STOP
A DS 1
[Link]
B DS 2
END
21. How are declaration statements handled in pass I of assembler? [5]
22. Consider following Assembly code and show output of pass-I of two pass Assembler
with entries in Mnemonic Opcode Table, Pseudo Opcode Table, Symbol Table, Literal
Table and Pool Table. [8]
PROG START 50
USING PROG+2, 15
L1, FIVE
Al, = F ‘2’
LTORG
ST 1, RES
FIVE DC F ‘4’
RES DS F ‘4’
RES DS IF
END
23. Explain advanced assembler directives with suitable examples. [5]
[Link]
Unit II Macro Processor and Compilers
Imp, Expected & Pyq’s Question :
1. What is Macro? Explain Macro definition, Macro Call and Macro Expansion with an
example. [8]
2. Define macro. What are the advantages of macro facility? How they are different
from function. [7]
3. Explain argument passing mechanism in Macros with suitable examples? [7]
4. What is the use of AIF and AGO pseudo-op in macro? Explain macro expansion with
positional parameter with the help of suitable example. [8]
5. Explain the concept of single pass Macro processor with example. Give example for
macro calls within the macro. [7]
6. Explain briefly the algorithm of pass l of two pass macro processor? [7]
7. What are different data structures required for Two Pass Macro Processor?
Justify which data structures are implemented at that time of processing Macro
definition, Macro call and Macro Expansion. [8]
8. Explain the Phases of Compiler and their output with an example. [8]
9. Explain various phases of the Compiler for the expression x = I + R * 60 where the
data type of R is float. [8]
10. Differentiate:
i) Macro and subroutine using table
ii) Compiler and Interpreter using table[7]
[Link]
11. Write Short note on:
i) Compiler
ii) Interpreter [7]
[Link]
Unit I : Introduction to systems programming
Need of Systems Programming
Pyq Question:
What is systems programming? Explain its necessity with examples.
How does systems programming differ from application programming?
Definition:
Systems programming refers to the development of system software such as
operating systems, compilers, device drivers, and utilities that help manage
hardware resources.
These programs usually require efficient memory management, direct hardware
interaction, and high performance.
Need and Importance:
Systems programming is necessary because it enables efficient management of
computer hardware through abstraction and control mechanisms.
Without systems programs like OS or device drivers, the hardware components
cannot communicate with user-level applications effectively.
It plays a vital role in providing an environment for executing application programs
by managing CPU time, memory, and I/O resources.
It helps bridge the gap between raw hardware and high-level software by providing
essential support utilities and interfaces.
Modern systems such as Linux, Windows, and embedded firmware are built using
systems programming, ensuring better control and efficiency.
Examples of Systems Programming:
Developing an operating system kernel to manage hardware like CPU, memory, and
devices.
Writing device drivers to allow the OS to interact with hardware such as printers,
keyboards, or graphics cards.
Creating language translators such as assemblers and compilers that convert code
to machine instructions.
[Link]
Implementing bootloaders that help start a computer by loading the OS into
memory from storage.
Difference Between Systems Programming and Application Programming:
Systems programming focuses on low-level interaction with hardware, while
application programming deals with user-focused software such as word processors
and browsers.
Systems programs are typically written in low-level languages like C or assembly,
while application programs use higher-level languages like Python or Java.
Memory and performance are highly optimized in systems programming, but
application programming focuses on user experience and interface.
Systems software works behind the scenes with minimal user interaction;
application software interacts directly with users.
An example of systems programming is writing a disk scheduling algorithm;
application programming includes creating a document editing tool.
Diagram:
Fig.4.232: System Software Interaction with Hardware and Applications
[Link]
Explanation of Diagram:
The User interacts with application software like browsers or editors.
Application software uses system-level services for execution, memory, and
hardware interactions.
System software acts as a mediator, managing the hardware and providing
abstracted services.
Hardware is the physical layer directly controlled by the system software, not by
user applications.
Software Hierarchy
Pyq Question:
Explain the software hierarchy in computer systems with a neat diagram.
Introduction:
Software hierarchy in computer systems refers to the structured arrangement of
different layers of software based on their role and interaction level.
It ensures smooth communication from hardware to end-users by organizing
software from low-level to high-level in a layered architecture.
Definition:
Software hierarchy is a logical structure of software layers that manage system
operations starting from hardware interaction to user-level application execution.
Each layer in the hierarchy depends on the services provided by the layer below and
offers services to the layer above.
Purpose of Software Hierarchy:
It divides complex system functionalities into manageable software layers to
improve system clarity and maintenance.
It ensures better modularity, isolation, and debugging of system errors due to clear
separation between hardware and user applications.
[Link]