Midterm Review Flashcards
Define Software
A collection of data or computer instructions that tells the computer how to work
Code vs software
Software are programs used by the computer
Code is instructions written in a form that computers can execute
Machine Code, Assembly Code, Low-Level & High-Level Code
Code is not software
What is a killer app?
Any computer program or software that is so necessary or desirable that it proves the core value of some larger technology
Examples of Killer Apps
It’s all about the sales:
DOS, Mac, Windows, iPhone, Android, The Internet
Describe Firmware
Software embedded directly in a hardware, used to make it function
Open-source vs closed source software
Source code is Public vs Private
Examples of Open and Closed source Software
Open: Firefox, MySQL, Perl, PHP, Linux
Closed: Windows, IOS, Mac OS
Categories of Application Software
Information Worker
Entertainment
Educational
Enterprise
Simulation
Media Development
Product Engineering
Software Engineering
Examples of application software used by an information worker
Spreadsheets, Email and blog clients
What are programming tools?
Applications used to create, debug, maintain, or otherwise support software development
Examples of programming tools
Compilers
Debuggers
Interpreters
Linkers
Editors
IDEs
Linters
What are differences between compiled, interpreted, hybrid
C: all at once before we load and execute the program
I: convert each line of code as you execute the program
H: Convert the source code to a pseudo-machine code. Pass to an interpreter
that converts the p-code (portable code) as it executes
Describe Machine Language
Directly executable by a CPU. Each CPU uses its own binary machine code made up of 0s and 1s.
Describe Assembly Language
Provides some human-understandable representation of 0s and 1s
Describe Low-Level Languages
Low-level language provides a minimal abstraction of the processor
Low-level code doesn’t significantly abstract the computer’s instruction set architecture but does hide the specific assembly codes.
Describe High-Level Languages
High-level languages significantly abstract the details of the computer.
Define an Operating System
- A system software that manages computer hardware, software resources, and provides common services for computer programs
- A program that implements the detailed interactions with hardware and applications
Name tasts that need an OS
Input a character from the keyboard
Allocate n bytes of memory for a new data structure
Load a program into memory
Call a shared library function
Exit current program
Sleep for n seconds
Difference between User and Kernel Modes
User mode provides a safe and controlled environment for applications
Kernel mode allows the OS to manage hardware and system resources directly
What is the mode bit?
The mode bit prevents direct communication with the Kernel & Hardware
Separation is essential for system security and stability
What is the mode bit set to for user mode and kernel mode?
User - 0
Kernel - 1
Provide Examples of Privileged Instructions
I/O Operations
Memory Management
Interrupt handling
Mode Changing
System Control
Provide Examples of Non-Privileged Instructions
Arithmetic Operations
Data Movement
Control Flow
Basic Memory Access
I/O Requests
Describe Unix and what its used on
Written in C. Text Based. Multi-user Support
Used by AT&T and Bell
Describe MS DOS and what its used on
Simple and Text Based
Used for Microsoft PCs
Describe Linux and what its used on
Based on Unix. Open Source.
Started text based, has graphical interface distributions
Describe Windows and what its used on
Graphical OS
Started as interface with DOS, no longer is
Used on PCs
Describe Mac OS and what its used on
Based on Unix. Graphical OS
Used on PCs
Describe iOS and what its used on
Some Unix Basis. Touch Controls
Used on iPhones
Describe Android and what its used on
Graphical OS. Touch Controls
Used on Smartphones