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

[hackathon2024]: Update information for hackathon. #154

Merged
merged 3 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions content/assignments/lambda-function-loader/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Discrepancies might arise between local environments and the dedicated OS virtua
Grading will consider results obtained solely in the OS virtual machine environment.

The core of this project revolves around the construction of a system capable of dynamic library loading and subsequent function execution.
The project architecture embraces a [client-server model](https://cs-pub-ro.github.io/operating-systems/Lab/IO/client-server-model), where the server is responsible for receiving and fulfilling requests to execute functions sourced from specific dynamic libraries present within the system.
The project architecture embraces a [client-server model](https://cs-pub-ro.github.io/operating-systems/IO/lab10#client-server-model), where the server is responsible for receiving and fulfilling requests to execute functions sourced from specific dynamic libraries present within the system.

This functionality marks the initial phase toward realizing capabilities akin to [AWS Lambda](https://aws.amazon.com/lambda/).
In this context, users can load and execute functions across distinct servers upon request.
Expand All @@ -19,7 +19,7 @@ Detailed below are the primary requisites and potential enhancements.

### Implementation Details and Notes

The implementation involves the capability to receive commands utilizing [UNIX sockets](https://cs-pub-ro.github.io/operating-systems/Lab/IO/beyond-network-sockets#unix-sockets), encompassing the designation of a library (the path to the library file) and optionally specifying a function.
The implementation involves the capability to receive commands utilizing [UNIX sockets](https://cs-pub-ro.github.io/operating-systems/IO/lab10#unix-sockets), encompassing the designation of a library (the path to the library file) and optionally specifying a function.
A command transmitted from the client to the server conforms to the format: `<libname> [<funcname> [<filename>]]` where:

- `libname` represents the path to the intended library.
Expand Down Expand Up @@ -87,14 +87,10 @@ The server's implementation must be robust, enabling continuous execution even i

What is needed for the implementation of the proposed project:

- Understanding inter-process communication - using Unix sockets and read/write or send/receive operations:
- [I/O Course](https://cs-pub-ro.github.io/operating-systems/Lecture/IO/)
- [I/O Lab](https://cs-pub-ro.github.io/operating-systems/I/O/)
- Understanding inter-process communication - using Unix sockets and read/write or send/receive operations ([I/O Chapter](https://cs-pub-ro.github.io/operating-systems/IO/))
- Understanding the API for loading/unloading libraries and executing functions from dynamic libraries:
- Hint: `man dlopen`
- Working with shared data between processes or threads:
- [Compute Course](https://cs-pub-ro.github.io/operating-systems/Lecture/Compute/)
- [Compute Lab](https://cs-pub-ro.github.io/operating-systems/Compute/)
- Working with shared data between processes or threads ([Compute Chapter](https://cs-pub-ro.github.io/operating-systems/Compute/))
- Working with memory
- Working with files

Expand Down
23 changes: 6 additions & 17 deletions misc/rules-and-grading.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,47 +176,36 @@ During the hackathon, teams will receive assistance from OS teaching assistants.

#### Date

Saturday, December 16, 2023, within the interval 10:00-18:00.
Saturday, January 11, 2025, within the interval 10:00-18:00.

#### Location

The hackathon takes place physically in rooms:

- PR 703
- PR 705
- PR 706

#### Prerequisites

1. Students enrolled in the OS course in the academic year 2023-2024 can participate.
1. Students enrolled in the OS course in the academic year 2024-2025 can participate.
1. Participants will form teams of two.
1. Participants will work on their own systems.

#### Registration

Participating teams can register for the hackathon by completing the form [here]([https://forms.gle/qs5wKBwCe86RdQPGA\](https://forms.gle/qs5wKBwCe86RdQPGA/)) until December 10, 2023, at 23:55.
Up to 30 teams will be selected.
Registration is closed.

#### Regulations

1. Versioned code must be added to a **private** repository using GitHub.
Create a private repository, add the supervising assistants, and include a README with the team composition.
Follow [these steps](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository#inviting-a-collaborator-to-a-personal-repository) to add your teammate and teaching assistants as collaborators to the repository.
The supervising assistants and their GitLab accounts are:

- `elena19m`
- `fabianpatras`
- `teodutu`
- `gabrielmocanu`
- `Alex-deVis`
- `razvanvirtan`
- `StefanJum`

1. The code must pass a set of tests provided by the OS team.

##### Submission

Submissions will be uploaded on [Moodle](https://curs.upb.ro/2023/mod/assign/view.php?id=80182).
Submissions will be uploaded on [Moodle](https://curs.upb.ro/2024/mod/assign/view.php?id=93326).

- A submission consists of a `.zip` archive containing the directory `operating-systems/content/assignments/lambda-function-loader/` (with directories `tests` and `src`).
- The archive is uploaded by one team member only.
Expand All @@ -236,11 +225,11 @@ Each member of the winning teams will receive a prize based on their ranking:

#### Equivalence

All participating teams are **eligible** for one point equivalence in the OS subject (depending on **implementation complexity and project stage developed during the hackathon**).
All participating teams are **eligible** for up to 0.75 points equivalence in the OS subject (depending on **implementation complexity and project stage developed during the hackathon**).

#### Winners Announcement

Winning teams will be announced by December 20, 2023.
Winning teams will be announced by January 17, 2025.

### Lecture Quizzes (1 point)

Expand Down
Loading