Upload
leslie-mills
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
Announcements• Homework #8 due Monday 6:00pm.– extra credit tasks are described at bottom of
assignment page
• Upcoming office hours:– Tomorrow: Sheng 12-1:30pm, Greg 1:30-3pm– Saturday: Greg 2-4pm– Sunday: Chris 2-4pm– Monday: Sheng 12-2pm, Chris 2-4pm
• Please fill out the course evaluations!
CIT 595
• “Digital System Organization & Design”
• Originally very hardware focused• Then some OS concepts introduced• Then pretty much an OS course• Now a systems programming course
What you’ll learn in CIT 595
• More C (function pointers)• C++: “C with objects”
• Linux systems programming– Interacting with the operating system– Parallelism and synchronization– Inter-process communication– Networking
What to expect from CIT 595
• A lot of programming
• No, seriously, a LOT
• Longer, more challenging programming assignments
• More application and less theory
Grading Guidelines• Homeworks: 50%
• Lab assignments: 10%
• Midterm exam: 15%
• Final exam: 25%
• Current weighted average: 90.3%
• Projected weighted average: 86.9%
97+ A+
93-97 A
90-93 A-
87-90 B+
83-87 B
80-83 B-
Final Grading
• Homework #6 should be graded by this weekend
• Homeworks #7 and 8 should be graded by the final exam date (Dec 17)
• Final exams should be graded by Dec 19
• Final course grades should be posted on Dec 21
Final Exam Logistics
• Monday, Dec. 17, 6-8pm• Location: DRL A6
• You can use your book, notes, etc.• No electronic devices!
• Review session... when?
• Sandwiches, sodas, snacks, etc. will be provided from 5-6pm that evening in Levine 307
Final Exam Material• Patt & Patel chapters 2-14, 16, 18-19
– in other words, pretty much the whole book except for chapters 1, 15, and 17
• x86 architecture (Appendix B)
• Data structures
• No UNIX stuff from lab!• No computer science history!
• About 25% pre-midterm stuff, 75% stuff from after the midterm
Format of the exam
• Multiple-choice definitions/concepts• Short answer and problem solving– Like midterm and questions from book
• Understanding C and assembly code• Modifying C and assembly code• Writing C code (around 15-20 lines max)– no writing LC-3 from scratch!
Preparing for the exam
• Documents in Blackboard:– study guide (list of questions from book)– practice questions (and solutions)– solutions to homework assignments
• Form a study group
• Ask questions on Piazza
Computer Numbers (Chp. 2)
• Unsigned binary integers– Decimal-to-binary conversion– Hexadecimal numbers– Unsigned binary arithmetic
• Signed binary integers– Sign/magnitude– Two’s complement– Overflow
Computer Numbers (cont.)
• Floating point representation
• Logical operations and bit vectors
• Character representation– ASCII– Unicode
Digital Logic (Chp. 3)
• p-type and n-type transistors
• NOT, AND, and OR gates
• Sum-of-products algorithm
Combinational Logic Circuits (Chp. 3)
• Adder (1-bit, 4-bit, n-bit)
• Decoder: n inputs, 2n outputs
• Demultiplexer: 1 input, n select lines, 2n output
• Multiplexer: 2n inputs, n select lines, 1 output
Memory (Chp. 3)
• R-S Latch: depends on “state”
• Gated D Latch: single bit of memory
• Register: some number of Gated D Latches that form a single unit of memory
von Neumann Architecture (Chp. 4)
• Memory– address space vs. addressability– MAR and MDR
• Control Unit– fetch, decode, execute– IR and PC– ALU, registers
LC-3 Instruction Set Architecture (Chp. 4)• Instruction format– Opcode – Operands
• Translating from assembly language to machine language
• Types of instructions & what they do– ALU operations– Data movement operations– Control operations
x86 Architecture (Appx. B)
• How is it different from LC-3?– addressability– address space– number of registers– size of registers– number of operations– size of instructions
Assembly Language (Chp. 7)
• Symbol table• Finding and fixing bugs• What does this program do?• How can this program be improved?• Relation with higher-level language (like C)
• BLKW, FILL, and STRINGZ
Traps, Interrupts, Subroutines (Chp. 8-9)
• How are subroutines called? How does the program know where to go back to?
• How do traps work? How does the program know where to go back to?
• How do interrupts work? How is the state saved? What happens when the handler finishes?
• Traps: GETC, IN, OUT, PUTS, HALT
Memory and the Stack (Chp. 10)
• What is the stack used for?• What is the stack pointer? Frame pointer?• What values go on the stack when a
function is called?
C Basics (Chp. 11)
• Compilation process– Preprocessor– Compiler – Linker
• Anatomy of a C program
• Primitive Datatypes
Variables and Operators (Chp. 12)
• Legal variable names• Mathematical operators• Assignment shortcuts• Scope• printf and scanf
Loops & Conditionals (Chp. 13)
• Logical operators • Comparison operators• True & False
• if, if/else• while, do/while, for
Functions (Chp. 14)
• Function declarations/prototypes• Input & Output
• Call-by-reference vs. Call-by-value
Arrays & Strings (Chp. 16)
• Declaring and initializing arrays• Indexing arrays
• Declaring strings• Null-terminated strings• String functions– strlen, strcmp, strcat, strcpy
What gets printed?
1 char values[] = { '5', 73, '3', 0 };
2 int x = values[values[values[3]]-
values[2]];
3 int y = (char)x - '0';
4 int z = values[y];
5 if (z & values[z]) z = ++z;
6 printf(“z is: %d\n”, z);
1 int one(int a, int b) {
2 int k, t;
3 k = a - b;
4 t = a + b + 1;
5 if (k % 2 == 0) return t;
6 else return 0;
7 }
8
9 int two(int x, int y) {
10 int m;
11 return m + x + y;
12 }
13
14 main() {
15 int result = two(5, one(4, 3));
16 printf(“result is %d\n”, result);
17 }
Pointers (Chp. 16)
• pointer syntax• passing pointers as function parameters• pointers vs. arrays vs. strings
1 int apple;
2 int *ptr;
3 int **ind;
4 ind = &ptr;
5 *ind = &apple;
6 **ind = 123;
7 ind++;
8 *ptr++;
9 apple++;
10 printf(“%d %d %d”, ind, ptr,
apple);
Data Structures
• Linked List• Stack• Queue• Binary Search Tree• Hashtable
• Concepts (how they work)• Implementation in C
Final Exam Logistics
• Monday, Dec. 17, 6-8pm
• Location: DRL A6
• You can use your book, notes, etc.• No electronic devices!
• Sandwiches, sodas, snacks, etc. will be provided from 5-6pm that evening in Levine 307