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

Modify app-interact chapter #137

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

cosmin1805
Copy link

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

I will attempt to continue working on:
#76

@cosmin1805 cosmin1805 force-pushed the translate_app-interact branch from 8389211 to a2a4b9a Compare November 16, 2024 10:51
@github-actions github-actions bot added area/content Content (Markdown) update area/media Update to media content area/questions Update to questions content area/reading Update to reading content area/tasks Update to tasks kind/new New content / item labels Nov 16, 2024
@Alex-deVis Alex-deVis self-requested a review November 17, 2024 11:10
@Alex-deVis Alex-deVis self-assigned this Nov 17, 2024
@Alex-deVis
Copy link

Hi, @cosmin1805, thanks for this. Please notify me once your PR covers everything from #76 (and its comments) so that I can mark it as superseded by this.

@teodutu teodutu added the needs-rendering The PR makes changes to the website that need to be rendered label Nov 18, 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.

In order for your changes to be rendered to the website [1], you'll need to specify the structure of this chapter in config.yaml [2], in a way similar to the others ([3] specifies the files used for each lab and [4] specifies the structure of a chapter in the sidebar). To test the website locally, run make build in the repo's root folder. Fix the errors, then run make serve.

After this, place the slides in their subchapters' slides/ folders and slides.mdpp in chapters/app-interact/.

[1] https://cs-pub-ro.github.io/operating-systems/137/
[2] https://github.com/cs-pub-ro/operating-systems/blob/main/config.yaml
[3]

- title: Lab 7 - Copy-on-Write
filename: lab7.md
content:
- tasks/apache2.md
- tasks/page-faults.md
- tasks/shared-memory.md
- tasks/mini-shell.md
- reading/processes-threads-apache2.md
- reading/copy-on-write.md
- guides/apache2.md
- guides/fork-faults.md
- title: Lab 8 - Syncronization
filename: lab8.md
content:
- tasks/race-condition.md
- tasks/threadsafe-data-struct.md
- tasks/libult.md
- reading/synchronization.md
- reading/user-level-threads.md
- reading/scheduling.md
- guides/user-level-threads.md
- guides/libult.md

[4]
- Compute:
path: /build/prepare_view/.view
extra:
- media
subsections:
- Slides: /build/embed_reveal/Compute/Compute.mdx
- Overview: /build/prepare_view/.view/compute-overview.md
- Questions:
path: questions
subsections:
- Parent Faults Before Fork: parent-faults-before-fork.md
- Mmap Cow Flag: mmap-cow-flag.md
- Sections Always Shared: sections-always-shared.md
- Child Faults After Write: child-faults-after-write.md
- Seg Fault Exit Code: seg-fault-exit-code.md
- Threads Shared Data: threads-shared-data.md
- Thread Memory: thread-memory.md
- Apache2 Strace: apache2-strace.md
- Mini Shell Stops After Command: mini-shell-stops-after-command.md
- Cause of File Not Found Error: cause-of-file-not-found-error.md
- Process Creation: process-creation.md
- Who Calls Execve Parent: who-calls-execve-parent.md
- Exec Without Fork: exec-without-fork.md
- Create Sleepy Process Ending: create-sleepy-process-ending.md
- Processes Speedup: processes-speedup.md
- Parent of Sleep Processes: parent-of-sleep-processes.md
- Sleeping on a Fiber: sleeping-on-a-fiber.md
- Fiber Strace: fiber-strace.md
- Type of Scheduler in Libult: type-of-scheduler-in-libult.md
- Number of Running Ults: number-of-running-ults.md
- Why Use Completed Queue: why-use-completed-queue.md
- Ult Thread IDs: ult-thread-ids.md
- TCB Libult Unikraft: tcb-libult-unikraft.md
- Time Slice Value: time-slice-value.md
- Number of Running Threads: number-of-running-threads.md
- Notify Only With Mutex: notify-only-with-mutex.md
- TLS Var Copies: tls-var-copies.md
- TLS Synchronization: tls-synchronization.md
- Semaphore Equivalent: semaphore-equivalent.md
- Coarse vs Granular Critical Section: coarse-vs-granular-critical-section.md
- Not Race Condition: not-race-condition.md
- Lab 6 - Multiprocess and Multithread: lab6.md
- Lab 7 - Copy-on-Write: lab7.md
- Lab 8 - Syncronization: lab8.md

@teodutu teodutu added the student-contrib Fix or improvement made by a student label Nov 19, 2024
@cosmin1805
Copy link
Author

In order for your changes to be rendered to the website [1], you'll need to specify the structure of this chapter in config.yaml [2], in a way similar to the others ([3] specifies the files used for each lab and [4] specifies the structure of a chapter in the sidebar). To test the website locally, run make build in the repo's root folder. Fix the errors, then run make serve.

After this, place the slides in their subchapters' slides/ folders and slides.mdpp in chapters/app-interact/.

[1] https://cs-pub-ro.github.io/operating-systems/137/ [2] https://github.com/cs-pub-ro/operating-systems/blob/main/config.yaml [3]

- title: Lab 7 - Copy-on-Write
filename: lab7.md
content:
- tasks/apache2.md
- tasks/page-faults.md
- tasks/shared-memory.md
- tasks/mini-shell.md
- reading/processes-threads-apache2.md
- reading/copy-on-write.md
- guides/apache2.md
- guides/fork-faults.md
- title: Lab 8 - Syncronization
filename: lab8.md
content:
- tasks/race-condition.md
- tasks/threadsafe-data-struct.md
- tasks/libult.md
- reading/synchronization.md
- reading/user-level-threads.md
- reading/scheduling.md
- guides/user-level-threads.md
- guides/libult.md

[4]

- Compute:
path: /build/prepare_view/.view
extra:
- media
subsections:
- Slides: /build/embed_reveal/Compute/Compute.mdx
- Overview: /build/prepare_view/.view/compute-overview.md
- Questions:
path: questions
subsections:
- Parent Faults Before Fork: parent-faults-before-fork.md
- Mmap Cow Flag: mmap-cow-flag.md
- Sections Always Shared: sections-always-shared.md
- Child Faults After Write: child-faults-after-write.md
- Seg Fault Exit Code: seg-fault-exit-code.md
- Threads Shared Data: threads-shared-data.md
- Thread Memory: thread-memory.md
- Apache2 Strace: apache2-strace.md
- Mini Shell Stops After Command: mini-shell-stops-after-command.md
- Cause of File Not Found Error: cause-of-file-not-found-error.md
- Process Creation: process-creation.md
- Who Calls Execve Parent: who-calls-execve-parent.md
- Exec Without Fork: exec-without-fork.md
- Create Sleepy Process Ending: create-sleepy-process-ending.md
- Processes Speedup: processes-speedup.md
- Parent of Sleep Processes: parent-of-sleep-processes.md
- Sleeping on a Fiber: sleeping-on-a-fiber.md
- Fiber Strace: fiber-strace.md
- Type of Scheduler in Libult: type-of-scheduler-in-libult.md
- Number of Running Ults: number-of-running-ults.md
- Why Use Completed Queue: why-use-completed-queue.md
- Ult Thread IDs: ult-thread-ids.md
- TCB Libult Unikraft: tcb-libult-unikraft.md
- Time Slice Value: time-slice-value.md
- Number of Running Threads: number-of-running-threads.md
- Notify Only With Mutex: notify-only-with-mutex.md
- TLS Var Copies: tls-var-copies.md
- TLS Synchronization: tls-synchronization.md
- Semaphore Equivalent: semaphore-equivalent.md
- Coarse vs Granular Critical Section: coarse-vs-granular-critical-section.md
- Not Race Condition: not-race-condition.md
- Lab 6 - Multiprocess and Multithread: lab6.md
- Lab 7 - Copy-on-Write: lab7.md
- Lab 8 - Syncronization: lab8.md

What are the titles of Lab 12 and Lab 13? How do I decide the order in which to arrange the tasks, and in which lab each task should be included?

@teodutu
Copy link

teodutu commented Nov 19, 2024

What are the titles of Lab 12 and Lab 13? How do I decide the order in which to arrange the tasks, and in which lab each task should be included?

There will only be lab 12 for App Interact. You can see the tasks here [1]. Keep them mostly in the same order, but if you feel that any of them would work better in a different place, feel free to move it. Moving tasks around is as easy as moving one line in config.yaml so don't worry about making mistakes there, they're easy to fix.

[1]

# - Application Interaction:
# path: content/chapters/app-interact/lab/content
# extra:
# - ../media
# - ../quiz
# subsections:
# - Overview: overview.md
# - Time Server: time-server.md
# - Password Cracker: password-cracker.md
# - The X Window System: x-window-system.md
# - D-Bus: dbus.md
# - OS Cloud: os-cloud.md

@cosmin1805 cosmin1805 requested a review from teodutu November 22, 2024 15:15
@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 22, 2024
Copy link

@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 22, 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 chapter's starting to take a better shape now. I made inline suggestions to make things look better. Most of them should be applied globally. In addition, you should also start looking into the checkpatch [1] and super-linter failures [2]. To fix spellcheck, you'll have to add the false positive words [3] to these wordlist via another PR. Make sure to keep those wordlist sorted.

[1] https://github.com/cs-pub-ro/operating-systems/actions/runs/11975236465/job/33388135941?pr=137
[2] https://github.com/cs-pub-ro/operating-systems/actions/runs/11975236465/job/33388135510?pr=137
[3] https://github.com/cs-pub-ro/operating-systems/actions/runs/11975236465/job/33388135058?pr=137

chapters/app-interact/overview/slides/channels.md Outdated Show resolved Hide resolved
chapters/app-interact/overview/slides/api.md Outdated Show resolved Hide resolved
chapters/app-interact/Makefile Outdated Show resolved Hide resolved
chapters/app-interact/Makefile Outdated Show resolved Hide resolved
@Alex-deVis Alex-deVis assigned teodutu and unassigned Alex-deVis Nov 28, 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 28, 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.

I made some more inline comments about splitting the content. Besides, fix the linter failures [1] (I gave further details here [2]), remove content/chapters/app-interact/ and these comments [3].

[1] https://github.com/cs-pub-ro/operating-systems/pull/137/checks
[2] #137
[3] https://github.com/cs-pub-ro/operating-systems/blob/main/config.yaml#L331-L348

chapters/app-interact/Makefile Outdated Show resolved Hide resolved
chapters/app-interact/dbus/drills/tasks/dbus/README.md Outdated Show resolved Hide resolved
chapters/app-interact/dbus/reading/dbus.md Outdated Show resolved Hide resolved
@teodutu
Copy link

teodutu commented Nov 28, 2024

Also rebase the main branch to fix the merge conflict.

cosmin1805 added a commit to cosmin1805/actions that referenced this pull request Dec 5, 2024
teodutu pushed a commit to open-education-hub/actions that referenced this pull request Dec 5, 2024
@github-actions github-actions bot added the area/infra Update to infrastructure / scripts label Dec 8, 2024
@cosmin1805 cosmin1805 requested a review from teodutu December 8, 2024 11:57
@teodutu
Copy link

teodutu commented Dec 8, 2024

Rebase the main branch to fix the merge conflicts. In doing so, you can already squash your commits into a single one.

cosmin1805 and others added 9 commits December 9, 2024 13:51
Signed-off-by: Iacobai Cosmin-Andrei <[email protected]>
Signed-off-by: Cosmin-Andrei Iacobai <[email protected]>
- added to the Makefile the gifs
- added a title to all task file
- moved the demos
- updated all media links in slides

Signed-off-by: Cosmin-Andrei Iacobai <[email protected]>
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]>
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]>
…Makefiles

in the demo folder and resolving the checkpatch errors.

Signed-off-by: Cosmin-Andrei Iacobai <[email protected]>
This change consolidates build rules into each Makefile so that none of them depend on external included makefiles. This simplifies the build process and reduces inter-file dependencies.

Signed-off-by: Cosmin-Andrei Iacobai <[email protected]>
@cosmin1805
Copy link
Author

cosmin1805 commented Dec 9, 2024

@teodutu So on the branch translate_app-interact I did git rebase upstream/main, and now i get this

hulk-buster@stark-industries-hq:~/sync/FACULTATE/SO/operating-systems$ git status
On branch translate_app-interact
Your branch and 'origin/translate_app-interact' have diverged,
and have 21 and 19 different commits each, respectively.
  (use "git pull" if you want to integrate the remote branch with yours)

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.vscode/

nothing added to commit but untracked files present (use "git add" to track)

What should I do now?

Rebase the main branch to fix the merge conflicts. In doing so, you can already squash your commits into a single one.

@teodutu
Copy link

teodutu commented Dec 9, 2024

What should I do now?

Run git push -f to update the remote branch with your local changes. You need -f because the histories of the remote and local branches have now diverged.

@cosmin1805 cosmin1805 force-pushed the translate_app-interact branch from 84f1014 to b348623 Compare December 9, 2024 17:59
cosmin1805 added a commit to cosmin1805/actions that referenced this pull request Dec 9, 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 Dec 9, 2024
Copy link

github-actions bot commented Dec 9, 2024

`Aplication` modified to `Application`

Signed-off-by: Cosmin-Andrei Iacobai <[email protected]>
@cosmin1805
Copy link
Author

@teodutu Is there anything else that needs to be done to this chapter?

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 content is good as it is. Now for the finishing touches:

  • Add a note like this at the end of each task:
If you're having difficulties solving this exercise, go through [this](link to the relevant section in reading/) reading material.
  • Remove overview/guides/demo/common/. All those makefiles should be copied into those that include them.
  • Move everything in overview/guides/demo to overview/guides/ (and remove demo/). A guide is a demo, there's no difference.
  • Fix the linter failures [1]. Lots of them come from the logger. Just copy them from the I/O chapter [2] where their coding style has been fixed.
  • Your PR shouldn't make any changes to the io chapter. Make sure you've rebased properly against the main branch that it's updated from the upstream repo:
git remote add upstream [email protected]:cs-pub-ro/operating-systems.git

git checkout main

git fetch upstream

git pull upstream main

git checkout translate_app-interact

git rebase -i main  # at this step you can change the first word from each commit from "pick" to "s" (from "squash") so you only end up with one commit after rebasing

# Now the rebase will progress and stop whenever there are conflicts. git will tell you what the conflicting files are. Fix them, then run git add + git rebase --continue until the rebase finishes.

git push -f

[1] https://github.com/cs-pub-ro/operating-systems/actions/runs/12241792610/job/34157993777
[2] https://github.com/cs-pub-ro/operating-systems/tree/main/chapters/io/ipc/drills/tasks/receive-challenges/solution/src/utils

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/content Content (Markdown) update area/infra Update to infrastructure / scripts area/media Update to media content 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 student-contrib Fix or improvement made by a student
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants