This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
os_cp [2023/05/31 02:20] jkonczak |
os_cp [2025/04/10 00:21] (current) jkonczak [Operating Systems and Concurrent Programming] |
||
---|---|---|---|
Line 4: | Line 4: | ||
=== Course materials === | === Course materials === | ||
- | - <html><div style="display:table;width:100%"></html>[shell] [[os_cp:intro|Introduction to Unix-like operating systems. Getting help. Browsing filesystem.]] <html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:intro:solutions|Solutions to exercises]]<html></div></div></html> | + | - <html> |
- | - <html><div style="display:table;width:100%"></html>[shell] [[os_cp:files_processes|File operations. Processes.]] <html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:files_processes:solutions|Solutions to exercises]]<html></div></div></html> | + | <div style="display:table;width:100%"> |
- | - <html><div style="display:table;width:100%"></html>[shell] [[os_cp:users_permissions|Users. File Permissions.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:users_permissions:solutions|Solutions to exercises]]<html></div></div></html> | + | </html>[shell] [[os_cp:intro|Introduction to Unix-like operating systems. Getting help. Browsing filesystem.]] <html> |
- | - <html><div style="display:table;width:100%"></html>[shell] [[os_cp:redirects_pipes|Redirections. Pipes. Filters.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:redirects_pipes:solutions|Solutions to exercises]]<html></div></div></html> | + | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> |
- | - <html><div style="display:table;width:100%"></html>[programming] [[os_cp:prog_intro_read_write|Introduction to programming. File descriptors. Basic I/O.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:prog_intro_read_write:solutions|Solutions to exercises]]<html></div></div></html> | + | </html> [[os_cp:intro:solutions|Solutions to exercises]]<html> |
- | - <html><div style="display:table;width:100%"></html>[programming] [[os_cp:open_fork|Opening a file. Forking.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:open_fork:solutions|Solutions to exercises]]<html></div></div></html> | + | </div> |
- | - <html><div style="display:table;width:100%"></html>[programming] [[os_cp:exec_dup|Exec. Duplicating descriptors.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:exec_dup:solutions|Solutions to exercises]]<html></div></div></html> | + | </div> |
- | - <html><div style="display:table;width:100%"></html>[programming] [[os_cp:pipes_signals|Pipes. Signals. Shared memory.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:pipes_signals:solutions|Solutions to exercises]]<html></div></div></html> | + | <div style="display:table;width:100%"> |
- | - <html><div style="display:table;width:100%"></html>[programming] [[os_cp:semaphores|Semaphores. Critical sections.]] <html><div style="display:inline-block;width:5em"></div></html>**[[os_cp:find_out_what_is_going_on|Homework.]]**<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:semaphores:solutions|Solutions to exercises]]<html></div></div></html> | + | </html>[shell] [[os_cp:tba|Editing line in console. Console text editors.]]<html> |
- | - <html><div style="display:table;width:100%"></html>[programming]┬ [[os_cp:threads|Threads. Mutexes. Conditional variables.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:threads:solutions|Solutions to exercises]]<html></div></div></html> | + | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> |
+ | </html> [[os_cp:tba:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[shell] [[os_cp:files_processes|File operations. Processes.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:files_processes:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[shell] [[os_cp:users_permissions|Users. File Permissions.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:users_permissions:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | <!--<div style="display:table;width:100%"> | ||
+ | </html>[shell] [[os_cp:locate_find|Searching for files.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:locate_find:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div>--> | ||
+ | </html> | ||
+ | - <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[shell] [[os_cp:redirects_pipes|Redirections. Pipes. Filters.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:redirects_pipes:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[shell] ┬ [[os_cp:scripting|Scripting. Job control. Environment variables.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:scripting:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - [shell] ┘<html><!-- | ||
+ | </div></li> | ||
+ | <li class="level1" style="list-style-type:disc" value="6"> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[[os_cp:exercises-shell|Example questions for the test.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> <html> | ||
+ | </div> | ||
+ | /div and /li are inserted by dokuwiki --> | ||
+ | </html> | ||
+ | - [shell] Test. ([[os_cp:exercises-shell|Example questions for the test.]]) \\ <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[shell] [[os_cp:locate_find|Searching for files.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:locate_find:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[programming]┬ [[os_cp:threads|Threads. Mutexes. Critical sections. Conditional variables.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:threads:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - [programming]┤<html> | ||
+ | <div style="display:inline-block;width:15em"> | ||
+ | </div> | ||
+ | </html>**[[os_cp:find_out_what_is_going_on2|Homework.]]** | ||
- [programming]┘ | - [programming]┘ | ||
- | - [shell] ┬ [[os_cp:scripting|Scripting. Job control. Environment variables.]] | + | - <html> |
- | - [shell] ┘ <html></div></li> | + | <div style="display:table;width:100%"> |
- | <li class="level1" style="list-style-type:disc"><div class="li" style="display:table;width:100%"></html>[shell] [[os_cp:tba|Editing line in console. Console text editors.]]<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html> [[os_cp:tba:solutions|Solutions to exercises]]<html></div></li><li class="level1" style="list-style-type:disc"><div class="li" style="display:table;width:100%"></html>[shell] Searching for files. Miscellany.<html><div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"></html><html></div></html> | + | </html>[programming] [[os_cp:prog_filebasics_signals|Basic I/O. Opening files. Signal handlers.]]<html> |
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:prog_filebasics_signals:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[programming] [[os_cp:fork_exec_pipes|Fork. Exec. Pipes.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:fork_exec_pipes:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - <html> | ||
+ | <div style="display:table;width:100%"> | ||
+ | </html>[programming] [[os_cp:shmem_semaphores|Shared memory. Semaphores.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:shmem_semaphores:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </html> | ||
+ | - [programming] Test. ([[os_cp:exercises-prog|Example questions for the test.]]) | ||
+ | - <small>spare slot that will be dynamically allocated to catch up with course materials when needed</small> | ||
+ | <html><!-- | ||
+ | </div></li> | ||
+ | <li class="level1" style="list-style-type:disc"> | ||
+ | <div class="li" style="display:table;width:100%"> | ||
+ | </html>[shell] [[os_cp:tba|Editing line in console. Console text editors.]]<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html> [[os_cp:tba:solutions|Solutions to exercises]]<html> | ||
+ | </div> | ||
+ | </div> | ||
+ | </li> | ||
+ | <li class="level1" style="list-style-type:disc"> | ||
+ | <div class="li" style="display:table;width:100%"> | ||
+ | </html>[shell] Searching for files. Miscellany.<html> | ||
+ | <div style="display:table-cell;font-size:0.75em;margin-top:0.33em;text-align:right"> | ||
+ | </html><html> | ||
+ | </div> | ||
+ | --> | ||
+ | <!-- /div and /li are inserted by dokuwiki --> | ||
+ | </html> | ||
- | The snippets in <html><small>smaller font</small></html> or tagged with [extra] are supplementary. | + | The snippets in <small>smaller font</small> or tagged with [extra] are supplementary. |
- | === More course materials === | + | <html><!-- **[[os_cp:2024:results|Test results, assignments results, grades. (2024)]]** --></html> |
+ | |||
+ | === 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 | ||
+ | <html><div style="margin-top:-1.2em"></div></html> | ||
+ | __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 | ||
+ | <html><a href="/jkonczak/test-en/" class="wikilink1">this example test</a></html>. | ||
+ | |||
+ | === Recommended course materials === | ||
Basic materials: | Basic materials: | ||
Line 31: | Line 165: | ||
* [shell] https://tldp.org/LDP/Bash-Beginners-Guide/html/index.html | * [shell] https://tldp.org/LDP/Bash-Beginners-Guide/html/index.html | ||
* [shell] https://tldp.org/LDP/abs/html/index.html | * [shell] https://tldp.org/LDP/abs/html/index.html | ||
+ | * [programming] https://deadlockempire.github.io/ | ||
- | === Grading === | + | <small> |
- | All students have to: | + | Assignments in the previous years: |
- | * pass a test at the end of semester (details TBA) | + | * 2024: [[os_cp:2024:shell_assignment|shell]], [[os_cp:2024:prog_assignment|programming]] |
- | * [[os_cp:assignments|write several concurrent programs]] | + | * [[os_cp:assignments|2023]] |
+ | </small> | ||