- Lab 1: Three operations are commonly used to program CPU and I/O registers: Test, Set, and Clear. Lab 1 will implement these 3 operations along with a Mask function.
- Grade: 100/100
- Lab 2: You will be creating a UART (Universal Asynchronous Receiver Transmitter) driver for MZOS (Marz OS). The point of this lab is to learn how to control hardware from an operating system. The programming part requires no more knowledge than pointers and pointer arithmetic.
- Grade: 90/100
- -10 for not handling 8BIT and PODD.
- Note, you don't need to return from a void function. You always have a return statement at the end of the function that is not needed.
- Grade: 90/100
- Lab 3: You will be implementing the interactive scheduler for Marz OS. You will be writing three different interactive scheduling algorithms: round robin, multilevel, and multilevel feedback.
- Grade: 100/100
90/100-10 You run through the entire list of processes, update the times, then start your scheduler. You should check to see if the time can be updated as you're trying to schedule it.
- Grade: 100/100
- Lab 4: You will be writing a few functions required to implement the Sv32 memory management unit. This time, MZOS has both kernel and user space. Therefore, it is required that your code map/unmap and switch MMU pages to make sure that all user space lives in user space, and that all kernel space lives in kernel space.
- Grade: 100/100
- "Very well done!" Stephen Gregory Marz, Mar 9 at 4:16pm
- "By the way, C-style string literals are const char * since they are r-values. That's why you get those warnings." Stephen Gregory Marz, Mar 9 at 4:16pm
- Grade: 100/100
- Lab 5: This project is all about implementing a file system in a true environment. You will be using a kernel module and library called FUSE--Filesystem in Userspace. This is a real filesystem in Linux and works with the Hydra machines. You will be writing several functions that read and write to a block file and allow the user to interact with your filesystem.
- Grade: 83/100
- -15 Input/output error while writing to file - Adam Connor Short, Apr 18 at 6:29pm
- -2 Does not change modify time in fs_open. - Adam Connor Short, Apr 18 at 6:31pm
- Grade: 83/100
- Lab X: You will be writing a VIO (Virtual I/O) driver which probes, sets up, and reads from block and entropy (random) devices.
- DID NOT ATTEMPT
cs361's Introduction
cs361's People
cs361's Issues
Implement fs_getattr()
Implement fs_write()
Implement fs_create()
OS Menu showing but not accepting input
The Init and Idle processes seem to be adding correctly and the OS Menu is showing correctly, but no input is accepted and is just stuck on the menu.
Implement fs_drive()
Implement fs_destroy()
0 is not printed in any of the mathematical functions
When 0 is one of the numbers entered by the user, the resulting string of x + y = z
will print a blank for the entered 0 value. This is true for all mathematical functions, a/s/m/d.
Implement fs_chmod()
mmu_map space and aligned pointer may be off
The current way to find a free space in MMU_TABLE is and then align it is with the following:
space = &MMU_TABLE[1024 * p->pid * 10];
aligned_space = (uint32_t) (space + (ALIGN_TO - 1)) & -ALIGN_TO;
However, space
may be calculated incorrectly and thus aligned_space is incorrect.
Implement fs_mkdir()
Implement fs_unlink()
Implement fs_readdir()
Implement fs_opendir()
Implement fs_rename()
Implement fs_truncate()
get_timer_lo() and get_timer_hi()
How can I use both get_timer_lo and get_timer_hi to compare process sleep times and run times? Need to figure out use of both of these functions/values.
Implement fs_chown()
mmu_map confusion
What does the bolded instruction mean in the example section of the lab write up?: "2. Now you have a properly aligned pointer to free memory space. This pointer now points to your root page table entry. You will have two levels of page tables. The first level will contain no leaves, but every single page table contains 1024 entries, each 4 bytes a piece. To determine which of the 1024 entries will need to be mapped, you will need to decompose your program pointer and stack pointer using Figure 4.13 shown above. VPN[1] will contain the array index into your first level page table, and VPN[0] will contain the array index into your second level page table."
Implement fs_read()
Negatives need to be accounted for when using extract_two_numbers and to_string functions
Multilevel-Feedback Scheduling
Need to implement Multilevel-Feedback Scheduling.
Explanation is in ZyBooks chapter 4.3.
"Unknown trap cause." is repeatedly printed if the program is left running for 20+ seconds.
Multilevel Scheduling
Need to implement Multilevel Scheduling algorithm.
Explanation of algorithm is in ZyBooks chapter 4.3.
Negative values are not being printed, but math is correct
Implement fs_open()
Implement fs_rmdir()
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.