Chapter 5 - Software Flashcards
describe how the following came into existence:
the BIOS (basic I/O system)
(hint: it always comes first when you turn a computer system on)
- it first came in two parts w/ the 1970s home computer craze: an internal ROM chip that stored some of the necessities + a cassette tape machine that stored the remaining software
- it later became something to be stored in read-only CMOS flash memory as firmware w/ only the required bits of the OS being copied into the RAM
list the two main types of the following OS component:
the HCI (human-computer interface)
(hint: think of the UI contained on your devices’ computer systems)
- the CLI (the directly-communicating command line interface)
- the GUI (the more intuitive graphical user interface)
list some advantageous points of the following interface types:
GUIs and CLIs
(hint: the latter involves more direct human-computer communications)
- GUIs: use WIMPs and other actions like pinching so are easier to use with a lower risk of making serious mistakes from not having to type commands in
- CLIs: are text-based so are less limited in terms of command options
describe the three parts of the following management type an OS does:
memory management
(hint: one of those parts involves optimizing storage drives)
- optimization (determines the hows and wheres of computer memory allocation during multitasking + ocassionally swaps data with an HDD/SSD)
- organization (determines an app’s allocated memory size in the most efficient way possible w/ the possible allocation options being contiguous, partitioned, paged, and segmented)
- protection (helps prevent data losses and computer crashes by preventing multiple competing apps from simultaneously using the same memory location - always mandatory for memory organization types)
describe the other tasks an OS carries out in the following field:
computer system management
(hint: think stored files and user security)
- security management (involves tasks like installing newly-available OS/antimalware definition updates + ensuring data privacy through user account control enforcement)
- process management (involves resource allocation + data transmission permits)
- hardware management (involves tasks like controling I/O device queues and buffers via drivers + assigning hardware resource priorities)
- file management (involves tasks like maintaining file directory structures + specifying logical file storage formats on a disk drive)
(more on disk formatting up next)
describe how the following type of utility software does its job:
a disk formatter
(hint: it aids w/ disk partitioning)
by performing the following tasks:
1. assigning storage space to different disk partitions that must then be formatted using FAT/NTFS/whatever
2. formatting disk partitions to aid w/ file recognition (eg. full NTFS formatting involves reading an entire zero-filled disk sector back and then deleting any existing data before the formatting)
3. checking for bad sector errors (hard = manufacturing error-induced; soft = sudden power loss-induced) on a disk
describe how the following type of utility software does its job:
an antimalware suite
(hint: try running a Defender scan on a Windows PC if you have one)
by performing tasks like heuristically checking files at the pre-loading stage + quarantining potentially-infected files into either autodeletion or user decision-making
(usually involving a database of known malware definitions)
describe how the following type of utility software does its job:
a disk defragmenter/analyzer
(hint: think of HDD-stored files getting scattered around over time)
by performing the following tasks:
1. putting fragmented files that’re stored on an HDD back into contiguous segments (not allowed with SSDs)
2. analyzing disks for their usage by reviewing different files/folders in an optimizing way
describe how the following type of utility software does its job:
backup software
(hint: try opening one yourself without running it)
by allowing users to create regular system backup schedules, carrying backup procedures whenever a file’s been modded, and sometimes even permitting for files to be reverted to their earlier versions
list the situations where the following could be used:
program libraries
(hint: they can make programming more efficient)
- during software development as a timesaver
- as an aid for DLL-requesting developers who need their subroutines at runtime
(more on DLLs later)
list the pros of doing the following:
developing software using library programs and routines
(hint: think back to the previous card)
- they save development time + costs by removing rewriting needs + being pre-tested elsewhere
- they also lead to modular programming that can allow for continuity with other apps if the program using the libraries forms part of a software suite + the maintenance of a specific corporate image
compare the following library types with each other:
static and dynamic
(hint: we talked briefly about DLLs 2 cards back)
- static libraries: linked w/ software developments upon compilation so are embedded into the compiled executables
- dynamic libraries/DLLs: not linked w/ software developments until they’re actually run so come in standalone files that’re available to multiple other developments
(more on the pros and cons of DLLs up next)