===== Operating Systems and Concurrent Programming =====
=== Course materials ===
-
[shell] [[os_cp:intro|Introduction to Unix-like operating systems. Getting help. Browsing filesystem.]]
[[os_cp:intro:solutions|Solutions to exercises]]
[shell] [[os_cp:tba|Editing line in console. Console text editors.]]
[[os_cp:tba:solutions|Solutions to exercises]]
-
[shell] [[os_cp:files_processes|File operations. Processes.]]
[[os_cp:files_processes:solutions|Solutions to exercises]]
-
[shell] [[os_cp:users_permissions|Users. File Permissions.]]
[[os_cp:users_permissions:solutions|Solutions to exercises]]
[shell] [[os_cp:locate_find|Searching for files.]]
[[os_cp:locate_find:solutions|Solutions to exercises]]
-
[shell] [[os_cp:redirects_pipes|Redirections. Pipes. Filters.]]
[[os_cp:redirects_pipes:solutions|Solutions to exercises]]
-
[shell] ┬ [[os_cp:scripting|Scripting. Job control. Environment variables.]]
[[os_cp:scripting:solutions|Solutions to exercises]]
- [shell] ┘
- [shell] Test. ([[os_cp:exercises-shell|Example questions for the test.]]) \\
[programming]┬ [[os_cp:threads|Threads. Mutexes. Critical sections. Conditional variables.]]
[[os_cp:threads:solutions|Solutions to exercises]]
- [programming]┤
**[[os_cp:find_out_what_is_going_on2|Homework.]]**
- [programming]┘
-
[programming] [[os_cp:prog_intro_read_write|Introduction to programming. File descriptors. Basic I/O.]]
[[os_cp:prog_intro_read_write:solutions|Solutions to exercises]]
-
[programming] [[os_cp:open_fork|Opening a file. Forking.]]
[[os_cp:open_fork:solutions|Solutions to exercises]]
-
[programming] [[os_cp:exec_dup|Exec. Duplicating descriptors.]]
[[os_cp:exec_dup:solutions|Solutions to exercises]]
-
[programming] [[os_cp:pipes_signals|Pipes. Signals. Shared memory.]]
[[os_cp:pipes_signals:solutions|Solutions to exercises]]
-
[programming] [[os_cp:semaphores|Semaphores. Critical sections.]]
[[os_cp:semaphores:solutions|Solutions to exercises]]
**The course materials are begin rearranged this year.** Expect changes to bring the materials to for a logically consistent course.
The snippets in smaller font or tagged with [extra] are supplementary.
**[[os_cp:2024:results|Test results (2024)]]**
=== Grading ===
All students have to:
* pass two tests:
* one on the topics tagged with [shell]; this test will take place after the corresponding classes
* another on the topics tagged with [programming]; this test will take place on the last lab classes
* complete two assignments:
* write a shell script - **[[os_cp:2024:shell_assignment|list of topics]]**
* write a concurrent program (details tba)
=== Recommended course materials ===
Basic materials:
* https://www.cs.put.poznan.pl/csobaniec/edu/oscp/ ← this is password-protected. Ask me for the password.
Supplementary materials:
* [shell] https://www.gnu.org/software/bash/manual/bash.html
* [shell] https://www.gnu.org/software/coreutils/manual/coreutils.html
* [shell] https://tldp.org/LDP/Bash-Beginners-Guide/html/index.html
* [shell] https://tldp.org/LDP/abs/html/index.html
* [programming] https://deadlockempire.github.io/
Assignments in the previous year: [[os_cp:assignments|2023]]
~~META:
language = en
~~