Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IO to OpenEducation methodology #75

Merged
merged 6 commits into from
Nov 28, 2024

Conversation

Mihnea0Firoiu
Copy link

@Mihnea0Firoiu Mihnea0Firoiu commented Aug 5, 2024

Prerequisite Checklist

  • Read the contribution guidelines regarding submitting new changes to the project;
  • Tested your changes against relevant architectures and platforms;
  • Updated relevant documentation (if needed).

Description of changes

Align the IO course to the OpenEdu methodology.
Change the content of laboratories and change the "storyline" to:

  • The Linux file-interface
    • file descriptors
    • file operations (I/O syscalls)
    • pipes and redirections
  • Inter-process Communication
    • unix-sockets
    • network-sockets
    • client-server model
  • Optimizations
    • I/O multiplexing
    • Async I/O
    • zero-copy

Besides these, in quides/ you can find adjacent topics not mandatory to finish the labs, such as file-descriptor table and open file table, file-mappings, kernel caching, and sendfile benchmarking.

@github-actions github-actions bot added area/reading Update to reading content area/tasks Update to tasks kind/new New content / item labels Aug 5, 2024
@teodutu teodutu marked this pull request as ready for review August 5, 2024 15:53
@teodutu teodutu added the needs-rendering The PR makes changes to the website that need to be rendered label Aug 5, 2024
@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Aug 11, 2024
Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check my comments to see some easy first fixes and also why the build fails. Then when it passes I'll make a more in-depth review.

  • Move the task descriptions from the reading/ files to each task's README.md
  • Remove references to the common makefiles (.../common/makefile/*.mk). Copy their content to each makefile that includes them so the tasks don't depend on outside resources.

@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Sep 27, 2024
Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build fails because chapters/io/arena/drills/tasks/mini-shell/ is missing its support/ folder which causes the Makefile symlink to point to an invalid path.

@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 8, 2024
@Alex-deVis Alex-deVis self-assigned this Nov 8, 2024
Copy link

github-actions bot commented Nov 8, 2024

@Alex-deVis Alex-deVis requested a review from razvand November 8, 2024 07:27
@Alex-deVis
Copy link

@razvand, since I also made changes to the content itself, I think you should also review this.

@github-actions github-actions bot added the area/questions Update to questions content label Nov 8, 2024
@Alex-deVis Alex-deVis force-pushed the Mihnea0Firoiu/IO branch 6 times, most recently from 5fd9558 to 7e8cb71 Compare November 8, 2024 17:08
Show links that do not match expected patterns after solving references.

Signed-off-by: Alex Apostolescu <[email protected]>
@Alex-deVis
Copy link

Why does this PR remove files from the compute/ and data/ chapters?

Generic stuff such as removing utils/sock if unused and fixing links. Take a look for yourself:

$ git diff main $(git diff --name-only main . | egrep -v sock_util | grep compute)

@Alex-deVis Alex-deVis requested a review from teodutu November 27, 2024 08:35
@Alex-deVis Alex-deVis assigned teodutu and unassigned Alex-deVis Nov 27, 2024
@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 27, 2024
@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 27, 2024
@teodutu
Copy link

teodutu commented Nov 27, 2024

I think you forgot to add a file or messed up its name: https://github.com/cs-pub-ro/operating-systems/actions/runs/12047113855/job/33588983238#step:6:227

@Alex-deVis
Copy link

I think you forgot to add a file or messed up its name: https://github.com/cs-pub-ro/operating-systems/actions/runs/12047113855/job/33588983238#step:6:227

I have no idea what happened - seems like the shared-memory task is not present in the current copy-on-write lab. Is this intended? I readded it to solve the issue.

@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 27, 2024
Copy link

Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The slides are still empty [1] because you forgot to add the slides/ folders in each subchapter.

[1] https://cs-pub-ro.github.io/operating-systems/75/IO/

@Alex-deVis
Copy link

The slides are still empty [1] because you forgot to add the slides/ folders in each subchapter.

It was a subtle metaphor for the need of I/O. Anyway, check again.

@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 27, 2024
Copy link

This commit restructures the IO chapter according to OpenEdu methodology.
This comprises of:
  - refactoring and changing the order of chapters
  - generating support files from solution
  - breaking arena into smaller sections
  - fixing Makefiles from tasks to be self-contained

Signed-off-by: Mihnea Firoiu <[email protected]>
Signed-off-by: Alex Apostolescu <[email protected]>
Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fuck that Java error.

@teodutu teodutu merged commit cf612c1 into cs-pub-ro:main Nov 28, 2024
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/guides Update to guides content area/infra Update to infrastructure / scripts area/questions Update to questions content area/reading Update to reading content area/tasks Update to tasks kind/new New content / item needs-rendering The PR makes changes to the website that need to be rendered topic/compute Related to "Compute" chapter
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants