GithubHelp home page GithubHelp logo

racheliee / skku_os Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 2.84 MB

24-1 운영체제 (prof. 서의성)

Emacs Lisp 0.03% Makefile 3.39% C 86.51% Assembly 3.84% Perl 2.08% Shell 2.32% Ruby 1.03% OpenEdge ABL 0.80%
cfs memory-management page-replacement-algorithm scheduler swap-space xv6

skku_os's Introduction

Operating Systems Project Assignments

This repository contains implementations of several operating systems projects from the SWE3004 course, each organized into separate folders. Each project folder includes its implementation files and documentation, meeting course requirements and coding standards.

Projects Included

Project 0: Introduction to xv6

  • Objective: Provide hands-on experience with the xv6 operating system.
  • Grade: 100/100
  • Key Features:
    • Clone the xv6 repository.
    • Boot xv6.
    • Customize the boot message to display student ID, name, and an optional message.

Project 1: System Call

  • Objective: Implement three new system calls (getnice, setnice, ps) in the xv6 operating system.
  • Grade: 100/100
  • Key Features:
    • getnice(int pid): Retrieves the nice value of a process.
    • setnice(int pid, int value): Sets the nice value of a process.
    • ps(int pid): Prints process information, including name, pid, state, and nice value.

Project 2: CPU Scheduling

  • Objective: Implement the Completely Fair Scheduler (CFS) in the xv6 operating system and modify the ps system call to display scheduling information.
  • Grade: 100/100
  • Key Features:
    • Implement CFS to manage process scheduling based on priority.
    • Modify ps system call to output runtime, weight, vruntime, and other relevant scheduling information.

Project 3: Virtual Memory

  • Objective: Implement virtual memory support in the xv6 operating system.
  • Grade: 60/100
  • Key Features:
    • Implement mmap(), munmap(), and freemem() system calls.
    • Implement a page fault handler to manage memory accesses to mapped regions.

Project 4: Page Replacement

  • Objective: Implement page-level swapping and manage swappable pages using the LRU (Least Recently Used) list.
  • Grade: 80/100
  • Key Features:
    • Implement swap-in and swap-out operations to move pages between main memory and backing store.
    • Manage swappable pages with an LRU list.
    • Implement the clock algorithm for page replacement.

Notes

In order to run on mac, the following changes need to be made to the Makefile:

  1. Remove -Werror from CFLAGS
CFLAGS = -fno-pic -static -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 -fno-omit-frame-pointer
  1. Uncomment the following two sections
# If the makefile can't find QEMU, specify its path here
QEMU = qemu-system-i386

# Using native tools (e.g., on X86 Linux)
TOOLPREFIX = i686-elf-

skku_os's People

Contributors

racheliee avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.