Tuesday, 29 September 2015

File System Interface In Operating System Ppt/Pdf/Ebook Download

File System Interface

  • File Concept
  • Access Methods
  • Directory Structure
  • File System Mounting
  • File Sharing
  • Protection

File Concept


  • Contiguous logical address space

Types:

  • Data
  1. numeric
  2. character
  3. binary
  • Program

File Structure


  • None - sequence of words, bytes
  • Simple record structure
  1. Lines 
  2. Fixed length
  3. Variable length
  • Complex Structures
  1. Formatted document
  2. Relocatable load file 
  • Can simulate last two with first method by inserting appropriate control characters
  • Who decides:
  1. Operating system
  2. Program

File Attributes

Name: only information kept in human-readable form.

Type: needed for systems that support different types.

Location: pointer to file location on device

Size: current file size

Protection: controls who can do reading, writing, execution.

Time, date, and user identification:data for protection, security, and usage monitoring

Information about files are kept in the directory structure, which is maintained on the disk

File Operations

Create
Write
Read
File seek – reposition within file
Delete
Truncate
Open(Fi) – search the directory structure on disk for entry Fi, and move the content of entry to memory
Close (Fi) – move the content of entry Fi in memory to directory structure on disk

Open Files:

Several pieces of data are needed to manage open files:
  1. File pointer:  pointer to last read/write location, per process that has the file open
  2. File-open count: counter of number of times a file is open – to allow removal of data from open-file table when last processes closes it
  3. Disk location of the file: cache of data access information
  4. Access rights: per-process access mode information

Open File Locking:

  • Provided by some operating systems and file systems
  • Mediates access to a file
  • Mandatory or advisory
  1. Mandatory – access is denied depending on locks held and requested
  2. Advisory – processes can find status of locks and decide what to do

File Locking Example – Java API

 

import java.io.*;
import java.nio.channels.*;
public class LockingExample { 
public static final boolean EXCLUSIVE = false;
public static final boolean SHARED = true;
public static void main(String arsg[]) throws IOException { 
FileLock sharedLock = null;
FileLock exclusiveLock = null;
try { 
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
// get the channel for the file
FileChannel ch = raf.getChannel();
// this locks the first half of the file - exclusive
exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE);
/** Now modify the data . . . */
// release the lock
exclusiveLock.release(); // this locks the second half of the file - shared

sharedLock = ch.lock(raf.length()/2+1, raf.length(), SHARED);

/** Now read the data . . . */
// release the lock
exclusiveLock.release();
} catch (java.io.IOException ioe) { 
System.err.println(ioe);
}finally { 
if (exclusiveLock != null)
exclusiveLock.release();
if (sharedLock != null)
sharedLock.release();
}
}
}


Copy the above code



File Types – Name, Extension

file type name extension

Access Methods:

Sequential Access:
                read next
write next 
reset
no read after last write
        (rewrite)

Direct Access:
read n
write n
position to n
read next
write next 
rewrite n
n = relative block number


Sequential-access File:

Sequential access File

Simulation of Sequential Access on a Direct-access File


Example of Index and Relative Files

Example of Index and Relative Files

Directory Structure

A collection of nodes containing information about all files

Directory Structure

Both the directory structure and the files reside on disk
Backups of these two structures are kept on tapes


A Typical File-system Organization

A Typical File system Organization

Information in a Device Directory

  • Name 
  • Type
  • Address 
  • Current length
  • Maximum length
  • Date last accessed (for archival)
  • Date last updated (for dump)
  • Owner ID
  • Protection information (discuss later)

Operations Performed on Directory

  • Search for a file
  • Create a file
  • Delete a file
  • List a directory
  • Rename a file
  • Traverse the file system

Organize the Directory (Logically) to Obtain:

  • Efficiency – locating a file quickly
  • Naming – convenient to users
  1. Two users can have same name for different files
  2. The same file can have several different names
  • Grouping – logical grouping of files by properties, (e.g., all Java programs, all games, …)

Single-Level Directory

A single directory for all users

A single directory

Naming problem
Grouping problem

Two-Level Directory


Separate directory for each user


Two Level Directory

  • Path name
  • Can have the same file name for different user
  • Efficient searching
  • No grouping capability

Tree-Structured Directories

Tree Structured Directories

Efficient searching
Grouping Capability
Current directory (working directory)
  • cd /spell/mail/prog
  • type list
Absolute or relative path name
Creating a new file is done in current directory
Delete a file
rm <file-name>
Creating a new subdirectory is done in current directory
mkdir <dir-name>
Example:  if in current directory   /mail
mkdir count
Tree Structured Directories

Deleting “mail” deleting the entire subtree rooted by “mail”


Acyclic-Graph Directories:

Have shared subdirectories and files
Acyclic Graph Directories

Solutions:
  • Backpointers, so we can delete all pointers Variable size records a problem
  • Backpointers using a daisy chain organization
  • Entry-hold-count solution

General Graph Directory

General Graph Directory

  • How do we guarantee no cycles?
  1. Allow only links to file not subdirectories
  2. Garbage collection
  3. Every time a new link is added use a cycle detection algorithm to determine whether it is OK

File System Mounting

  • A file system must be mounted before it can be accessed
  • A unmounted file system is mounted at a mount point
(a) Existing.  (b) Unmounted Partition

file system mounting

Mount Point

Mount Point

File Sharing

  1. Sharing of files on multi-user systems is desirable
  2. Sharing may be done through a protection scheme
  3. On distributed systems, files may be shared across a network
  4. Network File System (NFS) is a common distributed file-sharing method
File Sharing – Multiple Users

User IDs identify users, allowing permissions and protections to be per-user
Group IDs allow users to be in groups, permitting group access rights

File Sharing – Remote File Systems

  • Uses networking to allow file system access between systems
  1. Manually via programs like FTP
  2. Automatically, seamlessly using distributed file systems
  3. Semi automatically via the world wide web
Client-server model allows clients to mount remote file systems from servers

  • Server can serve multiple clients
  • Client and user-on-client identification is insecure or complicated
  • NFS is standard UNIX client-server file sharing protocol
  • CIFS is standard Windows protocol
  • Standard operating system file calls are translated into remote calls

Distributed Information Systems (distributed naming services) such as LDAP, DNS, NIS implement unified access to information needed for remote computing

File Sharing – Failure Modes

  • Remote file systems add new failure modes, due to network failure, server failure
  • Recovery from failure can involve state information about status of each remote request
  • Stateless protocols such as NFS include all information in each request, allowing easy recovery but less security

File Sharing – Consistency Semantics

Consistency semantics specify how multiple users are to access a shared file simultaneously
  • Similar to Ch 7 process synchronization algorithms
  • Tend to be less complex due to disk I/O and network latency (for remote file systems
  • Andrew File System (AFS) implemented complex remote file sharing semantics
  • Unix file system (UFS) implements:
  • Writes to an open file visible immediately to other users of the same open file
  • Sharing file pointer to allow multiple users to read and write concurrently
  • AFS has session semantics
  • Writes only visible to sessions starting after the file is closed

Protection

File owner/creator should be able to control:
  • what can be done
  • by whom
Types of access Read
  1. Write
  2. Execute
  3. Append
  4. Delete
  5. List

Access Lists and Groups

Mode of access:  read, write, execute
Three classes of users

Ask manager to create a group (unique name), say G, and add some users to the group.
For a particular file (say game) or subdirectory, define an appropriate access.

access list and groups


Your questions and feedback is valuable to us and we will be more than happy to answer your queries. Like our Facebook Page.

More related posts:
1) Linkers and loaders 
2)Two pass assemblers 

Linkers, Loaders and Software

Linkers  Loaders  Software



Linkers and Loaders:

Basic loaders functions, central loaders scheme, absolute loaders, Subroutine linkers, relocation loader, Direct linking loader, Dynamic linking loader,

Design of absolute loaders and direct linking loader

Software tools: Software tools for program development, editors, debug monitor, programming environment, user interfaces.


Software Tools for program Development

Software tools are used extensively for program development and user interfaces
  • Editor
  • Debug monitor
  • Programming Environment
  • User Interfaces
Editor
Editor is computer program that allows a user to create and revise target document

Document includes object as computer programs, text, equations, tables, diagrams, lines and photographs.

The document editing process is an interactive user-computer dialogue

1.Select the part  to view and manipulate
2.To determine the format of and display
3.Specify and execute operation

4.Update the view appropriately

Text editor are of following types
  1. Line Editors
  2. Sreen Editors
  3. Word processors
  4. Structure Editiors

Line Editors

  • Text editor are of following types
  • It is primitive form of editor
  • User has to specify line to change text
  • Interaction with the editors is through a set of commands , this makes a editor less user friendly
  • E.g. VI editor, VIM editor

Screen Editors


  • Screen editors enables to modify any text by moving cursor to desired location.
  • This is very useful while formatting the text to produce printed document
  • E.g. office document.

Word processor

  • A word processor recognize word a basic entity
  • It support spell check option
  • It has following options
1.Moving a section of text from one place to another
2.Delecting a section of text
3.Searching a word
4.Merging of text
5.Replacement of word
6.Spell-Check

Structure Editors

  • A structure editor has awareness of structure of document.
  • A structure is specified by user while creating and modifying the document.
  • E.g.   LatTex

Editor Structure

structure of an editor

  • Editing module is collection of module deling with editing tasks.
  • Travelling module of editor performs the setting of the current editing and viewing pointers
  • In viewing module start of the area to be view is determine by current viewing pointer

Debug Monitor

  • Debug monitor provides following facilities
  1. Setting breakpoints in the program
  2. Initiating a debug conversation
  3. Displaying values of variables
  4. Assigning new values to variable
  • Debugging system provides functions such as tracing and trackback.
  • Tracking used to track the flow of execution logic and data modification
  • Trackback can show path by which the current statement reached
  • In debugging user specifies breakpoints and action to be performed

Programming Environment

  • Programming environment is an integrated program development environment
  • It has following facilities
  1. Program creation
  2. Editing
  3. Execution
  4. Testing and debugging
Programming Environment has following components 
     1. A syntax directed editor
     2.Compiler ,Interpreter
     3.Debug monitor
     4.Dialog monitor

User Interfaces

  • A user interface plays an important role in simplifying the interaction of user with application
  • UI functioning has two important aspects
  1.  Issuing Commands
  2.  Excange of data 
working of user interface

  • The presentation manger is responsible for managing user’s screen and for accepting data
  • The dialog manager is responsible for interpreting user command and implement them
  • Dialog manger is also responsible for  error message

More related posts:
1) Deadlock

 2)Two pass assemblers 

Saturday, 26 September 2015

10 Unexpected Interview Questions and Answers

10 Amazing Interview Questions and Answers


Here are some really weird interview questions which will catch you off guard. The main aim of the interview is not to test your skills and technical knowledge but to test how you react to a panic situation.

They try throw random questions at you and you just need to listen the question properly and think over it twice before answering, If you panic and answer randomly without thinking over it much Bang…! You are out.


Here are some questions asked in job interviews which were really tricky and lets learn how to answer interview questions




Interview Questions and Answers

When patriotism hit high


Panelist 1: Do you know who wrote the Indian National Anthem?

Student's reply: Yes Sir, Rabindranath Tagore

Panelist 1: Ok, sing it now.

Student: [Stood up] Jana Gana Mana…

Panelist 2: Stop, otherwise we have to stand up too.

Result: Failed



Here is another incident which really shows how you could be targeted


When Delhi elections took a toll.


(Background:A guy was screaming a lot in the Group Discussion as well as the interview. Around the time of my interviews, During the New Delhi elections were going on where Kiran Bedi had referred to Arvind Kejriwal as 'Upadravi' for being an anarchist)


Somewhere during the interview,

Panelist 1 (in Hindi): Upadravi gotr ke ho kya?


Student: Sorry sir, I didn’t get that.

Panelist 2 (while going through my marksheets): Rehne do, isko samajh nahi aayega, 10th mein Hindi mein kam marks hain.

Student: Banged his head.

Result: Rejected.


When the question of dowry was brought to the table


Interviewer 1: Why are people poor?

Student: Not very sure, sir. Any options?

Interviewer 2: Oh! But you should know. It’s because they don’t have money. It’s simple.

Student:… Apologies Sirs, but isn’t this the ‘meaning’ of being ‘poor’, and not the reason?

Interviewer 2: (Silent)

Interviewer 1 (in his excitement to go one-up): “… He’s poor because he’s not earning. Hence, no money.”

Student: "apologies Sirs again. But is he poor because he is not earning out of laziness, or he is working and not being paid, or, is he ready to work and earn, but is not getting a job.”

Interviewer 1: Have you studied Economics in your B.Tech?

Student: “No, sir our canteen supervisor in the hostel is really poor, and he has a Master’s in English”

Result: Approved.


When the love of Math took over


Panelist: You seem to know a lot of math. What do you like in it?

Student: I like numbers, Sir.

Panelist: Ok. So tell us, what is the absolute truth?

Student: (Wow, what? Where did that come from and how is that related to numbers.) How would I know, Sir? I’m just a human being. They say God knows the absolute truth.

Panelist: Ok then, define God mathematically.

Student: Sir, God is the One. (They smile).

Result: Selected.



Too much randomness


Panelist: Spell the word COW in thirteen letters?

Candidate: Well! Caaaouuuuu.

Panelist: It’s “SEE O DOUBLE YOU”



When Comparison between 2 B-schools took over


Panelist 1 (male): What do you know about IIM Calcutta?

Student: *Gave a standard well-versed answer mostly from the content on their website*

Panelist 2 (female): Okay, tell me what do you know about IIM Bangalore?

Student (taken by surprise): Annn.. Ma’am, it is one of the best B-schools in the country. (Clueless about what more should I add)

Panelist 2: So you know more about Calcutta than Bangalore? Didn’t you get a call from IIM Bangalore?

Student: Ma’am, I do have the call from IIM Bangalore, but its interview is two weeks later. (With a poker face)

Result: Selected.


When Everything was kept aside and the question that lingered on was about email ids.

 Panelist 1: So tell me Abhishek why do you have ‘1993’ in your email-id?

Student: Sir, I needed a bit more professional id as compared to my previous one.

Panelist2: So what was your previous id?

Student: Sir, it was abhishek.perfect@yahoo.com <smiling like an idiot>

<Both laughing at me>
Panelist 2: So you think you are not perfect anymore?

*Suddenly the pseudo-intellectual philosopher in me wakes up*

Student: Sir, even the air around me is not ideal, how can I be perfect.

Result: Selected.




When things got way too philosophical

 

Interviewer: Tell me anything you know whose heading will surprise me and the explanation will shock me. More the impact, more will be your chances of success. Heading and Explanation both can be independent.

Student: Let me try. First of all, tell me what are you fascinated about?

Interviewer: Ok! From my childhood, I was really fascinated about my existence. What am I made of? Why am I here? These types of stuff.

Student: Why you did not choose a career in research?

Interviewer: There are things that are beyond our explanation. Well, answer my question.

Student: Do you know that the life we live is 50% dream and 50% reality?

Interviewer: You are successful. Explain?

Student: Something else. An electron is neither revolving around the nucleus in circular path nor in elliptical paths. It is something like a bee hovering around her honey.

Result: Selected

When someone asks you to draw intersecting parallel lines


 Interviewer: What is the sum of angles of a triangle?

Student: Sir, um, interior angles or exterior angles?

Interviewer: Interior.

Student: 180

Interviewer: Can there be two lines which are parallel and not intersecting?

Student: Sir, can you please repeat the question?

Interviewer: Draw and show it to me.” (Passed a paper and a pen)

Student: Again, after thinking for some time: I can’t, I need a ruler.

Result: Selected



When the question of dowry was brought to the table



Panelist 1: Why exactly do you want to come to this campus, because I feel that it has nothing to do with what we offer but just that you want to go home and brag about getting the admission here to your friends and parents and get a large dowry later on. Why do you want to get here?

Student: I am not aware of the dowry part. But if what you say is correct, I shall surely go back home and renegotiate.

(The interviewer bursts out laughing)

Student:  I really want to be here. Period. 

Friday, 25 September 2015

What Is A Loader?

LOADER


Definition of Loader:

  1. Loader is a system program which is responsible for preparing the object file to start the execution.
  2. Once the assembler produces an object program,that program must be placed into memory and executed. It is the purpose of the loaders is to assure that object programs are placed into an executable form.
Functions of Loader:
1.  Allocation 
  • Allocates space in memory for the program.
  • In case of Absolute ALP allocation is done by programmer.
  • In case of  Relocatable ALP allocation is done by loader.
2. Linking
  • Resolve symbolic references between objects.
  • In case of Absolute ALP linking is done by programmer since,
  • programmer is aware of runtime address of all symbols.
  • In case of  Re locatable  ALP allocation is done by loader and hence assembler must provide the location at which linking is to be done.
3. Relocation
  • Adjust all address dependant locations,such as address constant to correspond to the allocated space.
  • In case of Absolute ALP this is done by assembler. In case of Relocatable ALP this is done by loader.
4. Loading
  • Placing the object program into its assign memory location.
  • In both the cases this is done by the Loader.
General Loading Scheme:
general loading scheme

  1. In this, source program is translated into object program using assembler.
  2. Then it is loaded into main memory along with source code of loader.
  3. Size of loader is smaller than assembler code  therefore , more  space is available for the object program.
Disadvantage
We have to store source code of loader.


Absolute Loader:
  • The absolute loader reads the object program line by line and moves the text of the program into memory.
  • Object program has
  1. Machine instruction with memory address
  2. Starting of execution point
 It requires 2 types of  records
i ) Text Card
It contains binary image of assembly program
ii) Transfer Card
It contains starting point execution.
 
1)TXT Card:
TXT card
 
Card Type: It indicate which type of card
0 for Text card.
1 for Transfer card.
2.Count: It indicates amount of information which is to be loaded.
3.Address: It indicates location at which information is to be loaded.
4 Content: It indicates binary information which is to be loaded.

Transfer Card:
Transfer Card: It is used to indicate where to be load the program
Card type is 1.
Count is always 0.
Address: It indicate location from where execution of object program should begin.
Content: It always kept blank.

 
Algorithm

algorithm transefer card  
 
Bootstrap Loader
  1. Program residing in EPROM,ROM or other non-volatile memory
  2. Automatically executed by the processor
  3. Reads the hard disk drives boot sector to continue the process of loading the computer OS
Function of Bootstrap Loader: 
  1. Enable the user to select the OS to start
  2. Loading the OS file from the boot partition
  3. Controlling the OS selection process and hardware detection prior to kernel initialization.
 DLL : Direct Linking Loader
  1.  It is Relocatable type of loader.
  2. It has advantage of allowing programmer with multiple procedure segments and giving them complete freedom of referring data contained in some other segment.
  3. Input to the loader is set of object programs to be linked together
  4. This provides flexible Intersegment Referencing, for doing all this, DLL required following modules.
    1.  ESD-External Symbol Directory
    2. TXT-Actual assembled program
    3. RLD-Relocation and Linkage directory module
    4. END-End module
     


1:ESD-External Symbol Directory

ESD card contains information about all symbols that are define in a program that may be referred somewhere else and vice versa.
There are  3 types of symbols
  1. Segment Definition (SD):-It is name of the program which return prior to start keyword.
  2. Local Definition (LD):-This are the symbols which are define in the program.External
  3. Reference(ER):- This are symbols which are referred in the program but are defining somewhere else.
ID: - Giving unique no. to all segment definition and external reference.
Relative Address:- It is address at which those symbols are define.
Length: - Size of the symbol.

2. TXT Card
TXT card
Text portion of object module contains the relocatable machine language instruction and data that were produced during translation.

RLD (Relocation and Linkage Directory card)
RLD (Relocation and Linkage Directory card)

It contains information about those location of the program whose contains depend on address at which the program is placed.
It contains following information:
  1. The address of each operand that needs to be changed due to relocation
  2. By what it has to changed
  3. The operation to be performed
End Card



It specifies that start of execute of the of the object program and end of object module.


Design of DLL (Direct Linking Loader) :
  • Direct linking loader requires two passes to complete the linking process
  • Pass-I assigns address to all external symbol
  • Pass-II performs actual loading ,relocation and linking
In pass-I global external symbol table is prepared which has external symbol and corresponding absolute address value.

Two Pass Loader scheme 

Two Pass Loader scheme



Pass1 Database
1. Object card: - This card contain object program in four cards.
i. ESD
ii. TXT
iii. RLD
iv. END

IPLA (Initial program Local Address):-It is the address obtained by loader from operating system.
 

GEST (Global External Symbol Table):- It is used to keep track of addresses that are assign to the symbol.
Copy file:- it is preferred by pass1 to be used by pass2.
Load Map:- It is printed listing of GEST table.

 Pass2 Database
Copy file:- it is preferred by pass1 to be used by pass2
 

IPLA (Initial program Local Address):-It is the address obtained by loader from operating system.
 

Execution Address (EXADDR):- It indicates the location from where the execution of object program should begin.
 

GEST (Global External Symbol Table):- It is used to keep track of addresses that are assigning to the symbol.
 

Local External Symbol Array(LESA):- It is prepared with the help of  ESD And GEST.

Thursday, 24 September 2015

Two Pass Assemblers

Design of 2 Pass Assemblers

 

An assembler is a translator, that translates an assembler program into a conventional machine language program. Basically, the assembler goes through the program one line at a time, and generates machine code for that instruction. 

Then the assembler processes to the next instruction. In this way, the entire machine code program is created

Read about: leanandfit

What is the difference between one pass and two pass assembler?

What is a single pass assembler?

It is a assembler that generally generates the object code directly in memory for immediate execution. It parses through your source code only once and your done.

Now let us see how a two pass assembler works.

Simple, while on its way, if the assembler encounters an undefined label, it puts it into a symbol table along with the address where the undefined symbol's value has to be placed, when the symbol is found in future

 

Why do we need a two pass assembler?

As explained, one-pass assembler cannot resolve forward references of data symbols. It requires all data symbols to be defined prior to being used. A two-pass assembler solves this dilemma by devoting one pass to exclusively resolve all (data/label) forward references and then generate object code with no hassles in the next pass.

If a data symbol depends on another and this another depends on yet another, the assembler resolved this recursively. If I try explaining even that in this post, the post will become too big. Read this ppt for more details

Topics covered:
How 2 pass assembler works?
2 pass assembler algorithm.
2 pass assembler Design.
2 pass assembler program



 Agenda

Introduction 
 
Advanced Assembler Directives

  1. ORIGIN
  2. EQU
  3. LT ORG
Pass I of the Assembler

Data Structure used in Pass I
  1. OPTAB
  2. SYMTAB
  3. LITTAB
  4. POOLTAB
Algorithm
Intermediate code
Declaration and Assembler Directive Processing



Pass II of the Assembler
 

assembler system programming operating system
 Introduction
 

  • Convert mnemonic operation codes to their machine language equivalents
  • Convert symbolic operands to their equivalent machine addresses
  • Build the machine instructions in the proper format
  • Convert the data constants to internal machine representations
  • Write the object program and the assembly listing
Two Pass Assembler



  • Read from input line
    • LABEL, OPCODE, OPERAND
two pass assembler
Two Pass Assembler
  

 Design of 2 - Pass Assembler


Pass 1:
  1. Separate the Symbol, Mnemonic opcode and operand fields
  2. Build the symbol table
  3. Perform LC Processing
  4. Construct Intermediate Representation

Pass 2

Synthesize the target program


Advanced Assembler Directives

  • ORIGIN
  • EQU
ORIGIN

Syntax:
            ORIGIN < Address Specification>

Advanced Assembler Directives
 Advanced Assembler Directives


EQU

Syntax:
        <Symbol> EQU <Address Specification>

E.g.     MAXLEN    EQU    4096


Pass I of Assembler 

  • Pass I Uses following Data Structures
    • OPTAB
    • SYMTAB
    • LITTAB
    • POOLTAB 
OPTAB


SYMTAB: Symbol Table
SYMTAB: Symbol Table

LITTAB: Table of Literals used in program

LITTAB: Table of Literals used in program

POOLTAB: A table of information concerning literal pool

POOLTAB: A table of information concerning literal pool


Algorithm
Algorithm
Algorithm


The main reason why most assemblers use a 2-pass system is to address the problem of forward references -- references to variables or subroutines that have not yet been encountered when parsing the source code. A strict 1-pass scanner cannot assemble source code which contains forward references. Pass 1 of the assembler scans the source, determining the size and address of all data and instructions; then pass 2 scans the source again, outputting the binary object code.

Some assemblers have been written to use a 1.5 pass scheme, whereby the source is only scanned once, but any forward references are simply assumed to be of the largest size necessary to hold any native machine data type . The unknown quantity is temporarily filled in as zero during pass 1 of the assembler, and the forward reference is added to a 'fix-up list'. After pass 1, the '.5' pass goes through the fix-up list and patches the output machine code with the values of all resolved forward references. This can result in sub-optimal opcode construction, but allows for a very fast assembly phase.



Anykind of questions and suggestions are welcome below in comments
Entc Engg. Powered by Blogger.