ComputerScience/OperatingSystem(23)
-
[OS Project] Chap10-1. Process - PCB and Context switch
ProcessA process is an instance of an application. Each process has its own independent execution context and resources, such as a virtual address space. Practical operating systems provide the execution context as a separate concept called a "thread". For simplicity, in this book we'll treat each process as having a single thread. Process control block The following process structure defines ..
2025.01.19 -
[OS Project] Chap9. Memory Allocation
Memory AllocationBefore implementing a memory allocator, let's define the memory regions to be managed by the allocator . = ALIGN(4); . += 128 * 1024; /* 128KB */ __stack_top = .; . = ALIGN(4096); __free_ram = .; . += 64 * 1024 * 1024; /* 64MB */ __free_ram_end = .;} This adds two new symbols, __free_ram and __free_ram_end. This defines a memory area after the stack space. ..
2025.01.18 -
[OS Project] Chap8. Exception
ExceptionException is a CPU feature that allows the kernel to handle various events, such as invalid memory access (aka. page faults), illegal instructions, and system calls. Exception is like a hardware-assisted try-catch mechanism in C++ or Java. Until CPU encounters the situation where kernel intervention is required, it continues to execute the program. The key difference from try-catch is ..
2025.01.17 -
[OS Project] Chap7. Kernel Panic
Kernel PanicA kernel panic occurs when the kernel encounters an unrecoverable error, similar to the concept of panic in Go or Rust. Have you ever seen a blue screen on Windows? Let's implement the same concept in our kernel to handle fatal errors. The following PANIC macro is the implementation of kernel panic#define PANIC(fmt, ...) \ do ..
2025.01.17 -
[OS Project] Chap6. C Standard Library
C Standard LibraryIn this chapter, let's implement basic types and memory operations, as well as string manipulation functions. In this book, for the purpose of learning, we'll create these from scratch instead of using C standard library. The concepts introduced in this chapter are very common in C programming, so ChatGPT would provide solid answers. If you struggle with implementation or under..
2025.01.17 -
[OS Project] Chap5. Hello World!
Say "hello" to SBI- SBI is an "API for OS". - To call the SBI to use its function, we use the ecall instruction#include "kernel.h"extern char __bss[], __bss_end[], __stack_top[];struct sbiret sbi_call(long arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long fid, long eid) { register long a0 __asm__("a0") = arg0; register long a1 __asm__("a1") = arg1; ..
2025.01.16 -
[OS Project] Chap4. Booting the Kernel
2024. 01. 13. Monday 우선 프로젝트를 원격으로 연결해두었다. :) GitHub Desktop 앱도 오랜만에 들어가본다 , , https://github.com/SohyeonKim-dev/OperatingSystem GitHub - SohyeonKim-dev/OperatingSystem: OS 만들기 프로젝트OS 만들기 프로젝트 . Contribute to SohyeonKim-dev/OperatingSystem development by creating an account on GitHub.github.com 👩💻 brew로 qemu 설치 brew install llvm lld qemu Let's boot OpenSBI OpenSBI: Open Sourc..
2025.01.13 -
[OS Project] 운영체제 구현하기 프로젝트
2025. 01. 10 Friday 어제 Geek News에서 재미있어 보이는 프로젝트를 찾게 되었다.! 👩💻제대로 된 코딩을 한 게 . . 지난 겨울 방학때 한창 앱 개발하던 그 시절이 마지막인 것 같거등요 ^^.. ...💥무언가 만들고 싶은게 있어서,파바박 밤새 개발하던 때가 그립기도 하고,, 요즘은 하고 싶은 일보다 해야하는 일을 더 많이 하게 되는 것 같네요 .. .·⋆(⌒_⌒)⋆·. https://operating-system-in-1000-lines.vercel.app/en/ Intro | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app세상에는 대단한 개발자가 너무너무많으셔 - ..
2025.01.10 -
[PIM] HEAM: Hashed Embedding Acceleration Using Processing-In-Memory
HEAM: Hashed Embedding Acceleration Using Processing-In-Memory https://arxiv.org/abs/2402.04032 HEAM : Hashed Embedding Acceleration using Processing-In-MemoryIn today's data centers, personalized recommendation systems face challenges such as the need for large memory capacity and high bandwidth, especially when performing embedding operations. Previous approaches have relied on DIMM-based near..
2024.06.25 -
[PIM] Processing-in-memory: A workload-driven perspective
Processing-in-memory: A workload-driven perspective (IBM, 2019) https://ieeexplore.ieee.org/document/8792187 Processing-in-memory: A workload-driven perspectiveMany modern and emerging applications must process increasingly large volumes of data. Unfortunately, prevalent computing paradigms are not designed to efficiently handle such large-scale data: The energy and performance costs to move thi..
2024.05.21