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...
File-System Implementation
File-System Structure
* Hard disks have two important properties that make them suitable for secondary storage of files in file systems: (1) Blocks of data can be enlarged in place, and (2) they are direct access, permitting any block of data to be
accessed with only ( relatively ) minor movements of the disk heads and rotational latency.
* Disks are usually processed in physical blocks, rather than a byte at a time. Block sizes may range from 512 bytes to 4K or longer.
* File systems keeps storage on disk drives, and can be viewed as a layered design:
• At the lowest layer are the physical devices, containing of the magnetic media, motors & controls, and the electronics connected to them and controlling them.
Modern disk put excess and excess of the electronic controls directly on the disk
drive itself, leaving relatively little work for the disk controller card to perform.
• I/O Control contains of device drivers, special software programs ( often written
in assembly ) which communicate with the devices by reading and writing special
codes directly to and from memory addresses respective to the controller
card's registers. Each controller card ( device ) on a system has a various set of
addresses ( registers, a.k.a. ports ) that it listens to, and a different set of command
codes and results codes that it understands.
• The basic file system level works directly with the device drivers in terms of
restoring and storing raw blocks of data, without any consideration for what is in
each block. Depending on the system, blocks may be referred to with a single
block number, ( e.g. block # 234234 ), or with head-sector-cylinder combinations.
• The file organization module knows about files and their logical blocks, and how they map to physical blocks on the disk. In addition to translating from logical to physical blocks, the file organization module also maintains the list of free blocks, and allocates free blocks to files as needed.
• The logical file system deals with all of the meta data associated with a file ( UID,
GID, mode, dates, etc ), i.e. everything about the file except the data itself. This
level manages the directory structure and the mapping of file names to file control
blocks, FCBs, which contain all of the meta data as well as block number information for finding the data on the disk.
* The layered approach to file systems means that much of the code can be used uniformly for a wide variety of different file systems, and only certain layers need to be file systemspecific. Common file systems in use include the UNIX file system, UFS, the Berkeley Fast File System, FFS, Windows systems FAT, FAT32, NTFS, CD-ROM systems ISO 9660, and for Linux the extended file systems ext2 and ext3 ( among 40 others supported)