click below
click below
Normal Size Small Size show me how
PigJava
Chapter 1: Mental Landscape
Question | Answer |
---|---|
Program | A set of unambiguous instructions meant to be followed mechanically by the CPU |
Machine Language | A binary language individualized to Macs, Window computers, and Linux. The computer can only execute the program if it is in the correct machine language. |
When a program is executed: | The program is loaded from the disk onto the main memory and is executed from there by the CPU. The main memory can also store the data being used by the program |
Main memory consisted of: | Locations and Addresses |
Locations | Main memory consists of a sequence of places for storing data which are numbered and these places are called locations |
Address | The sequence number of any give location in the main memory is called the address of that data |
When the CPU accesses information in the main memory: | It sends a signal with the address of the specific piece of information and the main memory sends a signal with that information back. |
Fetch-and-execute cycle | The cycle that the CPU follows in a synchronous processing situation. where information is "fetched" from the main memory and then "executed" which continues indefinitely |
Internal Registers | A memory unit in a piece of hardware capable of holding a single number of machine language instruction of a program. |
Personal Counter 1 | A specific internal register of the CPU which keeps track of where in a program the CPU is( this means that the address of the next instruction to be executed). Is checked at the beginning of the fetch and execute cycle for the address of next instruction |
personal counter 2 | is updated in the middle of the fetch and execute cycle to the address of the next instruction in the program |
Transistors | A computer is a device comprised of millions of these tiny on off switches. Binary Machine Language corresponds to their "on" "off" states and their pattern of "OFF" and "ON" in the CPU tells it what operation to perform. |
Transistors 2 | Wired so as to be able to influence other transistors "ON" "OFF" states. how they influence other transistors is influence by how they are wired and the program being executed. the pattern of encodes an instruction in binary which is stored in the memory. |
Device Drivers | Software which is executed when dealing with a hardware device. The CPU has no way of communicating with the Devices without the Drivers. The Device drivers are a series of machine language instructions which allow the CPU to control the devices |
Bus | Set of Wires which carry data, addresses, and control signals between devices connected by the bus |
Address Wire | Controls where data will flow and directs it to a specific device or register |
control signals | used to alert devices that there is data waiting for them on the data bus and also has other uses |
Polling | A system for managing how the CPU finds and responds to incoming data on the data bus. Where the CPU constantly checks the Data bus for new data to be processed. This method is extremely inefficient. |
Interrupts | A method for managing how the CPU receives new information. Where a signal is sent from another device that tells the CPU to stop what its current task is and execute the awaiting data on the Data Bus. |
Interrupts 2 | When interrupted the CPU saves enough information in its internal registers on what task it was performing before the interrupt is received to return to it. After executing the interrupt, the CPU will return to a predetermined memory location. |
Interrupt Handler | Handles the process of the interrupt and contains the instructions necessary for the CPU to return to task it was performing prior to the interrupt. The interrupt handler is part of the device driver which did the interrupt.Allows for "asynchronous"events |
Multitasking | how the CPU handles multiple demands at one time. all modern computers use multitasking one application of multitasking is called timesharing. An example of multitasking where you run both a clock and a cardgame on the computer at the same time |
Timesharing | Where CPU tasking is fractioned between users by time. |
Thread | Each individual task that the CPU is working on. Multiple core CPU's can run multiple threads at the same time. |
A thread will run until: | 1) It yields control of the CPU for another thread 2)It is waiting for an "asynchronous even" such as data retrieval from the harddrive. 3)The thread uses up its allotted time and be suspended to allow other threads to run |
Blocked | A term applied to Threads which are waiting on an "asynchronous" event |
Preemptive Multitasking | computers are said to have preemptive multitasking if they have timer which will send an interrupt signal 100 times a second to suspend the current thread and allow the CPU to switch threads. |
Event Handler | A handler which is called "asynchronous" when it causes specific events to occur. |
Operating System | The software which does all the handling, handles the communication with the users and with the hardware devices, and controls which thread is allowed to run |
High level programming Languages | These are languages that are not Machine languages like Java, Pascal, C++ which can be compiled and interpreted into machine languages but can not be directly run by the CPU. |
Compiler | Translates the High level Programming Language into Machine Language specific to the type of computer. |
Interpreter | Like the compiler, but it will reread the High Level Programming Language, decide what is necessary to execute the instructions, and writes the appropriate machine language to do so. |
Java | Uses a two step method of compiling into Java Bytecode and interpreting the Bytecode into the Machine language for the specific type of Machine language desired. Makes it a multiplatform language. |
Java Virtual Machine | The specific type of computer the Java compiler writes the High Level Programming Language for. The machine Language for this computer is Java Bytecode. |
Just-In-Time Compiler | A technique for getting around the slow performance issues associated with interpreters where the Java bytecode is both interpreted and compiled into the machine language for the specific computer at the same time. |
The basic aspects of programming are: | Data and Instructions |
Data | Comprised of Variables and Types |
Instructions | Comprised of Control Structures and Subroutines |
Variable | A memory location which has been given a name so that it can be easily referred to and used in a program. Refers to a specific location that can hold data even if the programmer doesn't know where in the memory that data is located. |
Type | Indicates the sort of data a variable can hold( thus, there are types of variables). Can be integers or floating point numbers, individual characters "A",Strings of characters "the", and other types like dates, colors, sound or anything other type of data |
Control Structures | Special instructions that can change the "flow of control". Two important Control Structures are called Loops and Branches |
Flow of control | What order the CPU executes instructions. |
Loops | Allow the sequence to be repeated over and over again |
Branches | Allows the computer to choose between two or more options based upon testing conditions that occur as the program is running. |
Subroutine | Consists of instructions for performing a task, grouped together as a unit and given a name. It can be created and used consistently throughout the writing of a program. Think "drawhouse()" |
Structured Programming | Methods of program design |
Top-Down Programming | Consists of breaking a problem into several smaller pieces and then breaking those pieces down even farther. This doesn't give adequate weight to the data Structures involved with programming and typically yields unique solutions to every problem. |
Buttom-up Programming | Emphasizes working with problems you already know how to solve and working with existing programming. |
Module | A component of a larger system which interacts with the rest of the system in a simple, well-defined, and straight forward manner. |
Information Hiding | Creating modules that reduce the amount of visible complexity(details) such as creating a module for a list of addresses. |
Object | A module containing data and subroutines. Independent entity which has a specific State(data it contains) and it can respond to messages(calls to its subroutines) |
Polymorphism | The idea that different objects can respond to the same message in different ways. |
Class | Objects which contain the same data and respond to the same messages in the same way. a subclass is said to inherit the properties of the class |
Command interface | Where a user interacts with the computer through a keyboard |
Graphical User Interface | Where a user interacts with the computer through graphical components |
Components | Things like windows, scroll bars, menus, buttons, and icons |
Types of Java GUI's | 1)Abstract Windowing toolkit (the original GUI creation tool) 2)Swing (used on Java 1.2 or later) |
Protocol | detailed specification of how communication is to proceed. in order to communicate two computers must be using |
Two protocols which are most widely used are: | Internet Protocol (IP) and Transmission Control Protocol (TCP) |
Internet Protocol (IP) | Specifies how data is to be physically transmitted from one computer to another |
Transmission Control Protocol (TCP) | Ensures that data sent using Internet Protocol in its entirety and without error |
Packets | All communication over the internet uses these. Contains data sent and addressing information as well as the IP addresss of the sending computer. has finite size so large transmissions must be divided and sent individually then reconstructed. |
Domain Name | Another way of identifying a computer used for convenience and an IP address is still required for communication. |
Simple Mail Transfer Protocol | The protocol associated email which allows the transfer of email messages |
Hypertext transfer Protocol (http) | The protocol associated with sending requests and receiving responses from web servers. |
File.java | Java format High level programming language before it is compiled |
File.Class | High Level Programming Language compiled into Java Bytecode Format. |