Erinevus lehekülje "ITS8020" redaktsioonide vahel
(ei näidata sama kasutaja 16 vahepealset redaktsiooni) | |||
4. rida: | 4. rida: | ||
Lecturer: Jaagup Irve <jaagup.irve@ttu.ee><br/> | Lecturer: Jaagup Irve <jaagup.irve@ttu.ee><br/> | ||
− | + | Previous year: [https://courses.cs.ttu.ee/w/index.php?title=ITS8020&oldid=7925 2018]. Historical materials can be found at [http://lambda.ee/wiki/Real-Time_Operating_Systems_and_Systems_Programming Real-Time Operating Systems and Systems Programming]. | |
== Elevator pitch == | == Elevator pitch == | ||
− | The course is | + | The course is an advanced C course which delves into the intricacies of hardware, memory management and operating system design. It looks at basic operating system components (scheduling, mutexes) and also at GNU/Linux standard library. You will be expected to program difficult tasks and it will be englightening. The course has been enjoyed by numerous smart students over the years. |
+ | |||
+ | == EXAM TIMES == | ||
+ | |||
+ | * During the lecture: 20. Dec 2019 room U04-103 10:00 | ||
+ | * Secondary exam: 10. Jan 2020 room U04-103 10:00 | ||
+ | |||
+ | == PRACTICE CLASS CHANGE == | ||
+ | |||
+ | * Now in ITC-401. Tell your friends. | ||
== Grading == | == Grading == | ||
17. rida: | 26. rida: | ||
== Lectures == | == Lectures == | ||
+ | '''Note: Anything up to the lecture may change''' | ||
# Introduction (course overview, grades, operator precedence, real time overview) [[Media:Rtos_01.pdf|PDF]] | # Introduction (course overview, grades, operator precedence, real time overview) [[Media:Rtos_01.pdf|PDF]] | ||
# Stack Exploration, Long Jump [[Media:Rtos_02.pdf|PDF]] | # Stack Exploration, Long Jump [[Media:Rtos_02.pdf|PDF]] | ||
22. rida: | 32. rida: | ||
# Hardware, interrupts, basic IO: [https://www.youtube.com/playlist?list=PLMQzXA1f24AdzOb5kRBfN2SkXNrSbdb5L Please watch the videos] [[Media:Rtos_04.pdf|PDF]] | # Hardware, interrupts, basic IO: [https://www.youtube.com/playlist?list=PLMQzXA1f24AdzOb5kRBfN2SkXNrSbdb5L Please watch the videos] [[Media:Rtos_04.pdf|PDF]] | ||
# Signals, System Calls [[Media: Rtos_05.pdf|PDF]] | # Signals, System Calls [[Media: Rtos_05.pdf|PDF]] | ||
+ | # Threads [[Media:Rtos_06.pdf|PDF]] | ||
+ | # Scheduling, Processes [[Media:Rtos_07.pdf|PDF]] | ||
+ | # File IO, file and directory management [[Media:Rtos_08.pdf|PDF]] | ||
+ | # Programming an Operating System [[Media:Rtos_09.pdf|PDF]] | ||
+ | # Optimization [[Media:Rtos_10.pdf|PDF]] | ||
+ | # Networking [[Media:Rtos_11.pdf|PDF]] and Bit-Fields [[Media:Rtos_11a.pdf|PDF]] | ||
+ | # Compilation and Utilities [[Media:Rtos_12.pdf|PDF]] | ||
+ | # Security [[Media:Rtos_13.pdf|PDF]] | ||
+ | # Localization [[Media:Rtos_14.pdf|PDF]] | ||
+ | # Real Time Operating Systems [[Media:Rtos_15.pdf|PDF]] | ||
+ | # Summary [[Media:Rtos_16.pdf|PDF]] | ||
== Practice == | == Practice == | ||
27. rida: | 48. rida: | ||
* [[Stack Exploration (ITS8020)|Stack Exploration]] | * [[Stack Exploration (ITS8020)|Stack Exploration]] | ||
* [[Exploring Debugger (ITS8020)|Exploring Debugger]] | * [[Exploring Debugger (ITS8020)|Exploring Debugger]] | ||
+ | * [[Nonblocking IO (ITS8020)|Nonblocking IO]] | ||
* [[Signals (ITS8020)|Signals]] | * [[Signals (ITS8020)|Signals]] | ||
* [[Threads (ITS8020)|Threads]] | * [[Threads (ITS8020)|Threads]] | ||
* [[Processes (ITS8020)|Processes]] | * [[Processes (ITS8020)|Processes]] | ||
+ | * [[File Attributes (ITS8020)|File Attributes]] | ||
+ | * [[Writing and Reading Binary Data (ITS8020)|Writing and Reading Binary Data]] | ||
+ | * [[Network Sockets (ITS8020)|Network Sockets]] | ||
+ | * [[Optimization (ITS8020)|Optimization]] | ||
+ | |||
+ | == Homework == | ||
+ | |||
+ | The homework for the course is a file encoder/decoder using a Huffman algorithm. The deadline for the task is set, but if you show your progress weekly, it can be extended without penalty depending on the amount of progress shown. The encoder needs to be shown and defended before the lectures conclude (that is: within 2019). | ||
+ | |||
+ | * [[Huffman Encoder (ITS8020)|Huffman Encoder]] | ||
== Links== | == Links== |
Viimane redaktsioon: 29. november 2019, kell 13:50
ITS8020 Systems Programming
Course Card
Lecturer: Jaagup Irve <jaagup.irve@ttu.ee>
Previous year: 2018. Historical materials can be found at Real-Time Operating Systems and Systems Programming.
Elevator pitch
The course is an advanced C course which delves into the intricacies of hardware, memory management and operating system design. It looks at basic operating system components (scheduling, mutexes) and also at GNU/Linux standard library. You will be expected to program difficult tasks and it will be englightening. The course has been enjoyed by numerous smart students over the years.
EXAM TIMES
- During the lecture: 20. Dec 2019 room U04-103 10:00
- Secondary exam: 10. Jan 2020 room U04-103 10:00
PRACTICE CLASS CHANGE
- Now in ITC-401. Tell your friends.
Grading
Grading is based on points earned during the course.
90+ points earns a grade of 5, and 50+ lets you pass. Exam can earn you up to 60 points and is difficult. Programming independently (lab) is worth 40 points max. There are 10 bonus points for attending and working on the labs. It is possible to agree on a different course project during the course.
Lectures
Note: Anything up to the lecture may change
- Introduction (course overview, grades, operator precedence, real time overview) PDF
- Stack Exploration, Long Jump PDF
- Heap PDF
- Hardware, interrupts, basic IO: Please watch the videos PDF
- Signals, System Calls PDF
- Threads PDF
- Scheduling, Processes PDF
- File IO, file and directory management PDF
- Programming an Operating System PDF
- Optimization PDF
- Networking PDF and Bit-Fields PDF
- Compilation and Utilities PDF
- Security PDF
- Localization PDF
- Real Time Operating Systems PDF
- Summary PDF
Practice
- Basic command line and compilation
- Stack Exploration
- Exploring Debugger
- Nonblocking IO
- Signals
- Threads
- Processes
- File Attributes
- Writing and Reading Binary Data
- Network Sockets
- Optimization
Homework
The homework for the course is a file encoder/decoder using a Huffman algorithm. The deadline for the task is set, but if you show your progress weekly, it can be extended without penalty depending on the amount of progress shown. The encoder needs to be shown and defended before the lectures conclude (that is: within 2019).
Links
- Toyota killer firmware
- Use of Assertions
- How to C in 2016 - or why the lecturer should be deprecated
- Smashing the Stack for Fun and Profit Redone - a take on a classic
- Raspberry Pi Os - an opsystem from scratch