Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

ITE 221 – Exam 3 – Study Questions (Chapters 10, 11 and 12) Chapter 10 - Applica

ID: 3715114 • Letter: I

Question

ITE 221 – Exam 3 – Study Questions (Chapters 10, 11 and 12)


Chapter 10 - Application Development

What is the system requirements model?

What is a design model?

Describe the programming language generations. (which programming languages fit into each generation)

First Generation Language

Second Generation Language

Third Generation Language

Fourth Generation Language

Fifth Generation Language

Object-Oriented Language

Scripting Language

What is instruction explosion?

What is an assembler?

What is a nonprocedural programming language?

What is a message?

What is source code?

What is object code?

What is executable code?

What is a link editor?

What is a compiler?

What is a data operation?

What is a control structure?

What is a function?

What is the function of the symbol table?

What is the function of a link editor?

What is an external function call?

What is a native application?

What is an applet?

What is a compiler library?

What is the difference between static linking and dynamic linking?

What is a dynamic-link library?

What is an interpreter?

What is instruction explosion?

What is the difference between an interpreter and a compiler?

What is the function of a symbolic debugger?

What is a CASE tool?

What is the difference between a back-end and a front-end CASE tool?

What is Java?

What is Java Virtual Machine?

What is Javabyte code?

What is code?

What is a variable?

What is data declaration?


Chapter 11 - Operating Systems

What is an operating system?

What are some of the functions of an operating system?

Describe the three System Software Layers

Command Layer

Service Layer

Kernel

What is the difference between a real and a virtual resource?

What is a process?

What is typically contained in a process control block?

What is the function of a thread control block?

What is dispatching?

Describe the ready state (thread).

Describe the running state (thread).

Describe the blocked state (thread).

What is preemptive scheduling?

What are priority-based scheduling routines?

Describe the first-come first-served scheduling routine.

Describe the explicit priority scheduling routine.

Describe the shortest time remaining scheduling routine.

Describe the real-time scheduling routine.

What causes memory fragmentation?

What is the purpose of compaction?

What is the difference between virtual and physical memory?

What is virtual memory management?

What is a page?

What is a page hit?

What is the purpose of a page table?

What is a page fault?

What is the difference between a child, sibling and parent process?

What is the difference between big endian and little endian?

Why is the most significant byte important?

What is a spawn?

What is a virtual machine?

What is the difference between absolute and indirect addressing?

What is the difference between multitasking memory allocation and noncontiguous memory allocation?

What is a command language?

What is a hypervisor?

What is system overhead?

What are virtual resources?

What is multithread?

What is a thread cycle?

What is addressable memory?

What is process offset?

What is address mapping?

What is fragmentation?

What is swap space?

What is a global descriptor table?

Chapter 12 - File Management Systems

What is a file management system (FMS)?

What is the difference between the storage I/O control layer and the file control layer?

What is a directory?

What is a blocking factor?

What are typical access controls for an operating system?

What is a hierarchical directory structure?

What is a home directory?

What is a volume?

What is the file control layer?

What is a working directory?

What is file association?

What is a buffer?

What is a master file table?

What is a file, record, field?

What is versioning?

What is full backup?

What is the difference between a complete path and a relative path?

What is a graph directory structure?

What is an allocation unit?

What is a storage allocation table?

What is a file allocation table?

What is the difference between a logical record and a physical record?

What is the purpose of blocking?

What is the difference between sequential access and direct access?

Describe the following file operations:

open

close

delete

undelete

Describe the three UNIX access control types. (read,write..)

What is file migration?

Describe the two types of periodic backups.

What is the purpose of transaction logging?

What is file recovery?

What is fault tolerance?

What is disk mirroring?

What is the difference between a son, father, grandfather transaction?

What is the difference between a child, parent and sibling process?

Describe the Google File System.


Explanation / Answer

Application Development
______________________


1.

A system requirements model is a representation of the system being built. Models can be of variety types like graphical,level wise, or it can be focused on data or

processing etc. Creating a model can help us clarify and refine the design. It help us to simplify the complex aspects of system. It helps to focus on the system's

external behavior, separately from its internal design.It Reduce gaps and inconsistencies in the requirements as well as reduce the work needed to respond to

requirements changes.It helps in planning the order in which features will be developed.
The models can be of many types like:
1.Scenario based models.
2.Data models
3.Class-oriented models
4.Flow - oriented models
5.Behavioural models etc.

2.

The design model is an object model describing the realization of use cases, and serves as an abstraction of the implementation model and its source code. The design

model is used as essential input to activities in implementation and test.


3.
a.
The first generation program language is pure machine code, that is just ones and zeros, e.g. 0010010010101111101010110. Programmers have to design their code by hand

then transfer it to a computer by using a punch card, punch tape or flicking switches. There is no need to translate the code and it will run straight away.
The benefits are :

Code can be fast and efficient
Code can make use of specific processor features such as special registers

The drawbacks are:

Code cannot be ported to other systems and has to be rewritten
Code is difficult to edit and update

b.
Second-generation programming languages have the following properties:
The code can be read and written by a programmer. To run on a computer it must be converted into a machine readable form, a process called assembly.The language is

specific to a particular processor family and environment.They are a way of describing Assembly code.By using codes resembling English, programming becomes much

easier.

The benefits are:
Code can be fast and efficient
Code can make use of specific processor features such as special registers
As it is closer to plain English, it is easier to read and write when compared to machine code

Drawbacks:

Code cannot be ported to other systems and has to be rewritten

c.

3GLs are much more machine independent and more programmer-friendly. This includes features like improved support for aggregate data types, and expressing concepts in

a way that favors the programmer, not the computer. A third generation language improves over a second generation language by having the computer take care of non-

essential details. 3GLs feature more abstraction than previous generations of languages, and thus can be considered higher level languages than their first and second

generation counterparts.
Ex: Fortran, ALGOL,COBOL, C, C++, Java

d.

Fourth-generation languages are designed to reduce programming effort and the time it takes to develop software, resulting in a reduction in the cost of software

development. They are not always successful in this task, sometimes resulting in inelegant and hard to maintain code. Languages have been designed with a specific

purpose in mind and this might include languages to query databases (SQL), languages to make reports (Oracle Reports) and languages to construct user interface (XUL).

An example of 4th generation programming type is the declarative language. Eg: SQl, CSS etc


e.

A fifth-generation programming language (5GL) is a programming language based on problem solving using constraints given to the program, rather than using an algorithm

written by a programmer.Most constraint-based and logic programming languages and some other declarative languages are fifth-generation languages.Fifth-generation

languages are used mainly in artificial intelligence research. Prolog, OPS5 and Mercury are examples of fifth-generation languages.

f.

Object-oriented language (OOL) is a high-level computer programming language that implements objects and their associated procedures within the programming context to

create software programs.Object-oriented language uses an object-oriented programming technique that binds related data and functions into an object and encourages

reuse of these objects within the same and other programs.Object-oriented language typically supports the following features, at minimum:

The ability to create classes and their associated objects
Encapsulation
Inheritance

Java, C++ and Smalltalk are popular examples of object-oriented languages.

g.

A scripting or script language is a programming language that supports scripts: programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator. Scripting languages are often interpreted (rather than compiled).

eg: Python, JavaScript, Ch etc


4.

5.
An assembler is a type of computer program that interprets software programs written in assembly language into machine language, code and instructions that can be

executed by a computer.An assembler enables software and application developers to access, operate and manage a computer's hardware architecture and components.
An assembler is sometimes referred to as the compiler of assembly language. It also provides the services of an interpreter.

6.
A computer language that does not require writing traditional programming logic. Also known as a "declarative language,".Users concentrate on defining the input and

output rather than the program steps required in a procedural programming language such as C++ or Java.

7.

Source code is any collection of computer instructions, possibly with comments, written using a human-readable programming language, usually as plain text. The source

code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source

code. The source code is often transformed by an assembler or compiler into binary machine code understood by the computer.

8.

Object code or object module is the product of a compiler. In a general sense object code is a sequence of statements or instructions in a computer language,usually a

machine code language (i.e., binary) or an intermediate language such as register transfer language (RTL).Object code is a portion of machine code that has not yet

been linked into a complete program. It is the machine code for one particular library or module that will make up the completed product.

9.
Software in a form that can be run in the computer. It typically refers to machine language, which is the set of native instructions the computer carries out in

hardware.

10.
A program that links modules together, by resolving calls or references to external names, to form a single executable program.

11.
A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target

language). Compilers are a type of translator that support digital devices, primarily computers. The name compiler is primarily used for programs that translate source

code from a high-level programming language to a lower level language (e.g., assembly language, object code, or machine code) to create an executable program.

12.
DataOps (data operations) is an approach to designing, implementing and maintaining a distributed data architecture that will support a wide range of open source tools

and frameworks in production.

13.
A control structure is a block of programming that analyzes variables and chooses a direction in which to go based on given parameters. The term flow control details

the direction the program takes (which way program control "flows").

14.
A function is a unit of code that is often defined by its role within a greater code structure. Specifically, a function contains a unit of code that works on various

inputs, many of which are variables, and produces concrete results involving changes to variable values or actual operations based on the inputs.

15.
Symbol table is an important data structure created and maintained by compilers in order to store information about the occurrence of various entities such as variable

names, function names, objects, classes, interfaces, etc. Symbol table is used by both the analysis and the synthesis parts of a compiler.

16.
17.

18.
Native apps are installed through an application store (such as Google Play or Apple's App Store). They are developed specifically for one platform, and can take full

advantage of all the device features — they can use the camera, the GPS, the accelerometer, the compass, the list of contacts, and so on.

19.
An applet (little application) is a small software program that supports a larger application program. In the past, the term applet was often associated with the Java

programming language.

20.
21.
A dynamic-link library (DLL) is a module that contains functions and data that can be used by another module (application or DLL). A DLL can define two kinds of

functions: exported and internal. The exported functions are intended to be called by other modules, as well as from within the DLL where they are defined.

22.
An interpreter transforms or interprets a high-level programming code into code that can be understood by the machine (machine code) or into an intermediate language

that can be easily executed as well. The interpreter reads each statement of code and then converts or executes it directly.

23.
24.A compiler takes entire program and converts it into object code which is typically stored in a file. The object code is also refereed as binary code and can be

directly executed by the machine after linking. Examples of compiled programming languages are C and C++.

An Interpreter directly executes instructions written in a programming or scripting language without previously converting them to an object code or machine code.

Examples of interpreted languages are Perl, Python and Matlab.

25.
26.
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly

inspired by computer-aided design (CAD) tools used for designing hardware products.

27.
28.Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented,and specifically designed to have as few implementation

dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that

support Java without the need for recompilation.

29.
A Java virtual machine (JVM) is an abstract computing machine that enables a computer to run Java programs as well as programs written in other languages and compiled

to Java bytecode.

30.
Java Byte Code is the language to which Java source is compiled and the Java Virtual Machine understands. Unlike compiled languages that have to be specifically

compiled for each different type of computers, a Java program only needs to be converted to byte code once, after which it can run on any platform for which a Java

Virtual Machine exists.Bytecode is the compiled format for Java programs. Once a Java program has been converted to bytecode, it can be transferred across a network

and executed by Java Virtual Machine (JVM). Bytecode files generally have a .class extension. It is not normally necessary for a Java programmer to know byte code, but

it can be useful.

31.
Code (noun) is a term used for both the statements written in a particular programming language - the source code , and a term for the source code after it has been

processed by a compiler and made ready to run in the computer - the object code .

32.
Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so

our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is

to label and store data in memory. This data can then be used throughout your program.

33.
A declaration determines the name and data type of a variable or other element. Programmers declare variables by writing the name of the variable into code, along with

any data type indicators and other required syntax.

*********************************************************************************************************************************************************
***********************************************************************************************************************************************************
****************************************************************************************************************************************************************
*****************************************************************************************************************************************


Operating Systems

1.
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.

2.
An operating system has three main functions: (1) manage the computer's resources, such as the central processing unit, memory, disk drives, and printers, (2)

establish a user interface, and (3) execute and provide services for applications software.

3.
4.
5.
A process is basically a program in execution. The execution of a process must progress in a sequential fashion.A process is defined as an entity which represents the

basic unit of work to be implemented in the system.

6.
Thread control block. Thread Control Block (TCB) is a data structure in the operating system kernel which contains thread-specific information needed to manage it. The

TCB is "the manifestation of a thread in an operating system."

7.

The dispatcher is the module that gives control of the CPU to the process selected by the short-time scheduler(selects from among the processes that are ready to

execute).
The function involves :
Swithching context
Switching to user mode
Jumping to the proper location in the user program to restart that program.

8.
A "ready" or "waiting" process has been loaded into main memory and is awaiting execution on a CPU (to be context switched onto the CPU by the dispatcher, or short-

term scheduler). There may be many "ready" processes at any one point of the system's execution—for example, in a one-processor system, only one process can be

executing at any one time, and all other "concurrently executing" processes will be waiting for execution.

9.

A process moves into the running state when it is chosen for execution. The process's instructions are executed by one of the CPUs (or cores) of the system. There is

at most one running process per CPU or core. A process can run in either of the two modes, namely kernel mode or user mode

10..

A process transitions to a blocked state when it cannot carry on without an external change in state or event occurring. For example, a process may block on a call to

an I/O device such as a printer, if the printer is not available. Processes also commonly block when they require user input, or require access to a critical section

which must be executed atomically. Such critical sections are protected using a synchronization object such as a semaphore or mutex.

11.

A scheduling discipline is preemptive if, once a process has been given the CPU can taken away. The strategy of allowing processes that are logically runable to be

temporarily suspended is called Preemptive Scheduling and it is contrast to the "run to completion" method.

12.
13.


First in, first out (FIFO), also known as first come, first served (FCFS), is the simplest scheduling algorithm. FIFO simply queues processes in the order that they

arrive in the ready queue. This is commonly used for a task queue.

14.
15.
Shortest remaining time scheduling is the preemptive counter part of SJF and is useful in time sharing system. In SRT, process with the smallest estimated run time to

completion is run next, in SJF once a job begin executing, it runs to completion. In SRT a running process may be preempted by a user process with a shorter estimated

run time.

16.

17.
Storage failure. The most severe problem caused by fragmentation is causing a process or system to fail, due to premature resource exhaustion: if a contiguous block

must be stored and cannot be stored, failure occurs.

18.
Compaction is a process in which the free space is collected in a large memory chunk to make some space available for processes.In memory management, swapping creates

multiple fragments in the memory because of the processes moving in and out.Compaction refers to combining all the empty spaces together and processes.Compaction helps

to solve the problem of fragmentation, but it requires too much of CPU time.

19.
A page, memory page, or virtual page is a fixed-length contiguous block of virtual memory, described by a single entry in the page table. It is the smallest unit of

data for memory management in a virtual memory operating system.

20.

Page-hit access is defined as any read or write operation to an open page. That is, the bank containing the open page is already active and is immediately ready to

service requests.

21.

A page table is the data structure used by a virtual memory system in a computer operating system to store the mapping between virtual addresses and physical

addresses.

22.
A page fault (sometimes called #PF, PF or hard fault) is a type of exception raised by computer hardware when a running program accesses a memory page that is not

currently mapped by the memory management unit (MMU) into the virtual address space of a process.
23.

A child process is the creation of a parent process, which can be defined as the main process that creates child or subprocesses to perform certain operations. Each

process can have many child processes but only one parent. A child process inherits most of its parent's attributes.

The process that invoked fork is the parent process and the newly created process is the child process. Every process (except process 0) has one parent process, but

can have many child processes. The operating system kernel identifies each process by its process identifier.

24.

The difference between little endian and big endian formats, also sometimes called "endian-ness," is the difference between how computing systems order multiple bytes

of information. These different formats are machine-specific, which means they are programmed on machines on a case-by-case basis. It’s important to preserve

consistent endian-ness across various machines when data is transferred or migrated between them, or alternately, to interpret data so that the receiving computer

tabulates the right result.The big endian format means that data is stored big end first. In multiple bytes, the first byte is the biggest, or represents the primary

value. In the little endian format, data is stored little end first. In this case, with multi-byte pieces, it is the last bite that is biggest or that has the primary

value to which subsequent values are added or concatenated.

25.

26.
Spawn refers to a function that loads and executes a new child process. The current process may wait for the child to terminate or may continue to execute concurrent computing. Creating a new subprocess requires enough memory in which both the child process and the current program can execute.

27.
A virtual machine (VM) is an emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer.

Their implementations may involve specialized hardware, software, or a combination.

28.
If the Address part has the address of an operand, then the instruction is said to have a direct address. If the address bits of the instruction code are used as an

actual operand, it is termed as indirect addressing. Two memory references are needed to access data.

29.

30.
A command language is a language for job control in computing.It is a domain-specific and interpreted language; common examples of a command language are shell or

batch programming languages.These languages can be used directly at the command line, but can also automate tasks that would normally be performed manually at the

command line.

31.
A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs

one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.

32.
33.
34.

Multithreading is a type of execution model that allows multiple threads to exist within the context of a process such that they execute independently but share their process resources. A thread maintains a list of information relevant to its execution including the priority schedule, exception handlers, a set of CPU registers, and stack state in the address space of its hosting process.Multithreading is also known as threading.

*******************************

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote