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...
DEAD LOCKS
System Model
● For the purposes of deadlock discussion, a system can be modeled as a collection of limited resources, which can be splitted into different classes, to be allocated to a number of processes, each having different needs.
● Resource classes may adds memory, printers, CPUs, open files, tape drives, CD-ROMS, etc.
● By definition, all the resources within a classification are equivalent, and a request of this category can be equally satisfied by any one of the resources in that category. If this is not the instance ( i.e. if there is some difference between the resources within a class ), then that class needs to be
further divided into separate categories. For example, "printers" may require to be separated into "laser printers" and "color inkjet printers".
● Some classification may have a single resource.
● In normal performance a process must request a resource before using it, and release it when it is complete, in the following sequence:
1. Request - If the request cannot be immediately allowed, then the process must wait until the resource(s) it needs become available. Example: system calls open( ), malloc( ), new( ), and request( ).
2. Use - The process make use of the resource.
Example: prints to the printer or reads from the file.
3. Release - The process relinquishes the resource. so that it becomes obtainable for other processes.
Example:close( ) free( ) delete( ) and release( ).
● For all kernel-managed resources, the kernel keeps trace of what resources are free and which are allocated, to which process they are allocated, and a queue of processes waiting for this resource
to become available. Application-managed resources can be controlled utilize mutexes or wait( ) and signal( ) calls, ( i.e. binary or counting semaphores. )
● A group of processes is deadlocked when every process in the group is waiting for a resource that is presently assignedto another process in the group (and which can only be freed when that other
waiting process makes progress. )