1) Base of hexadecimal number system? Answer : 16 2) Universal gate in digital logic? Answer : NAND 3) Memory type that is non-volatile? Answer : ROM 4) Basic building block of digital circuits? Answer : Gate 5) Device used for data storage in sequential circuits? Answer : Flip-flop 6) Architecture with shared memory for instructions and data? Answer : von Neumann 7) The smallest unit of data in computing? Answer : Bit 8) Unit that performs arithmetic operations in a CPU? Answer : ALU 9) Memory faster than main memory but smaller in size? Answer : Cache 10) System cycle that includes fetch, decode, and execute? Answer : Instruction 11) Type of circuit where output depends on present input only? Answer : Combinational 12) The binary equivalent of decimal 10? Answer : 1010 13) Memory used for high-speed temporary storage in a CPU? Answer : Register 14) Method of representing negative numbers in binary? Answer : Two's complement 15) Gate that inverts its input signal? Answer : NOT 16)
Disk Formatting
* Before a disk can be used, it has to be low-level formed, which means laying down all of the headers and trailers marking the beginning and ends of each sector. Included in the header and trailer are the linear sector numbers, and error-correcting codes, ECC, which permits damaged sectors to not only be detected, but in many cases for the damaged data to be retrieved (depending on the extent of the damage) Sector sizes are traditionally 512 bytes, but may be larger, particularly in larger drives.
* ECC computation is performed with every disk read or write, and if damage is detected but the data is recoverable, then a soft error has occurred. Soft errors are normally handled by the on-board disk controller, and never seen by the OS. (See below.)
* Once the disk is low-level formed, the next step is to partition the drive into one or more separate partitions. This step must be terminated even if the disk is to be used as a single large partition, so that the partition table can be written to the beginning of the disk.
* After splitting, then the file systems must be logically formatted, which involves laying down the master directory information (FAT table or inode structure), initializing free lists, and creating at least the root directory of the file system. (Disk splits which are to be used as raw devices are not logically formatted. This saves the overhead and disk space of the file system structure, but needs that the application program manage its own disk storage requirements. )
Boot Block
* Computer ROM has a bootstrap program (OS independent) with just enough code to find the first sector on the first hard drive on the first controller, load that sector into memory, and transfer control over to it. ( The ROM bootstrap program may look in floppy and/or CD drives before rebooting the hard drive, and is smart enough to recognize whether it has found valid boot code or not. )
* The first sector on the hard drive is known as the Master Boot Record, MBR, and has a very small amount of code in addition to the partition table. The partition table documents how the disk is splitted into logical disks, and indicates specifically which partition is the active or boot partition.
* The boot program then looks to the active splits to find an operating system, possibly loading up a slightly larger / more advanced boot program along the way.
* In a dual-boot ( or larger multi-boot ) system, the user may be given a chance of which operating system to boot, with a default action to be taken in the event of no reaction within some time frame.
* Once the kernel is found by the boot program, it is loaded into memory and then mnaged is transferred over to the OS. The kernel will normally continue the boot process by resetting all important kernel data structures, launching important system services (e.g. network daemons, sched, init, etc.), and finally giving one or more login prompts. Boot options at this stage may include single-user a.k.a. maintenance or safe modes, in which very few system services are started - These modes are designed for system administrators to repair problems or otherwise maintain the system.
Bad Blocks
* No disk can be produced to 100% perfection, and all physical objects wear out over time. For these reasons all disks are shipped with a few bad blocks, and additional blocks can be predicted to go bad slowly over time. If a large number of blocks go bad then the whole disk will need to be replaced, but a few here and there can be handled through other means.
* In the old days, bad blocks had to be verified for manually. Restarting of the disk or running certain disk-analysis tools would identify bad blocks, and attempt to read the data off of them one last time through repeated tries. Then the bad blocks would be mapped out and removed of future service. Sometimes the data could be retrieved, and sometimes it was lost forever. (Disk analysis tools could be either constructive or non-constructive.)
* Modern disk controllers make much better use of the error-correcting codes, so that bad blocks can be find earlier and the data usually recovered. (Recall that blocks are tested with every write as well as with every read, so often errors can be finded before the write operation is complete, and the data simply written to a different sector instead.)
* Note that re-mapping of sectors from their normal linear procression can throw off the disk scheduling maximization of the OS, especially if the replacement sector is physically far away from the sector it is replacing. For this reason most disks normally keep a few extra sectors on each cylinder, as well as at least one spare cylinder. Whenever possible a bad sector will be mapped to additional sector on the same cylinder, or at least a cylinder as
close as possible. Sector slipping may also be performed, in which all sectors between the bad sector and the replacement sector are passed down by one, so that the linear progression of sector numbers can be maintained.
* If the data on a bad block cannot be retrieved, then a hard error has occurred. which needs replacing the file(s) from backups, or rebuilding them from scratch.