CBTF Quiz Schedule. These are usually available Friday - Monday.#
Quiz | First day | Last day |
---|---|---|
Quiz 1 | Fri, Sep 6 | Mon, Sep 9 |
Quiz 2 | Fri, Sep 13 | Mon, Sep 16 |
Quiz 3 | Fri, Sep 27 | Mon, Sep 30 |
Quiz 4 | Fri, Oct 11 | Mon, Oct 14 |
Quiz 5 | Fri, Oct 25 | Mon, Oct 28 |
Quiz 6 | Fri, Nov 8 | Mon, Nov 11 |
Quiz 7 | Mon, Dec 2 | Wed, Dec 4 |
Protip 1: CBTF is used by many courses. Seats may not be available on the later days - so sign up early to reserve your preferreed day and time. Protip 2: If you miss your slot, visit the CBTF in person as soon as possible to see if it can be re-scheduled.
Use the CBTF website to book a slot.
- Slots are in limited supply! Book yours today! https://cbtf.engr.illinois.edu/
- Miss your slot? Visit CBTF as soon as possible.
- Need DRES accomodations? Please visit the CBTF website for more informaiton.
Quiz 1#
Topics
- C Strings representation
- C Strings as pointers
- char p[]vs char* p
- Simple C string functions (strcmp, strcat, strcpy)
- sizeof char
- sizeof x vs x*
- Heap memory lifetime
- Calls to heap allocation
- Dereferencing pointers
- Address-of operator
- Pointer arithmetic
- String duplication
- String truncation
- double-free error
- String literals
- Print formatting.
- memory out of bounds errors
- static memory
- fileio POSIX vs. C library
- C io fprintf and printf
- POSIX file IO (read, write, open)
- Buffering of stdout
Quiz 2#
Topics
C (As above with)
- Correct use of fork, exec and waitpid
- Using exec with a path
- Understanding what fork and exec and waitpid do. E.g. how to use their return values.
- SIGKILL vs SIGSTOP vs SIGINT.
- What signal is sent when you press CTRL-C
- Using kill from the shell or the kill POSIX call.
- Process memory isolation.
- Process memory layout (where is the heap, stack etc; invalid memory addresses).
- What is a fork bomb, zombie and orphan? How to create/remove them.
- getpid vs getppid
- How to use the WAIT exit status macros WIFEXITED etc.
Quiz 3#
This quiz asks you about processes (fork, waitpid, waitpid macros, getpid/getppid, exec, and basic use of signals).
Quiz 4#
Topics
- pthread lifecycle
- create join
- pthread_join pthread_exit vs exit
- threads vs process
- Critical sections
- Counting Semaphores
- Barriers
- Condition Variables
- Producer Consumer
- Ring buffer
Quiz 5#
Topics
The quiz is about malloc and correctly working with pointers and linked lists in C. You’ll be implementing a simple placement algorithm (e.g. Best/First/Worst-fit) for a memory pool. A memory pool is just a large piece of contiguous memory that you want to use for all future requests.
Quiz 6#
Topics
- The Dining Philosopher Problem
- The Reader Writer Problem
- The four Coffman conditions (and the definition of each one)
- Create thread safe code using semaphores
- Creating a barrier using condition variables
- Deadlock and Resource Allocation Graph
- pthread race conditions
- Creating pipes
- Using fseek and ftell
- page tables (page offsets, dirty bit,TLB)
(Multiple Choice only. Scheduling will not be on this quiz)
Quiz 7#
Topics
- Basic properties of TCP and UDP
- Purpose and properties of each TCP server call
- Correct order of the “big 4” TCP server calls.
- What is DNS, and what is its purpose?
- POSIX calls required to create a TCP client
- Properties of UDP, TCP, IPv4, IPv6, privileged ports
- Purpose and basic properties of sockets
- Be able to correctly choose when to use ntohs, ntohl, htons, htonl
- Correct setting up addrinfo hints struct for a TCP server or client
- Purpose and properties of getaddrinfo
- Reading and writing to pipes (including blocking, SIGPIPE and detecting when no more bytes can be read)
(Multiple Choice only)
Quiz 8 (under review)#
Topics
- Security
- Scheduling
- Review of everything!
(Multiple Choice only). Don’t panic - There are currently only 7 CBTF slots - This quiz currently does not have a slot scheduled at CBTF. We may combine this quiz with quiz 7.