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.
*******************************
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.