Cs 310
Cs 310
(Chapter 1-3) • their hardware realization (Chapter 4-5) • Their linguistic realizations. • Their
applications.
Ch1:
- Operations involved in designing algorithms:
+ Formal and mathematical properties: Studying the behavior of algorithms to determine whether they
are correct and efficient
+ Hardware realizations: Designing and building computer systems that are able to execute algorithms
+ Linguistic realizations : Designing programming languages and translating algorithms into these
languages
+ Applications: Identifying important problems and designing correct and efficient software packages to
solve these problems
- Algorithm: + Dictionary definition: Procedure for solving a mathematical problem in a finite number of
steps that frequently involves repetition of an operation n A step-by-step method for
accomplishing a task
+ Informal description n An ordered sequence of instructions that is guaranteed to solve a
specific problem
+ Formal Definition: A well-ordered collection of unambiguous and effectively computable
operations that, when executed, produces a result and halts in a finite amount of time
- 3,000 years ago: Mathematics, logic, and numerical computation -> n 1614: Logarithms -> n Around
1622: First slide rule created -> 1672: The Pascaline -> 1674: Leibnitz’s Wheel -> 1801: The Jacquard
loom -> 1823: The Difference Engine -> 1830s: The Analytic Engine -> 1890: U.S. census carried out with
programmable card processing machines -> The Birth of Computers: 1940-1950 -> First generation of
computing (1950-1959) -> Second generation of computing (1959-1965) -> third 65-76 -> fourth 75-85
Ch4:
- two electronic states: Current flowing or not n Direction of flow
- Binary values 0 and 1 are represented using the direction of the magnetic field
- Transistors: + Solid-state switches: either permits or blocks current flow
+ A control input causes state change
- Gates: Hardware devices built from transistors to mimic Boolean logical operations on digital electrical
signals
- A circuit is a collection of logic gates: + Transforms a set of binary inputs into a set of binary outputs
+ Values of the outputs depend only on the current values of the inputs
Ch3:
- Desirable characteristics in an algorithm: Correctness q Ease of understanding q Elegance q Efficiency
Ch5:
- Von Neumann architecture has four functional units:
+ Memory: The unit that stores and retrieves instructions and data.
+ Input/Output: Handles communication with the outside world. N
+ Arithmetic/Logic unit n Performs mathematical and logical operations.
+ Control unit n Repeats the following 3 tasks repeatedly
1. Fetches an instruction from memory 2. Decodes the instruction 3. Executes the instruction
- Information stored and fetched from memory subsystem
- Random Access Memory (RAM) maps addresses to memory locations
- Cache memory keeps values currently in use in faster memory to speed access times
- Memory size is in power of 2 q 210 =1K 1 kilobyte q 220 =1M 1 megabyte q 230 =1G 1 gigabyte q 240
=1T 1 terabyte
- Parts of the memory subsystem + Fetch/store controller n Fetch: retrieve a value from memory
n Store: store a value into memory
+ Memory address register (MAR)
+ Memory data register (MDR)
+ Memory cells, with decoder(s) to select individual cells
- Fetch operation 1. Load the address in to the MAR n The address of the desired memory cell is moved
into the MAR 2. Decode the address in the MAR n Fetch/store controller signals a “fetch,” accessing the
memory cell. n The memory unit must translate the N-bit address stored in the MAR into the set of
signals needed to access that one specific memory cell q A decoder circuit is used for such a purpose 3.
Copy the content of the memory location into the MDR n The value at the MAR’s location flows into the
MDR
- Store operation 1. Load the address into the MAR n The address of the cell where the value should go is
placed in the MAR 2. Load the value into the MDR n The new value is placed in the MDR 3. Decode the
address in the MAR and store the content of the MDR into that memory location n Fetch/store controller
signals a “store,” copying the MDR’s value into the desired cell
Ch6:
- Tasks of the interface: + Hide details of the underlying hardware from the user
+ Present information in a way that does not require in-depth knowledge of the internal
structure of the system
+ Allow easy user access to the available resources
+ Prevent accidental or intentional damage to hardware, programs, and data
- System software + Acts as an intermediary between users and hardware
+ Creates a virtual environment for the user that hides the actual computer architecture
- Virtual machine: Set of services and resources created by the system software and seen by the user
* type of system software
- Operating system
+ Controls the overall operation of the computer
+ Communicates with the user
+ Determines what the user wants
+ Activates system programs, applications packages, or user programs to carry out user requests
- User interface: Graphical user interface (GUI) provides graphical control of the capabilities and services
of the computer
- Language services: Assemblers, compilers, and interpreters q Allow you to write programs in a high-
level, useroriented language, and then execute them
- Memory managers: Allocate and retrieve memory space
- Information managers: Handle the organization, storage, and retrieval of information on mass storage
devices
- I/O systems: Allow the use of different types of input and output devices
- Scheduler: Keeps a list of programs ready to run and selects the one that will execute next
- Utilities: Collections of library routines that provide services either to user or other system routines
* Binary Options Meaning
0000 LOAD X con(x) ->R /0001 STORE X R -> con(x) /0010 CLEAR X 0 -> con(x) /0011 ADD X R+con(x)->R
0100 /INCREMENT X con(x)+1>con(x) /0101 SUBSTRACT X R-con(x)->R /0110 DECREMENT X con(x)-1-
>con(x) /0111 COMPARE X if con(x)>R then GT=1 else 0 if con(x)=R then EQ=1 else 0 if con(x)
1000 JUMP X Get the next instruction from memory location X
1001 JUMPGT X Get the next instruction from memory location X if GT=1
1010 JUMPEQ X Get the next instruction from memory location X if EQ=1
1011 JUMPLT X Get the next instruction from memory location X if LT=1
1100 JUMPNEQ X Get the next instruction from memory location X if EQ=0
1101 IN X Input an integer value from the standard input device and store into memory cell X
1110 OUT X Output, in decimal notation, the value stored in memory cell X
1111 HALT Stop program execution
- Assembler: Translates a symbolic assembly language program into machine language
- Loader: Reads instructions from the object file and stores them into memory for execution
- System commands: +Carry out services such as translate a program, load a program, run a program
+ Examined by the operating system
- Five most important responsibilities of the operating system: q User interface management q Program
scheduling and activation q Control of access to system and files q Efficient resource allocation q
Deadlock detection and error detection
Ch9:
- Some components of program: q Comments: Give information to human readers of code
q Include directive n The linker includes object code from a library
q Using directive n Tells compiler to look in a namespace for definitions not
mentioned in the program
-A declaration of a data item tells q Whether the item is a constant or a variable
q The identifier used to name the item
q The data type of the item
- An array: Groups together a collection of memory locations, all storing data of the same type
- Types of control mechanisms
+ Sequential: Instructions are executed in order
+ Conditional: Choice of which instructions to execute next depends on some condition
+ Looping: Group of instructions may be executed many times
- Expectations:
+ Programmer need not manage details of the movement of data items within memory, nor pay any
attention to where they are stored
+ Programmer can take a macroscopic view of tasks, thinking at a higher level of problem-solving
+ Programs written in high-level languages will be portable rather than machine-specific
+ Programming statements in a high-level language : Will be closer to standard English n Will use
standard mathematical notation
- Integrated Development Environment (IDE) speeds development by providing q A text editor q A file
manager q A compiler q A linker and loader q Tools for debugging
- The Software Life Cycle: The feasibility study n Problem specification n Program design n Algorithm
selection or development, and analysis n Coding n Debugging n Testing, verification, and benchmarking n
Documentation n Maintenance