1) What is the first step in problem-solving? A) Writing code B) Debugging C) Understanding the problem D) Optimizing the solution Answer: C 2) Which of these is not a step in the problem-solving process? A) Algorithm development B) Problem analysis C) Random guessing D) Testing and debugging Answer: C 3) What is an algorithm? A) A high-level programming language B) A step-by-step procedure to solve a problem C) A flowchart D) A data structure Answer: B 4) Which of these is the simplest data structure for representing a sequence of elements? A) Dictionary B) List C) Set D) Tuple Answer: B 5) What does a flowchart represent? A) Errors in a program B) A graphical representation of an algorithm C) The final solution to a problem D) A set of Python modules Answer: B 6) What is pseudocode? A) Code written in Python B) Fake code written for fun C) An informal high-level description of an algorithm D) A tool for testing code Answer: C 7) Which of the following tools is NOT commonly used in pr...
Virtual Memory
* Virtual memory is a characteristics of an operating system that allows a computer to be adept to compensate shortages of physical memory by transferring pages of data from random access memory to disk storage
* In practice, most real processes do not require all their pages, or at least not all at once, for several reasons:
• Error handling code is not required unless that specific error occurs, some of which are quite rare.
• Arrays are often over-sized for worst-case schemes, and only a small fraction of the arrays are actually used in practice.
• Definite features of definite programs are rarely used, such as the routine to balance
the federal budget.
*The potential to load only the portions of processes that were actually needed (and only when they were needed) has several benefits:
•Programs could be written for a much longer address space(virtual memory space) than physically exists on the computer.
• Because each process is only using a fraction of their overall address space, there is more memory left for other programs, increasing CPU utilization and system throughput.
• Small I/O is needed for swapping in and out of RAM, speeding things up.
* Figure below shows the general layout of virtual memory, which can be much longer
than physical memory:
Fig: Diagram showing virtual memory is larger than physical memory
* Figure below conveys virtual address space, which is the programmer’s logical view of process memory storage. The actual physical layout is managed by the process's page table.
* Note that the address space shown in Figure is sparse - A great hole in the middle of the address space is never used, unless the stack and/or the heap grow to fill the hole.
Fig: Virtual address space
* Virtual memory also permits the sharing of files and memory by multiple processes, with several benefits:
• System libraries can be divided by mapping them into the virtual address space of more than one process.
• Processes can also divides virtual memory by mapping the same block of memory to more than one process.
• Process pages can be divided during a fork( ) system call, eliminating the need to
copy all of the pages of the actual(parent) process.