===== 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: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.]]) \\
[shell] [[os_cp:locate_find|Searching for files.]]
[[os_cp:locate_find:solutions|Solutions to exercises]]
[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_filebasics_signals|Basic I/O. Opening files. Signal handlers.]]
[[os_cp:prog_filebasics_signals:solutions|Solutions to exercises]]
-
[programming] [[os_cp:fork_exec_pipes|Fork. Exec. Pipes.]]
[[os_cp:fork_exec_pipes:solutions|Solutions to exercises]]
-
[programming] [[os_cp:shmem_semaphores|Shared memory. Semaphores.]]
[[os_cp:shmem_semaphores:solutions|Solutions to exercises]]
- [programming] Test. ([[os_cp:exercises-prog|Example questions for the test.]])
- spare slot that will be dynamically allocated to catch up with course materials when needed
The snippets in smaller font or tagged with [extra] are supplementary.
=== 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:2025:shell_assignment|list of topics]]
* write a concurrent program
__Absence__, including an excused absence, for more than one-third of the classes,
__results in failing__ the course.
The tests will be written on the lab computers, on a dedicated virtual machine.
You may (and to answer some of the questions, you must) use the terminal.
You are free to use any software available on the machines (e.g., the ''man'' command).
You must not use the Internet or bring any materials to the test.
You may make yourself familiar with the test framework at
this example test.
=== 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 years:
* 2024: [[os_cp:2024:shell_assignment|shell]], [[os_cp:2024:prog_assignment|programming]]
* [[os_cp:assignments|2023]]
~~META:
language = en
~~